<?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>DominixZ : Live Smart &#38; Geeky &#187; วิธีแก้ปัญหาเขียนโปรแกรม</title> <atom:link href="http://www.dominixz.com/blog/category/programming-solution/feed/" rel="self" type="application/rss+xml" /><link>http://www.dominixz.com/blog</link> <description>Productivity , Techology News ,Website Review , Web Standard , Live Smart and Geeky</description> <lastBuildDate>Wed, 10 Mar 2010 12:48:21 +0000</lastBuildDate> <generator>http://wordpress.org/?v=2.9.2</generator> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>วิธีเรียกใช้ Call Stored Procedure ของ PHP 5.2.6</title><link>http://www.dominixz.com/blog/programming-solution/how-to-call-stored-procedure-php-5-2-6/</link> <comments>http://www.dominixz.com/blog/programming-solution/how-to-call-stored-procedure-php-5-2-6/#comments</comments> <pubDate>Sat, 08 Aug 2009 04:30:48 +0000</pubDate> <dc:creator>DominixZ</dc:creator> <category><![CDATA[วิธีแก้ปัญหาเขียนโปรแกรม]]></category><guid
isPermaLink="false">http://www.dominixz.com/blog/?p=806</guid> <description><![CDATA[พอดีผมมีปัญหาในการเรียก Stored Procedure ด้วย mysql_query แบบธรรมดาซึ่งมันขึ้นว่า Stored Procedure Context ไม่เหมือนกัน หลังจากที่ไปลองๆอ่านจากหลายๆเว็บแล้ว ผมว่าคงเป็นปัญหาของ Version นี้ทางแก้ก็คือต้องรอ Version ต่อไป หรือไม่ก็ใช้ PDO ซะ !!
PDO คือตัวติดต่อกับฐานข้อมูลซึ่งไม่ได้ติดต่อได้เฉพาะ MySQL แต่ติดต่อได้มากมายไม่ว่าจะเป็น Oracle , MS SQL , PostgreSQL ฯลฯ ส่วนวิธีเรียกใช้นั้นไม่ยากเพียงแต่ต้องไปเปิด extension ของ php นะครับซึ่งใครจะใช้สำหรับ Database ตัวไหนมันจะเป็นชื่อประมาณนี้ pdo_Database เมื่อเปิดเสร็จแล้วมาดูวิธีการใช้งานเรียก Stored Procedure กันซึ่งเหมือนกับการ Query ข้อมูลเดะๆ$pdo = new PDO('mysql:dbname=duocorevp;host=127.0.0.1;port=8889', 'root', 'root');
print '&#38;lt;h3&#38;gt;PDO: simple select&#38;lt;/h3&#38;gt;';
foreach($pdo-&#38;gt;query('call countUsers();') as $row)
{
[...]]]></description> <content:encoded><![CDATA[<p>พอดีผมมีปัญหาในการเรียก Stored Procedure ด้วย mysql_query แบบธรรมดาซึ่งมันขึ้นว่า Stored Procedure Context ไม่เหมือนกัน หลังจากที่ไปลองๆอ่านจากหลายๆเว็บแล้ว ผมว่าคงเป็นปัญหาของ Version นี้ทางแก้ก็คือต้องรอ Version ต่อไป หรือไม่ก็ใช้ PDO ซะ !!</p><p>PDO คือตัวติดต่อกับฐานข้อมูลซึ่งไม่ได้ติดต่อได้เฉพาะ MySQL แต่ติดต่อได้มากมายไม่ว่าจะเป็น Oracle , MS SQL , PostgreSQL ฯลฯ ส่วนวิธีเรียกใช้นั้นไม่ยากเพียงแต่ต้องไปเปิด extension ของ php นะครับซึ่งใครจะใช้สำหรับ Database ตัวไหนมันจะเป็นชื่อประมาณนี้ pdo_<em>Database </em>เมื่อเปิดเสร็จแล้วมาดูวิธีการใช้งานเรียก Stored Procedure กันซึ่งเหมือนกับการ Query ข้อมูลเดะๆ</p><pre class="brush: php;">
$pdo = new PDO('mysql:dbname=duocorevp;host=127.0.0.1;port=8889', 'root', 'root');
print '&amp;lt;h3&amp;gt;PDO: simple select&amp;lt;/h3&amp;gt;';
foreach($pdo-&amp;gt;query('call countUsers();') as $row)
{
 print_r($row);
}
</pre><p>สังเกตุได้ว่าเหมือน Query เปะแต่จะเป็นแนวใช้ Object แทนแบบ functional เพิ่มเติดอีกนิดถ้าเรารู้อยู่แล้วว่ามันจะออกมาแถวเดียวเราสามารถทำแบบนี้ได้เลยนะครับ</p><pre class="brush: php;">
$result = $pdo-&amp;gt;query('call countUsers()')-&amp;gt;fetch();
</pre><p>แต่การเขียนแบบนี้ ก็อาจมีข้อผิดพลาดเกิดขึ้นได้ในกรณีที่ไม่มีค่าส่งกลับมา ดังนั้นเราควรเขียนดักไว้สักเล็กน้อยแบบนี้</p><pre class="brush: php;">
if($pdo-&amp;gt;query('call countUsers()'))
$result = $pdo-&amp;gt;fetch();
else
    $result = null;
</pre><p>แบบนี้เป็นต้นครับ ไม่ยากเลยใช่ไหมครับวันนี้ผมลาไปก่อนแล้วครับ <img
src='http://www.dominixz.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' title="วิธีเรียกใช้ Call Stored Procedure ของ PHP 5.2.6" /> </pre> Similar Posts:<ul><li><a
href="http://www.dominixz.com/blog/review/oracle-xe-10g-vs-mysql-v516/" rel="bookmark" title="February 11, 2008">Oracle XE 10g [vs] MySQL v5.1.6 สงครามของฟรี !</a></li><li><a
href="http://www.dominixz.com/blog/programming-solution/use-jsp-connect-to-microsoft-sql-server-2005-sql-authenticate/" rel="bookmark" title="February 4, 2009">ใช้ JSP ติดต่อฐานข้อมูล Microsoft SQL Server 2005 แบบ SQL Authenticate</a></li><li><a
href="http://www.dominixz.com/blog/software-tips/change-default-storage-engine-mysql-query-browser/" rel="bookmark" title="July 20, 2008">เปลี่ยน Default Storage Engine ใน MySQL Query Browser</a></li></ul><img
src="http://www.dominixz.com/blog/?ak_action=api_record_view&id=806&type=feed" alt="programming solution "  title="วิธีเรียกใช้ Call Stored Procedure ของ PHP 5.2.6" />]]></content:encoded> <wfw:commentRss>http://www.dominixz.com/blog/programming-solution/how-to-call-stored-procedure-php-5-2-6/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>10 ข้อแนะนำเวลาใช้ PHP MVC Framework</title><link>http://www.dominixz.com/blog/programming-solution/suggest-solution-for-php-mvc-framework/</link> <comments>http://www.dominixz.com/blog/programming-solution/suggest-solution-for-php-mvc-framework/#comments</comments> <pubDate>Mon, 15 Jun 2009 18:19:12 +0000</pubDate> <dc:creator>DominixZ</dc:creator> <category><![CDATA[วิธีแก้ปัญหาเขียนโปรแกรม]]></category><guid
isPermaLink="false">http://www.dominixz.com/blog/?p=704</guid> <description><![CDATA[ห่างหายไปนานพอตัวแถมยังติดค้าง Barcamp Bangkok วันที่ 2 อีกถ้าว่างแล้วเดียวผมจะรีบเขียนเลยครับผม   เอาละเข้าเรื่องกันเลยวันนี้ผมจะฝากข้อแนะนำง่ายๆไว้ละกันครับ 10 ข้อแยก Business Logic ให้ออกจาก View อย่างชัดเจน เช่น ในโค้ดส่วนของ View ไม่ควรมีประมาณนี้ครับ
if(user_login() &#38;&#38; not_admin()) ควรจะเปลี่ยนให้เป็นตัวแปรแค่นี้พอ if($logged_in_and) เพื่อความง่ายในการอ่านและแยกส่วน Business Logic
พยายามอย่าเขียนโค้ดซ้ำ ถ้ารู้ตัวว่ากำลังเขียนโค้ดซ้ำ ให้พยายามหาทางแก้ เช่น เขียน function is_login() ใน user class เพื่อถามว่า login รึยัง แต่ดันใช้ function นี้ในคลาสอื่นๆ ดังนั้นเราควรจะย้าย function is_login() ไปอยู่ภายใต้คลาสแม่ที่แต่ละ class อื่นๆของเราถูก implement ขึ้นมาเช่น Controller
หลายๆ Framework จะไม่มีการกำหนดว่าเราต้องกำหนดชื่อในไฟล์และโฟลเดอร์ view อย่างไร [...]]]></description> <content:encoded><![CDATA[<p>ห่างหายไปนานพอตัวแถมยังติดค้าง Barcamp Bangkok วันที่ 2 อีกถ้าว่างแล้วเดียวผมจะรีบเขียนเลยครับผม <img
src='http://www.dominixz.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' title="10 ข้อแนะนำเวลาใช้ PHP MVC Framework" /> เอาละเข้าเรื่องกันเลยวันนี้ผมจะฝากข้อแนะนำง่ายๆไว้ละกันครับ 10 ข้อ</p><ol><li>แยก Business Logic ให้ออกจาก View อย่างชัดเจน เช่น ในโค้ดส่วนของ View ไม่ควรมีประมาณนี้ครับ<br
/> if(user_login() &amp;&amp; not_admin()) ควรจะเปลี่ยนให้เป็นตัวแปรแค่นี้พอ if($logged_in_and) เพื่อความง่ายในการอ่านและแยกส่วน Business Logic</li><li>พยายามอย่าเขียนโค้ดซ้ำ ถ้ารู้ตัวว่ากำลังเขียนโค้ดซ้ำ ให้พยายามหาทางแก้ เช่น เขียน function is_login() ใน user class เพื่อถามว่า login รึยัง แต่ดันใช้ function นี้ในคลาสอื่นๆ ดังนั้นเราควรจะย้าย function is_login() ไปอยู่ภายใต้คลาสแม่ที่แต่ละ class อื่นๆของเราถูก implement ขึ้นมาเช่น Controller</li><li>หลายๆ Framework จะไม่มีการกำหนดว่าเราต้องกำหนดชื่อในไฟล์และโฟลเดอร์ view อย่างไร และเวลาเรียกก็ต้องทำเอง ผมมีสิ่งที่ผมลองมาแล้ว รู้สึกว่าไม่ได้ผลคือการที่พยายามจะเรียก view ที่ประกอบกัน เช่นมี header footer จากภายใน Controller สรุปแล้วมันยุ่งเหยิงมาก ส่วนวิธีแก้ก็คือในไฟล์ view แต่ละหน้านั้นให้ include header footer ลงไปเลย แต่พยายามใช้เป็นแบบ function ทำเองจะได้ปรับแก้ไขสะดวกเพราะมันจะมีพวก parameter บางอย่างที่ต้องเปลี่ยนไปในแต่ละหน้าแต่ใช้ header ตัวเดียวกัน เช่น title</li><li>เรื่องการ validation และเรื่องจัดการเวลาเกิด error เป็นสิ่งที่ไม่ควรละเลย เพราะเราต้องทำการ validation กันอยู่หลายๆหน้า ซึ่งมีลักษณะคล้ายกันดังนั้น ถ้าเขียนไม่ดีละก็เสียเวลาเขียนซ้ำบ่อยแน่</li><li>ค่า Default เป็นเรื่องที่ไม่ควรละเลย เช่น ถ้าตัวแปรนี้ไม่ได้ถูก set มาควรมีค่าเป็นอะไรเพราะใช้บ่อยในพวก form</li><li>ควรหา Editor ที่สามารถใช้กับ PHP Framework ของคุณได้ เพื่อประหยัดเวลาในการหา function ฯลฯ</li><li>ก่อนลงมือเขียนจริง ควรสร้าง Class Diagram และ ER-Diagram ก่อน แต่ถ้าคุณไม่ถนัด เวลาทำงานเมื่อคุณสะกิดใจว่ามันผิดแปลก อย่าฝืนทำต่อแต่ต้องแก้ ให้เป็นไปอย่างที่มันควรจะเป็นซะ อย่าปล่อยปัญหาไว้</li><li>ถ้า Framework ไม่มี Unit Test มาให้ควรใช้พวก Unit Test ของตัวอื่นมาใช้ซะ เพื่อระบบที่มีคุณภาพ เช่น Firephp เป็นตัวหนึ่งที่ใช้ได้</li><li>หัดทำบ่อยๆจะได้ชิน และควรตั้งเป้าหมายให้มากขึ้น เช่น รองรับ i18n , การเปลี่ยน template ฯลฯ</li><li>ค้นหา plugin ต่างๆก่อนที่คิดจะสร้างขึ้นมา ไม่แน่ว่าจะได้งานที่ดีกว่า และประหยัดเวลากว่า</li></ol><p>วันนี้ก็ลากับ 10 ข้อง่ายๆสำหรับคนใช้ PHP MVC Framework นะครับ แต่ใช้ได้กับ Framework ตัวอื่นๆด้วยนะครับ โดยนี้คือความเห็นส่วนตัวของผมและงานที่ผมทำคือ Web Application ซึ่งมีอะไรมากมายจริงๆ</p> Similar Posts:<ul><li><a
href="http://www.dominixz.com/blog/productivity/exam-finished-return-of-dominixz/" rel="bookmark" title="July 27, 2007">สอบเสร็จแล้วครับ Return of the Dominixz</a></li><li><a
href="http://www.dominixz.com/blog/programming-solution/clean-tag-html-with-jquery/" rel="bookmark" title="July 19, 2008">ทำความสะอาด Tag Html ด้วย jQuery</a></li><li><a
href="http://www.dominixz.com/blog/life-talk/iywc6-experience/" rel="bookmark" title="October 20, 2008">เล่าสู่กันฟัง IYWC รุ่นที่ 6</a></li></ul><img
src="http://www.dominixz.com/blog/?ak_action=api_record_view&id=704&type=feed" alt="programming solution "  title="10 ข้อแนะนำเวลาใช้ PHP MVC Framework" />]]></content:encoded> <wfw:commentRss>http://www.dominixz.com/blog/programming-solution/suggest-solution-for-php-mvc-framework/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>เข้าใจกับ jQuery Ajax Cross Domain</title><link>http://www.dominixz.com/blog/programming-solution/understanding-jquery-ajax-cross-domain/</link> <comments>http://www.dominixz.com/blog/programming-solution/understanding-jquery-ajax-cross-domain/#comments</comments> <pubDate>Mon, 27 Apr 2009 09:04:53 +0000</pubDate> <dc:creator>DominixZ</dc:creator> <category><![CDATA[วิธีแก้ปัญหาเขียนโปรแกรม]]></category> <category><![CDATA[ajax]]></category> <category><![CDATA[cross domain]]></category> <category><![CDATA[jquery]]></category><guid
isPermaLink="false">http://www.dominixz.com/blog/?p=652</guid> <description><![CDATA[หลังจากที่ผมใช้ jQuery เป็น Javascript Framework หลักมาตลอดตอนนี้ ผมพึงได้ทำอะไรใหม่ๆ มากกว่าที่ผมทำอยู่เป็นประจำเช่น การทำ Web Service ที่ Javascript จะต้องเป็นคนเรียก วันนี้ผมก็พึุงได้รู้ว่าจริงๆแล้ว jQuery Ajax ไม่ได้โหลด Cross Domain ได้ทุก function หลังจากลอง Search ดูก็พึุงรู้ว่าจริงๆแล้วตอนนี้มีแค่getJSON
getScript
$.ajaxเท่านั้นที่ทำได้ โดย $.ajax ก็คือการ setup ให้ datatype เป็น JSONP  หรือไม่ก็ Script เท่านั้นถึงทำได้ ดังนั้นเวลาเรียกให้ควร check เรื่องพวกนี้เป็นพิเศษ เพราะการทำภายใต้ domain เดียวกันนั้น คุณสามารถใช้พวก $.get , $.post ได้ตามสะดวก แต่พอจะทำ cross domain แล้วนั้นกลับทำไม่ได้ ดังนั้น ถ้าคิดจะทำ Web Service [...]]]></description> <content:encoded><![CDATA[<p>หลังจากที่ผมใช้ jQuery เป็น Javascript Framework หลักมาตลอดตอนนี้ ผมพึงได้ทำอะไรใหม่ๆ มากกว่าที่ผมทำอยู่เป็นประจำเช่น การทำ Web Service ที่ Javascript จะต้องเป็นคนเรียก วันนี้ผมก็พึุงได้รู้ว่าจริงๆแล้ว jQuery Ajax ไม่ได้โหลด Cross Domain ได้ทุก function หลังจากลอง Search ดูก็พึุงรู้ว่าจริงๆแล้วตอนนี้มีแค่</p><ul><li>getJSON</li><li>getScript</li><li>$.ajax</li></ul><p>เท่านั้นที่ทำได้ โดย $.ajax ก็คือการ setup ให้ datatype เป็น JSONP  หรือไม่ก็ Script เท่านั้นถึงทำได้ ดังนั้นเวลาเรียกให้ควร check เรื่องพวกนี้เป็นพิเศษ เพราะการทำภายใต้ domain เดียวกันนั้น คุณสามารถใช้พวก $.get , $.post ได้ตามสะดวก แต่พอจะทำ cross domain แล้วนั้นกลับทำไม่ได้ ดังนั้น ถ้าคิดจะทำ Web Service ที่ Javascript สามารถเรียกได้ ควรทดสอบด้วย getJSON หรือ getScript เท่านั้นครับ</p><p>ส่วนถ้าใช้กับพวก Server Side Script จะมีวิธีที่เรียกว่า Proxy ซึ่งทำให้สะดวกในการทำงาน ซึ่งเราสามารถใช้ได้ทุก Ajax เช่น $.get $.post ก็ใช้ได้หมด โดยมีตัวอย่างที่ทำเข้าใจอย่างมากของฝรั่งเขา ดูได้ที่นี้เลยครับ<br
/> <a
rel="nofollow" target="_blank" href="http://jquery-howto.blogspot.com/2009/04/cross-domain-ajax-querying-with-jquery.html">http://jquery-howto.blogspot.com/2009/04/cross-domain-ajax-querying-with-jquery.html</a></p><p>ปล. สำหรับลิงค์ที่้ให้ไป อ่าน comment ด้วยจะได้เห็นทางเลือกที่เจ๋งๆอีกนิดหน่อย</p> Similar Posts:<ul><li><a
href="http://www.dominixz.com/blog/programming-solution/ajax-cross-domain-with-codeigniter-and-jquery/" rel="bookmark" title="March 6, 2009">วิธีทำ Ajax Cross Domain แบบสมบูรณ์ด้วย CodeIgniter และ jQuery</a></li><li><a
href="http://www.dominixz.com/blog/programming-solution/common-web-develop-problems-1/" rel="bookmark" title="March 27, 2009">ปัญหางานทั่วไปที่เจอในงานพัฒนาเว็บ (1)</a></li><li><a
href="http://www.dominixz.com/blog/review/web-development/codeigniter-jquery-extjs-adobe-air/" rel="bookmark" title="April 25, 2008">Codeigniter , jQuery , Ext-Js และ Adobe AIR</a></li></ul><img
src="http://www.dominixz.com/blog/?ak_action=api_record_view&id=652&type=feed" alt="programming solution "  title="เข้าใจกับ jQuery Ajax Cross Domain" />]]></content:encoded> <wfw:commentRss>http://www.dominixz.com/blog/programming-solution/understanding-jquery-ajax-cross-domain/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>การขึ้นบรรทัดใหม่ของไฟล์ด้วย Ruby บน Windows</title><link>http://www.dominixz.com/blog/programming-solution/new-line-file-with-ruby-on-windows/</link> <comments>http://www.dominixz.com/blog/programming-solution/new-line-file-with-ruby-on-windows/#comments</comments> <pubDate>Fri, 17 Apr 2009 14:31:17 +0000</pubDate> <dc:creator>DominixZ</dc:creator> <category><![CDATA[วิธีแก้ปัญหาเขียนโปรแกรม]]></category><guid
isPermaLink="false">http://www.dominixz.com/blog/?p=643</guid> <description><![CDATA[วันนี้ด้วยการจะทำการจัดการกับ Textfile แต่ก็ติดปัญหาเล็กน้อยว่า ทำไมใช้ myfile.puts แล้วไม่มีการขึ้นบรรทัดใหม่ให้บน Windows ก็งงไปพักใหญ่ ใช้ print หรือ write ก็แล้วโดยใส่ \n แล้วก็ไม่ติด จนกระทั่งลองทำไฟล์ปกติขึ้นมาอันหนึ่งแล้ว ลองเอาไปเปิดดูใน Ruby ก็เห็นว่าเขาเขียนด้วย \r\n โดย \n จริงๆคือการขึ้นบรรทัดใหม่ ส่วน \r ก็คือ carriage return ซึ่งเป็นตัวอักษรตัวหนึ่งใน ASCII ซึ่งใน windows คงหมายถึงกด &#8220;enter&#8221; ดังนั้นวิธีแก้ปัญหาก็ค้นพบแล้วก็คือการใส่ \r\n เพื่อการขึ้นบรรทัดใหม่ โดยใช้กับคำสั่ง write หรือ print ก็ได้ (แต่ใช้กะ puts มะได้นะ)
ตัวอย่างเช่น
myfile = File.new(&#8220;test.txt&#8221;,&#8221;w&#8221;)
3.times { myfile.write(&#8220;hello\r\n&#8221;) }
myfile.close
ประมาณนี้เป็นต้น ลองทำดูครับ
Similar Posts:ปัญหาของ Ruby [...]]]></description> <content:encoded><![CDATA[<p>วันนี้ด้วยการจะทำการจัดการกับ Textfile แต่ก็ติดปัญหาเล็กน้อยว่า ทำไมใช้ myfile.puts แล้วไม่มีการขึ้นบรรทัดใหม่ให้บน Windows ก็งงไปพักใหญ่ ใช้ print หรือ write ก็แล้วโดยใส่ \n แล้วก็ไม่ติด จนกระทั่งลองทำไฟล์ปกติขึ้นมาอันหนึ่งแล้ว ลองเอาไปเปิดดูใน Ruby ก็เห็นว่าเขาเขียนด้วย \r\n โดย \n จริงๆคือการขึ้นบรรทัดใหม่ ส่วน \r ก็คือ <a
rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Carriage_return">carriage return</a> ซึ่งเป็นตัวอักษรตัวหนึ่งใน ASCII ซึ่งใน windows คงหมายถึงกด &#8220;enter&#8221; ดังนั้นวิธีแก้ปัญหาก็ค้นพบแล้วก็คือการใส่ \r\n เพื่อการขึ้นบรรทัดใหม่ โดยใช้กับคำสั่ง write หรือ print ก็ได้ (แต่ใช้กะ puts มะได้นะ)</p><p>ตัวอย่างเช่น<br
/> myfile = File.new(&#8220;test.txt&#8221;,&#8221;w&#8221;)<br
/> 3.times { myfile.write(&#8220;hello\r\n&#8221;) }<br
/> myfile.close</p><p>ประมาณนี้เป็นต้น ลองทำดูครับ <img
src='http://www.dominixz.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' title="การขึ้นบรรทัดใหม่ของไฟล์ด้วย Ruby บน Windows" /></p> Similar Posts:<ul><li><a
href="http://www.dominixz.com/blog/productivity/ruby-problem-for-java-programmer/" rel="bookmark" title="August 5, 2008">ปัญหาของ Ruby ! สำหรับชาว Java</a></li><li><a
href="http://www.dominixz.com/blog/productivity/firefox-3-add-on-enter-selects/" rel="bookmark" title="September 5, 2008">Firefox 3 Add-on : Enter Selects</a></li><li><a
href="http://www.dominixz.com/blog/review/simply-rails-2/" rel="bookmark" title="September 15, 2008">Simply Rails 2 ~ Book Review ~</a></li></ul><img
src="http://www.dominixz.com/blog/?ak_action=api_record_view&id=643&type=feed" alt="programming solution "  title="การขึ้นบรรทัดใหม่ของไฟล์ด้วย Ruby บน Windows" />]]></content:encoded> <wfw:commentRss>http://www.dominixz.com/blog/programming-solution/new-line-file-with-ruby-on-windows/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>JRuby on Rails บน Google App Engine</title><link>http://www.dominixz.com/blog/programming-solution/jruby-on-rails-%e0%b8%9a%e0%b8%99-google-app-engine/</link> <comments>http://www.dominixz.com/blog/programming-solution/jruby-on-rails-%e0%b8%9a%e0%b8%99-google-app-engine/#comments</comments> <pubDate>Fri, 10 Apr 2009 15:38:39 +0000</pubDate> <dc:creator>DominixZ</dc:creator> <category><![CDATA[วิธีแก้ปัญหาเขียนโปรแกรม]]></category><guid
isPermaLink="false">http://www.dominixz.com/blog/?p=639</guid> <description><![CDATA[วันนี้ผมทำได้ตั้งแต่บ่ายๆละแต่พึงมีเวลาพอจะมาเขียน Blog ต่อในเรื่องของ Google App Engine ผมมีตัวที่ทำเสร็จแล้วให้ทุกท่านสามารถลองไป Deploy บน GAE ได้เลยโดยดาวโหลดได้เลยจากไฟล์นี้ HelloRails ได้เลยครับ ผมขอสรุปวิธีทำดังนี้ครับ
โดยก่อนเริ่มเราต้องมี gem ดังนี้ก่อนRails
Rake
Warblerเสร็จแล้วทำตามขั้นตอนดังนี้เราก็สร้าง project Rails ตามปกติ
เข้าไปใน folder project rails จาก command-line พิมพ์ warble pluginize
เสร็จแล้วตามด้วย warble config ครับ
ใน vendor/rails ให้เราลบโฟลเดอร์ activerecord ออก
ตามด้วยลบโฟลเดอร์ test ที่ิอยู่ในโฟลเดอร์ดังนี้ actionmailer , actionpack , activeresource , activesupport , railties
เสร็จแล้วให้โหลด 4 ไฟล์ jar หลักเหมือนเมื่อวานคือ JRuby-GAE-Jar
เสร็จแล้วโหลดไฟล์ Gae-Ruby-lib.zip นี้มาแตก zip ใส่ใน lib [...]]]></description> <content:encoded><![CDATA[<p>วันนี้ผมทำได้ตั้งแต่บ่ายๆละแต่พึงมีเวลาพอจะมาเขียน Blog ต่อในเรื่องของ Google App Engine ผมมีตัวที่ทำเสร็จแล้วให้ทุกท่านสามารถลองไป Deploy บน GAE ได้เลยโดยดาวโหลดได้เลยจากไฟล์นี้ <a
href="http://www.dominixz.com/files/hellorails.zip">HelloRails</a> ได้เลยครับ ผมขอสรุปวิธีทำดังนี้ครับ</p><p>โดยก่อนเริ่มเราต้องมี gem ดังนี้ก่อน</p><ul><li>Rails</li><li>Rake</li><li>Warbler</li></ul><p>เสร็จแล้วทำตามขั้นตอนดังนี้</p><ol><li>เราก็สร้าง project Rails ตามปกติ</li><li>เข้าไปใน folder project rails จาก command-line พิมพ์ warble pluginize</li><li>เสร็จแล้วตามด้วย warble config ครับ</li><li>ใน vendor/rails ให้เราลบโฟลเดอร์ activerecord ออก</li><li>ตามด้วยลบโฟลเดอร์ test ที่ิอยู่ในโฟลเดอร์ดังนี้ actionmailer , actionpack , activeresource , activesupport , railties</li><li>เสร็จแล้วให้โหลด 4 ไฟล์ jar หลักเหมือนเมื่อวานคือ <a
href="http://www.dominixz.com/files/jruby-gae-lib.zip">JRuby-GAE-Jar</a></li><li>เสร็จแล้วโหลดไฟล์ <a
href="http://www.dominixz.com/files/gae-ruby-lib.zip">Gae-Ruby-lib.zip</a> นี้มาแตก zip ใส่ใน lib ครับ</li><li>คราวนี้เราก็สร้างไฟล์ และแก้ไขไฟล์ตามไฟล์นี้ครับ <a
href="http://www.dominixz.com/files/google_app_engine.rb">google_app_engine.rb</a></li><li>โดยดูจากคำว่า file แล้วก็ตัวอักษรภายในนั้นและที่จะอยู่ในไฟล์แต่ละไฟล์ ถ้าไฟล์ไหนมีข้อมูลอยู่แล้วให้ลบทิ้งหมด แล้วคัดลอกไฟล์ google_app_engine ใส่ไปเลย</li><li>เสร็จแล้วก็เข้า command-line พิมพ์ warble ในโฟลเดอร์ project Rails ของเรา</li></ol><p>ส่วนถ้าไม่ใช้ Windows เราสามารถที่จะทำแบบนี้ได้เลย</p><ul><li>rails <em>ชื่อโปรเจคrails</em> -m google_app_engine.rb</li></ul><p>แล้วทุกอย่างก็จะเสร็จพร้อมลุย แต่อันนี้ต้องมี JRuby นะสำหรับคนที่จะใช้ script นี้ แต่ด้านบนตามขั้นตอนผมใช้ ruby ธรรมดา แต่การใช้ script จะไม่มีไฟล์ big_table_servlet_store.rb ครับ ไม่รู้ว่าจำเป็นไหมแต่ตอนผมทำเป็นขั้นตอนพอเอาไฟล์นี้มาใส่ก็หาย เลยคิดว่าน่าจะเกี่ยวแต่คนเขียน script อาจจะลืม</p> Similar Posts:<ul><li><a
href="http://www.dominixz.com/blog/programming-solution/jruby-on-google-app-engine/" rel="bookmark" title="April 10, 2009">(J)Ruby บน Google App Engine</a></li><li><a
href="http://www.dominixz.com/blog/life-talk/my-experience-for-achieve-things/" rel="bookmark" title="August 26, 2008">ตอนนี้เราทำอะไรเป็นมั่งแล้ว ?</a></li><li><a
href="http://www.dominixz.com/blog/life-talk/what-principle-do-you-use/" rel="bookmark" title="July 23, 2008">ตาสว่างกับความสับสนในการเขียน Program</a></li></ul><img
src="http://www.dominixz.com/blog/?ak_action=api_record_view&id=639&type=feed" alt="programming solution "  title="JRuby on Rails บน Google App Engine" />]]></content:encoded> <wfw:commentRss>http://www.dominixz.com/blog/programming-solution/jruby-on-rails-%e0%b8%9a%e0%b8%99-google-app-engine/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>(J)Ruby บน Google App Engine</title><link>http://www.dominixz.com/blog/programming-solution/jruby-on-google-app-engine/</link> <comments>http://www.dominixz.com/blog/programming-solution/jruby-on-google-app-engine/#comments</comments> <pubDate>Thu, 09 Apr 2009 18:43:37 +0000</pubDate> <dc:creator>DominixZ</dc:creator> <category><![CDATA[วิธีแก้ปัญหาเขียนโปรแกรม]]></category><guid
isPermaLink="false">http://www.dominixz.com/blog/?p=634</guid> <description><![CDATA[หลังจากใช้ความพยายามมา 2 วันในการพยายามทำ Hello World JRuby ขึ้น Google App Engine ให้ได้ซึ่งจากหลายๆแหล่งผมพยายามทำตาม เสร็จแล้วก็ติดปัญหาจุกจิกมากมาย ซึ่งผมก็เชื่อเขาว่าให้ใช้ JRuby แต่สุดท้ายวิธีที่ผมได้ผลก็คือ Ruby ธรรมดาเนี้ยและ ได้แบบไม่มีปัญหาเลยด้วยครับผม วันนี้ผมเอาวิธีทำ Sinatra บน Google App Engine มาฝากครับ
http://blog.bigcurl.de/2009/04/running-sinatra-apps-on-google.html
ซึ่งจริงๆแล้วผมก็ทำตามจากที่นี้ทั้งหมดครับ เพียงแต่ว่ามันไม่ได้ตามเปะๆเจอปัญหาต่างๆนานา ที่ค้นหาใน Google ก็ไม่เจอ แต่ผมพอมีความคุ้นกับ Java/Servlet อยู่บ้างเลยพอเข้าใจว่าต้องทำอะไร พอคล่ำๆไปสักพักก็เลยมาถูกทาง ดังนั้นผมจะสรุปจากบทความด้านบนนะครับผม มีขั้นตอนทำดังนี้ครับ อาจจะยาวหน่อย โดยอันนี้ผมทำแบบ Version Windows ที่ผมทำได้จริงนะครับ แต่ก่อนทำคุณต้องมี Account Google App Engine ก่อนนะครับ แล้วก็สร้าง App-id สักตัวหนึ่งใช้ Ruby 1.8.6 One-Click-Installer
พอลงเสร็จ ก็เข้า Command-line จาก [...]]]></description> <content:encoded><![CDATA[<p>หลังจากใช้ความพยายามมา 2 วันในการพยายามทำ Hello World JRuby ขึ้น Google App Engine ให้ได้ซึ่งจากหลายๆแหล่งผมพยายามทำตาม เสร็จแล้วก็ติดปัญหาจุกจิกมากมาย ซึ่งผมก็เชื่อเขาว่าให้ใช้ JRuby แต่สุดท้ายวิธีที่ผมได้ผลก็คือ Ruby ธรรมดาเนี้ยและ ได้แบบไม่มีปัญหาเลยด้วยครับผม วันนี้ผมเอาวิธีทำ Sinatra บน Google App Engine มาฝากครับ</p><p><a
rel="nofollow" target="_blank" href="http://blog.bigcurl.de/2009/04/running-sinatra-apps-on-google.html">http://blog.bigcurl.de/2009/04/running-sinatra-apps-on-google.html</a></p><p>ซึ่งจริงๆแล้วผมก็ทำตามจากที่นี้ทั้งหมดครับ เพียงแต่ว่ามันไม่ได้ตามเปะๆเจอปัญหาต่างๆนานา ที่ค้นหาใน Google ก็ไม่เจอ แต่ผมพอมีความคุ้นกับ Java/Servlet อยู่บ้างเลยพอเข้าใจว่าต้องทำอะไร พอคล่ำๆไปสักพักก็เลยมาถูกทาง ดังนั้นผมจะสรุปจากบทความด้านบนนะครับผม มีขั้นตอนทำดังนี้ครับ อาจจะยาวหน่อย โดยอันนี้ผมทำแบบ Version Windows ที่ผมทำได้จริงนะครับ แต่ก่อนทำคุณต้องมี Account Google App Engine ก่อนนะครับ แล้วก็สร้าง App-id สักตัวหนึ่ง</p><ol><li>ใช้ <a
rel="nofollow" target="_blank" href="http://rubyforge.org/frs/download.php/29263/ruby186-26.exe">Ruby 1.8.6 One-Click-Installer</a></li><li>พอลงเสร็จ ก็เข้า Command-line จาก run -&gt; cmd</li><li>พิมพ์ gem install <code>rake sinatra warbler</code></li><li>ทำการสร้าง folder ใน drive C: เป็น sinatra-app</li><li>ภายใน folder sinatra-app ให้สร้าง folder ดังนี้เพิ่มไป <code>views public config lib</code></li><li>พอสร้าง folder เสร็จก็สร้าง<span
style="color: #ff0000;">ไฟล์</span>ดังนี้ครับ <code>config.ru , app.rb , appengine-web.xml</code></li><li>เสร็จแล้วไป copy โค้ดใส่แต่ละไฟล์ที่นี้ <a
rel="nofollow" target="_blank" href="http://gist.github.com/91801">http://gist.github.com/91801</a></li><li>จะสังเกตว่ามีไฟล์ warble.rb ด้วยอีกไฟล์ให้สร้างใน folder config ดังนั้นไฟล์นี้จะอยู่ config/warble.rb</li><li>ขั้นตอนนี้เป็นขั้นตอนลัดนะครับ เพราะมีบางตัว run ใน windows ไม่ผ่านผมเลยทำการรวมไฟล์ lib ที่จำเป็นไว้ให้เรียบร้อยแล้ว <a
href="http://www.dominixz.com/files/jruby-gae-lib.zip">โหลดได้เลย</a></li><li>พอโหลดเสร็จก็นำไปแตก zip ที่ folder ใน sinatra-app/lib นะครับ</li><li>เสร็จแล้วก็เข้า command-line แล้วไปที่ folder sinatra-app โดยพิมพ์ c: ตามด้วย cd\ ตามด้วย cd sinatra-app</li><li>พอเข้ามาถึงพิมพ์ warble เฉยๆเลยมันก็จะทำการจัดการให้เสร็จ</li><li><code>เปิดไฟล์ </code><code>sinatra-app/tmp/war/WEB-INF/gems/gems/sinatra-0.9.1.1/lib/sinatra.rb<br
/> </code></li><li>ทำการ comment (ใช้สัญลักษณ์ #) ที่บรรทัดสุดท้ายที่เขียนว่า <code>use_in_file_templates!</code></li><li>แล้วไปเรียก warble ใน folder sinatra-app เหมือนเดิมอีกที</li><li>เสร็จแล้วให้ไปโหลด <a
rel="nofollow" target="_blank" href="http://googleappengine.googlecode.com/files/appengine-java-sdk-1.2.0.zip">Google App Engine SDK</a></li><li>เอาไปแตกอยู่ drive C: เหมือนกัน (เพื่อความง่าย) และเปลี่ยนชื่อโฟลเดอร์เป็น appengine-java-sdk</li><li>เสร็จแล้วก็เข้า command-line และไปอยู่ใน drive C: root (C:\)</li><li>ทดลอง app ด้วยการพิมพ์ appengine-java-sdk\bin\appcfg.cmd sinatra-app\tmp\war</li><li>ถ้าไม่มีอะไรผิดพลาดมันจะขึ้นบอกว่า app ถูก run อยู่ที่ http://localhost:8080 เราลองเข้าไปดูว่าขึ้น Hello ไหม</li><li>ถ้าขึ้นละก็เตรียม upload ขึ้น app กันได้เลยแต่ต้องแก้นิดหน่อย</li><li>เปิดไฟล์ใน sinatra-app/appengine-web.xml</li><li>เปลี่ยนจาก <code>YOUR-APPLICATION-ID</code> เป็น app-id ของคุณ (app-id คือชื่อ app ที่ตั้งใน Google App Engine)</li><li>เสร็จแล้วก็ warble</li><li>เข้าไป drive C: พิมพ์ appengine-java-sdk\bin\appcfg.cmd update sinatra-app\tmp\war (แบบนี้เท่านั้นห้ามพิมพ์ / แทน \)</li><li>ถ้าถูกต้องมันจะถาม email กับ password เราก็ใส่ไปแล้วก็รอๆๆ</li><li>พอเสร็จเราก็เข้าไปดูได้เลยที่<em> app-id-ของคุณ</em>.appspot.com</li><li>ครั้งแรกจะนานพอดูเลย แล้วพอครั้งหลังๆก็จะเร็วขึ้น (รอ compile นะและ)</li></ol><p>เสร็จแล้วววว คำสั่ง appcfg.cmd นั้นใช้ใน windows นะครับถ้าใช้ linux หรือ mac osx จะใช้ appcfg.sh แทนนะครับ หวังว่าคงชอบ Ruby คงมีเฮกันแล้วคราวนี้</p> Similar Posts:<ul><li><a
href="http://www.dominixz.com/blog/programming-solution/jruby-on-rails-%e0%b8%9a%e0%b8%99-google-app-engine/" rel="bookmark" title="April 10, 2009">JRuby on Rails บน Google App Engine</a></li><li><a
href="http://www.dominixz.com/blog/mac-experience/begin-with-mac/" rel="bookmark" title="July 18, 2009">ประสบการณ์ใช้ Mac ตอนที่ 1 : เริ่มต้นกับ Mac</a></li><li><a
href="http://www.dominixz.com/blog/geek-tips/%e0%b8%81%e0%b8%b3%e0%b8%88%e0%b8%b1%e0%b8%94-zitaexe-%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b8%a5%e0%b8%b9%e0%b8%81%e0%b8%97%e0%b8%b8%e0%b9%88%e0%b8%87/" rel="bookmark" title="February 11, 2009">กำจัด Zita.exe แบบลูกทุ่ง</a></li></ul><img
src="http://www.dominixz.com/blog/?ak_action=api_record_view&id=634&type=feed" alt="programming solution "  title="(J)Ruby บน Google App Engine" />]]></content:encoded> <wfw:commentRss>http://www.dominixz.com/blog/programming-solution/jruby-on-google-app-engine/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>ปัญหางานทั่วไปที่เจอในงานพัฒนาเว็บ (1)</title><link>http://www.dominixz.com/blog/programming-solution/common-web-develop-problems-1/</link> <comments>http://www.dominixz.com/blog/programming-solution/common-web-develop-problems-1/#comments</comments> <pubDate>Fri, 27 Mar 2009 15:03:20 +0000</pubDate> <dc:creator>DominixZ</dc:creator> <category><![CDATA[วิธีแก้ปัญหาเขียนโปรแกรม]]></category> <category><![CDATA[codeigniter]]></category> <category><![CDATA[jquery]]></category><guid
isPermaLink="false">http://www.dominixz.com/blog/?p=623</guid> <description><![CDATA[หลังจากทำงานกับที่ Duocore.tv มาก็เจอปัญหาในการโค้ดมากมาย โดยผมนำมาเขียนเตือนตัวเองไว้ แล้วก็เป็นประโยชน์สำคัญท่านอื่นๆที่อาจจะเคยเจอปัญหานี้ หรืออนาคตอาจจะเจอ
1. Web Service กับ JSON หรือ AJAX Cross Domain
โดยปกติแล้วเราจะใช้ Javascript ดึงข้อมูลจากฝั่ง Server Side Script ภายใต้โดเมนเดียวกันแล้วมันได้ ผลแต่ถ้าเราจะทำ Ajax Cross Domain ด้วย JSON นั้นเราต้องรู้จักสิ่งที่เรียกว่า JSONP ซึ่งเคยเขียนในสองสามบทความที่แล้วกับวิธีทำ ซึ่งปัญหานี้ ถ้าเราไม่กะเปิด Service ให้คนอื่นใช้คงไม่เจอ แล้วเมื่อก่อนก็นึกว่ามันง่ายกว่านี้ แต่จริงๆมันต้องแก้ด้วย JSONP นี้เอง แต่ถ้าเป็นพวก XML แล้วนั้นจะไม่ต้องใช้ JSONP มาแก้ปัญหา
บทสรุปของวิธีแก้ปัญหา : ใช้ JSONP ในการส่งข้อมูลแบบ JSON ข้าม Domain หรือใช้ข้อมูลแบบ XML เพื่อไม่ต้องยุ่งกับ JSONP
2.  Asynchronous และ [...]]]></description> <content:encoded><![CDATA[<p>หลังจากทำงานกับที่ Duocore.tv มาก็เจอปัญหาในการโค้ดมากมาย โดยผมนำมาเขียนเตือนตัวเองไว้ แล้วก็เป็นประโยชน์สำคัญท่านอื่นๆที่อาจจะเคยเจอปัญหานี้ หรืออนาคตอาจจะเจอ</p><p>1. Web Service กับ JSON หรือ AJAX Cross Domain</p><p>โดยปกติแล้วเราจะใช้ Javascript ดึงข้อมูลจากฝั่ง Server Side Script ภายใต้โดเมนเดียวกันแล้วมันได้ ผลแต่ถ้าเราจะทำ Ajax Cross Domain ด้วย JSON นั้นเราต้องรู้จักสิ่งที่เรียกว่า <strong>JSONP</strong> ซึ่งเคยเขียนในสองสามบทความที่แล้วกับวิธีทำ ซึ่งปัญหานี้ ถ้าเราไม่กะเปิด Service ให้คนอื่นใช้คงไม่เจอ แล้วเมื่อก่อนก็นึกว่ามันง่ายกว่านี้ แต่จริงๆมันต้องแก้ด้วย JSONP นี้เอง แต่ถ้าเป็นพวก XML แล้วนั้นจะไม่ต้องใช้ JSONP มาแก้ปัญหา</p><p>บทสรุปของวิธีแก้ปัญหา : ใช้ JSONP ในการส่งข้อมูลแบบ JSON ข้าม Domain หรือใช้ข้อมูลแบบ XML เพื่อไม่ต้องยุ่งกับ JSONP</p><p>2.  Asynchronous และ Synchronous</p><p>ในการเขียน Javascript หรือ jQuery และ AJAX คงเป็นเรื่องที่ขาดไม่ได้สำหรับเว็บ 2.0 ดังนั้นเราหลีกเลี้ยงที่จะไม่เจอปัญหานี้ในบางครั้งไม่ได้ ในกรณีของผมคือเจอกรณีที่เราต้องการให้ข้อมูลโหลดมาเสร็จก่อน แล้วค่อยที่จะทำคำสั่งต่อไปเรื่อยๆ ซึ่งผมก็เจอข้อจำกัดบางอย่างของ JSONP ของ jQuery นั้นก็คือมันไม่สามารถทำเป็น Synchronous ได้ ดังนั้นในกรณีที่เราต้องการให้มีการรอข้อมูลก่อน แล้วค่อยทำงานอย่างอื่นต่อจึงทำไม่ได้นั้นเอง</p><p>บทสรุปของวิธีแก้ปัญหา : ส่งข้อมูลด้วย XML หรือทำให้การท่อง DOM เป็นแบบ Static ที่สุด ไม่งั้นอาจจะเจอกรณีที่ข้อมูลส่งมาช้ากว่าคำสั่งที่สั่งให้เปลี่ยน DOM แบบ Dynamic</p><p>3. XML-RPC</p><p>เรื่องของ XML-RPC อาจเป็นเรื่องน่างง ว่าเป็นปัญหาได้อย่างไร ผมต้องใช้เจ้า function ที่ชื่อว่า <a
rel="nofollow" target="_blank" href="http://th.php.net/manual/en/function.xmlrpc-encode-request.php">xmlrpc_encode_request</a> เป็น function ที่เอาไว้ส่ง xml rpc แต่มันดันต้องใช้ extension ของ php อย่าง xmlrpc ซึ่งต้องเปิดใช้งานก่อน ซึ่งใน Windows หรือเครื่องเราก็ไม่มีปัญหาอะไรต้องตกใจ แต่พอขึ้นโฮสที่เป็น Linux XMLRPC ตัวนี้ไม่สามารถเปิดใช้งานได้ง่ายๆ เพราะโฮสส่วนใหญ่ไม่ได้ compile เจ้า xmlrpc ตัวนี้ไว้ เลยดังนั้นการเปิดใช้งานมันจึงเป็นเรื่องที่น่าปวดหัว</p><p>วิธีแก้ปัญหา : แจ้งเจ้าของโฮสให้เปิดให้ แต่ถ้าเจ้าของโฮสเปิดไม่เป็น เห็นทีต้องใช้ library ตัวอื่นแล้วแทนแล้วเช่น XML-RPC ของ CodeIgniter</p><p>4. ข้อผิดพลาดในการเขียนโค้ด inline css</p><p>ระหว่างการทำงานภาษาที่ต้องเขียนก็มีมากมายทั้ง CSS , JavaScript , HTML , PHP , jQuery ซึ่งบางทีมันก็น่าปวดหัวจนมึนไปและข้อผิดพลาดอาจเกิดขึ้นได้ตลอดเวลา รวมถึงความที่เป็นมนุษย์มักคิดเข้าข้างตัวเอง หรือมองข้ามสิ่งเล็กๆน้อยไป กรณีที่ผมเจอก็คือเขียน inline css ผิดนั้นเอง เช่น style=&#8221;width:480; height:270;&#8221; ซึ่งดูผ่านๆก็น่าจะใช้ได้ แล้วการ render ในบาง browser สามารถ render ได้ แต่ไม่ได้ในบาง browser แล้วยังได้ในบางกรณี และไม่ได้ในหลายกรณีซึ่งทำให้เกิดความสับสนกับคนเีขียนได้อย่างมาก</p><p>วิธีแก้ปัญหา : จงเชื่อในมาตรฐานและการตรวจสอบของคอมพิวเตอร์ในกรณีนี้ก็คงเป็น HTML Validator เป็นต้น</p><p>5. แก้บัค,อัพเกรด,เปลี่ยนความต้องการ</p><p>ทำให้สามารถเกิดบัคอีกตัวขึ้นมาได้  หรือการคุยงานมาไม่ถูกต้อง สามารถทำให้เกิดปัญหาทำให้เราแก้ซ้ำซากได้อยู่ตลอดเวลา หรือสิ่งที่ให้ทำเป็นอย่างหนึ่งแต่การนำไปใช้จริงเป็นอีกอย่าง</p><p>วิธีแก้ปัญหา : เขียน Test Cases หรือ Test Script ช่วยทำให้ค้นพบบัคได้เร็วขึ้น แล้วก็คุยความต้องการให้ถูกต้อง ถ้าเป็นไปได้ออกแบบให้เป็น Dynamic และง่ายต่อการแก้ไข</p><p>ครั้งนี้เอาไป 5 อย่างก่อนที่เจอมาแล้วจำได้ เดียวไว้อนาคตผมพบเจออะไรอีก เดียวจะนำมาแชร์ให้คนอื่นอ่านกันครับผม การแชร์ความสำเร็จเป็นสิ่งที่ดี แต่การแชร์ความผิดพลาดจะทำให้คนที่มาอ่านสามารถเตรียมพร้อมกับปัญหาที่จะเกิดขึ้นหรือแก้ไขในอนาคตได้ วันนี้ลาไปก่อนสวัสดีครับ</p> Similar Posts:<ul><li><a
href="http://www.dominixz.com/blog/programming-solution/ajax-cross-domain-with-codeigniter-and-jquery/" rel="bookmark" title="March 6, 2009">วิธีทำ Ajax Cross Domain แบบสมบูรณ์ด้วย CodeIgniter และ jQuery</a></li><li><a
href="http://www.dominixz.com/blog/programming-solution/understanding-jquery-ajax-cross-domain/" rel="bookmark" title="April 27, 2009">เข้าใจกับ jQuery Ajax Cross Domain</a></li><li><a
href="http://www.dominixz.com/blog/review/web-development/codeigniter-jquery-extjs-adobe-air/" rel="bookmark" title="April 25, 2008">Codeigniter , jQuery , Ext-Js และ Adobe AIR</a></li></ul><img
src="http://www.dominixz.com/blog/?ak_action=api_record_view&id=623&type=feed" alt="programming solution "  title="ปัญหางานทั่วไปที่เจอในงานพัฒนาเว็บ (1)" />]]></content:encoded> <wfw:commentRss>http://www.dominixz.com/blog/programming-solution/common-web-develop-problems-1/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>วิธีทำ Ajax Cross Domain แบบสมบูรณ์ด้วย CodeIgniter และ jQuery</title><link>http://www.dominixz.com/blog/programming-solution/ajax-cross-domain-with-codeigniter-and-jquery/</link> <comments>http://www.dominixz.com/blog/programming-solution/ajax-cross-domain-with-codeigniter-and-jquery/#comments</comments> <pubDate>Thu, 05 Mar 2009 18:08:44 +0000</pubDate> <dc:creator>DominixZ</dc:creator> <category><![CDATA[วิธีแก้ปัญหาเขียนโปรแกรม]]></category> <category><![CDATA[codeigniter]]></category> <category><![CDATA[jquery]]></category><guid
isPermaLink="false">http://www.dominixz.com/blog/?p=608</guid> <description><![CDATA[เอาละครับ วันนี้ผมได้เจอปัญหา Ajax Cross Domain อย่างจริงๆจังๆ แล้วตกผลึกความรู้ได้มาพอสมควรครับ ทุกคนผมติต่างว่ารู้จัก Web Service นะครับโดยวันนี้เราจะมาทำแบบ REST กันครับ โดยผมมาพร้อมกับปัญหาที่ผมเจอบ่อยๆมีดังนี้ครับสามารถเรียก Web Service ได้จาก Domain เดียวกัน
สามารถเรียก Web Service จาก Host ได้จาก localhost
แต่ไม่สามารถเรียกจาก host หนึ่งไปยังอีก host หนึ่งได้หลังจากที่ผมได้ลองทำ Web Service มาหลายแบบ แบบที่ผมชอบที่สุดก็คงหนีไม่พ้นแบบ JSON แน่นอนครับ เพราะใน php มันมี function ที่ชื่อว่า json_encode ซึ่งเปลี่ยน array ของ php ไปเป็น json ให้เราได้ทันที แต่วันนี้ผมจะเอาตัวอย่างที่ผมทำผิดแล้ว วันนี้ได้เรียนรู้มาบอกต่อกันครับ ซึ่งใน php ตัวที่ผมทำ web service [...]]]></description> <content:encoded><![CDATA[<p>เอาละครับ วันนี้ผมได้เจอปัญหา Ajax Cross Domain อย่างจริงๆจังๆ แล้วตกผลึกความรู้ได้มาพอสมควรครับ ทุกคนผมติต่างว่ารู้จัก Web Service นะครับโดยวันนี้เราจะมาทำแบบ REST กันครับ โดยผมมาพร้อมกับปัญหาที่ผมเจอบ่อยๆมีดังนี้ครับ</p><ul><li><span
style="color: #ff0000;">สามารถเรียก Web Service ได้จาก Domain เดียวกัน</span></li><li><span
style="color: #ff0000;">สามารถเรียก Web Service จาก Host ได้จาก localhost</span></li><li><span
style="color: #ff0000;">แต่ไม่สามารถเรียกจาก host หนึ่งไปยังอีก host หนึ่งได้</span></li></ul><p>หลังจากที่ผมได้ลองทำ Web Service มาหลายแบบ แบบที่ผมชอบที่สุดก็คงหนีไม่พ้นแบบ JSON แน่นอนครับ เพราะใน php มันมี function ที่ชื่อว่า json_encode ซึ่งเปลี่ยน array ของ php ไปเป็น json ให้เราได้ทันที แต่วันนี้ผมจะเอาตัวอย่างที่ผมทำผิดแล้ว วันนี้ได้เรียนรู้มาบอกต่อกันครับ ซึ่งใน php ตัวที่ผมทำ web service นั้นชอบทำแบบนี้ครับ</p><p><span
style="color: #3366ff;">echo json_encode($array);</span></p><p>ซึ่งวิธีนี้จริงๆแล้วน่าจะใช้ได้ดีกับหมดทุกระบบแล้วนะครับ เพราะปกติถ้าใน php เรามี function นี้ครับ file_get_content ซึ่งอำนวยความสะดวกเรื่องนี้ให้เรา เสร็จแล้วเราก็ json_decode จบได้ข้อมูลมาใช้ละง่ายโคตรๆ แต่กระนั้นครับ แล้วถ้าเราจะใช้ Javascript ดึง Web Service ของเราละครับ ยิ่งถ้าใช้ jQuery ก็คงยิ่งหมูเลย</p><p><span
style="color: #3366ff;">$.getJSON(url,callback);</span></p><p>แค่นี้ก็น่าจะเพียงพอ แต่ผลที่ได้คือ &#8220;ถ้าไม่อยู่ใน domain เดียวกัน หรือไม่มีการเปิดให้สิทธิทำ cross-domain ก็จะใช้ไม่ได้ครับ&#8221; ในที่นี้ผมหมายถึง เวลา internet explorer จะขึ้น privacy ซึ่งถ้าเราตกลง มันก็ยอมให้เราทำ cross-domain ได้ซึ่ง การใช้ json_encode ถึงเพียงพอครับ แต่พอเอาไปขึ้น host จริงๆคนอื่นที่เขาใช้ javascript ดึงก็ใช้ไม่ได้อยู่ดีแล้วเราจะแก้ปัญหาอย่างไรละ ? ผมเลยค้นหาวิธีต่างๆซึ่ง <a
rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/JSON">JSONP</a> เนี้ยเป็นคำตอบ แล้วทำยังไงละ ? วันนี้ผมเอาวิธีทำมาให้เลยละกัน โดย <a
rel="nofollow" target="_blank" href="http://www.jquerytips.com/2008/04/26/ajax-cross-domain/">ต้องขอบคุณ Tee++ จาก jQueryTips ซึ่งเป็นคนนำทางผมครับ</a> ผมแนะนำให้อ่านของคุณ Tee++ ก่อนนะครับเอาละประเด็นคืออยู่ที่บรรทัดนี้ครับ</p><p><span
style="color: #3366ff;"><span
class="kw3">echo</span> <span
class="re0">$_GET</span><span
class="br0">[</span><span
class="st0">‘jsoncallback’</span><span
class="br0">]</span>.<span
class="st0">‘(’</span>.<span
class="re0">$json</span>-&gt;<span
class="me1">encode</span><span
class="br0">(</span><span
class="re0">$arr</span><span
class="br0">)</span>.<span
class="st0">‘)’</span>; // ของคุณ Tee++ ผมข้อแก้เป็นด่านล่าง เพื่อลักษณะใกล้เคียง<br
/> <span
class="kw3">echo</span> <span
class="re0">$_GET</span><span
class="br0">[</span><span
class="st0">‘jsoncallback’</span><span
class="br0">]</span>.<span
class="st0">‘(’</span>.<span
class="re0">json_encode</span><span
class="br0">(</span><span
class="re0">$arr</span><span
class="br0">)</span>.<span
class="st0">‘)’</span>;</span></p><p>ซึ่งสังเกตว่าจะใช้ . นะครับ ไม่ใช่ = แล้วจะตามวงเล็บเปิดแล้วลงท้ายด้วยวงเล็บปิด ซึ่งเป็นตามหลัก JSONP ส่วนสาเหตุที่ทำไมต้องทำเช่นนี้ ผมยังไม่แน่ใจนัก แต่อธิบายคร่าวๆได้ว่า การใช้ Ajax Cross Domain ตรงๆนั้นมันมีึความเสี่ยงสูง ดังนั้นเลยเกิด JSONP (JSON with Padding) เพื่อมาช่วย แล้วการที่เรามีการใส่ตัวแปลสักตัว ในตัวอย่างคือ jsoncallback แล้วมีการใส่วงเล็บเปิดปิดไปนั้น เืพื่อให้ทางฝั่ง Client สามารถเล่นกับข้อมูลได้สะดวก โดยถ้าเป็น jQuery ก็จะมีการใส่่  jsonp1236274532659 (แล้วแต่มันจะ genให้)แบบนี้เป็นต้น ซึ่งผลลัพธ์ตอนจบมันจะกลายเป็นประมาณนี้</p><pre><span style="color: #3366ff;">jsonp1236274532659({"name":"dominixz","url":"http:\/\/dominixz.com"})</span></pre><p>จะสังเกตว่าพอสามารถใส่อะไรลงไปข้างหน้าได้ มันจะกลายเป็น function !!! ซึ่งทำให้ทางฝั่ง client เล่นอะไรกับข้อมูลนี้ก็ได้ โดยถ้าให้ผมเดาเป็นผมกรณีนี้ใน function นั้นก็อาจมีการ set ค่าตัวแปรค่างๆหรือแม้กระทั่ง eval ข้อมูลเลยก็เป็นได้ แล้วแต่เราจะเขียน โดยถ้าใช้พวก Framework นั้นมีการจัดการกับ JSONP เกือบทุกตัวแล้วละไม่ว่าจะเป็น MooTools , jQuery , Dojo ฯลฯ อธิบายพอเห็นภาพละ แล้ววิธีเรียกใน jQuery ละทำยังไงก็ง่ายๆเลยครับ</p><p><span
style="color: #3366ff;">$.getJSON(url+&#8221;?jsoncallback=?&#8221;,callback);</span></p><p>โดยผมมีตัวแบบจริงสักอันละกันครับ โดยถ้าผมมี Web Services ของ CodeIgniter ดังนี้ครับ<span
style="color: #339966;"> http://localhost/codezend/index.php/webservices/test </span>ดังนั้นโค้ดนี้ผมจะได้ url เป็นดังนี้ครับ</p><p><span
style="color: #3366ff;">$.getJSON(&#8220;http://localhost/codezend/index.php/webservices/test?jsoncallback=?&#8221;,callback);</span></p><p>ซึ่งใน web service ของผมก็ต้องมีการ set ค่า jsoncallback เหมือนกันไม่งั้นก็ใช้ไม่ได้ โดยถ้าไม่ได้ใช้ CodeIgniter แค่นี้ก็คงจบบทความแล้วแต่ CodeIgniter ถ้าทำแค่นี้ไม่ได้แน่ครับ เพราะเจ้า CodeIgniter ดันไม่ยอมให้ใส่ ?jsoncallback=? อย่างงี้ตอนเริ่มต้นได้นี้สิ โดยถ้าต้องการใช้เราจะต้องไป set ใน config.php ให้ enable_query_strings เป็น TRUE ซะก่อนนะครับ</p><p><span
style="color: #3366ff;">$config['enable_query_strings'] = TRUE;</span></p><p>เป็นอันจบครับ ไว้ผมมีประสบการณ์อะไรเพิ่มเติมจะนำมาเล่าต่อครับผม วันนี้ไปนอนแล้วครับสวัสดีครับ</p> Similar Posts:<ul><li><a
href="http://www.dominixz.com/blog/programming-solution/common-web-develop-problems-1/" rel="bookmark" title="March 27, 2009">ปัญหางานทั่วไปที่เจอในงานพัฒนาเว็บ (1)</a></li><li><a
href="http://www.dominixz.com/blog/programming-solution/understanding-jquery-ajax-cross-domain/" rel="bookmark" title="April 27, 2009">เข้าใจกับ jQuery Ajax Cross Domain</a></li><li><a
href="http://www.dominixz.com/blog/review/web-development/codeigniter-jquery-extjs-adobe-air/" rel="bookmark" title="April 25, 2008">Codeigniter , jQuery , Ext-Js และ Adobe AIR</a></li></ul><img
src="http://www.dominixz.com/blog/?ak_action=api_record_view&id=608&type=feed" alt="programming solution "  title="วิธีทำ Ajax Cross Domain แบบสมบูรณ์ด้วย CodeIgniter และ jQuery" />]]></content:encoded> <wfw:commentRss>http://www.dominixz.com/blog/programming-solution/ajax-cross-domain-with-codeigniter-and-jquery/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>ใช้ JSP ติดต่อฐานข้อมูล Microsoft SQL Server 2005 แบบ SQL Authenticate</title><link>http://www.dominixz.com/blog/programming-solution/use-jsp-connect-to-microsoft-sql-server-2005-sql-authenticate/</link> <comments>http://www.dominixz.com/blog/programming-solution/use-jsp-connect-to-microsoft-sql-server-2005-sql-authenticate/#comments</comments> <pubDate>Wed, 04 Feb 2009 06:05:54 +0000</pubDate> <dc:creator>DominixZ</dc:creator> <category><![CDATA[วิธีแก้ปัญหาเขียนโปรแกรม]]></category><guid
isPermaLink="false">http://www.dominixz.com/blog/?p=580</guid> <description><![CDATA[หลังจากที่หายไปนาน ด้วยกระแสงานหลั่งไหลเข้ามา วันนี้ผมเอาประสบการณ์เล็กๆน้อยๆมาฝาก สำหรับคนที่ต้องการใช้ JSP ติดต่อฐานข้อมูล โดยมีขั้นตอนมากมายแต่ผมจะสรุปให้อย่างง่ายละกันครับว่าุคุณต้องทำอะไรบ้าง แต่ก่อนอื่นคุณต้องมี อุปกรณ์ดังนี้ (ถึงจะง่าย)Netbeans 6.5 พร้อมด้วย Java EE plugin
SQL Server 2005 Express Edition พร้อมกับ Tools ของมัน
Microsoft SQL Server 2005 JDBC Driverพอคุณมีครบทั้ง 3 อย่างแล้วให้สร้าง project ใน Netbeans เป็น Web Application เสร็จแล้วให้เราเพิ่ม Library เข้าไปใน Project นั้นคือ sqljdbc.jar แล้วคราวนี้เราก็เริ่มวิธีการติดต่อกันเลยครับ โดย Code นี้เป็นตัวอย่างครับ
&#60;%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %&#62;
&#60;!DOCTYPE HTML PUBLIC "-//W3C//DTD [...]]]></description> <content:encoded><![CDATA[<p>หลังจากที่หายไปนาน ด้วยกระแสงานหลั่งไหลเข้ามา วันนี้ผมเอาประสบการณ์เล็กๆน้อยๆมาฝาก สำหรับคนที่ต้องการใช้ JSP ติดต่อฐานข้อมูล โดยมีขั้นตอนมากมายแต่ผมจะสรุปให้อย่างง่ายละกันครับว่าุคุณต้องทำอะไรบ้าง แต่ก่อนอื่นคุณต้องมี อุปกรณ์ดังนี้ (ถึงจะง่าย)</p><ul><li>Netbeans 6.5 พร้อมด้วย Java EE plugin</li><li>SQL Server 2005 Express Edition พร้อมกับ Tools ของมัน</li><li><a
rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/data/aa937724.aspx">Microsoft SQL Server 2005 JDBC Driver</a></li></ul><p>พอคุณมีครบทั้ง 3 อย่างแล้วให้สร้าง project ใน Netbeans เป็น Web Application เสร็จแล้วให้เราเพิ่ม Library เข้าไปใน Project นั้นคือ sqljdbc.jar แล้วคราวนี้เราก็เริ่มวิธีการติดต่อกันเลยครับ โดย Code นี้เป็นตัวอย่างครับ</p><pre lang="Java" line="1" escaped="true">&lt;%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %&gt;
&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

   "http://www.w3.org/TR/html4/loose.dtd"&gt;
&lt;html&gt;
    &lt;head&gt;
        &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;
        &lt;title&gt;JSP Page&lt;/title&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;h1&gt;Hello World!&lt;/h1&gt;
        &lt;%

           Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
           Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;user=domesterz;password=1234;");

           Statement cstmt=con.createStatement();
           ResultSet rs=cstmt.executeQuery("SELECT * FROM users");

            if(con !=null){
                if(rs != null){
                   while(rs.next()){
                        String user = rs.getString("username");
                        String password = rs.getString("password");
                        out.print(user);
                        out.print(password);
                   }

                }
            }else{
               out.println("Connect Database Failed");
            }
           con.close();

    %&gt;

    &lt;/body&gt;
&lt;/html&gt;</pre><p>และจริงๆ Code แค่นี้สมควรที่จะต่อเข้าฐานข้อมูลได้แล้ว แต่ไม่ครับสำหรับ เพราะเราอาจะเจอ Error หลายๆอย่าง อย่างเช่น TCP/IP อะไรสักอย่าง อันนี้ให้ไปเปิด Port 1433 (ถ้าจะใช้ตามตัวอย่าง) <strong>ใน SQL Configuration Management -&gt; SQL Server 2005 Network Configuration -&gt; TCP/IP ไปที่ IP Addresses -&gt; IPAll ตรง Port ให้เขียน 1433</strong> แต่ยังไม่จบครับ</p><p>เพราะปกติเวลาเรา Install SQL Server 2005 ครั้งแรกเราจะเข้าไปฐานข้อมูลแบบ Windows Authenticate ดังนั้นเราต้องไปสร้าง Account เพื่อใ้ช้ SQL Authenticate ใน <strong>SQL Server Management Studio Express (อันนี้คือของผมเป็น version Express เลยมีคำว่า Express) เสร็จแล้วให้เรา connect แบบ Windows Authenticate ไปก่อน แล้วเข้า Security -&gt; กด mouse ขวาีที่ Logins เลือก New Login จากนั้นก็ใส่ username เปลี่ยนเป็น SQL Authenticate เลือก Database , Language ตามใจ แต่สำหรับ version Express เราต้องเอา &#8220;User must change password at next login&#8221; ออกเพราะไม่มี Feature นี้ใน Express ไม่งั้นเมื่อกด OK จะ Error</strong></p><p>เมื่อได้ User มาแล้วอย่าพึงลองโดยทันที ในฐานข้อมูลเรามีเรื่องสิทธิเข้าถึงข้อมูล ดังนั้นเราต้องไปตั้ง User ของเราให้มีสิทธิเข้าใช้งาน Database ของเรา โดยไปแก้ได้ที่ตัว Database ของเราได้เลยโดย mouse ขวาที่ Database ของเราสักตัวแล้วเลือก Properties -&gt; Permissions เสร็จแล้วจะเห็น User ที่เราสร้างขึ้นมาใหม่ แล้วคราวนี้ก็ลองเลือกเลยครับจะให้ user นี้ทำอะไรได้มั่ง โดยผมก็เลือกแค่หลักๆคือ SELECT INSERT UPDATE DELETE เป็นอันเสร็จพิธีคร่าวนี้เราลอง Run App ของเีราที่ลองต่อ Database ได้เลยครับ</p><p>ปล. อาจจะเยอะสักหน่อยนะครับ แต่ผลที่ำได้ก็น่าพอใจใช้ไหมละ <img
src='http://www.dominixz.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' title="ใช้ JSP ติดต่อฐานข้อมูล Microsoft SQL Server 2005 แบบ SQL Authenticate" /></p> Similar Posts:<ul><li><a
href="http://www.dominixz.com/blog/programming-solution/jsp-taglib-problem-in-netbeans/" rel="bookmark" title="June 2, 2008">ปัญหา taglib เรียก core ใน NetBeans</a></li><li><a
href="http://www.dominixz.com/blog/productivity/ruby-problem-for-java-programmer/" rel="bookmark" title="August 5, 2008">ปัญหาของ Ruby ! สำหรับชาว Java</a></li><li><a
href="http://dominixz.com/about-me/" rel="bookmark" title="June 9, 2007">ประวัติ</a></li></ul><img
src="http://www.dominixz.com/blog/?ak_action=api_record_view&id=580&type=feed" alt="programming solution "  title="ใช้ JSP ติดต่อฐานข้อมูล Microsoft SQL Server 2005 แบบ SQL Authenticate" />]]></content:encoded> <wfw:commentRss>http://www.dominixz.com/blog/programming-solution/use-jsp-connect-to-microsoft-sql-server-2005-sql-authenticate/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Ruby และ Rails Autocomplete สำหรับ Notepad++</title><link>http://www.dominixz.com/blog/programming-solution/ruby-and-rails-autocomplete-for-notepad-plus-plus/</link> <comments>http://www.dominixz.com/blog/programming-solution/ruby-and-rails-autocomplete-for-notepad-plus-plus/#comments</comments> <pubDate>Sun, 02 Nov 2008 10:54:42 +0000</pubDate> <dc:creator>DominixZ</dc:creator> <category><![CDATA[วิธีแก้ปัญหาเขียนโปรแกรม]]></category><guid
isPermaLink="false">http://www.dominixz.com/blog/?p=494</guid> <description><![CDATA[หลังจากที่สำรวจแล้วก็งงๆ ว่าทำไมไม่มีใครแจกเจ้า Autocomplete ของ Ruby หรือ Rails ใน Notepad++ ออกมาเลยมีแต่ API มาให้ ผมเลยทำต่ออีกนิดเพื่อให้นำไปลงใน Notepad++ แล้วใช้ได้เลย โดยทุกท่าน สามารถ Download Ruby.xml File ได้ที่นี้ครับ ส่วนใครที่กดเข้าไปเป็น xml ไฟล์ก็กด Save As ได้เลยนะครับ
โดยวิธีติดตั้งใน Notepad++ นะครับเอาไฟล์ ruby.xml ไปวางไว้ที่ notepad++_folder/plugins/APIs เช่นของผมก็คือ
&#8220;C:\Program Files\Notepad++\plugins\APIs&#8220;
ถ้าคุณเปิด Notepad++ ให้ปิดแล้วเปิดใหม่
ลองเปิดโปรเจคที่เป็น .rb ของคุณหรือไม่ก็ new อันใหม่ขึ้นมาแล้วเลือกภาษาเป็น ruby
กด Ctrl+Space แล้วจะเห็นง่ายๆแค่นี้เองครับ ไม่รู้ว่ามีใครทำยัง แต่หาแล้วไม่เจอเลยเซร็งๆทำเองเลย แต่เจ้าตัวนี้ยังไม่ฉลาดมาก คือยังไม่บอกว่าต้องใส่ Parameters อะไรต่างๆนาๆ แต่ก็ทำให้ผมเขียนเร็วขึ้นเยอะ แถมโหลดเร็วไม่เสียอารมณ์ด้วยครับ   ไม่ต้องไปใช้ Ruby [...]]]></description> <content:encoded><![CDATA[<p>หลังจากที่สำรวจแล้วก็งงๆ ว่าทำไมไม่มีใครแจกเจ้า Autocomplete ของ Ruby หรือ Rails ใน Notepad++ ออกมาเลยมีแต่ API มาให้ ผมเลยทำต่ออีกนิดเพื่อให้นำไปลงใน Notepad++ แล้วใช้ได้เลย โดยทุกท่าน สามารถ <a
href="http://www.dominixz.com/files/ruby.xml">Download Ruby.xml File ได้ที่นี้ครับ</a> ส่วนใครที่กดเข้าไปเป็น xml ไฟล์ก็กด Save As ได้เลยนะครับ</p><p>โดยวิธีติดตั้งใน Notepad++ นะครับ</p><ol><li>เอาไฟล์ ruby.xml ไปวางไว้ที่ notepad++_folder/plugins/APIs เช่นของผมก็คือ<br
/> <span
style="color: #999999;">&#8220;C:\Program Files\Notepad++\plugins\APIs</span>&#8220;</li><li>ถ้าคุณเปิด Notepad++ ให้ปิดแล้วเปิดใหม่</li><li>ลองเปิดโปรเจคที่เป็น .rb ของคุณหรือไม่ก็ new อันใหม่ขึ้นมาแล้วเลือกภาษาเป็น ruby</li><li>กด Ctrl+Space แล้วจะเห็น</li></ol><p>ง่ายๆแค่นี้เองครับ ไม่รู้ว่ามีใครทำยัง แต่หาแล้วไม่เจอเลยเซร็งๆทำเองเลย แต่เจ้าตัวนี้ยังไม่ฉลาดมาก คือยังไม่บอกว่าต้องใส่ Parameters อะไรต่างๆนาๆ แต่ก็ทำให้ผมเขียนเร็วขึ้นเยอะ แถมโหลดเร็วไม่เสียอารมณ์ด้วยครับ <img
src='http://www.dominixz.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' title="Ruby และ Rails Autocomplete สำหรับ Notepad++" /> ไม่ต้องไปใช้ Ruby IDE ต่างๆที่โหลดนานเพียงต้องการแก้ไฟล์เพียงนิดๆหน่อยเท่านั้น</p> Similar Posts:<ul><li><a
href="http://www.dominixz.com/blog/programming-solution/jruby-on-rails-%e0%b8%9a%e0%b8%99-google-app-engine/" rel="bookmark" title="April 10, 2009">JRuby on Rails บน Google App Engine</a></li><li><a
href="http://www.dominixz.com/blog/review/simply-rails-2/" rel="bookmark" title="September 15, 2008">Simply Rails 2 ~ Book Review ~</a></li><li><a
href="http://www.dominixz.com/blog/software-tips/editplus-compile-run-java-without-ide-or-dos/" rel="bookmark" title="September 1, 2007">วิธี Compile/Run Java ด้วย EditPlus ครับ</a></li></ul><img
src="http://www.dominixz.com/blog/?ak_action=api_record_view&id=494&type=feed" alt="programming solution "  title="Ruby และ Rails Autocomplete สำหรับ Notepad++" />]]></content:encoded> <wfw:commentRss>http://www.dominixz.com/blog/programming-solution/ruby-and-rails-autocomplete-for-notepad-plus-plus/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- This site's performance optimized by W3 Total Cache. Dramatically improve the speed and reliability of your blog!

Learn more about our WordPress Plugins: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (user agent is rejected)
Database Caching using memcached

Served from: ns7.appservhosting.com @ 2010-03-14 20:32:48 -->