<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/atom10full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en" xml:base="http://knightbaron.sytes.net/wp-atom.php">
	<title type="text">Yume Nikki</title>
	<subtitle type="text">Because programming is so moe.</subtitle>

	<updated>2008-08-18T14:08:17Z</updated>
	<generator uri="http://wordpress.org/" version="2.6.1">WordPress</generator>

	<link rel="alternate" type="text/html" href="http://knightbaron.sytes.net" />
	<id>http://knightbaron.sytes.net/feed/atom/</id>
	

			<link rel="self" href="http://feeds.feedburner.com/RandomNonsense" type="application/atom+xml" /><entry>
		<author>
			<name>KnightBaron</name>
						<uri>http://dozo-fansubs.net</uri>
					</author>
		<title type="html"><![CDATA[Object-oriented ฉบับ KnightBaron]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/RandomNonsense/~3/368120095/" />
		<id>http://knightbaron.sytes.net/?p=152</id>
		<updated>2008-08-18T14:08:17Z</updated>
		<published>2008-08-18T13:52:10Z</published>
		<category scheme="http://knightbaron.sytes.net" term="Uncategorized" /><category scheme="http://knightbaron.sytes.net" term="Article" /><category scheme="http://knightbaron.sytes.net" term="C#" /><category scheme="http://knightbaron.sytes.net" term="Mahou Shoujo Lyrical Nanoha" /><category scheme="http://knightbaron.sytes.net" term="Programming" /><category scheme="http://knightbaron.sytes.net" term="Strike Witches" />		<summary type="html"><![CDATA[เห็นว่าเพื่อนๆ มีปัญหากับ OOP กันหลายคนเลยอยากจะโขว์ภูมิเขียนบทความเกี่ยวกับเรื่องนี้ไว้สักชุด เผื่อจะช่วยให้เข้าใจได้มากขึ้น และถือเป็นการลองเล่น WP-Syntax ที่เพิ่งลงวันก่อนไปในตัว บทความอาจจะวกวนไปหน่อย เพราะขี้เกียจเรียบเรียง ยังไงก็ทนอ่านไปละกันนะ

Object-oriented programming คืออะไร?
Object-oriented programming คือ Programming paradigm ชนิดหนึ่งที่พัฒนาต่อยอดจากการเขียนโปรแกรมแบบ Procedural programming (วิธีที่เราเขียน ANSI C กันแบบเดิมๆ) โดยมีแนวคิดหลักคือมองเหตุการณ์ในโปรแกรมเป็นปฎิสัมพันธ์ (Interaction) ของแต่ละ Object ซึ่งการเขียนโปรแกรมในรูปแบบนี้ทำให้การพัฒนาโปรแกรมที่ใหญ่และซับซ้อนนั้นทำได้สะดวกขึ้น เนื่องจากการที่เราแบ่งโปรแกรมเป็น class ต่างๆ ส่งผลให้สามารถเปลี่ยน code เฉพาะส่วนที่ต้องการได้เหมือนเปลี่ยนอะไหล่รถยนต์
คุณสมบัติหลักๆ ของ Object-oriented programming

Encapsulation

Polymorphism
Inheritance


รายละเอียดปลีกย่อยเกี่ยวกับทฤษฎีพวกนี้ขี้เกียจอธิบาย ไปหาอ่านเอาเองแล้วกัน ขอข้ามมาอธิบายวิธีการเขียนโปรแกรมแนวนี้เลยดีกว่า
Class และ Object
Class คือการกำหนด แม่แบบ ( แม่พิมพ์, พิมพ์เขียว หรือบลาๆ แล้วแต่จะเรียก) ของ Object โดยจะมีการให้ Concept ของ Object [...]]]></summary>
		<content type="html" xml:base="http://knightbaron.sytes.net/2008/08/18/object-oriented-%e0%b8%89%e0%b8%9a%e0%b8%b1%e0%b8%9a-knightbaron/"><![CDATA[<p>เห็นว่าเพื่อนๆ มีปัญหากับ <a href="http://en.wikipedia.org/wiki/Object-oriented_programming" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/en.wikipedia.org');">OOP</a> กันหลายคนเลยอยากจะ<span style="text-decoration: line-through;">โขว์ภูมิ</span>เขียนบทความเกี่ยวกับเรื่องนี้ไว้สักชุด เผื่อจะช่วยให้เข้าใจได้มากขึ้น และถือเป็นการลองเล่น <a href="http://wordpress.org/extend/plugins/wp-syntax/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/wordpress.org');">WP-Syntax</a> ที่เพิ่งลงวันก่อนไปในตัว บทความอาจจะวกวนไปหน่อย เพราะขี้เกียจเรียบเรียง ยังไงก็ทนอ่านไปละกันนะ</p>
<p><span id="more-152"></span></p>
<h4>Object-oriented programming คืออะไร?</h4>
<p><a href="http://en.wikipedia.org/wiki/Object-oriented_programming" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/en.wikipedia.org');">Object-oriented programming</a> คือ <a href="http://en.wikipedia.org/wiki/Programming_paradigm" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/en.wikipedia.org');">Programming paradigm</a> ชนิดหนึ่งที่พัฒนาต่อยอดจากการเขียนโปรแกรมแบบ <a href="http://en.wikipedia.org/wiki/Procedural_programming" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/en.wikipedia.org');">Procedural programming</a> (วิธีที่เราเขียน <a href="http://en.wikipedia.org/wiki/ANSI_C" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/en.wikipedia.org');">ANSI C</a> กันแบบเดิมๆ) โดยมีแนวคิดหลักคือมองเหตุการณ์ในโปรแกรมเป็นปฎิสัมพันธ์ (Interaction) ของแต่ละ Object ซึ่งการเขียนโปรแกรมในรูปแบบนี้ทำให้การพัฒนาโปรแกรมที่ใหญ่และซับซ้อนนั้นทำได้สะดวกขึ้น เนื่องจากการที่เราแบ่งโปรแกรมเป็น class ต่างๆ ส่งผลให้สามารถเปลี่ยน code เฉพาะส่วนที่ต้องการได้เหมือนเปลี่ยนอะไหล่รถยนต์</p>
<p>คุณสมบัติหลักๆ ของ Object-oriented programming</p>
<ol>
<li><a href="http://en.wikipedia.org/wiki/Information_hiding" target="_blank">Encapsulation<br />
</a></li>
<li><a href="http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/en.wikipedia.org');">Polymorphism</a></li>
<li><a href="http://en.wikipedia.org/wiki/Inheritance_(computer_science)" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/en.wikipedia.org');">Inheritance</a><a href="http://en.wikipedia.org/wiki/Inheritance_(computer_science)" target="_blank"><br />
</a></li>
</ol>
<p>รายละเอียดปลีกย่อยเกี่ยวกับทฤษฎีพวกนี้ขี้เกียจอธิบาย ไปหาอ่านเอาเองแล้วกัน ขอข้ามมาอธิบายวิธีการเขียนโปรแกรมแนวนี้เลยดีกว่า</p>
<h4>Class และ Object</h4>
<p><strong>Class</strong> คือการกำหนด <em>แม่แบบ</em> ( <em>แม่พิมพ์</em>, <em>พิมพ์เขียว</em> หรือบลาๆ แล้วแต่จะเรียก) ของ Object โดยจะมีการให้ Concept ของ Object นั้นๆ เอาไว้ว่าจะต้องมี &#8220;คุณสมบัติ&#8221; (Properties) และ &#8220;ความสามารถ&#8221; (Methods) อะไรบ้าง สำหรับคนที่เคยเรียนภาษา C มาก่อน อาจจะติ๊ต่างได้ว่ามันคือ <em>Struct ที่เก็บ Function ได้</em> (แต่ส่วนตัวไม่อยากให้จำแบบนั้น เพราะมันคนละ Paradigm กัน เทียบกันไม่ได้)</p>
<p><strong>Object</strong> คือตัวแทนของก้อนอะไรสักอย่างเช่น รถยนต์, มนุษย์, หมา, แมว, หุ่นยนต์, กันดั้ม, <a href="http://anidb.net/perl-bin/animedb.pl?show=anime&amp;aid=4917" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/anidb.net');">พ่อบ้านกันดั้ม</a>, บลาๆ (อันหลังนี่มาจากไหนหว่า?) โดยจะมีคุณสมบัติและความสามารถต่างๆ (ตามที่กำหนดไว้ใน Class)</p>
<p>อธิบายเป็นคำพูดยากแฮะ เอาเป็นว่าขอยกตัวอย่างพื้นๆ ซักอย่างละกัน</p>
<p>Class สาวน้อยเวทย์มนตร์</p>
<ul>
<li>คุณสมบัติ: ชื่อ</li>
<li>คุณสมบัติ: ท่าโจมตี</li>
<li>คุณสมบัติ: พลังโจมตี</li>
<li>คุณสมบัติ: พลังชีวิต</li>
<li>คุณสมบัติ: พลังเวทย์ (กำหนดให้ลดลง 1 หน่วยต่อการใช้เวทย์มนตร์หนึ่งครั้ง)</li>
<li>ความสามารถ: โจมตี (ใส่สาวน้อยเวทย์มนตร์คนอื่น หรืออากาศธาตุ)</li>
<li>ความสามารถ: เติมพลังเวทย์</li>
<li>ความสามารถ: เติมพลังชีวิต</li>
</ul>
<p>ซึ่งถ้าเอามาเขียนเป็น C# ก็จะได้ประมาณนี้</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
</pre></td><td class="code"><pre class="csharp"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System</span><span style="color: #008000;">;</span>
<span style="color: #FF0000;">class</span> MahouShoujo
<span style="color: #000000;">&#123;</span>
  <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">const</span> <span style="color: #FF0000;">int</span> DEFAULT_HP <span style="color: #008000;">=</span> <span style="color: #FF0000;">30</span><span style="color: #008000;">;</span>
  <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">const</span> <span style="color: #FF0000;">int</span> DEFAULT_MP <span style="color: #008000;">=</span> <span style="color: #FF0000;">30</span><span style="color: #008000;">;</span>
&nbsp;
  <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> name<span style="color: #008000;">;</span>
  <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> move<span style="color: #008000;">;</span>
  <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">int</span> atk<span style="color: #008000;">;</span>
  <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">int</span> hp<span style="color: #008000;">;</span>
  <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">int</span> mp<span style="color: #008000;">;</span>
&nbsp;
  <span style="color: #0600FF;">public</span> MahouShoujo <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> i_name, <span style="color: #FF0000;">string</span> i_move, <span style="color: #FF0000;">int</span> i_atk<span style="color: #000000;">&#41;</span>
  <span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">name</span> <span style="color: #008000;">=</span> i_name<span style="color: #008000;">;</span>
    <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">move</span> <span style="color: #008000;">=</span> i_move<span style="color: #008000;">;</span>
    <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">atk</span> <span style="color: #008000;">=</span> i_atk<span style="color: #008000;">;</span>
    <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">hp</span> <span style="color: #008000;">=</span> DEFAULT_HP<span style="color: #008000;">;</span>
    <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">mp</span> <span style="color: #008000;">=</span> DEFAULT_MP<span style="color: #008000;">;</span>
  <span style="color: #000000;">&#125;</span>
&nbsp;
  <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">override</span> <span style="color: #FF0000;">string</span> ToString<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
  <span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">return</span> <span style="color: #FF0000;">String</span>.<span style="color: #0000FF;">Format</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;{0} &amp;gt; HP:{1} MP:{2}&quot;</span>, <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">name</span>, <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">hp</span>, <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">mp</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
  <span style="color: #000000;">&#125;</span>
&nbsp;
  <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> Attack<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
  <span style="color: #000000;">&#123;</span>
    Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;{0} attack nobody with {1}. The blow dealth 0 damages.&quot;</span>, <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">name</span>, <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">move</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">mp</span> <span style="color: #008000;">-=</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">;</span>
  <span style="color: #000000;">&#125;</span>
&nbsp;
  <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> Attack<span style="color: #000000;">&#40;</span>MahouShoujo enemy<span style="color: #000000;">&#41;</span>
  <span style="color: #000000;">&#123;</span>
    Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;{0} attack {1} with {2}. The blow dealth {3} damages.&quot;</span>, <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">name</span>, enemy.<span style="color: #0000FF;">name</span>, <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">move</span>, <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">atk</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    enemy.<span style="color: #0000FF;">hp</span> <span style="color: #008000;">-=</span> <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">atk</span><span style="color: #008000;">;</span>
    <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">mp</span> <span style="color: #008000;">-=</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">;</span>
  <span style="color: #000000;">&#125;</span>
&nbsp;
  <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> Recharge<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
  <span style="color: #000000;">&#123;</span>
    Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;{0} recharged her mp!&quot;</span>, <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">name</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">mp</span> <span style="color: #008000;">=</span> DEFAULT_MP<span style="color: #008000;">;</span>
  <span style="color: #000000;">&#125;</span>
&nbsp;
  <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> Heal<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
  <span style="color: #000000;">&#123;</span>
    Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;{0} healed herself!&quot;</span>, <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">name</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">hp</span> <span style="color: #008000;">=</span> DEFAULT_HP<span style="color: #008000;">;</span>
  <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>อธิบายเพิ่มเติมเล็กน้อย คำสงวน this นั้นใช้ในกรณีที่ต้องการอ้างถึง <em>คุณสมบัติ</em> หรือ <em>ความสามารถ</em> ของตัวเอง และสำหรับ Method นี้</p>

<div class="wp_syntax"><div class="code"><pre class="csharp">  <span style="color: #0600FF;">public</span> MahouShoujo <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> i_name, <span style="color: #FF0000;">string</span> i_move, <span style="color: #FF0000;">int</span> i_atk<span style="color: #000000;">&#41;</span>
  <span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">name</span> <span style="color: #008000;">=</span> i_name<span style="color: #008000;">;</span>
    <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">move</span> <span style="color: #008000;">=</span> i_move<span style="color: #008000;">;</span>
    <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">atk</span> <span style="color: #008000;">=</span> i_atk<span style="color: #008000;">;</span>
    <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">hp</span> <span style="color: #008000;">=</span> DEFAULT_HP<span style="color: #008000;">;</span>
    <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">mp</span> <span style="color: #008000;">=</span> DEFAULT_MP<span style="color: #008000;">;</span>
  <span style="color: #000000;">&#125;</span></pre></div></div>

<p>เราเรียกว่า <strong>Constructor method</strong> (ในกรณ๊ของภาษา C# จะใช้เป็น Method ที่มีชื่อเดียวกับ Class แต่ภาษาอื่นๆ อาจใช้ชื่ออื่นแตกต่างกันไป) โดย <em>method นี้จะถูกเรียกเมื่อมีการสร้าง object</em> (ด้วยคำสงวน new) และมักจะใช้ในได้กำหนดค่าเริ่มต้น (Initialize) ค่าต่างๆ ของ Object นั้นๆ ส่วนอีก method นึงที่เจอกันมาแล้วในการบ้านบ้าน Vector Hunsa</p>

<div class="wp_syntax"><div class="code"><pre class="csharp">  <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">override</span> <span style="color: #FF0000;">string</span> ToString<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
  <span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">return</span> <span style="color: #FF0000;">String</span>.<span style="color: #0000FF;">Format</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;{0} &amp;gt; HP:{1} MP:{2}&quot;</span>, <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">name</span>, <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">hp</span>, <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">mp</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
  <span style="color: #000000;">&#125;</span></pre></div></div>

<p>จะไม่ขออธิบาย เนื่องจากขี้เกียจ คิดว่าคงเข้าใจกันแล้ว ถ้ายังงงๆ มาถามได้นอกรอบ</p>
<p>หลังจากที่เราได้ Class มาแล้ว แค่ตัว Class เฉยๆ นั้นทำอะไรไม่ได้ (จริงๆ ทำได้ ถ้าองค์ประกอบภายในมี <a href="http://msdn.microsoft.com/en-us/library/98f28cdx(VS.80).aspx" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/msdn.microsoft.com');">Static</a> modifier ซึ่งจะอธิบายในโอกาสต่อไป) เราต้องทำการสร้าง Object ขึ้นมาจาก Class นั้นๆ ก่อน โดยใช้คำสงวน new ตัวอย่างเช่น</p>

<div class="wp_syntax"><div class="code"><pre class="csharp">MahouShoujo nanoha <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> MahouShoujo<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Takamachi Nanoha&quot;</span>, <span style="color: #666666;">&quot;Starlight Breaker&quot;</span>, <span style="color: #FF0000;">10</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
MahouShoujo sakura <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> MahouShoujo<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Kinomoto Sakura&quot;</span>, <span style="color: #666666;">&quot;Windy&quot;</span>, <span style="color: #FF0000;">3</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p>Code 2 บรรทัดนี้เป็นการสร้างตัวแปร nanoha และ sakura ขึ้นมา สำหรับเก็บ Object MahouShoujo และสร้าง Object MahouShoujo เก็บใส่แต่ละตัวแปรทันที โดยมีการส่ง parameters กลับไปให้ constructor เพื่อกำหนด ชื่อ ท่าโจมตี และพลังโจมตี ตามที่ได้กำหนดไว้ในคลาส ซึ่ง nanaho กับ sakura นี้จะเป็น 2 object แยกกัน แม้จะเป็น Object ของ Class MahouShoujo (เรียกว่า Instance ของ MahouShoujo) เหมือนกัน ถ้าจะเปรียบเทียบก็คล้ายๆ กับ</p>

<div class="wp_syntax"><div class="code"><pre class="csharp"><span style="color: #FF0000;">int</span> a <span style="color: #008000;">=</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">;</span>
<span style="color: #FF0000;">int</span> b <span style="color: #008000;">=</span> <span style="color: #FF0000;">2</span><span style="color: #008000;">;</span></pre></div></div>

<p>ทั้ง a และ b เป็นตัวแปรประเภท Integer เหมือนกัน แต่เก็บค่าต่างกันนั่นเอง</p>
<p>หลังจากที่สร้าง Object มาแล้ว เราคงไม่เอามันมาตั้งไว้เฉยๆ เหมือนฟิกเกอร์ที่ตังอยู่บนหัวนอน แต่เราจะเอามันมาประกอบเป็น Action ต่างๆ ยกตัวอย่างเช่น หากเราจะนำสาวน้อยเวทย์มนตร์มาสู้กัน โดยไม่รับ User-input เลย แต่โปรแกรมการต่อสู้ทั้งหมดลงไปใน Sourcecode โดยตรง ก็จะได้ Main() ราวๆ นี้</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
</pre></td><td class="code"><pre class="csharp"><span style="color: #FF0000;">class</span> MagicalBattlefield
<span style="color: #000000;">&#123;</span>
  <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> Main<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> args<span style="color: #000000;">&#41;</span>
  <span style="color: #000000;">&#123;</span>
    <span style="color: #008080; font-style: italic;">// The two contestant enter the battlefield</span>
    MahouShoujo louise <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> MahouShoujo<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Louise de la Valliere&quot;</span>, <span style="color: #666666;">&quot;Void magic&quot;</span>, <span style="color: #FF0000;">10</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    MahouShoujo sakura <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> MahouShoujo<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Kinomoto Sakura&quot;</span>, <span style="color: #666666;">&quot;Windy&quot;</span>, <span style="color: #FF0000;">8</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">// Display initial status</span>
    Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span>louise<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span>sakura<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">// Let's the war begin!</span>
    sakura.<span style="color: #0000FF;">Attack</span><span style="color: #000000;">&#40;</span>louise<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    louise.<span style="color: #0000FF;">Attack</span><span style="color: #000000;">&#40;</span>sakura<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    sakura.<span style="color: #0000FF;">Attack</span><span style="color: #000000;">&#40;</span>louise<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    louise.<span style="color: #0000FF;">Attack</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">// Display current status</span>
    Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span>louise<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span>sakura<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">// The war continue</span>
    louise.<span style="color: #0000FF;">Attack</span><span style="color: #000000;">&#40;</span>sakura<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    sakura.<span style="color: #0000FF;">Heal</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    louise.<span style="color: #0000FF;">Heal</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">// Look! Who has just joined the battle!</span>
    MahouShoujo nanoha <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> MahouShoujo<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Takamachi Nanoha&quot;</span>, <span style="color: #666666;">&quot;Starlight Breaker&quot;</span>, <span style="color: #FF0000;">30</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">// Display current status</span>
    Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span>louise<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span>sakura<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span>nanoha<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">// Now what</span>
    nanoha.<span style="color: #0000FF;">Attack</span><span style="color: #000000;">&#40;</span>sakura<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    nanoha.<span style="color: #0000FF;">Attack</span><span style="color: #000000;">&#40;</span>louise<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">// Result... (Who could stand agaist the white devil?)</span>
    Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span>louise<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span>sakura<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span>nanoha<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
  <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>ใน Code ตัวอย่างมีการ Comment อธิบายแต่ละ Action อย่างละเอียดแล้ว คิดว่าคงไม่ต้องอธิบายอะไรเพิ่มเติม แค่เรียกใช้ Object Method กระทำ Action ต่อกันธรรมดา นี่เป็นภาพผลการรันโปรแกรม</p>
<p><a href="http://knightbaron.sytes.net/wp-content/uploads/2008/08/1o0y.jpg"><img class="alignnone size-medium wp-image-153" title="1o0y" src="http://knightbaron.sytes.net/wp-content/uploads/2008/08/1o0y-490x367.jpg" alt="" width="490" height="367" /></a></p>
<p>เอ้ย! ผิดรูปๆ</p>
<p><a href="http://knightbaron.sytes.net/wp-content/uploads/2008/08/magicalbattle.jpg"><img class="alignnone size-medium wp-image-155" title="magicalbattle" src="http://knightbaron.sytes.net/wp-content/uploads/2008/08/magicalbattle-490x298.jpg" alt="" width="490" height="298" /></a></p>
<h4>การใช้ Static</h4>
<p><a href="http://dict.longdo.com/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/dict.longdo.com');">Longdo Dict</a> ได้ให้ความหมายของคำว่า <a href="http://dict.longdo.com/?search=static" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/dict.longdo.com');">static</a> เอาไว้ว่า</p>
<blockquote><p><strong>static</strong>[ADJ] ซึ่งอยู่นิ่งๆ, <strong>See also:</strong> ซึ่งไม่เคลื่อนไหว, ซึ่งไม่พัฒนา, <strong>Syn.</strong> <a href="http://dict.longdo.com/search/immobile" onclick="javascript:pageTracker._trackPageview ('/outbound/dict.longdo.com');">immobile</a>, <a href="http://dict.longdo.com/search/inactive" onclick="javascript:pageTracker._trackPageview ('/outbound/dict.longdo.com');">inactive</a></p></blockquote>
<p>ในทางการเขียนโปรแกรม Modifier <a href="http://msdn.microsoft.com/en-us/library/98f28cdx(VS.80).aspx" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/msdn.microsoft.com');">Static</a> นั้นจะใช้สื่อความหมายว่า Propety หรือ Method นั้นๆ จะ มีค่าเหมือนกันในทุกๆ Instance และหากมีการเปลี่ยนแปลง จะเปลี่ยนไปพร้อมๆ กันในทุก Instance เช่นกัน (จะเรียกว่าทุกๆ Object ก็ได้) ดังนั้น จึงไม่มีการจำเป็นต้องสร้าง Object ขึ้นมาก่อน และเรียกใช้จาก Object (สำหรับภาษา C# นั้นบังคับว่าต้องเรียกจากชื่อ Class เท่านั้น) แต่สามารถเรียกใช้จากชื่อ Class ได้เลย โดย Property และ Method เหล่านี้จะถูกเรียกว่า Class Property และ Class Method ตามลำดับ (เช่นเดียวกัน Property และ Method อื่นๆ ที่ไม่ใช่ static จะถูกเรียกว่า Object Property และ Object Method)</p>
<p>ตัวอย่างที่เห็นได้ชัดคือคำสั่งต่างๆ ที่เราใช้กันคล่องมืออย่าง</p>

<div class="wp_syntax"><div class="code"><pre class="csharp">Math.<span style="color: #0000FF;">PI</span><span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">// Class Property of Math Class</span>
Math.<span style="color: #0000FF;">Pow</span><span style="color: #000000;">&#40;</span>a, b<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">// Class Method of Math Class</span>
Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">// Class Method of Console Class</span></pre></div></div>

<p>อันนี้เป็นตัวอย่างโปรแกรมสั้นๆ สาธิตการใช้งาน static</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code"><pre class="csharp"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System</span><span style="color: #008000;">;</span>
<span style="color: #FF0000;">class</span> Otaku
<span style="color: #000000;">&#123;</span>
  <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">string</span> pantsu <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Strike Witches&quot;</span><span style="color: #008000;">;</span>
  <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> Moe <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> something<span style="color: #000000;">&#41;</span> <span style="color: #008080; font-style: italic;">// Moe isn't for any particular otaku!</span>
  <span style="color: #000000;">&#123;</span>
    Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;{0} is so MOE!&quot;</span>, something<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
  <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #FF0000;">class</span> Akiba
<span style="color: #000000;">&#123;</span>
  <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> Main <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> args<span style="color: #000000;">&#41;</span>
  <span style="color: #000000;">&#123;</span>
    <span style="color: #008080; font-style: italic;">// These two line is commented out because C# compiler doesn't allow this.</span>
    <span style="color: #008080; font-style: italic;">/* Otaku konata = new Otaku();
    konata.Moe(&quot;Hiiragi Kagami&quot;); */</span>
&nbsp;
    Otaku.<span style="color: #0000FF;">Moe</span><span style="color: #000000;">&#40;</span> Otaku.<span style="color: #0000FF;">pantsu</span> <span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
  <span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p><a href="http://knightbaron.sytes.net/wp-content/uploads/2008/08/otaku.jpg"><img class="alignnone size-medium wp-image-156" title="otaku" src="http://knightbaron.sytes.net/wp-content/uploads/2008/08/otaku-490x89.jpg" alt="" width="490" height="89" /></a></p>
<p>หวังว่าบทความนี้จะช่วยให้เพื่อนๆ เข้าใจเกี่ยวกับ Object มากขึ้นไม่มากก็น้อย (และอาจเปิดประตูสู่โลกแห่งใหม่ให้กับท่าน&#8230;) คราวหน้าถ้าไม่ขี้เกียจเกินไปจะมาเขียนเกี่ยวกับ Public Private และ Protect รวมทั้งความสามารถอื่นๆ ของ OOP ต่อ</p>
<p>ป.ล. 1 อย่าถามว่าทำไมตัวอย่างอันสุดท้ายมันกิ๊กก๊อก ขี้เกียจนั่งคิดหาไอเดีย จะไปทำฟิสิกส์ต่อแล้ว</p>
<p>ป.ล. 2 ตอนแรกว่าจะเขียนบทความสอนใช้ <a href="http://www.vim.org/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.vim.org');">ViM</a> (หรือที่อาจารย์เรียกว่า <a href="http://en.wikipedia.org/wiki/Vi" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/en.wikipedia.org');">vi</a>) นะ แต่เห็นว่าเพื่อนๆ ไม่ค่อยจะพิศวาสมันสักเท่าไหร่ (ทั้งๆ ที่มันเป็นยอดแห่ง Text Editor แท้ๆ)</p>
<p>ป.ล. 3 บทความเรื่อง Wii Homebrew ตอนที่ 2 ก็ยังไม่ได้เขียนเลยวุ้ย</p>
<p>ป.ล. 4 ของ <a href="http://en.wikipedia.org/wiki/Comic_Market" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/en.wikipedia.org');">C74</a> ทยอยมาให้บิทเรื่อยๆ แล้ว ต้องเคลีย Harddisk เตรียมรับอีก เฮ้อ&#8230;</p>
<div id="attachment_157" class="wp-caption alignnone" style="width: 500px"><a href="http://knightbaron.sytes.net/wp-content/uploads/2008/08/42gv.jpg"><img class="size-medium wp-image-157" title="42gv" src="http://knightbaron.sytes.net/wp-content/uploads/2008/08/42gv-490x653.jpg" alt="Strike Witches มันโมเอะจริงๆ นะ" width="490" height="653" /></a><p class="wp-caption-text">Strike Witches มันโมเอะจริงๆ นะ</p></div>
]]></content>
		<link rel="replies" type="text/html" href="http://knightbaron.sytes.net/2008/08/18/object-oriented-%e0%b8%89%e0%b8%9a%e0%b8%b1%e0%b8%9a-knightbaron/#comments" thr:count="5" />
		<link rel="replies" type="application/atom+xml" href="http://knightbaron.sytes.net/2008/08/18/object-oriented-%e0%b8%89%e0%b8%9a%e0%b8%b1%e0%b8%9a-knightbaron/feed/atom/" thr:count="5" />
		<thr:total>5</thr:total>
	<feedburner:origLink>http://knightbaron.sytes.net/2008/08/18/object-oriented-%e0%b8%89%e0%b8%9a%e0%b8%b1%e0%b8%9a-knightbaron/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>KnightBaron</name>
						<uri>http://dozo-fansubs.net</uri>
					</author>
		<title type="html"><![CDATA[แปะรูปไร้สาระ]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/RandomNonsense/~3/367271531/" />
		<id>http://knightbaron.sytes.net/?p=138</id>
		<updated>2008-08-17T14:06:03Z</updated>
		<published>2008-08-17T13:56:57Z</published>
		<category scheme="http://knightbaron.sytes.net" term="Uncategorized" /><category scheme="http://knightbaron.sytes.net" term="ARIA" /><category scheme="http://knightbaron.sytes.net" term="Ranting" />		<summary type="html"><![CDATA[เห็นว่า Blog นี้มีแต่ตัวอักษรเป็นพรืด ประกอบกับเพิ่งทำระบบ Attach ภาพใหม่ เลยถือโอกาสลองเล่นซะหน่อยละกัน

]]></summary>
		<content type="html" xml:base="http://knightbaron.sytes.net/2008/08/17/%e0%b9%81%e0%b8%9b%e0%b8%b0%e0%b8%a3%e0%b8%b9%e0%b8%9b%e0%b9%84%e0%b8%a3%e0%b9%89%e0%b8%aa%e0%b8%b2%e0%b8%a3%e0%b8%b0/"><![CDATA[<p>เห็นว่า Blog นี้มีแต่ตัวอักษรเป็นพรืด ประกอบกับเพิ่งทำระบบ Attach ภาพใหม่ เลยถือโอกาสลองเล่นซะหน่อยละกัน</p>
<div id="attachment_145" class="wp-caption alignnone" style="width: 500px"><a href="http://knightbaron.sytes.net/wp-content/uploads/2008/08/9403f8124dba39545c483d2619af6c29.jpg"><img class="size-medium wp-image-145" title="9403f8124dba39545c483d2619af6c29" src="http://knightbaron.sytes.net/wp-content/uploads/2008/08/9403f8124dba39545c483d2619af6c29-490x534.jpg" alt="ชุดนี้อยากได้ทุกใบเลยแฮะ" width="490" height="534" /></a><p class="wp-caption-text">ชุดนี้อยากได้ทุกใบเลยแฮะ</p></div>
<p><a href="http://knightbaron.sytes.net/wp-content/uploads/2008/08/ecea5cb217a2a56203bae8ac382c7861.jpg"><img class="alignnone size-thumbnail wp-image-146" title="ecea5cb217a2a56203bae8ac382c7861" src="http://knightbaron.sytes.net/wp-content/uploads/2008/08/ecea5cb217a2a56203bae8ac382c7861-240x366.jpg" alt="" width="240" height="366" /></a><a href="http://knightbaron.sytes.net/wp-content/uploads/2008/08/fcb6ddc4898468e9bdab859d15c5352c.jpg"><img class="alignnone size-thumbnail wp-image-147" title="fcb6ddc4898468e9bdab859d15c5352c" src="http://knightbaron.sytes.net/wp-content/uploads/2008/08/fcb6ddc4898468e9bdab859d15c5352c-240x405.jpg" alt="" width="240" height="405" /></a></p>
<div id="attachment_140" class="wp-caption alignnone" style="width: 500px"><a href="http://knightbaron.sytes.net/wp-content/uploads/2008/08/b2387841c8e312887458a90f069a0623.jpg"><img class="size-medium wp-image-140" title="b2387841c8e312887458a90f069a0623" src="http://knightbaron.sytes.net/wp-content/uploads/2008/08/b2387841c8e312887458a90f069a0623-490x379.jpg" alt="อลิสจังภาพนี้ เห็นแล้วใจละลาย" width="490" height="379" /></a><p class="wp-caption-text">อลิสจังภาพนี้ เห็นแล้วใจละลาย</p></div>
]]></content>
		<link rel="replies" type="text/html" href="http://knightbaron.sytes.net/2008/08/17/%e0%b9%81%e0%b8%9b%e0%b8%b0%e0%b8%a3%e0%b8%b9%e0%b8%9b%e0%b9%84%e0%b8%a3%e0%b9%89%e0%b8%aa%e0%b8%b2%e0%b8%a3%e0%b8%b0/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://knightbaron.sytes.net/2008/08/17/%e0%b9%81%e0%b8%9b%e0%b8%b0%e0%b8%a3%e0%b8%b9%e0%b8%9b%e0%b9%84%e0%b8%a3%e0%b9%89%e0%b8%aa%e0%b8%b2%e0%b8%a3%e0%b8%b0/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://knightbaron.sytes.net/2008/08/17/%e0%b9%81%e0%b8%9b%e0%b8%b0%e0%b8%a3%e0%b8%b9%e0%b8%9b%e0%b9%84%e0%b8%a3%e0%b9%89%e0%b8%aa%e0%b8%b2%e0%b8%a3%e0%b8%b0/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>KnightBaron</name>
						<uri>http://dozo-fansubs.net</uri>
					</author>
		<title type="html"><![CDATA[ไปดูมาแล้ว Evangelion 1.01 You are (not) alone.]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/RandomNonsense/~3/366526638/" />
		<id>http://knightbaron.sytes.net/?p=127</id>
		<updated>2008-08-17T13:20:48Z</updated>
		<published>2008-08-16T13:51:26Z</published>
		<category scheme="http://knightbaron.sytes.net" term="Uncategorized" /><category scheme="http://knightbaron.sytes.net" term="AIR" /><category scheme="http://knightbaron.sytes.net" term="Anime" /><category scheme="http://knightbaron.sytes.net" term="Diary" /><category scheme="http://knightbaron.sytes.net" term="Evangelion" /><category scheme="http://knightbaron.sytes.net" term="Movie" />		<summary type="html"><![CDATA[บันทึกนี้ค่อนข้างไร้สาระและสับสน เพราะผมขี้เกียจเรียบเรียง ดังนั้นใครขี้เกียจอ่านกดข้ามไปได้เลยนะครับ
วันนี้ไปเดทดู Evangelion 1.01 กับลุงไบโอมาสองต่อสองที่ลิโด้ หลังจากเรียนยุ่นเสร็จตอน 4 โมงกว่าๆ ก็รีบบึ่งไปเอาตั๋วหน้างาน เหลือเวลาให้เดินดูงานคอสสักพัก แต่ดูๆ ไปก็ไม่ค่อยมีอะไร เข้าขั้นเงียบเหงาเลยทีเดียว นิทรรศการ Evangelion ก็กิ๊กก๊อกมากๆ มีแต่กาชาปองมาตั้งโชว์ ส่วนไอ้ Rei Di-cut ที่พูดถึงกัน มันก็คือแผ่นฟิวเจอร์บอร์ดติดรูปเรย์เต็มตัว ชุดนักเรียนเท่านั้นแต่ (แต่ยอมรับว่าถ้าได้มาตั้งในห้องนอนสักตัวก็คงจะดีเหมือนกัน เหอะๆ) ที่รู้สึกว่าคุ้มหน่อยก็คือได้แผ่น Kumo no Mukou, Yakusoku no Basho กับ Hoshi no Koe แพ็คคู่ของ TIGA มาในราคา 450 บาทจากราคาเต็มข้างกล่อง 850 บาท (ถึงจะไม่รู้ว่าตามร้านเขาขายกันเท่าไหร่ก็เถอะ จริงๆ แล้วไม่เคยเห็นด้วยซ้ำ) และได้แอบกระซิบถามพนักงาน TIGA เกี่ยวกับ AIR ก็ได้คำตอบมาว่าคงจะได้ดูกันราวๆ ปลายปีนี้ ส่วน Byousoku [...]]]></summary>
		<content type="html" xml:base="http://knightbaron.sytes.net/2008/08/16/%e0%b9%84%e0%b8%9b%e0%b8%94%e0%b8%b9%e0%b8%a1%e0%b8%b2%e0%b9%81%e0%b8%a5%e0%b9%89%e0%b8%a7-evangelion-101-you-are-not-alone/"><![CDATA[<p>บันทึกนี้ค่อนข้างไร้สาระและสับสน เพราะผมขี้เกียจเรียบเรียง ดังนั้นใครขี้เกียจอ่านกดข้ามไปได้เลยนะครับ</p>
<p>วันนี้ไป<span style="text-decoration: line-through;">เดท</span>ดู <a href="http://anidb.net/perl-bin/animedb.pl?show=anime&amp;aid=4847" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/anidb.net');">Evangelion 1.01</a> กับลุงไบโอมา<span style="text-decoration: line-through;">สองต่อสอง</span>ที่ลิโด้ หลังจากเรียนยุ่นเสร็จตอน 4 โมงกว่าๆ ก็รีบบึ่งไปเอาตั๋วหน้างาน เหลือเวลาให้เดินดูงานคอสสักพัก แต่ดูๆ ไปก็ไม่ค่อยมีอะไร เข้าขั้นเงียบเหงาเลยทีเดียว นิทรรศการ Evangelion ก็กิ๊กก๊อกมากๆ มีแต่กาชาปองมาตั้งโชว์ ส่วนไอ้ Rei Di-cut ที่พูดถึงกัน มันก็คือแผ่นฟิวเจอร์บอร์ดติดรูปเรย์เต็มตัว ชุดนักเรียนเท่านั้นแต่ (แต่ยอมรับว่าถ้าได้มาตั้งในห้องนอนสักตัวก็คงจะดีเหมือนกัน เหอะๆ) ที่รู้สึกว่าคุ้มหน่อยก็คือได้แผ่น <a href="http://anidb.net/perl-bin/animedb.pl?show=anime&amp;aid=469" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/anidb.net');">Kumo no Mukou, Yakusoku no Basho</a> กับ <a href="http://anidb.net/perl-bin/animedb.pl?show=anime&amp;aid=104" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/anidb.net');">Hoshi no Koe</a> แพ็คคู่ของ TIGA มาในราคา 450 บาทจากราคาเต็มข้างกล่อง 850 บาท (ถึงจะไม่รู้ว่าตามร้านเขาขายกันเท่าไหร่ก็เถอะ จริงๆ แล้วไม่เคยเห็นด้วยซ้ำ) และได้แอบกระซิบถามพนักงาน TIGA เกี่ยวกับ <a href="http://anidb.net/perl-bin/animedb.pl?show=anime&amp;aid=2002" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/anidb.net');">AIR</a> ก็ได้คำตอบมาว่าคงจะได้ดูกันราวๆ ปลายปีนี้ ส่วน <a href="http://anidb.net/perl-bin/animedb.pl?show=anime&amp;aid=4568" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/anidb.net');">Byousoku 5 Centemeters</a> นั้นเลิกหวังได้เลย (อะไรกัน เรื่องโปรดผมแท้ๆ)</p>
<p>ในส่วนของงานคอส ไม่มีอะไรเท่าไหร่ แต่ที่แปลกใจที่สุดคือ คนคอสเทวทูตที่เป็นตัวลูกบากศ์ (จำหมายเลขไม่ได้) ดันได้ที่ 1 ซะงั้น ส่วนพวกคอสเรย์กับอาสึกะตามกระแสไม่ได้รางวัลอะไร ไม่ทราบว่าหน้าคนไทยไม่ให้ หรือว่าอย่างไร (แอบเม้าท์นิด คอสมิซาโตะมันไม่ใช่อ่ะ มันไม่ใช่! มันต้องเซ็กซี่กว่านี้ดิ๊!!)</p>
<p>หลังจากเดินดูงานได้สักพัก ทีนี้ก็ถึง Main Event ของวันนี้ นั่นก็คือการเข้าไปดูหนัง Evangelion ในโรงนั่นเอง ต้องยอมรับเลยว่าถึงแม้จะดูมาแล้วรอบนึงบน PC (เอามาจากไหนไม่บอกนะครับ เหอะๆ) มาดูอีกทีก็ยังประทับใจไม่เปลี่ยน อีกทั้งระบบเสียงโรงภาพยนตร์มันกระหึ่มถึงใจ เสียงปืน เสียงระเบิด เสียงหวีดร้องของเทวทูตช่างสะใจยิ่งนัก จะเสียก็ตรงที่ซับไม่ค่อยได้เรื่อง แถมมี Noise เยอะมาก ไม่รู้ทำอีท่าไหน (อาจจะเป็นมาตรฐานของลิโด้ เพราะนี่เป็นครั้งแรกที่ผมใช้บริการที่นี่ ถึงจะเรียนแถวนี้มาตั้ง 4 ปีก็เถอะ)</p>
<p>DVD Limit ออกวันที่ 16 เดือนหน้า ต้องเริ่มหยอดกระปุกแล้วแฮะ</p>
]]></content>
		<link rel="replies" type="text/html" href="http://knightbaron.sytes.net/2008/08/16/%e0%b9%84%e0%b8%9b%e0%b8%94%e0%b8%b9%e0%b8%a1%e0%b8%b2%e0%b9%81%e0%b8%a5%e0%b9%89%e0%b8%a7-evangelion-101-you-are-not-alone/#comments" thr:count="2" />
		<link rel="replies" type="application/atom+xml" href="http://knightbaron.sytes.net/2008/08/16/%e0%b9%84%e0%b8%9b%e0%b8%94%e0%b8%b9%e0%b8%a1%e0%b8%b2%e0%b9%81%e0%b8%a5%e0%b9%89%e0%b8%a7-evangelion-101-you-are-not-alone/feed/atom/" thr:count="2" />
		<thr:total>2</thr:total>
	<feedburner:origLink>http://knightbaron.sytes.net/2008/08/16/%e0%b9%84%e0%b8%9b%e0%b8%94%e0%b8%b9%e0%b8%a1%e0%b8%b2%e0%b9%81%e0%b8%a5%e0%b9%89%e0%b8%a7-evangelion-101-you-are-not-alone/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>KnightBaron</name>
						<uri>http://dozo-fansubs.net</uri>
					</author>
		<title type="html"><![CDATA[Upgraded to WordPress 2.6.1]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/RandomNonsense/~3/365922731/" />
		<id>http://knightbaron.sytes.net/?p=125</id>
		<updated>2008-08-15T19:37:07Z</updated>
		<published>2008-08-15T19:37:07Z</published>
		<category scheme="http://knightbaron.sytes.net" term="Uncategorized" /><category scheme="http://knightbaron.sytes.net" term="Blog" /><category scheme="http://knightbaron.sytes.net" term="Ranting" />		<summary type="html"><![CDATA[This blog has been upgraded to WordPress 2.6.1 with WordPress Automatic Upgrade plug-in. This is ultra convinient.
]]></summary>
		<content type="html" xml:base="http://knightbaron.sytes.net/2008/08/16/upgraded-to-wordpress-261/"><![CDATA[<p>This blog has been upgraded to WordPress 2.6.1 with <a href="http://wordpress.org/extend/plugins/wordpress-automatic-upgrade/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/wordpress.org');">WordPress Automatic Upgrade</a> plug-in. This is ultra convinient.</p>
]]></content>
		<link rel="replies" type="text/html" href="http://knightbaron.sytes.net/2008/08/16/upgraded-to-wordpress-261/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://knightbaron.sytes.net/2008/08/16/upgraded-to-wordpress-261/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://knightbaron.sytes.net/2008/08/16/upgraded-to-wordpress-261/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>KnightBaron</name>
						<uri>http://dozo-fansubs.net</uri>
					</author>
		<title type="html"><![CDATA[หลากหลายวิธีกัน Spam บน Wordpress]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/RandomNonsense/~3/364620768/" />
		<id>http://knightbaron.sytes.net/?p=122</id>
		<updated>2008-08-14T08:26:39Z</updated>
		<published>2008-08-14T08:26:39Z</published>
		<category scheme="http://knightbaron.sytes.net" term="Uncategorized" /><category scheme="http://knightbaron.sytes.net" term="Anti-Spam" /><category scheme="http://knightbaron.sytes.net" term="Blog" /><category scheme="http://knightbaron.sytes.net" term="Ranting" /><category scheme="http://knightbaron.sytes.net" term="WordPress" />		<summary type="html"><![CDATA[หลังจากโดนสแปมป่วน Comment มาพักนึง จึงทำให้ตระหนักได้ถึงคำพูดที่ลุงเซินเคยบอกไว้ว่า &#8220;Akismet มันกระจอกสิ้นดี&#8221; เลยตัดสินใจหา Plug-in มาช่วยกันสแปมเพิ่มอีกสักตัว
หลังจาก Google ไปได้สักพัก ก็มี Plug-in ที่เข้าตาอยู่ 4 ตัว คือ

WP-SpamFree
Bad Behavior
Peter&#8217;s Custom Anti-Spam
Mollom (อันนี้คุณ sugree แนะนำมาผ่าน twitter)

ตัวแรกสุดที่จะพูดถึงคือ WP-SpamFree ไอเดียนั้นดูเข้าท่าดี แต่พออ่านไปถึงบรรทัดที่ว่า
this plugin uses a dynamic combo of JavaScript and cookies to weed out the humans from spambots, preventing 99%+ of automated spam from ever getting to your site.
ทำให้ผมโบกมือลามันทันที เพราะไม่อยากบังคับให้ [...]]]></summary>
		<content type="html" xml:base="http://knightbaron.sytes.net/2008/08/14/%e0%b8%ab%e0%b8%a5%e0%b8%b2%e0%b8%81%e0%b8%ab%e0%b8%a5%e0%b8%b2%e0%b8%a2%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b8%81%e0%b8%b1%e0%b8%99-spam-%e0%b8%9a%e0%b8%99-wordpress/"><![CDATA[<p>หลังจากโดนสแปมป่วน Comment มาพักนึง จึงทำให้ตระหนักได้ถึงคำพูดที่<a href="http://hitoridake.com" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/hitoridake.com');">ลุงเซิน</a>เคยบอกไว้ว่า &#8220;Akismet มันกระจอกสิ้นดี&#8221; เลยตัดสินใจหา Plug-in มาช่วยกันสแปมเพิ่มอีกสักตัว</p>
<p>หลังจาก Google ไปได้สักพัก ก็มี Plug-in ที่เข้าตาอยู่ 4 ตัว คือ</p>
<ol>
<li><a href="http://wordpress.org/extend/plugins/wp-spamfree/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/wordpress.org');">WP-SpamFree</a></li>
<li><a href="http://wordpress.org/extend/plugins/bad-behavior/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/wordpress.org');">Bad Behavior</a></li>
<li><a href="http://wordpress.org/extend/plugins/peters-custom-anti-spam-image/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/wordpress.org');">Peter&#8217;s Custom Anti-Spam</a></li>
<li><a href="http://wordpress.org/extend/plugins/wp-mollom/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/wordpress.org');">Mollom</a> (อันนี้คุณ <a href="http://sugree.com/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/sugree.com');">sugree</a> แนะนำมาผ่าน <a href="http://twitter.com/sugree/statuses/887166092" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/twitter.com');">twitter</a>)</li>
</ol>
<p>ตัวแรกสุดที่จะพูดถึงคือ WP-SpamFree ไอเดียนั้นดูเข้าท่าดี แต่พออ่านไปถึงบรรทัดที่ว่า</p>
<blockquote><p>this plugin uses a dynamic combo of JavaScript and cookies to weed out the humans from spambots, preventing 99%+ of automated spam from ever getting to your site.</p></blockquote>
<p>ทำให้ผมโบกมือลามันทันที เพราะไม่อยากบังคับให้ User ต้องเปิด Javascript (<a href="https://addons.mozilla.org/en-US/firefox/addon/722" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/addons.mozilla.org');">NoScript</a> จงเจริญ!)</p>
<p>ตัวถัดมาคือ Bad Behavior ซึ่งเท่าที่อ่านๆ ดูนั้น น่าใช้งานมาก ไอเดียที่ว่าบล็อกไม่ให้ Request น่าสงสัยเข้าเว็บได้เพื่อเป็นการลด Bandwidth ไปในตัวนั้นดูดี แต่พอเอาเข้าจริง ติดตั้งปุ๊บ แม้แต่ตัวผมเองมันยัง Block แล้วสาอะไรกับ User ทั่วไป ฉะนั้นก็บ๊ายบายอีกเช่นกัน</p>
<p>ตัวที่สาม Peter&#8217;s Custom Anti-Spam ซึ่งเท่าที่ลองใช้งานดูมันก็เป็น Captcha พื้นๆ ที่ใช้งานได้โอเค แต่มันไม่เข้ากับ Theme ของผมเลย ฉะนั้นก็บ๊ายบายอีกเช่นกัน</p>
<p>สุดท้าย เลยมาจบที่ Mollom ซึ่งตอนแรกก็ไม่คิดจะใช้ เพราะไม่อยากพึ่งพา Service ข้างนอกเท่าไหร่ แต่พอใช้งานจริง มันก็ไม่ได้ถ่วงเว็บมากมายนัก คงต้องรอดูกันต่อไปว่าพอใช้ได้สักพักแล้ว จะได้ผลดีมากน้อยแค่ไหน</p>
]]></content>
		<link rel="replies" type="text/html" href="http://knightbaron.sytes.net/2008/08/14/%e0%b8%ab%e0%b8%a5%e0%b8%b2%e0%b8%81%e0%b8%ab%e0%b8%a5%e0%b8%b2%e0%b8%a2%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b8%81%e0%b8%b1%e0%b8%99-spam-%e0%b8%9a%e0%b8%99-wordpress/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://knightbaron.sytes.net/2008/08/14/%e0%b8%ab%e0%b8%a5%e0%b8%b2%e0%b8%81%e0%b8%ab%e0%b8%a5%e0%b8%b2%e0%b8%a2%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b8%81%e0%b8%b1%e0%b8%99-spam-%e0%b8%9a%e0%b8%99-wordpress/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://knightbaron.sytes.net/2008/08/14/%e0%b8%ab%e0%b8%a5%e0%b8%b2%e0%b8%81%e0%b8%ab%e0%b8%a5%e0%b8%b2%e0%b8%a2%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b8%81%e0%b8%b1%e0%b8%99-spam-%e0%b8%9a%e0%b8%99-wordpress/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>KnightBaron</name>
						<uri>http://dozo-fansubs.net</uri>
					</author>
		<title type="html"><![CDATA[เครื่อง Wii ทำอะไรได้มากกว่าที่คุณคิด - A Guide to Wii Homebrew - part 1]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/RandomNonsense/~3/357536391/" />
		<id>http://knightbaron.sytes.net/?p=116</id>
		<updated>2008-08-06T16:18:15Z</updated>
		<published>2008-08-06T16:11:40Z</published>
		<category scheme="http://knightbaron.sytes.net" term="Uncategorized" /><category scheme="http://knightbaron.sytes.net" term="A Guide to Wii Homebrew" /><category scheme="http://knightbaron.sytes.net" term="Article" /><category scheme="http://knightbaron.sytes.net" term="Homebrew" /><category scheme="http://knightbaron.sytes.net" term="Wii" />		<summary type="html"><![CDATA[นี่ก็ผ่านมาได้หลายเดือนแล้ว หลังจากที่ผมหลอกล่อโน้มน้าว ให้ท่านแม่ซื้อเครื่อง Wii มาเล่น (แล้วเราก็ยึดเล่นต่ออีกทอด) มาถึงเวลานี้ก็นับว่าพอใจในระดับหนึ่ง นอกจากรูปแบบการเล่นที่สร้างสรรค์แล้ว หลายคนอาจไม่รู้ว่าเครื่อง Wii นั้นมีอะไรให้คุณงัดแงะแก้ไขได้ไม่น้อยหน้า Xbox360 และ PlayStation 3 เลยทีเดียว (จะติดอยู่อย่างเดียวก็ตรงที่พลังของ PowerPC 729 MHz นั้นค่อนข้างจำกัดเอามากๆ เท่านั้นเอง) เลยเป็นแรงบัลดาลใจให้ผมเขียนบทความนี้ขึ้นมา
สำหรับบทความนี้จะเป็นการแนะนำเกี่ยวกับ Wii Homebrew โดยจะไม่เน้นการบอกขั้นตอนให้ทำตามโดยเข้าใจอะไรเลย (ซึ่ง Guide เหล่านี้มีอยู่แล้วเป็นจำนวนมาก คุณคงหาอ่านได้ไม่ยาก) แต่จะอธิบายตามความเข้าใจของผม หากมีข้อผิดพลาดประการใดต้องขออภัยมา ณ ที่นี้ด้วยนะครับ เชิญทิ้ง Comment สับแหลกได้เต็มที่

Homebrew คืออะไร?
คำว่า Homebrew นั้นหลายๆ คนใช้มั่วปนกันหลายความหมาย สำหรับความหมายที่แท้จริงนั้น Homebrew (Homebrew application) หมายถึงโปรแกรมสำหรับ Wii ที่มิได้มาจาก Nintendo แต่พัฒนาโดยทีมพัฒนาอิสระ ตัวอย่าง Homebrew ก็เช่น Wad Manager, [...]]]></summary>
		<content type="html" xml:base="http://knightbaron.sytes.net/2008/08/06/%e0%b9%80%e0%b8%84%e0%b8%a3%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%87-wii-%e0%b8%97%e0%b8%b3%e0%b8%ad%e0%b8%b0%e0%b9%84%e0%b8%a3%e0%b9%84%e0%b8%94%e0%b9%89%e0%b8%a1%e0%b8%b2%e0%b8%81%e0%b8%81%e0%b8%a7/"><![CDATA[<p>นี่ก็ผ่านมาได้หลายเดือนแล้ว หลังจากที่ผม<span style="text-decoration: line-through;">หลอกล่อ</span>โน้มน้าว ให้ท่านแม่ซื้อเครื่อง Wii มาเล่น (แล้วเราก็ยึดเล่นต่ออีกทอด) มาถึงเวลานี้ก็นับว่าพอใจในระดับหนึ่ง นอกจากรูปแบบการเล่นที่สร้างสรรค์แล้ว หลายคนอาจไม่รู้ว่าเครื่อง Wii นั้นมีอะไรให้คุณงัดแงะแก้ไขได้ไม่น้อยหน้า Xbox360 และ PlayStation 3 เลยทีเดียว (จะติดอยู่อย่างเดียวก็ตรงที่พลังของ PowerPC 729 MHz นั้นค่อนข้างจำกัดเอามากๆ เท่านั้นเอง) เลยเป็นแรงบัลดาลใจให้ผมเขียนบทความนี้ขึ้นมา</p>
<p>สำหรับบทความนี้จะเป็นการแนะนำเกี่ยวกับ Wii Homebrew โดยจะไม่เน้นการบอกขั้นตอนให้ทำตามโดยเข้าใจอะไรเลย (ซึ่ง Guide เหล่านี้มีอยู่แล้วเป็นจำนวนมาก คุณคงหาอ่านได้ไม่ยาก) แต่จะอธิบายตามความเข้าใจของผม หากมีข้อผิดพลาดประการใดต้องขออภัยมา ณ ที่นี้ด้วยนะครับ เชิญทิ้ง Comment สับแหลกได้เต็มที่</p>
<p><span id="more-116"></span></p>
<p><strong>Homebrew คืออะไร?</strong></p>
<p>คำว่า Homebrew นั้นหลายๆ คนใช้มั่วปนกันหลายความหมาย สำหรับความหมายที่แท้จริงนั้น Homebrew (Homebrew application) หมายถึงโปรแกรมสำหรับ Wii ที่มิได้มาจาก Nintendo แต่พัฒนาโดยทีมพัฒนาอิสระ ตัวอย่าง Homebrew ก็เช่น <a href="http://wiibrew.org/wiki/Homebrew_apps/WAD_Manager" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/wiibrew.org');">Wad Manager</a>, <a href="http://wiibrew.org/wiki/Homebrew_apps/Homebrew_Browser" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/wiibrew.org');">Homebrew Browser</a>, <a href="http://wiibrew.org/wiki/Homebrew_apps/GeeXboX" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/wiibrew.org');">GeeXboX</a>, <a href="http://wiibrew.org/wiki/Homebrew_apps/Wii_Linux" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/wiibrew.org');">Wii Linux</a>, <a href="http://wiibrew.org/wiki/Homebrew_apps/Snes9X_Wii" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/wiibrew.org');">Snes9x</a> เป็นต้น ซึ่งการนำโปรแกรมเหล่านี้มารันบน Wii เราจะรันผ่าน Loader ต่างๆ เช่น <a href="http://wiibrew.org/wiki/Twilight_Hack" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/wiibrew.org');">Twilight Hack</a> หรือ <a href="http://wiibrew.org/wiki/Homebrew_Channel" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/wiibrew.org');">Homebrew Channel</a> (จริงๆ แล้วมีมากกว่านี้ แต่ไม่เป็นที่นิยม)</p>
<p><strong>Twilight Hack - จุดเริ่มต้นของเรื่องราวทั้งหมด<br />
</strong></p>
<p><a href="http://wiibrew.org/wiki/Twilight_Hack" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/wiibrew.org');">Twilight Hack</a> เป็น Homebrew loader ตัวหนึ่ง ที่อาศัยช่องโหว่ในเกม The Legend of Zelda: Twilight Princess การทำงานคร่าวๆ คือจะเปลี่ยนชื่อม้าของ Link ให้ยาวกว่าปกติ เมื่อมีการเรียกหาชื่อม้าจาก save จะทำให้เกิด stack overflow และทำให้รัน Custom code ได้</p>
<p>Loader ตัวนี้เป็นที่นิยมใช้กันแพร่หลายเป็นอย่างมาก (และปัจจุบันก็ยังใช้กันอยู่) ข้อเสียเพียงอย่างเดียวของ Twilight Hack ก็คือ คุณจำเป็นต้องเปิดเกม Zelda ทุกครั้งที่จะใช้งาน และไม่สามารถเลือกโปรแกรมที่จะรันได้ หากใน SD Card ของคุณมี Homebrew อยู่หลายตัว</p>
<p>วิธีการใช้งานนั้น เริ่มจากให้คุณก๊อบปี้ Twilight Hack ไปทับ save Zelda เก่าของคุณ (ถึงตรงนี้หากคุณยังไม่เข้าใจ Twilight Hack คือไฟล์ save เกม Zelda ที่ทำการ Hack เพื่อใช้ช่องโหว่ดังที่กล่าวไปข้างต้น) และนำ Homebrew ที่ต้องการเปลี่ยนชื่อเป็น boot.elf หรือ boot.dol ใส่ไว้ที่ root (นอกสุด) ของ SD Card จากนั้นเมื่อคุณเข้าเกม Zelda และโหลด Twilight Hack ขึ้นมาก ให้เข้าไปคุณกับคนที่อยู่ด้านหน้า ก็จะเป็นการรัน Homebrew ที่คุณต้องการครับ</p>
<p>เนื่องจาก Twilight Hack เป็น save ของเกม Zelda ดังนั้นหากคุณต้องการลบ Twilight Hack ก็เพียงแค่ลบเซฟนี้ทิ้งก็เรียบร้อยครับ</p>
<p><strong>The Homebrew Channel - สู่ที่สุดแห่งความสะดวกสะบายในการใช้งาน Homebrew</strong></p>
<p>Team Twiizers (ทีมเดียวกับที่ทำ Twilight Hack) ได้ปล่อย <a href="http://wiibrew.org/wiki/Homebrew_Channel" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/wiibrew.org');">Homebrew Channel</a> ออกมา ซึ่งเป็นโปรแกรมที่จะเพิ่มช่องอีกช่องให้กับ Wii ของคุณ ซึ่งช่องนี้จะเป็นศูนย์รวมในการใช้งาน Homebrew ของคุณ โดยช่องนี้ทำให้คุณสามารถเลือกรัน Homebrew ที่อยู่บน SD Card ของคุณได้ตามใจชอบ อีกทั้งยังสนับสนุน Logo ของโปรแกรม, ไฟล์อธิบายเกี่ยวกับโปรแกรม (meta.xml), Auto update</p>
<p>ปัจจุบันนี้ Homebrew application เกือบทั้งหมดสามารถรันได้ผ่าน Homebrew Channel ครับ</p>
<p>การติดตั้ง Homebrew Channel นั้นมี 2 วิธี คือ</p>
<ol>
<li>ติดตั้งผ่าน Twilight Hack ตามวิธีการใช้งานที่ได้อธิบายไปแล้ว</li>
<li>ดาวน์โหลดแผ่น DVD สำหรับติดตั้ง แล้วเปิดใน Disc Channel</li>
</ol>
<p>หลังจากติดตั้งเรียบร้อยแล้ว คุณก็จะได้ช่อง The Homebrew Channel ขึ้นมาอีก 1 ช่องในเครื่อง Wii ของคุณ สำหรับการใช้งานนั้น ให้คุณนำ Homebrew ที่ต้องการใส่ใน /apps ใน SD Card ของคุณ เมื่อคุณเปิดช่องนี้ขึ้นมา โปรแกรมจะแสดงรายการ Homebrew ที่มีอยู่ใน SD Card ให้คุณเลือกใช้งานได้โดยสะดวก นอกจากนี้คุณยังสามารถเรียก Homebrew โดยตรงจากเครื่องคอมพิวเตอร์ของคุณผ่านวงแลนได้อีกด้วย แต่จะไม่ขออธิบายขั้นตอน เนื่องจากไม่ค่อยมีใครทำกันหรอก ถ้าไม่ได้เป็นนักพัฒนา Homebrew</p>
<p>สำหรับการลบ Homebrew Channel นั้น ทาง Team Twiizers ยืนยันมาว่าคุณสามารถกดลบได้จากหน้า Settings ของ Wii ได้ ไม่ต้องกังวลว่าจะมีปัญหาอะไรครับ</p>
<p>มาถึงตอนนี้ หวังว่าทุกคนคงพอเข้าใจภาพรวมเกี่ยวกับ Homebrew และวิธีการใช้งานเบื้องต้นกันแล้ว คราวหน้าเราจะมาว่ากันถึง Homebrew application ต่างๆ ที่<span style="text-decoration: line-through;">แนะนำให้</span>จำเป็นต้องมีติดเครื่องเอาไว้ (ที่วางแผนว่าจะเขียนถึงแน่ๆ ก็คือ Homebrew browser, Wad Manager, GeeXboX และ Emulator บางตัว) สำหรับวันนี้ สวัสดีครับ</p>
]]></content>
		<link rel="replies" type="text/html" href="http://knightbaron.sytes.net/2008/08/06/%e0%b9%80%e0%b8%84%e0%b8%a3%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%87-wii-%e0%b8%97%e0%b8%b3%e0%b8%ad%e0%b8%b0%e0%b9%84%e0%b8%a3%e0%b9%84%e0%b8%94%e0%b9%89%e0%b8%a1%e0%b8%b2%e0%b8%81%e0%b8%81%e0%b8%a7/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://knightbaron.sytes.net/2008/08/06/%e0%b9%80%e0%b8%84%e0%b8%a3%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%87-wii-%e0%b8%97%e0%b8%b3%e0%b8%ad%e0%b8%b0%e0%b9%84%e0%b8%a3%e0%b9%84%e0%b8%94%e0%b9%89%e0%b8%a1%e0%b8%b2%e0%b8%81%e0%b8%81%e0%b8%a7/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://knightbaron.sytes.net/2008/08/06/%e0%b9%80%e0%b8%84%e0%b8%a3%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%87-wii-%e0%b8%97%e0%b8%b3%e0%b8%ad%e0%b8%b0%e0%b9%84%e0%b8%a3%e0%b9%84%e0%b8%94%e0%b9%89%e0%b8%a1%e0%b8%b2%e0%b8%81%e0%b8%81%e0%b8%a7/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>KnightBaron</name>
						<uri>http://dozo-fansubs.net</uri>
					</author>
		<title type="html"><![CDATA[Argh! I&#8217;ve got caught on wordpress 2.6 bug.]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/RandomNonsense/~3/354234173/" />
		<id>http://knightbaron.sytes.net/?p=63</id>
		<updated>2008-08-14T08:27:46Z</updated>
		<published>2008-08-03T08:37:01Z</published>
		<category scheme="http://knightbaron.sytes.net" term="Uncategorized" /><category scheme="http://knightbaron.sytes.net" term="Blog" /><category scheme="http://knightbaron.sytes.net" term="Ranting" /><category scheme="http://knightbaron.sytes.net" term="WordPress" />		<summary type="html"><![CDATA[พอ Upgrade wordpress เป็น 2.6 แล้วดันมีปัญหาตอน insert media ซะงั้น ตอนนี้ insert ภาพไม่สะดวกเลย T-T
edit: แก้ได้แล้ว ยิปปี้!! Wordpress 2.6 มีปัญหากับ mod_security นี่เอง google เป็นชาติเลย
]]></summary>
		<content type="html" xml:base="http://knightbaron.sytes.net/2008/08/03/argh-ive-got-caught-on-wordpress-26-bug/"><![CDATA[<p>พอ Upgrade wordpress เป็น 2.6 แล้วดันมีปัญหาตอน insert media ซะงั้น ตอนนี้ insert ภาพไม่สะดวกเลย T-T</p>
<p>edit: แก้ได้แล้ว ยิปปี้!! Wordpress 2.6 มีปัญหากับ mod_security นี่เอง google เป็นชาติเลย</p>
]]></content>
		<link rel="replies" type="text/html" href="http://knightbaron.sytes.net/2008/08/03/argh-ive-got-caught-on-wordpress-26-bug/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://knightbaron.sytes.net/2008/08/03/argh-ive-got-caught-on-wordpress-26-bug/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://knightbaron.sytes.net/2008/08/03/argh-ive-got-caught-on-wordpress-26-bug/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>KnightBaron</name>
						<uri>http://dozo-fansubs.net</uri>
					</author>
		<title type="html"><![CDATA[ปิดจ๊อบพัฒนาเว็บงานแรกในชีวิตได้แล้ว!]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/RandomNonsense/~3/327944107/" />
		<id>http://knightbaron.sytes.net/?p=56</id>
		<updated>2008-06-22T15:32:34Z</updated>
		<published>2008-06-22T15:32:34Z</published>
		<category scheme="http://knightbaron.sytes.net" term="Uncategorized" /><category scheme="http://knightbaron.sytes.net" term="Ranting" />		<summary type="html"><![CDATA[แค่งานติดตั้ง / ปรับแต่ง Drupal ที่ดูเหมือนจะง่าย แต่แก้กันเกือบเดือน (ไม่นับเวลาอู้ :p) ดีที่เป็นงานที่ทำให้เพื่อน เลยค่อนข้างยืดหยุ่นเรื่องกำหนดการ แต่ก็เพราะเป็นงานที่ทำให้เพื่อน spec เลยเปลี่ยนตลอดเวลาที่เจอหน้ากัน - -&#8221;
ยังไงก็ตาม ถึงจะทุลักทุเลไปบ้าง แต่ก็ปิดได้ซะทีฟะ ยังเหลืองานใหญ่ที่ต้องลงมือ Code เองอีกภายใน 2-3 เดือน จะทำทันไหมหว่า&#8230; ไหนจะอ่านหนังสือสอบอีก
]]></summary>
		<content type="html" xml:base="http://knightbaron.sytes.net/2008/06/22/%e0%b8%9b%e0%b8%b4%e0%b8%94%e0%b8%88%e0%b9%8a%e0%b8%ad%e0%b8%9a%e0%b8%9e%e0%b8%b1%e0%b8%92%e0%b8%99%e0%b8%b2%e0%b9%80%e0%b8%a7%e0%b9%87%e0%b8%9a%e0%b8%87%e0%b8%b2%e0%b8%99%e0%b9%81%e0%b8%a3%e0%b8%81/"><![CDATA[<p>แค่งานติดตั้ง / ปรับแต่ง Drupal ที่ดูเหมือนจะง่าย แต่แก้กันเกือบเดือน (ไม่นับเวลาอู้ :p) ดีที่เป็นงานที่ทำให้เพื่อน เลยค่อนข้างยืดหยุ่นเรื่องกำหนดการ แต่ก็เพราะเป็นงานที่ทำให้เพื่อน spec เลยเปลี่ยนตลอดเวลาที่เจอหน้ากัน - -&#8221;</p>
<p>ยังไงก็ตาม ถึงจะทุลักทุเลไปบ้าง แต่ก็ปิดได้ซะทีฟะ ยังเหลืองานใหญ่ที่ต้องลงมือ Code เองอีกภายใน 2-3 เดือน จะทำทันไหมหว่า&#8230; ไหนจะอ่านหนังสือสอบอีก</p>
]]></content>
		<link rel="replies" type="text/html" href="http://knightbaron.sytes.net/2008/06/22/%e0%b8%9b%e0%b8%b4%e0%b8%94%e0%b8%88%e0%b9%8a%e0%b8%ad%e0%b8%9a%e0%b8%9e%e0%b8%b1%e0%b8%92%e0%b8%99%e0%b8%b2%e0%b9%80%e0%b8%a7%e0%b9%87%e0%b8%9a%e0%b8%87%e0%b8%b2%e0%b8%99%e0%b9%81%e0%b8%a3%e0%b8%81/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://knightbaron.sytes.net/2008/06/22/%e0%b8%9b%e0%b8%b4%e0%b8%94%e0%b8%88%e0%b9%8a%e0%b8%ad%e0%b8%9a%e0%b8%9e%e0%b8%b1%e0%b8%92%e0%b8%99%e0%b8%b2%e0%b9%80%e0%b8%a7%e0%b9%87%e0%b8%9a%e0%b8%87%e0%b8%b2%e0%b8%99%e0%b9%81%e0%b8%a3%e0%b8%81/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://knightbaron.sytes.net/2008/06/22/%e0%b8%9b%e0%b8%b4%e0%b8%94%e0%b8%88%e0%b9%8a%e0%b8%ad%e0%b8%9a%e0%b8%9e%e0%b8%b1%e0%b8%92%e0%b8%99%e0%b8%b2%e0%b9%80%e0%b8%a7%e0%b9%87%e0%b8%9a%e0%b8%87%e0%b8%b2%e0%b8%99%e0%b9%81%e0%b8%a3%e0%b8%81/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>KnightBaron</name>
						<uri>http://dozo-fansubs.net</uri>
					</author>
		<title type="html"><![CDATA[Blog post from Japan!]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/RandomNonsense/~3/287166083/" />
		<id>http://knightbaron.sytes.net/?p=55</id>
		<updated>2008-05-09T22:52:37Z</updated>
		<published>2008-05-09T22:52:37Z</published>
		<category scheme="http://knightbaron.sytes.net" term="Uncategorized" /><category scheme="http://knightbaron.sytes.net" term="Ranting" />		<summary type="html"><![CDATA[Just as the title said. I`m currently at Japan. Shopping around is so much fun. (If you don`t have to worry about your money though) You MAY expect a longer post after I`m back at Bangkok. That`s it for now.
]]></summary>
		<content type="html" xml:base="http://knightbaron.sytes.net/2008/05/10/blog-post-from-japan/"><![CDATA[<p>Just as the title said. I`m currently at Japan. Shopping around is so much fun. (If you don`t have to worry about your money though) You MAY expect a longer post after I`m back at Bangkok. That`s it for now.</p>
]]></content>
		<link rel="replies" type="text/html" href="http://knightbaron.sytes.net/2008/05/10/blog-post-from-japan/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://knightbaron.sytes.net/2008/05/10/blog-post-from-japan/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://knightbaron.sytes.net/2008/05/10/blog-post-from-japan/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>KnightBaron</name>
						<uri>http://dozo-fansubs.net</uri>
					</author>
		<title type="html"><![CDATA[This blog has been upgraded to WordPress 2.5]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/RandomNonsense/~3/260620383/" />
		<id>http://knightbaron.sytes.net/?p=53</id>
		<updated>2008-03-30T08:35:26Z</updated>
		<published>2008-03-30T08:33:48Z</published>
		<category scheme="http://knightbaron.sytes.net" term="Uncategorized" /><category scheme="http://knightbaron.sytes.net" term="Blog" /><category scheme="http://knightbaron.sytes.net" term="Blognone" /><category scheme="http://knightbaron.sytes.net" term="Ranting" /><category scheme="http://knightbaron.sytes.net" term="WordPress" />		<summary type="html"><![CDATA[เห็นข่าวที่ Blognone เขาว่า 2.5 ออกแล้วเลยถือโอกาส Update ซะเลย ดูท่าว่าจะมีปัญหากับ Plugins เก่าๆ หลายตัวอยู่นะนี่
]]></summary>
		<content type="html" xml:base="http://knightbaron.sytes.net/2008/03/30/this-blog-has-been-upgraded-to-wordpress-25/"><![CDATA[<p>เห็นข่าวที่ <a href="http://blognone.com" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/blognone.com');">Blognone</a> เขาว่า 2.5 ออกแล้วเลยถือโอกาส Update ซะเลย ดูท่าว่าจะมีปัญหากับ Plugins เก่าๆ หลายตัวอยู่นะนี่</p>
]]></content>
		<link rel="replies" type="text/html" href="http://knightbaron.sytes.net/2008/03/30/this-blog-has-been-upgraded-to-wordpress-25/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://knightbaron.sytes.net/2008/03/30/this-blog-has-been-upgraded-to-wordpress-25/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://knightbaron.sytes.net/2008/03/30/this-blog-has-been-upgraded-to-wordpress-25/</feedburner:origLink></entry>
	</feed>
