<?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>MEMOBALL.info &#187; Uncategorized</title>
	<atom:link href="http://www.memoball.info/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.memoball.info</link>
	<description>All of my Memories</description>
	<lastBuildDate>Sun, 17 Jul 2011 10:31:01 +0000</lastBuildDate>
	<language>TH</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
		<item>
		<title>ทดสอบการทำงานแบบหลายภาษา</title>
		<link>http://www.memoball.info/2011/07/17/%e0%b8%97%e0%b8%94%e0%b8%aa%e0%b8%ad%e0%b8%9a%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%97%e0%b8%b3%e0%b8%87%e0%b8%b2%e0%b8%99%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b8%ab%e0%b8%a5%e0%b8%b2%e0%b8%a2%e0%b8%a0%e0%b8%b2/</link>
		<comments>http://www.memoball.info/2011/07/17/%e0%b8%97%e0%b8%94%e0%b8%aa%e0%b8%ad%e0%b8%9a%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%97%e0%b8%b3%e0%b8%87%e0%b8%b2%e0%b8%99%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b8%ab%e0%b8%a5%e0%b8%b2%e0%b8%a2%e0%b8%a0%e0%b8%b2/#comments</comments>
		<pubDate>Sun, 17 Jul 2011 10:31:01 +0000</pubDate>
		<dc:creator>memoball</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://memoball.memoball.com/?p=532</guid>
		<description><![CDATA[วันนี้เพิ่งทำการสร้างการทำงานแบบหลายภาษา ดังนั้นจึงได้ลงข้อความนี้เพื่อทำการทดสอบ]]></description>
			<content:encoded><![CDATA[<p>วันนี้เพิ่งทำการสร้างการทำงานแบบหลายภาษา ดังนั้นจึงได้ลงข้อความนี้เพื่อทำการทดสอบ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.memoball.info/2011/07/17/%e0%b8%97%e0%b8%94%e0%b8%aa%e0%b8%ad%e0%b8%9a%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%97%e0%b8%b3%e0%b8%87%e0%b8%b2%e0%b8%99%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b8%ab%e0%b8%a5%e0%b8%b2%e0%b8%a2%e0%b8%a0%e0%b8%b2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>การจัดการหน้าจอแบบ Command line หรือ Clear screen (Scrollback Mode and Navigating)</title>
		<link>http://www.memoball.info/2010/09/24/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%88%e0%b8%b1%e0%b8%94%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%ab%e0%b8%99%e0%b9%89%e0%b8%b2%e0%b8%88%e0%b8%ad%e0%b9%81%e0%b8%9a%e0%b8%9a-command-line-clear-screen/</link>
		<comments>http://www.memoball.info/2010/09/24/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%88%e0%b8%b1%e0%b8%94%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%ab%e0%b8%99%e0%b9%89%e0%b8%b2%e0%b8%88%e0%b8%ad%e0%b9%81%e0%b8%9a%e0%b8%9a-command-line-clear-screen/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 07:30:37 +0000</pubDate>
		<dc:creator>memoball</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://memoball.memoball.com/?p=503</guid>
		<description><![CDATA[การจัดการหน้าจอ ของ command line เช่นการ clear screen สามารถทำได้โดยการใช้อักขระพิเศษ ให้แสดงผลตามตาราง ตารางอักขระพิเศษ Char Oct Dec Hex Control-Key Control Action NUL 0 0 0 ^@ Null character SOH 1 1 1 ^A Start of heading, = console interrupt STX 2 2 2 ^B Start of text, maintenance mode on HP console ETX 3 3 3 ^C End of [...]]]></description>
			<content:encoded><![CDATA[<p>การจัดการหน้าจอ ของ command line เช่นการ clear screen สามารถทำได้โดยการใช้อักขระพิเศษ ให้แสดงผลตามตาราง<br />
<span id="more-503"></span></p>
<h3>ตารางอักขระพิเศษ</h3>
<table>
<tr>
<th>Char</th>
<th>Oct</th>
<th>Dec</th>
<th>Hex</th>
<th>Control-Key</th>
<th><b>Control Action</b></th>
</tr>
<tr>
<td>NUL</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>^@</td>
<td>Null character
</td>
</tr>
<tr>
<td>SOH</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>^A</td>
<td>Start of heading, = console interrupt
</td>
</tr>
<tr>
<td>STX</td>
<td>2</td>
<td>2</td>
<td>2</td>
<td>^B</td>
<td>Start of text, maintenance mode on HP console
</td>
</tr>
<tr>
<td>ETX</td>
<td>3</td>
<td>3</td>
<td>3</td>
<td>^C</td>
<td>End of text</p>
</td>
</tr>
<tr>
<td>EOT</td>
<td>4</td>
<td>4</td>
<td>4</td>
<td>^D</td>
<td>End of transmission, not the same as ETB
</td>
</tr>
<tr>
<td>ENQ</td>
<td>5</td>
<td>5</td>
<td>5</td>
<td>^E</td>
<td>Enquiry, goes with ACK; old HP flow control
</td>
</tr>
<tr>
<td>ACK</td>
<td>6</td>
<td>6</td>
<td>6</td>
<td>^F</td>
<td>Acknowledge, clears ENQ logon hand</p>
</td>
</tr>
<tr>
<td>BEL</td>
<td>7</td>
<td>7</td>
<td>7</td>
<td>^G</td>
<td>Bell, rings the bell&#8230;
</td>
</tr>
<tr>
<td>BS</td>
<td>10</td>
<td>8</td>
<td>8</td>
<td>^H</td>
<td>Backspace, works on HP terminals/computers
</td>
</tr>
<tr>
<td>HT</td>
<td>11</td>
<td>9</td>
<td>9</td>
<td>^I</td>
<td>Horizontal tab, move to next tab stop</p>
</td>
</tr>
<tr>
<td>LF</td>
<td>12</td>
<td>10</td>
<td>a</td>
<td>^J</td>
<td>Line Feed
</td>
</tr>
<tr>
<td>VT</td>
<td>13</td>
<td>11</td>
<td>b</td>
<td>^K</td>
<td>Vertical tab
</td>
</tr>
<tr>
<td>FF</td>
<td>14</td>
<td>12</td>
<td>c</td>
<td>^L</td>
<td>Form Feed, page eject</p>
</td>
</tr>
<tr>
<td>CR</td>
<td>15</td>
<td>13</td>
<td>d</td>
<td>^M</td>
<td>Carriage Return
</td>
</tr>
<tr>
<td>SO</td>
<td>16</td>
<td>14</td>
<td>e</td>
<td>^N</td>
<td>Shift Out, alternate character set
</td>
</tr>
<tr>
<td>SI</td>
<td>17</td>
<td>15</td>
<td>f</td>
<td>^O</td>
<td>Shift In, resume defaultn character set</p>
</td>
</tr>
<tr>
<td>DLE</td>
<td>20</td>
<td>16</td>
<td>10</td>
<td>^P</td>
<td>Data link escape
</td>
</tr>
<tr>
<td>DC1</td>
<td>21</td>
<td>17</td>
<td>11</td>
<td>^Q</td>
<td>XON, with XOFF to pause listings; &#8220;:okay to send&#8221;.
</td>
</tr>
<tr>
<td>DC2</td>
<td>22</td>
<td>18</td>
<td>12</td>
<td>^R</td>
<td>Device control 2, block-mode flow control</p>
</td>
</tr>
<tr>
<td>DC3</td>
<td>23</td>
<td>19</td>
<td>13</td>
<td>^S</td>
<td>XOFF, with XON is TERM=18 flow control
</td>
</tr>
<tr>
<td>DC4</td>
<td>24</td>
<td>20</td>
<td>14</td>
<td>^T</td>
<td>Device control 4
</td>
</tr>
<tr>
<td>NAK</td>
<td>25</td>
<td>21</td>
<td>15</td>
<td>^U</td>
<td>Negative acknowledge</p>
</td>
</tr>
<tr>
<td>SYN</td>
<td>26</td>
<td>22</td>
<td>16</td>
<td>^V</td>
<td>Synchronous idle
</td>
</tr>
<tr>
<td>ETB</td>
<td>27</td>
<td>23</td>
<td>17</td>
<td>^W</td>
<td>End transmission block, not the same as EOT
</td>
</tr>
<tr>
<td>CAN</td>
<td>30</td>
<td>24</td>
<td>17</td>
<td>^X</td>
<td>Cancel line, MPE echoes !!!</p>
</td>
</tr>
<tr>
<td>EM</td>
<td>31</td>
<td>25</td>
<td>19</td>
<td>^Y</td>
<td>End of medium, Control-Y interrupt
</td>
</tr>
<tr>
<td>SUB</td>
<td>32</td>
<td>26</td>
<td>1a</td>
<td>^Z</td>
<td>Substitute
</td>
</tr>
<tr>
<td>ESC</td>
<td>33</td>
<td>27</td>
<td>1b</td>
<td>^[</td>
<td>Escape, next character is not echoed</p>
</td>
</tr>
<tr>
<td>FS</td>
<td>34</td>
<td>28</td>
<td>1c</td>
<td>^\</td>
<td>File separator
</td>
</tr>
<tr>
<td>GS</td>
<td>35</td>
<td>29</td>
<td>1d</td>
<td>^]</td>
<td>Group separator
</td>
</tr>
<tr>
<td>RS</td>
<td>36</td>
<td>30</td>
<td>1e</td>
<td>^^</td>
<td>Record separator, block-mode terminator</p>
</td>
</tr>
<tr>
<td>US</td>
<td>37</td>
<td>31</td>
<td>1f</td>
<td>^_</td>
<td>Unit separator</td>
</tr>
</table>
<h4>Entering Scrollback Mode and Navigating</h4>
<pre>
h -    Move the cursor left by one character
j -    Move the cursor down by one line
k -    Move the cursor up by one line
l -    Move the cursor right by one character
0 -    Move to the beginning of the current line
$ -    Move to the end of the current line.
G -    Moves to the specified line
       (defaults to the end of the buffer).
C-u -  Scrolls a half page up.
C-b -  Scrolls a full page up.
C-d -  Scrolls a half page down.
C-f -  Scrolls the full page down.
</pre>
<h3>ตัวอย่าง</h3>
<h4>Clear screen</h4>
<pre>printf("\x1B[H\x1B[2J");;</pre>
<p>reference :<a href="http://en.wikipedia.org/wiki/ASCII"> http://en.wikipedia.org/wiki/ASCII</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.memoball.info/2010/09/24/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%88%e0%b8%b1%e0%b8%94%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%ab%e0%b8%99%e0%b9%89%e0%b8%b2%e0%b8%88%e0%b8%ad%e0%b9%81%e0%b8%9a%e0%b8%9a-command-line-clear-screen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ย้ายหรือเปลี่ยนชื่อโดเมนใน wordpress 3 และ wordpress-mu</title>
		<link>http://www.memoball.info/2010/08/26/%e0%b8%a2%e0%b9%89%e0%b8%b2%e0%b8%a2%e0%b8%ab%e0%b8%a3%e0%b8%b7%e0%b8%ad%e0%b9%80%e0%b8%9b%e0%b8%a5%e0%b8%b5%e0%b9%88%e0%b8%a2%e0%b8%99%e0%b8%8a%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b9%82%e0%b8%94%e0%b9%80/</link>
		<comments>http://www.memoball.info/2010/08/26/%e0%b8%a2%e0%b9%89%e0%b8%b2%e0%b8%a2%e0%b8%ab%e0%b8%a3%e0%b8%b7%e0%b8%ad%e0%b9%80%e0%b8%9b%e0%b8%a5%e0%b8%b5%e0%b9%88%e0%b8%a2%e0%b8%99%e0%b8%8a%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b9%82%e0%b8%94%e0%b9%80/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 14:53:05 +0000</pubDate>
		<dc:creator>memoball</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://memoball.memoball.com/?p=487</guid>
		<description><![CDATA[หากวันนึงเราต้องการเปลี่ยนชื่อโดเมน blog ของเราจะทำอย่างไร ไม่ใช่เรื่องยากหรอกครับ ความจริงแล้วแค่รัน query ไม่กี่ตัวเท่านั้น ดังนี้ และเปลี่ยน old-domain.com กับ new-domain.com ไม่ต้องใส่ subdomain นะ (ที่สำคัญอย่างลืม backup database ก่อนนะครับ) WordPress 3.0 UPDATE wp_options SET option_value = replace(option_value, 'old-domain.com', 'new-domain.com') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET guid = replace(guid, 'old-domain.com','new-domain.com'); UPDATE wp_posts SET post_content = replace(post_content, 'old-domain.com', 'new-domain.com'); UPDATE wp_options SET [...]]]></description>
			<content:encoded><![CDATA[<p>หากวันนึงเราต้องการเปลี่ยนชื่อโดเมน blog ของเราจะทำอย่างไร ไม่ใช่เรื่องยากหรอกครับ ความจริงแล้วแค่รัน query ไม่กี่ตัวเท่านั้น ดังนี้ และเปลี่ยน old-domain.com กับ new-domain.com ไม่ต้องใส่ subdomain นะ<br />
<span id="more-487"></span><br />
(<span style="color: #ff0000"><strong>ที่สำคัญอย่างลืม backup database ก่อนนะครับ</strong></span>)</p>
<h2>WordPress 3.0</h2>
<pre>UPDATE wp_options SET option_value = replace(option_value, 'old-domain.com', 'new-domain.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'old-domain.com','new-domain.com');
UPDATE wp_posts SET post_content = replace(post_content, 'old-domain.com', 'new-domain.com');
UPDATE wp_options SET option_value = replace(option_value, 'old-domain.com', 'new-domain.com');
UPDATE wp_comments SET comment_author_url = replace(comment_author_url, 'old-domain.com', 'new-domain.com');
</pre>
<h2>WordPress 3.0 (MU)</h2>
<p>เปลี่ยน n เป็น id ของแต่ละ site </p>
<pre>UPDATE wp_n_options SET option_value = replace(option_value, 'old-domain.com', 'new-domain.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_n_posts SET guid = replace(guid, 'old-domain.com','new-domain.com');
UPDATE wp_n_posts SET post_content = replace(post_content, 'old-domain.com', 'new-domain.com');
UPDATE wp_n_options SET option_value = replace(option_value, 'old-domain.com', 'new-domain.com');
UPDATE wp_n_comments SET comment_author_url = replace(comment_author_url, 'old-domain.com', 'new-domain.com');
</pre>
<p>ต่อจากนั้น เปลี่ยนชื่อ site แลยครับ</p>
<pre>
UPDATE wp_blogs SET domain = replace(domain, 'old-domain.com', 'new-domain.com');
UPDATE wp_usermeta SET meta_value = replace(meta_value, 'old-domain.com', 'new-domain.com');
UPDATE wp_sitemeta SET meta_value = replace(meta_value, 'old-domain.com', 'new-domain.com');
UPDATE wp_site SET domain = replace(domain, 'old-domain.com', 'new-domain.com');
UPDATE wp_options SET option_value = replace(option_value, 'old-domain.com', 'new-domain.com');
</pre>
<p>แค่นี้ก็เสร็จงาน สำหรับ database แล้วครับ</p>
<p>ต่อไป จัดการกับ wp-config.php แก้ไขบรรทัด define( &#8216;DOMAIN_CURRENT_SITE&#8217;, &#8216;old-domain.com&#8217; ); เป็น domain ใหม่</p>
<p>ต่อไป จัดการกับ apache ที่ต้องเปลี่ยน virtualhost ของ แต่ละ subdomain เท่านี้ก็เรียบร้อยกระบวนความ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.memoball.info/2010/08/26/%e0%b8%a2%e0%b9%89%e0%b8%b2%e0%b8%a2%e0%b8%ab%e0%b8%a3%e0%b8%b7%e0%b8%ad%e0%b9%80%e0%b8%9b%e0%b8%a5%e0%b8%b5%e0%b9%88%e0%b8%a2%e0%b8%99%e0%b8%8a%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b9%82%e0%b8%94%e0%b9%80/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ThinkFinger</title>
		<link>http://www.memoball.info/2010/02/13/thinkfinger/</link>
		<comments>http://www.memoball.info/2010/02/13/thinkfinger/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 13:56:31 +0000</pubDate>
		<dc:creator>memoball</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.memoball.info/?p=438</guid>
		<description><![CDATA[Thinkpad Finger-print for Ubuntu เพิ่งได้ thinkpad X200si มาใช้ครับ ก็เลยหาวิธีลง Finger-print สำหรับ Ubuntu ครับ จึงเอา link มาฝากกันครับ https://wiki.ubuntu.com/ThinkFinger This is protected content. Please Login or Register for access. (ขอเก็บเนื้อหาไว้สำหรับใช้ส่วนตัว ตามลิขสิทธิ์ครับ) กด link เพื่อไปดูได้เลยครับ]]></description>
			<content:encoded><![CDATA[<h2>Thinkpad Finger-print for Ubuntu</h2>
<p>เพิ่งได้ thinkpad X200si มาใช้ครับ ก็เลยหาวิธีลง Finger-print สำหรับ Ubuntu ครับ<br />
จึงเอา link มาฝากกันครับ <a href="https://wiki.ubuntu.com/ThinkFinger">https://wiki.ubuntu.com/ThinkFinger</a></p>
<p><br/><div id="wp-private-box"><b>This is protected content. Please <a href="http://www.memoball.info/wp-login.php">Login</a> or <a href="http://www.memoball.info/wp-register.php">Register</a> for access.</b></div><br/><!--/protected--><br />
(ขอเก็บเนื้อหาไว้สำหรับใช้ส่วนตัว ตามลิขสิทธิ์ครับ) กด link เพื่อไปดูได้เลยครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.memoball.info/2010/02/13/thinkfinger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>รูปในเวปผมหายไปไหน</title>
		<link>http://www.memoball.info/2010/02/02/%e0%b8%a3%e0%b8%b9%e0%b8%9b%e0%b9%83%e0%b8%99%e0%b9%80%e0%b8%a7%e0%b8%9b%e0%b8%9c%e0%b8%a1%e0%b8%ab%e0%b8%b2%e0%b8%a2%e0%b9%84%e0%b8%9b%e0%b9%84%e0%b8%ab%e0%b8%99/</link>
		<comments>http://www.memoball.info/2010/02/02/%e0%b8%a3%e0%b8%b9%e0%b8%9b%e0%b9%83%e0%b8%99%e0%b9%80%e0%b8%a7%e0%b8%9b%e0%b8%9c%e0%b8%a1%e0%b8%ab%e0%b8%b2%e0%b8%a2%e0%b9%84%e0%b8%9b%e0%b9%84%e0%b8%ab%e0%b8%99/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 00:33:59 +0000</pubDate>
		<dc:creator>memoball</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.memoball.info/?p=432</guid>
		<description><![CDATA[เมื่อหลายวันก่อนผมทำการแก้ไขเวปเซอร์วิช ซึ่งเป็น web-apllication ตัวหนึ่งที่ผมดูและอยู่ ปรากฏว่ารูปที่เป็นส่วนประกอบของผมหายไปอย่างลึกลับเมื่อผู้ใช้งานทั่วไปเข้าไปใช้ ซึ่งในเบื้องต้น ผมใช้ ubuntu+firefox ไม่เกิดข้อผิดพลาดใดๆ ในกรณีดังกล่าว จะเป็นเฉพาะ HTTP over SSL (HTTPS) สาเหตุ สาเหตุก็เป็นเพราะว่า รูปผมมันเป็น http แต่เวปมันเป็น https บราวเซอร์จะไม่ยอมโหลดรูปให้ ปัญหาดังกล่าวจะเป็นเกือบทุกบราวเซอร์ โดยบางเครื่องอาจมีการถามก่อนว่าจะโหลดหรือไม่ ตามแต่ผู้ใช้งานจะเป็นผู้ตั้งไว้ แต่จุดที่สังเกตได้ง่ายๆ คือด้านมุมขวาล่าง จะมีรูปแม่กุญแจอยู่ ถ้าเป็นกรณีนี่มีการโหลด http บนเวป https จะมีรูปเครื่องหมายตกใจสีแดงปรากฎอยู่บนรูปแม่กุญแจนั้น วิธีแก้ไข วิธีแก้ไขที่ดีที่สุดน่าจะอยู่ที่ตัวผู้เขียนเวปเอง โดยทำการกำหนด link ต่างๆ ในหน้าเวปของเราให้เป็น https ซะ]]></description>
			<content:encoded><![CDATA[<p>เมื่อหลายวันก่อนผมทำการแก้ไขเวปเซอร์วิช ซึ่งเป็น web-apllication ตัวหนึ่งที่ผมดูและอยู่ ปรากฏว่ารูปที่เป็นส่วนประกอบของผมหายไปอย่างลึกลับเมื่อผู้ใช้งานทั่วไปเข้าไปใช้ ซึ่งในเบื้องต้น ผมใช้ ubuntu+firefox ไม่เกิดข้อผิดพลาดใดๆ ในกรณีดังกล่าว จะเป็นเฉพาะ HTTP over SSL (HTTPS) </p>
<h2>สาเหตุ</h2>
<p>สาเหตุก็เป็นเพราะว่า รูปผมมันเป็น http แต่เวปมันเป็น https บราวเซอร์จะไม่ยอมโหลดรูปให้ ปัญหาดังกล่าวจะเป็นเกือบทุกบราวเซอร์ โดยบางเครื่องอาจมีการถามก่อนว่าจะโหลดหรือไม่ ตามแต่ผู้ใช้งานจะเป็นผู้ตั้งไว้ แต่จุดที่สังเกตได้ง่ายๆ คือด้านมุมขวาล่าง จะมีรูปแม่กุญแจอยู่ ถ้าเป็นกรณีนี่มีการโหลด http บนเวป https จะมีรูปเครื่องหมายตกใจสีแดงปรากฎอยู่บนรูปแม่กุญแจนั้น</p>
<h2>วิธีแก้ไข</h2>
<p>วิธีแก้ไขที่ดีที่สุดน่าจะอยู่ที่ตัวผู้เขียนเวปเอง โดยทำการกำหนด link ต่างๆ ในหน้าเวปของเราให้เป็น https ซะ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.memoball.info/2010/02/02/%e0%b8%a3%e0%b8%b9%e0%b8%9b%e0%b9%83%e0%b8%99%e0%b9%80%e0%b8%a7%e0%b8%9b%e0%b8%9c%e0%b8%a1%e0%b8%ab%e0%b8%b2%e0%b8%a2%e0%b9%84%e0%b8%9b%e0%b9%84%e0%b8%ab%e0%b8%99/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>การเขียน makefile</title>
		<link>http://www.memoball.info/2010/01/25/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%80%e0%b8%82%e0%b8%b5%e0%b8%a2%e0%b8%99-makefile/</link>
		<comments>http://www.memoball.info/2010/01/25/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%80%e0%b8%82%e0%b8%b5%e0%b8%a2%e0%b8%99-makefile/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 03:56:53 +0000</pubDate>
		<dc:creator>memoball</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.memoball.info/?p=420</guid>
		<description><![CDATA[วันนี้ได้ทำการเขียน makefile ใหม่ให้มีประสิทธิ์ภาพมากขึ้น โดยการใช้ inference rules จึงไปค้นหาเวปมาได้เวปดีๆ คือ http://www-cip.physik.uni-bonn.de/pool/infos/make/advanced.html Getting started with Makefiles: Advanced features 1. What are macros and why should I use them? Think of programs that shall be used at different locations: CERN, DESY, SLAC, University of Bonn, &#8230; The C/C++ programs are highly portable (at least after some effort) but the [...]]]></description>
			<content:encoded><![CDATA[<p>วันนี้ได้ทำการเขียน makefile ใหม่ให้มีประสิทธิ์ภาพมากขึ้น โดยการใช้ inference rules จึงไปค้นหาเวปมาได้เวปดีๆ คือ<br />
<a href="http://www-cip.physik.uni-bonn.de/pool/infos/make/advanced.html">http://www-cip.physik.uni-bonn.de/pool/infos/make/advanced.html</a> </p>
<h2>
<hr noshade="noshade" /></h2>
<h2><span style="font-family: Arial,Helvetica">Getting started with Makefiles: Advanced features</span></h2>
<hr noshade="noshade" />
<h2><span style="font-family: Arial,Helvetica">1. What are macros and why should I use them?</span></h2>
<p>Think of programs that shall be used at different locations: CERN, DESY, SLAC, University of Bonn, &#8230; The C/C++ programs are highly portable (at least after some effort) but the names of the programs used to compile them &#8211; as well as their arguments &#8211; may be very different. So it would be nice to once give the program name, the list of arguments, etc. and then only use symbolic names so that you can rapidly adjust to the local computing environment. Those symbolic names are called &#8220;macros&#8221;. Let&#8217;s recall<tt> <strong><a href="http://www-cip.physik.uni-bonn.de/pool/infos/make/Makefile5">Makefile5</a></strong>.</tt></p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>.IGNORE:</tt></strong><br />
<strong><tt>.SILENT:</tt></strong><strong><tt>mirror:    input.o mirror.o process.o output.o</tt></strong><br />
<strong><tt> g++ -o mirror input.o mirror.o process.o output.o</tt></strong></p>
<p><strong><tt>mirror.o:  mirror.cc</tt></strong><br />
<strong><tt> g++ -c -Wall mirror.cc</tt></strong></p>
<p><strong><tt>input.o:   input.cc</tt></strong><br />
<strong><tt> g++ -c -Wall input.cc</tt></strong></p>
<p><strong><tt>output.o:  output.cc</tt></strong><br />
<strong><tt> g++ -c -Wall output.cc</tt></strong></p>
<p><strong><tt>process.o: process.cc</tt></strong><br />
<strong><tt> g++ -c -Wall process.cc</tt></strong></p>
<p><strong><tt>clean:</tt></strong><br />
<strong><tt> rm -f *.o core</tt></strong></p>
<p><strong><tt>distclean:</tt></strong><br />
<strong><tt> make clean</tt></strong><br />
<strong><tt> rm -f mirror</tt></strong></p>
<p><strong><tt>again:</tt></strong><br />
<strong><tt> make distclean</tt></strong><br />
<strong><tt> make mirror</tt></strong></td>
</tr>
</tbody>
</table>
<p>All object files are made using <tt>g++</tt>. On other machines that may be<tt> cxx, cpp, </tt>or something the like. So let&#8217;s define a macro for the C++ compiler:</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>C++ = g++</tt></strong></td>
</tr>
</tbody>
</table>
<p>The command line options are also different for different compilers so it&#8217;s a good idea to have a macro for them:</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>C++-Flags = -c -Wall</tt></strong></td>
</tr>
</tbody>
</table>
<p>On some machines the command to remove files is<tt> rm </tt>(or<tt> rm -f), </tt>on others<tt> del, </tt>some use<tt> delete, </tt>some<tt> erase, </tt>and some even<tt> discard.</tt>So that&#8217;s another candidate for a macro:</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>RM = rm -f</tt></strong></td>
</tr>
</tbody>
</table>
<p>Even make may not always be called make (though I know of no system where this is the case):</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>MAKE = make</tt></strong></td>
</tr>
</tbody>
</table>
<p>In our example the linker is also g++. In general that need not be the case. So we define the following two macros:</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>LINKER       = g++</tt></strong><br />
<strong><tt>LINKER-FLAGS = -o</tt></strong></td>
</tr>
</tbody>
</table>
<p>The meaning of the following two macros is obvious:</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>OBJS   = input.o mirror.o process.o output.o</tt></strong><br />
<strong><tt>TARGET = mirror</tt></strong></td>
</tr>
</tbody>
</table>
<p>After these changes the present state of the Makefile is<tt> <strong><a href="http://www-cip.physik.uni-bonn.de/pool/infos/make/Makefile6">Makefile6</a></strong>:</tt></p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>C++          = g++</tt></strong><br />
<strong><tt>C++-FLAGS    = -c -Wall</tt></strong><br />
<strong><tt>LINKER       = g++</tt></strong><br />
<strong><tt>LINKER-FLAGS = -o</tt></strong><br />
<strong><tt>RM           = rm -f</tt></strong><br />
<strong><tt>MAKE         = make</tt></strong><br />
<strong><tt>OBJS         = input.o mirror.o process.o output.o</tt></strong><br />
<strong><tt>TARGET       = mirror</tt></strong><strong><tt>.IGNORE:</tt></strong><br />
<strong><tt>.SILENT:</tt></strong></p>
<p><strong><tt>$(TARGET): $(OBJS)</tt></strong><br />
<strong><tt> $(LINKER) $(LINKER-FLAGS) $(TARGET) $(OBJS)</tt></strong></p>
<p><strong><tt>mirror.o:  mirror.cc</tt></strong><br />
<strong><tt> $(C++) $(C++-FLAGS) mirror.cc</tt></strong></p>
<p><strong><tt>input.o:   input.cc</tt></strong><br />
<strong><tt> $(C++) $(C++-FLAGS) input.cc</tt></strong></p>
<p><strong><tt>output.o:  output.cc</tt></strong><br />
<strong><tt> $(C++) $(C++-FLAGS) output.cc</tt></strong></p>
<p><strong><tt>process.o: process.cc</tt></strong><br />
<strong><tt> $(C++) $(C++-FLAGS) process.cc</tt></strong></p>
<p><strong><tt>clean:</tt></strong><br />
<strong><tt> $(RM) *.o core</tt></strong></p>
<p><strong><tt>distclean:</tt></strong><br />
<strong><tt> $(MAKE) clean</tt></strong><br />
<strong><tt> $(RM) $(TARGET)</tt></strong></p>
<p><strong><tt>again:</tt></strong><br />
<strong><tt> $(MAKE) distclean</tt></strong><br />
<strong><tt> $(MAKE) $(TARGET)</tt></strong></td>
</tr>
</tbody>
</table>
<h2><strong><span style="font-family: Arial,Helvetica">2. What are inference rules and what are they good for?</span></strong></h2>
<p>If you have a close look at the rules to make<tt> mirror.o, input.o, output.o, </tt>and<tt> process.o</tt> you see that they are all the same:</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>&lt;filename&gt;.o: &lt;filename&gt;.cc</tt></strong><br />
<strong><tt> $(C++) $(C++-FLAGS) &lt;filename&gt;.cc</tt></strong></td>
</tr>
</tbody>
</table>
<p>To avoid all these lenthy entries in a Makefile there are inference rules: They describe the &#8216;standard procedure&#8217; of making files of type b from files of type a. In this case the rule to make an object file from a given C++ file is</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>.cc.o:</tt></strong><br />
<strong><tt> $(C++) $(C++-FLAGS) $&lt;</tt></strong></td>
</tr>
</tbody>
</table>
<p>or alternatively you could use</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>.cc.o:</tt></strong><br />
<strong><tt> $(C++) $(C++-FLAGS) $*.cc</tt></strong></td>
</tr>
</tbody>
</table>
<p>It&#8217;s easy to see what<tt> $&lt; </tt>and<tt> $* </tt>mean but I&#8217;ll come back to that in just a moment. First I will change the rule for making the target &#8216;mirror&#8217; so that it makes use of another strange-looking predefined macros:</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>$(TARGET): $(OBJS)</tt></strong><br />
<strong><tt> $(LINKER) $(LINKER-FLAGS) $@ $(OBJ)</tt></strong></td>
</tr>
</tbody>
</table>
<p>Now let&#8217;s have a look at the meaning of <tt>$*, $&lt;, </tt>and<tt> $@:</tt></p>
<p><strong><tt>$*</tt></strong> ist the current target without an extension (the base file name) with path. For example, in</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>input.o: input.cc</tt></strong><br />
<strong><tt> $(C++) $(C++-FLAGS) $*.cc</tt></strong></td>
</tr>
</tbody>
</table>
<p>the value of<strong><tt> $* </tt></strong>is <strong><tt>input</tt></strong>.<strong><tt> $* </tt></strong>is commonly used only in inference rules and command lines.</p>
<p><tt><strong>$@</strong> </tt>is the current target (including extension, if any). For example, in</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>mirror: $(OBJS)</tt></strong><br />
<strong><tt> $(LINKER) $(LINKER-FLAGS) $@ $(OBJS)</tt></strong></td>
</tr>
</tbody>
</table>
<p>the value of<tt> <strong>$@</strong> </tt>is<strong><tt> mirror</tt></strong>.</p>
<p><strong><tt>$&lt;</tt></strong> is a dependent file out-of date with the target file. For example,</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>.cc.o:</tt></strong><br />
<strong><tt> $(C++) $(C++-FLAGS) $*.cc</tt></strong></td>
</tr>
</tbody>
</table>
<p>Notice that <strong><tt>$&lt;</tt></strong>, in an inference rule such as <strong><tt>.cc.o</tt></strong>, is equivalent to <strong><tt>$*.cc</tt></strong> (as already mentioned).</p>
<p>Just to remind you: Your Makefile should now look like<tt> <strong><a href="http://www-cip.physik.uni-bonn.de/pool/infos/make/Makefile7">Makefile7</a></strong></tt>:</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>C++          = g++</tt></strong><br />
<strong><tt>C++-FLAGS    = -c -Wall</tt></strong><br />
<strong><tt>LINKER       = g++</tt></strong><br />
<strong><tt>LINKER-FLAGS = -o</tt></strong><br />
<strong><tt>RM           = rm -f</tt></strong><br />
<strong><tt>MAKE         = make</tt></strong><br />
<strong><tt>OBJS         = input.o mirror.o process.o output.o</tt></strong><br />
<strong><tt>TARGET       = mirror</tt></strong><strong><tt>.IGNORE:</tt></strong><br />
<strong><tt>.SILENT:</tt></strong></p>
<p><strong><tt>$(TARGET): $(OBJS)</tt></strong><br />
<strong><tt> $(LINKER) $(LINKER-FLAGS) $@ $(OBJS)</tt></strong></p>
<p><strong><tt>.cc.o:</tt></strong><br />
<strong><tt> $(C++) $(C++-FLAGS) $&lt;</tt></strong></p>
<p><strong><tt>clean:</tt></strong><br />
<strong><tt> $(RM) *.o core</tt></strong></p>
<p><strong><tt>distclean:</tt></strong><br />
<strong><tt> $(MAKE) clean</tt></strong><br />
<strong><tt> $(RM) $(TARGET)</tt></strong></p>
<p><strong><tt>again:</tt></strong><br />
<strong><tt> $(MAKE) distclean</tt></strong><br />
<strong><tt> $(MAKE) $(TARGET)</tt></strong></td>
</tr>
</tbody>
</table>
<h2><span style="font-family: Arial,Helvetica">3. Continuation lines</span></h2>
<p>If your project consists of a great number of files (or you need lots of options) you may wish to split lines. Another reason for splitting lines is increasing the readability of your Makefile (don&#8217;t underestimate that point!).  In<tt> <strong><a href="http://www-cip.physik.uni-bonn.de/pool/infos/make/Makefile7">Makefile7</a></strong> </tt>you could change the line reading</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>OBJS = input.o mirror.o process.o output.o</tt></strong></td>
</tr>
</tbody>
</table>
<p>to read</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>OBJS = input.o   \</tt></strong><br />
<strong><tt> mirror.o  \</tt></strong><br />
<strong><tt> process.o \</tt></strong><br />
<strong><tt> output.o</tt></strong></td>
</tr>
</tbody>
</table>
<h2><span style="font-family: Arial,Helvetica">4.  Comments</span></h2>
<p>You can also add comments to your Makefile like the ones in<tt> <strong><a href="http://www-cip.physik.uni-bonn.de/pool/infos/make/Makefile8">Makefile8</a></strong></tt>:</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>C++          = g++           # use GNU C++ compiler </tt></strong><br />
<strong><tt>C++-FLAGS    = -c -Wall      # warn all </tt></strong><br />
<strong><tt>LINKER       = g++           # use GNU C++ as linker </tt></strong><br />
<strong><tt>LINKER-FLAGS = -o            # flags for linker </tt></strong><br />
<strong><tt>RM           = rm -f         # how to remove files </tt></strong><br />
<strong><tt>MAKE         = make          # name of make utility </tt></strong><br />
<strong><tt># you cannot add comments after the continuation character! </tt></strong><br />
<strong><tt>OBJS         = input.o   \ </tt></strong><br />
<strong><tt> mirror.o  \ </tt></strong><br />
<strong><tt> process.o \ </tt></strong><br />
<strong><tt> output.o </tt></strong><br />
<strong><tt>TARGET       = mirror        # name of executable </tt></strong><strong><tt>.IGNORE:                     # ignore problems (as far as possible) </tt></strong><br />
<strong><tt>.SILENT:                     # don't echo commands executed </tt></strong></p>
<p><strong><tt>$(TARGET):  $(OBJS) </tt></strong><br />
<strong><tt> $(LINKER) $(LINKER-FLAGS) $@ $(OBJS) </tt></strong></p>
<p><strong><tt>.cc.o: </tt></strong><br />
<strong><tt> $(C++) $(C++-FLAGS) $&lt; </tt></strong></p>
<p><strong><tt># remove object files and core (if any) </tt></strong><br />
<strong><tt>clean: </tt></strong><br />
<strong><tt> $(RM) *.o core </tt></strong></p>
<p><strong><tt># remove object files, core dump, and executable (if any) </tt></strong><br />
<strong><tt>distclean: </tt></strong><br />
<strong><tt> $(MAKE) clean </tt></strong><br />
<strong><tt> $(RM) $(TARGET) </tt></strong></p>
<p><strong><tt># remove object files, core dump, and executable (if any) and </tt></strong><br />
<strong><tt># make them again. </tt></strong><br />
<strong><tt>again: </tt></strong><br />
<strong><tt> $(MAKE) distclean </tt></strong><br />
<strong><tt> $(MAKE) $(TARGET)</tt></strong></td>
</tr>
</tbody>
</table>
<h2><span style="font-family: Arial,Helvetica">5. The .SUFFIXES pseudo target</span></h2>
<p>make comes with a couple of predefined rules how to make certain files. To get rid of them simply use</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>.SUFFIXES:</tt></strong></td>
</tr>
</tbody>
</table>
<p>If you do that you have to list all suffixes that your Makefile does support. In the above case that would be</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>.SUFFIXES: .o .cc</tt></strong></td>
</tr>
</tbody>
</table>
<p>You can also use<strong><tt> .SUFFIXES </tt></strong>to add rules to the predefined ones (in precisely the same manner as in the example above).</p>
<h2><span style="font-family: Arial,Helvetica">6. Using environment variables</span></h2>
<p>You can use environment variables in the same way as macros (besides that they are defined outside the Makefile):</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>info:</tt></strong><br />
<strong><tt> echo $(USER)</tt></strong></td>
</tr>
</tbody>
</table>
<p>Surely this is not a very useful example. Finding more useful ones is left to the reader.  Now, your Makefile should look like<tt> <strong><a href="http://www-cip.physik.uni-bonn.de/pool/infos/make/Makefile9">Makefile9</a></strong></tt>:</p>
<table border="1" cellpadding="20" width="100%" bgcolor="#ffffbf">
<tbody>
<tr>
<td><strong><tt>C++          = g++           # use GNU C++ compiler</tt></strong><br />
<strong><tt>C++-FLAGS    = -c -Wall      # warn all</tt></strong><br />
<strong><tt>LINKER       = g++           # use GNU C++ as linker </tt></strong><br />
<strong><tt>LINKER-FLAGS = -o            # flags for linker</tt></strong><br />
<strong><tt>RM           = rm -f         # how to remove files</tt></strong><br />
<strong><tt>MAKE         = make          # name of make utility</tt></strong><br />
<strong><tt># you cannot add comments after the continuation character!</tt></strong><br />
<strong><tt>OBJS         = input.o   \</tt></strong><br />
<strong><tt> mirror.o  \</tt></strong><br />
<strong><tt> process.o \</tt></strong><br />
<strong><tt> output.o</tt></strong><br />
<strong><tt>TARGET       = mirror        # name of executable</tt></strong><strong><tt>.IGNORE:                     # ignore problems (as far as possible)</tt></strong><br />
<strong><tt>.SILENT:                     # don't echo commands executed</tt></strong><br />
<strong><tt>.SUFFIXES:                   # get rid of predefined rules</tt></strong><br />
<strong><tt>.SUFFIXES: .cc .o</tt></strong></p>
<p><strong><tt>$(TARGET): $(OBJS)</tt></strong><br />
<strong><tt> $(LINKER) $(LINKER-FLAGS) $@ $(OBJS)</tt></strong></p>
<p><strong><tt>.cc.o:</tt></strong><br />
<strong><tt> $(C++) $(C++-FLAGS) $&lt;</tt></strong></p>
<p><strong><tt># remove object files and core (if any)</tt></strong><br />
<strong><tt>clean:</tt></strong><br />
<strong><tt> $(RM) *.o core</tt></strong></p>
<p><strong><tt># remove object files, core dump, and executable (if any)</tt></strong><br />
<strong><tt>distclean:</tt></strong><br />
<strong><tt> $(MAKE) clean</tt></strong><br />
<strong><tt> $(RM) $(TARGET)</tt></strong></p>
<p><strong><tt># remove object files, core dump, and executable (if any) and</tt></strong><br />
<strong><tt># make them again.</tt></strong><br />
<strong><tt>again:</tt></strong><br />
<strong><tt> $(MAKE) distclean</tt></strong><br />
<strong><tt> $(MAKE) $(TARGET)</tt></strong></p>
<p><strong><tt># echo username</tt></strong><br />
<strong><tt>info:</tt></strong><br />
<strong><tt> echo User is: $(USER)</tt></strong></td>
</tr>
</tbody>
</table>
<hr noshade="noshade" />Last changed tuesday 6/2/1998</p>
]]></content:encoded>
			<wfw:commentRss>http://www.memoball.info/2010/01/25/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%80%e0%b8%82%e0%b8%b5%e0%b8%a2%e0%b8%99-makefile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>การเขียน resume</title>
		<link>http://www.memoball.info/2009/09/09/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%80%e0%b8%82%e0%b8%b5%e0%b8%a2%e0%b8%99-resume/</link>
		<comments>http://www.memoball.info/2009/09/09/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%80%e0%b8%82%e0%b8%b5%e0%b8%a2%e0%b8%99-resume/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 02:54:24 +0000</pubDate>
		<dc:creator>memoball</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.memoball.info/?p=398</guid>
		<description><![CDATA[อันนี้เป็นเรื่องการเขียน resume ซึ่งได้มาจาก http://blogs.harvardbusiness.org/hbr/hbr-now/2009/09/rewrite-your-invisible-resume.html อีกเช่นเคย ลองเข้าไปอ่านดูโดยคลิกที่ link แต่ขอเก็บเนื้อหาไว้เพื่อการศึกษาในคราวต่อไปในกรณีที่ไม่สามารถคลิกเข้าไปที่เวปได้แล้ว This is protected content. Please Login or Register for access.]]></description>
			<content:encoded><![CDATA[<p>อันนี้เป็นเรื่องการเขียน resume ซึ่งได้มาจาก <a href="http://blogs.harvardbusiness.org/hbr/hbr-now/2009/09/rewrite-your-invisible-resume.html"> http://blogs.harvardbusiness.org/hbr/hbr-now/2009/09/rewrite-your-invisible-resume.html</a> อีกเช่นเคย ลองเข้าไปอ่านดูโดยคลิกที่ link</p>
<p>แต่ขอเก็บเนื้อหาไว้เพื่อการศึกษาในคราวต่อไปในกรณีที่ไม่สามารถคลิกเข้าไปที่เวปได้แล้ว<br />
<br/><div id="wp-private-box"><b>This is protected content. Please <a href="http://www.memoball.info/wp-login.php">Login</a> or <a href="http://www.memoball.info/wp-register.php">Register</a> for access.</b></div><br/><!--/protected--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.memoball.info/2009/09/09/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%80%e0%b8%82%e0%b8%b5%e0%b8%a2%e0%b8%99-resume/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mediawiki with Google Syntax Highlighter</title>
		<link>http://www.memoball.info/2009/07/09/mediawiki-with-google-syntax-highlighter/</link>
		<comments>http://www.memoball.info/2009/07/09/mediawiki-with-google-syntax-highlighter/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 07:16:03 +0000</pubDate>
		<dc:creator>memoball</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.memoball.info/?p=342</guid>
		<description><![CDATA[Google Syntax Highlighter เป็น javascript ที่ใช้เพื่อทำการเปลี่ยนข้อความที่เป็น source code ของภาษาต่างๆ ให้อยู่ในรูปแบบที่เข้าใจง่าย เนื่องจากเป็น javascript จึงสามารถนำไปใช้ได้ทุกเวปที่เป็น html โดยไม่จำเป็นว่าจะต้องเป็น wordpress เพียงอย่างเดียว ไม่ว่าจะเป็น mediawiki เป็นต้น &#60;! Enable some attribute ใน media wiki]]></description>
			<content:encoded><![CDATA[<p>Google Syntax Highlighter เป็น javascript ที่ใช้เพื่อทำการเปลี่ยนข้อความที่เป็น source code ของภาษาต่างๆ ให้อยู่ในรูปแบบที่เข้าใจง่าย เนื่องจากเป็น javascript จึงสามารถนำไปใช้ได้ทุกเวปที่เป็น html โดยไม่จำเป็นว่าจะต้องเป็น wordpress เพียงอย่างเดียว ไม่ว่าจะเป็น mediawiki เป็นต้น</p>
<p><!--WIKI "#การติดตั้ง Google Syntax Highlighter ใน wikimedia#" --><br />
&lt;!</p>
<h2>Enable some attribute ใน media wiki</h2>
<p><!--WIKI "#Enable some attribute ใน media wiki#" --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.memoball.info/2009/07/09/mediawiki-with-google-syntax-highlighter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Ribbon</title>
		<link>http://www.memoball.info/2009/06/24/jquery-ribbon/</link>
		<comments>http://www.memoball.info/2009/06/24/jquery-ribbon/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 03:40:04 +0000</pubDate>
		<dc:creator>memoball</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.memoball.info/?p=319</guid>
		<description><![CDATA[หลังจากตามหามานานสำหรับ code RIBBON ก็มีคนมาโพสใน DZone จนได้ ให้เขียนเล่นเองอยู่ตั้งนาน แต่ข้อเสียของตัวนี้ก็คือเหมือนกับ office มากไปหน่อยต้องลองเปลี่ยน theme เอา http://jqueryribbon.codeplex.com/]]></description>
			<content:encoded><![CDATA[<p>หลังจากตามหามานานสำหรับ code RIBBON ก็มีคนมาโพสใน DZone จนได้ ให้เขียนเล่นเองอยู่ตั้งนาน แต่ข้อเสียของตัวนี้ก็คือเหมือนกับ office มากไปหน่อยต้องลองเปลี่ยน theme เอา<br />
<a href="http://jqueryribbon.codeplex.com/">http://jqueryribbon.codeplex.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.memoball.info/2009/06/24/jquery-ribbon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>การทำ 3D tag cloud โดยใช้ jsTagCloud Plugin (jQuery)</title>
		<link>http://www.memoball.info/2009/06/24/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%97%e0%b8%b3-3d-tag-cloud-%e0%b9%82%e0%b8%94%e0%b8%a2%e0%b9%83%e0%b8%8a%e0%b9%89-jstagcloud-plugin-jquery/</link>
		<comments>http://www.memoball.info/2009/06/24/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%97%e0%b8%b3-3d-tag-cloud-%e0%b9%82%e0%b8%94%e0%b8%a2%e0%b9%83%e0%b8%8a%e0%b9%89-jstagcloud-plugin-jquery/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 03:01:56 +0000</pubDate>
		<dc:creator>memoball</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://memoball.memoball.com/?p=302</guid>
		<description><![CDATA[วันนี้ได้วิธีทำ tag cloud แบบสามมิติ เอาไว้ทำเล่นๆ ให้สวยงาม จึงเก็บไว้เป็นบันทึก แต่ยังไม่ได้แกะซอร์ส เลยยังไม่รู้ว่าจะมีผลต่อการทำ SEO หรือไม่]]></description>
			<content:encoded><![CDATA[<p>วันนี้ได้วิธีทำ tag cloud แบบสามมิติ เอาไว้ทำเล่นๆ ให้สวยงาม จึงเก็บไว้เป็นบันทึก แต่ยังไม่ได้แกะซอร์ส เลยยังไม่รู้ว่าจะมีผลต่อการทำ SEO หรือไม่</p>
<p><!--WIKI "#3D tag cloud (jsTagCloud Plugin) by Jquery#"--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.memoball.info/2009/06/24/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%97%e0%b8%b3-3d-tag-cloud-%e0%b9%82%e0%b8%94%e0%b8%a2%e0%b9%83%e0%b8%8a%e0%b9%89-jstagcloud-plugin-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

