<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-13920929</id><updated>2011-10-16T09:38:45.922-07:00</updated><category term='Visual Studio'/><category term='Websphere'/><category term='xsl'/><category term='oss'/><category term='Other'/><category term='SEO'/><category term='groovy'/><category term='php'/><category term='DB2'/><category term='MQ'/><category term='drupal'/><category term='Photo'/><category term='Ubuntu'/><category term='Android'/><category term='Oracle'/><category term='MS-DOS'/><title type='text'>CH@N</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default?start-index=101&amp;max-results=100'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>113</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-13920929.post-6335234327651223596</id><published>2011-10-16T09:36:00.001-07:00</published><updated>2011-10-16T09:38:45.976-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>IBM RSA 7.0  problems</title><content type='html'>&lt;div&gt;สำหรับ IBM Rational Software Architecture 7.0 (RSA7.0) มีประเด็นหลักๆอยู่สองเรื่องที่ผมได้ประสบมาคือ&lt;/div&gt;&lt;div&gt;1. เมื่อใช้งานบน Windows 7 (64bits) จะเกิดอาการใช้งานไปสักพักแล้วจะปิดตัวไปเอง โดยจะมี error JVM terminated. Exit code=8096 แม้ว่าจะลองปรับแต่ตาม&lt;a href="https://www-304.ibm.com/support/docview.wss?uid=swg21303648"&gt;ที่นี้&lt;/a&gt; แล้วก็ยังไม่ประสบความสำเร็จ ดีไม่ดีจะมีการสร้าง heapdump files ไว้ใน home directory ด้วย&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. เมื่อ update IBM RSA7.0 เป็น version 7.0.0.10 โดย download จาก&lt;a href="https://www-304.ibm.com/support/docview.wss?uid=swg24024214"&gt;ที่นี้&lt;/a&gt; ก็พบว่าไม่เกิดปัญหาตามที่ระบุในข้อที่ 1 อีกเลยครับ แต่เมื่อใช้งาน struts 2.2 กลับพบปัญหา jsp ไม่สามารถเรียกไปยัง action ได้ทั้งๆที่ source code เดียวกันสามารถทำงานได้บน RSA7.0 ที่ยังไม่ได้ update ก็เลยต้อง rollback กลับไปใช้งาน 7.0.0.0 เหมือนเดิมครับ - -"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;เลยอยากเอามา share กันให้ทราบครับผม&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-6335234327651223596?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/6335234327651223596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=6335234327651223596' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/6335234327651223596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/6335234327651223596'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2011/10/ibm-rsa-70-problems.html' title='IBM RSA 7.0  problems'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-1442261787002438449</id><published>2011-10-11T10:43:00.000-07:00</published><updated>2011-10-11T10:45:57.105-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle 11g R2 vs IBM DB2 9.7</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;เป็นเอกสารที่น่าสนใจครับ เป็นเปรียบเทียบการจัดการ database ระหว่าง Oracle 11g r2 กับ IBM DB2 9.7 เผื่อใครจะใช้สำหรับประกอบการตัดสินใจได้ครับ &lt;a href="http://www.oracle.com/technetwork/database/focus-areas/manageability/oracle11g-vs-ibmdb2-mgm-comp-404903.pdf"&gt;http://www.oracle.com/technetwork/database/focus-areas/manageability/oracle11g-vs-ibmdb2-mgm-comp-404903.pdf&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-1442261787002438449?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/1442261787002438449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=1442261787002438449' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1442261787002438449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1442261787002438449'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2011/10/oracle-11g-r2-vs-ibm-db2-97.html' title='Oracle 11g R2 vs IBM DB2 9.7'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-1977952817738643103</id><published>2011-10-11T10:40:00.000-07:00</published><updated>2011-10-11T10:41:30.395-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Toad for Oracle Free Edition on Win 7 x64</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/-poLHHx2it1k/TpR_rrwCbRI/AAAAAAAACSk/xXt12gif5eI/s1600/toad65bit.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://3.bp.blogspot.com/-poLHHx2it1k/TpR_rrwCbRI/AAAAAAAACSk/xXt12gif5eI/s320/toad65bit.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5662291019966868754" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px; background-color: rgb(255, 255, 255); "&gt;&lt;div&gt;สำหรับใครที่ download Toad for Oracle มาใช้งานบน Windows 64 bits จะพบกับอาการ oracle client และ tools อื่นๆสามารถ connect database ได้ แต่ทำยังไง Toad ก็ยังคงแสดง message ว่า&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ORA-1215: TNS:could not resolve the connect identifier specified&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ก็ให้ลงย้าย folder ของ Toad ที่อยู่ใน c:\Program Files(x86) มาไว้ที่ C:\Program Files ก็จะสามารถใช้งานได้เป็นปกติครับ&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-1977952817738643103?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/1977952817738643103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=1977952817738643103' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1977952817738643103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1977952817738643103'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2011/10/toad-for-oracle-free-edition-on-win-7.html' title='Toad for Oracle Free Edition on Win 7 x64'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-poLHHx2it1k/TpR_rrwCbRI/AAAAAAAACSk/xXt12gif5eI/s72-c/toad65bit.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-5486691101791613125</id><published>2011-06-22T09:32:00.000-07:00</published><updated>2011-06-22T09:37:16.200-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Linux: Add Mod_Rewrite to Apache2</title><content type='html'>1. ตรวจสอบว่า server ของเราติดตั้ง mod_rewrite แล้วหรือยังด้วย phpinfo(); ใน php file&lt;div&gt;แล้ว search หา mod_rewrite ถ้าไม่เจอก็แสดงว่ายังไม่มี&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;2. run Terminal แล้วพิมพ์ command line ต่อไปนี้&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"   &gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"   &gt;&lt;b&gt;chan@laptop:~$ sudo a2enmod rewrite&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"   &gt;[sudo] password for chan: &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"   &gt;Enabling module rewrite.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"   &gt;Run '/etc/init.d/apache2 restart' to activate new configuration!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"   &gt;&lt;b&gt;chan@chan-dell-laptop:~$ sudo /etc/init.d/apache2 restart&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"   &gt; * Restarting web server apache2                                                apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"   &gt; ... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"   &gt;                                                                         [ OK ]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"   &gt;chan@laptop:~$&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"   &gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;3. ทดสอบ phpinfo อีกครั้งจะพบว่ามีการติดตั้ง mod_rewrite แล้ว&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-5486691101791613125?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/5486691101791613125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=5486691101791613125' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5486691101791613125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5486691101791613125'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2011/06/linux-add-modrewrite-to-apache2.html' title='Linux: Add Mod_Rewrite to Apache2'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-5428924508535375350</id><published>2011-06-20T22:20:00.000-07:00</published><updated>2011-06-20T22:26:05.552-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Linux: Log File Monitoring</title><content type='html'>กรณีที่ต้อง monitor log บน server แบบ real time สำหรับ Linux แล้วก็ใช้ tail -f ช่วยได้ เช่น&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"&gt; tail -n 100 -f filename&lt;filename&gt;&lt;/filename&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;คือบอกว่าให้ tail แสดง 100 บรรทัดสุดท้ายของ filename ออกมาพร้อมกับ follow การเปลี่ยนแปลงเนื้อหาของ filename ด้วยหากมีการเปลี่ยนแปลงก็ให้แสดงผลต่อไปเลย&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-5428924508535375350?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/5428924508535375350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=5428924508535375350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5428924508535375350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5428924508535375350'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2011/06/linux-log-file-monitoring.html' title='Linux: Log File Monitoring'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-1414880577759565061</id><published>2011-06-14T02:48:00.000-07:00</published><updated>2011-06-14T02:52:07.899-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>SQL0902C  A system error (reason code = "")</title><content type='html'>&lt;div&gt;ในกรณีที่ restore db2 database แล้วเจอ error ดังต่อไปนี้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;SQL0902C  A system error (reason code = "") occurred.  Subsequent SQL&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;statements cannot be processed.  SQLSTATE=58005&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;หรือหากดูใน db2diag.log แล้วเจอ error ประมาณนี้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;2011-06-14-15.07.39.436000+420 I7047H575          LEVEL: Severe&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;PID     : 3788                 TID  : 2892        PROC : db2syscs.exe&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;INSTANCE: MYINST                NODE : 000&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;FUNCTION: DB2 UDB, buffer pool services, sqlbReadStorageGroup, probe:20&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;MESSAGE : ZRC=0x87020002=-2029912062=SQLB_BPSE "Debug logic error detected"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;          DIA8501C A buffer pool logic error has occurred.&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;อาจเป็นไปได้ว่าเกิดจากการที่เราเอา image ของ file backup จากเครื่องอื่นมา restore ซึ่งมีบาง path ที่ไม่ตรงกัน &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;อย่างไรก็ตามเราสามารถใช้ option "redirect generate script &lt;filename&gt;" ของ db2 restore ช่วยในการแก้&lt;/filename&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ปัญหานี้ได้โดยแทนที่จะใช้คำสั่ง restore แบบนี้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;&lt;blockquote&gt; db2 restore database MYDB from .&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ให้ใช้เป็น&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;blockquote&gt; db2 restore database MYDB from . redirect generate script restore.sql&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ระบบจะสร้าง file restore.sql ขึ้นมา จากนั้นเปิด file นี้แล้วมองหาว่า&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. หลัง option "ON" เป็น DRIVE ที่ถูกต้องหรือไม่&lt;/div&gt;&lt;div&gt;2. path ของ tablespace มีอยู่จริงหรือไม่ เช่น หากเป็น Drive ที่ไม่มีอยู่จริงหรือไม่สามารถเขียนได้มันจะทำให้ restore &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; tablespace ไม่สำเร็จ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;จากนั้น save แล้วก็&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;blockquote&gt;db2 -tvf restore.sql&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-1414880577759565061?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/1414880577759565061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=1414880577759565061' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1414880577759565061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1414880577759565061'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2011/06/sql0902c-system-error-reason-code.html' title='SQL0902C  A system error (reason code = &quot;&quot;)'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-5260310293940127178</id><published>2011-06-04T10:06:00.000-07:00</published><updated>2011-06-04T10:07:42.046-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>ISO/IEC 27001:2005</title><content type='html'>&lt;div style="width:425px" id="__ss_8207562"&gt; &lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/fuangwith/isoiec-270012005" title="ISO/IEC 27001:2005"&gt;ISO/IEC 27001:2005&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/8207562" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt; &lt;div style="padding:5px 0 12px"&gt; View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/fuangwith"&gt;fuangwith&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-5260310293940127178?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/5260310293940127178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=5260310293940127178' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5260310293940127178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5260310293940127178'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2011/06/isoiec-270012005.html' title='ISO/IEC 27001:2005'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-3039407436055230952</id><published>2011-03-29T02:38:00.000-07:00</published><updated>2011-03-29T02:42:10.899-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Network Connection: Some of the controls on this property sheet are disabled</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/-YAJfksael2Y/TZGpalRdKZI/AAAAAAAACOI/AgJgK3bmMMg/s1600/already.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 50px;" src="http://3.bp.blogspot.com/-YAJfksael2Y/TZGpalRdKZI/AAAAAAAACOI/AgJgK3bmMMg/s320/already.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5589434886690515346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;วันนี้เจอปัญหาเปิด properties ใน Network Connection แล้วขึ้น&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;Some of the controls on this property sheet are disabled because one or more other Network property sheets are already open. To use these controls, close all thes property sheets and then reopen this one.&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;แต่ไม่ใช้เพราะเราเปิดพร้อมกันหลายตัวอย่างทีี่ message เตือน หาไปค้นมาพบว่าใน&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;item ที่มีเรียกใช้ run32.dll อยู่ทำให้สถานะค้างอยู่ ก็เลยจัดการ backup แล้วลบทิ้ง restart ใหม่ 1 รอบ ใช้งานได้ครับผม ^ ^&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-3039407436055230952?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/3039407436055230952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=3039407436055230952' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3039407436055230952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3039407436055230952'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2011/03/network-connection-some-of-controls-on.html' title='Network Connection: Some of the controls on this property sheet are disabled'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-YAJfksael2Y/TZGpalRdKZI/AAAAAAAACOI/AgJgK3bmMMg/s72-c/already.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-2623528231249266915</id><published>2011-03-08T19:55:00.000-08:00</published><updated>2011-03-08T20:10:02.862-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oss'/><title type='text'>Open Sources: Voices from the Open Source Revolution</title><content type='html'>&lt;div&gt;&lt;table border="0" cellpadding="4" cellspacing="4" width="100%" style="font-family: Tahoma; font-size: medium; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="25%" valign="TOP"&gt;&lt;a href="http://www.oreilly.com/catalog/opensources/"&gt;&lt;img hspace="10" vspace="10" src="http://oreilly.com/catalog/covers/opensources.s.gif" alt="Open Sources: Voices from the Open Source Revolution" align="left" valign="top" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td height="105" valign="TOP"&gt;&lt;br /&gt;&lt;h2&gt;Open Sources: Voices from the Open Source Revolution&lt;/h2&gt;&lt;span &gt;&lt;br /&gt;1st Edition January 1999&lt;br /&gt;1-56592-582-3, Order Number: 5823&lt;br /&gt;280 pages, $24.95&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;ตอนนี้ให้ความสนใจกับ OSS อยู่พอสมควร พบว่าหนังสือเล่มนี้น่าสนใจมากครับ อีกอย่าง O'reilly มีเปิดให้เข้าไปอ่านฟรีด้วยที่ &lt;a href="http://oreilly.com/catalog/opensources/book/toc.html"&gt;http://oreilly.com/catalog/opensources/book/toc.html&lt;/a&gt; แ่ต่หา load pdf ก็ยากอ่านก็ไม่สะดวก เลยจัดเป็น chm เองซะเลย ยังไงใครสนใจได้โหลดได้&lt;a href="http://www.4shared.com/file/2SaCe1zj/Open_sources_voices_from_open_.html"&gt;ที่นี้ครับ&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-2623528231249266915?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/2623528231249266915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=2623528231249266915' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/2623528231249266915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/2623528231249266915'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2011/03/open-sources-voices-from-open-source.html' title='Open Sources: Voices from the Open Source Revolution'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-1177870296857324894</id><published>2010-12-22T20:10:00.000-08:00</published><updated>2010-12-22T20:12:25.828-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>DB2CC define column default value</title><content type='html'>&lt;div style="text-align: center;"&gt;ใครใช้ DB2 Control Center (DB2CC) อยู่ก็คงพอจะรู้ว่ามันติ๊งต๊องในหลายๆเรื่องเหมือนกัน แต่วันนี้ขอพูดในมุมของการกำหนด default value ให้กับ column ตอนที่เรา create table ซึ่งถ้า column ที่เราจะกำหนด default value ให้มี data type เป็น CHARACTER, VARCHAR, INT หรืออื่นๆที่เป็นพวกเดียวกันก็คงไม่มีปัญหา แต่ปัญหามันเกิดตรงที่ถ้าเป็นรูปแบบของ DATE, TIMESTAMP, หรือ TIME แล้วเราอยากกำหนดค่า default value ให้เป็น current จะไม่สามารถทำได้ เนื่องจาก GUI บังคับให้ใส่ค่า default value แต่พอใส่เข้าไปแล้วก็ execute ไม่ผ่าน&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_t50Y90j6TyI/TRLMCV0Kd2I/AAAAAAAACM8/rWcU-hKExwo/s1600/default.PNG"&gt;&lt;img src="http://4.bp.blogspot.com/_t50Y90j6TyI/TRLMCV0Kd2I/AAAAAAAACM8/rWcU-hKExwo/s320/default.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5553725631088981858" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 216px; height: 320px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;วิธีแก้ก็คือสั่ง show sql แล้วเอามาลบส่วนที่เป็น default value เช่น&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;PROCESSING_DATE WITH DEFAULT 'CURRENT TIMESTAMP'&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;เป็น&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;PROCESSING_DATE WITH DEFAULT&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;แล้วเอาไปรันกับ db2ce ครับก็จะได้ current timestamp เป็นค่า default ของ column ที่เป็น date time แล้วครับ&lt;/div&gt;&lt;div&gt;สำหรับ tools ตัวอื่นเช่น Aqua Studio, Toad DB2 หรือ IBM Adminstration Tool หรือพวก Optim ยังไม่ได้ลองนะครับว่ามีปัญหาแบบนี้หรือไม่&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-1177870296857324894?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/1177870296857324894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=1177870296857324894' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1177870296857324894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1177870296857324894'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/12/db2cc-define-column-default-value.html' title='DB2CC define column default value'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_t50Y90j6TyI/TRLMCV0Kd2I/AAAAAAAACM8/rWcU-hKExwo/s72-c/default.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-4856529371733843272</id><published>2010-12-20T19:45:00.000-08:00</published><updated>2010-12-20T19:46:51.986-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>DB2 DROP COLUMN</title><content type='html'>&lt;div&gt;ในกรณีที่เรา alter table แล้ว add column เข้าไปใหม่ หลังจากนั้นต้องการ drop column นี้ออกจาก table ด้วยเหตุผลบางประการ หลายๆครั้งหากใช้ db2cc ในการ alter table ให้กลับมาเหมือนเดิมก็อาจต้องพบกับปัญหาเรื่องของ dependency objects ขึ้นได้ ทำให้ไม่สามารถ alter / drop หรือ re-create table ได้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;พบแนะนำว่าให้ทดลองใช้ command line ดูครับแต่ก่อนทำก็ควรทำการ backup ไว้ก่อนนะครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;ALTER TABLE [SCHEMA] &lt;/span&gt;&lt;schema&gt;&lt;span class="Apple-style-span"  &gt;.[TABLENAME] &lt;/span&gt;&lt;tablename&gt;&lt;span class="Apple-style-span"  &gt; DROP COLUMN [COLUMNNAME]&lt;/span&gt;&lt;columnname&gt;&lt;/columnname&gt;&lt;/tablename&gt;&lt;/schema&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;จะช่วยให้เรา drop column ที่ยังไม่มีการเรียกใช้งานโดย db2 objects อื่นๆ ออกจาก table เราได้ครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.admin.doc/doc/c0023297.htm"&gt;http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.admin.doc/doc/c0023297.htm&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-4856529371733843272?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/4856529371733843272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=4856529371733843272' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/4856529371733843272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/4856529371733843272'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/12/db2-drop-column.html' title='DB2 DROP COLUMN'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-7178582856694934115</id><published>2010-11-26T01:40:00.000-08:00</published><updated>2010-11-26T01:45:19.018-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>White Paper: IBM DB2 and Ubuntu</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_t50Y90j6TyI/TO-BJZ2IF0I/AAAAAAAACM0/7QllqBQ8uCM/s1600/apt-get-install-db2exec.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 167px;" src="http://3.bp.blogspot.com/_t50Y90j6TyI/TO-BJZ2IF0I/AAAAAAAACM0/7QllqBQ8uCM/s320/apt-get-install-db2exec.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5543791664873084738" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;   ในที่สุด IBM ก็ออก white paper สำหรับ IBM DB2 บน Ubuntu จนได้ ดีใจๆ&lt;/div&gt;&lt;div&gt;ลองเข้าไปดูได้ที่ &lt;a href="http://public.dhe.ibm.com/software/dw/db2/express-c/whitepaper/DB2andUbuntuWhitepaper.pdf"&gt;http://public.dhe.ibm.com/software/dw/db2/express-c/whitepaper/DB2andUbuntuWhitepaper.pdf&lt;/a&gt; ครับ ภายในก็อธิบาย db2 เบื้องต้นไปสัก 13 หน้า แล้วก็สอนวิธีการติดตั้ง เป็นแบบง่ายครับ &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" &gt;apt-get install db2exec&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;   ใช้ได้เลย แหล่มจริง เหมาะกับชาว Ubuntu ยิ่งนัก แล้วก็ show การใช้ db2 อีกสักสองหน้า ดีใจครับที่ IBM มาให้ความสนใจกับ Ubuntu อิอิ ชอบเหมือนกัน อย่างนี้คุยกันได้อีกนาน&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-7178582856694934115?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/7178582856694934115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=7178582856694934115' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/7178582856694934115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/7178582856694934115'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/11/white-paper-ibm-db2-and-ubuntu.html' title='White Paper: IBM DB2 and Ubuntu'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_t50Y90j6TyI/TO-BJZ2IF0I/AAAAAAAACM0/7QllqBQ8uCM/s72-c/apt-get-install-db2exec.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-5037512699171639566</id><published>2010-11-02T20:28:00.000-07:00</published><updated>2010-11-02T21:02:38.500-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>How to rotate Android Emulator?</title><content type='html'>&lt;div&gt;ในการพัฒนา android application บางครั้งเราจำเป็นที่จะต้องใช้หน้าจากในลักษณะแนวนอน ดังนั้นตัว AVD หรือ Emulator ของเราก็ควรที่จะต้อง rotate ได้ แน่&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;นอนครับมัน rotate ได้โดยการกดปุ่ม 7 และ 9 สำหรับ keyboard PC แล้วกด fn + 7 หรือ fn + 9 สำหรับ Notebook ครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 11px; color: rgb(51, 51, 51); "&gt;&lt;table border="0" style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 1em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 1em; border-collapse: collapse; empty-cells: show; clear: left; "&gt;&lt;tbody style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;th style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: rgb(222, 232, 241); "&gt;Emulated Device Key&lt;/th&gt;&lt;th style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: rgb(222, 232, 241); "&gt;Keyboard Key&lt;/th&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Home&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;HOME&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Menu (left softkey)&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;F2 &lt;em&gt;or&lt;/em&gt; Page-up button&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Star (right softkey)&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Shift-F2 &lt;em&gt;or &lt;/em&gt;Page Down&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Back&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;ESC&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Call/dial button&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;F3&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Hangup/end call button&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;F4&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Search&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;F5&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Power button&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;F7&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Audio volume up button&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;KEYPAD_PLUS, Ctrl-5&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Audio volume down button&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;KEYPAD_MINUS, Ctrl-F6&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Camera button&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Ctrl-KEYPAD_5, Ctrl-F3&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Switch to previous layout orientation (for example, portrait, landscape)&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;KEYPAD_7, Ctrl-F11&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Switch to next layout orientation (for example, portrait, landscape)&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;KEYPAD_9, Ctrl-F12&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Toggle cell networking on/off&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;F8&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Toggle code profiling&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;F9 (only with &lt;code style="color: rgb(0, 112, 0); font-family: monospace; line-height: 1em; "&gt;-trace&lt;/code&gt; startup option)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Toggle fullscreen mode&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Alt-Enter&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Toggle trackball mode&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;F6&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Enter trackball mode temporarily (while key is pressed)&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Delete&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;DPad left/up/right/down&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;KEYPAD_4/8/6/2&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;DPad center click&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;KEYPAD_5&lt;/td&gt;&lt;/tr&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;Onion alpha increase/decrease&lt;/td&gt;&lt;td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 6px; padding-right: 12px; padding-bottom: 6px; padding-left: 12px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); text-align: left; vertical-align: top; background-color: inherit; "&gt;KEYPAD_MULTIPLY(*) / KEYPAD_DIVIDE(/)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-5037512699171639566?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/5037512699171639566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=5037512699171639566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5037512699171639566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5037512699171639566'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/11/how-to-rotate-android-emulator.html' title='How to rotate Android Emulator?'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-4893834863293182787</id><published>2010-11-02T20:26:00.000-07:00</published><updated>2010-11-02T20:27:38.260-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>็How to change Android Emulator Skin?</title><content type='html'>&lt;div&gt;สำหรับใครต้องการเปลี่ยน skin ของ Android Emulator หรือ AVD นะครับก็สามารถหา load skin มาได้จาก internet ครับ เช่น&lt;/div&gt;&lt;div&gt;HTC Legend =&gt; http://www.anddev.it/jd/htc_legend_skin_v1.0.zip นะครับ จากนั้นก็ extract file แล้ว copy ไปไว้ที่&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;..\android-sdk-windows\platforms\android-x\skins&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ประมาณนี้ครับ จากนั้นก็ไปสร้าง AVD ขึ้นมาใหม่ใน Eclipse ที่ Window -&gt; Android SDK and AVD Manager ครับ&lt;/div&gt;&lt;div&gt;แล้วก็ new device จากนั้นเลือก skin ที่เราต้องการในช่อง built-in นะครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;นอกจากนี้สำหรัค&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-4893834863293182787?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/4893834863293182787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=4893834863293182787' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/4893834863293182787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/4893834863293182787'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/11/how-to-change-android-emulator-skin.html' title='็How to change Android Emulator Skin?'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-1565844920907694233</id><published>2010-09-30T20:32:00.000-07:00</published><updated>2010-09-30T20:39:23.427-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Cannot create new android project: The parent resource is not accessible</title><content type='html'>&lt;div&gt;พอดีว่าต้องย้าย environment ที่ใช้ dev Android จาก Ubuntu มาอยู่บน Windows XP กระบวนการย้ายก็ไม่มีอะไรยุ่งยากทำง่ายๆ เพราะอะไรต่อมิอะไรก็มีเหมือนกันหมด แต่พอจะ New Android Project นี้สิก็เกิดปัญหา&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Cannot create linked resource '/.org.eclipse.jdt.core.external.folders/.link0'.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The parent resource is not accessible&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Reason:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; Cannot create linked resource '/.org.eclipse.jdt.core.external.folders/.link0'.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The parent resource is not accessible&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ค้นไปค้นมาก็พบว่า &lt;/div&gt;&lt;div&gt;  1. รัน command: eclipse.exe -clean ถ้ายังไม่หายก็ไป step ถัดไป&lt;/div&gt;&lt;div&gt;  2. สร้าง workspace ใหม่&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ก็พบว่า New Android Project ได้สบายดี ไม่ต้องไปลง Android SDK อะไรใหม่หรอกครับ&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-1565844920907694233?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/1565844920907694233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=1565844920907694233' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1565844920907694233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1565844920907694233'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/09/cannot-create-new-android-project.html' title='Cannot create new android project: The parent resource is not accessible'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-698178896730092888</id><published>2010-09-16T21:32:00.000-07:00</published><updated>2010-09-16T21:33:15.881-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>NullPointerException when try to edit string.xml</title><content type='html'>&lt;div&gt;เพิ่งเริ่มหัดเขียน Android ครับ เริ่มต้นก็เริ่มเจอปัญหาเลย&lt;/div&gt;&lt;div&gt;ถ้าใครเปิด ./res/values/string.xml ขึ้นมาเพื่อแก้ไข&lt;/div&gt;&lt;div&gt;แล้วทุกครั้งที่พิมพ์จะเกิด error NullPointerException &lt;/div&gt;&lt;div&gt;ก็ปิดแล้วให้ click ขวาเปิด open with XML Editor ครับ&lt;/div&gt;&lt;div&gt;เท่านี้เอง &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ป.ล. ผมใช้ Android Resource Editor ก็เกิด NullPointerException เหมือนกัน - -"&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-698178896730092888?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/698178896730092888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=698178896730092888' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/698178896730092888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/698178896730092888'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/09/nullpointerexception-when-try-to-edit.html' title='NullPointerException when try to edit string.xml'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-1091957366351989537</id><published>2010-09-15T21:21:00.000-07:00</published><updated>2010-09-15T21:22:48.375-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Wipe out harddisk: เคลียร์ฮาร์ดดิสก่อนส่งต่อ</title><content type='html'>บางครั้งเราก็มีความจำเป็นที่จะต้องเปลี่ยนเครื่อง เปลี่ยน harddisk ซึ่งก็มีแนวโน้มว่า&lt;br /&gt;เจ้า Harddisk ที่เราเอาไปเปลี่ยน หรือส่งคืน หรืออะไรก็ตามที่น่าจะมีการนำไปใช้งานต่อ&lt;br /&gt;ใครจะไปรู้ว่าคนที่ได้รับต่อจากเราอาจรัน recovery โดยตั้งใจหรือไม่ตั้งใจ แล้วได้ข้อมูล&lt;br /&gt;ที่เราไม่ต้องการเปิดเผยไปด้วยก็ได้&lt;br /&gt;&lt;br /&gt;การ format harddisk ก็ส่งต่อให้คนอื่นอาจยังไม่พอ เพื่อเพิ่มความมั่นใจเข้าไปอีก&lt;br /&gt;วันนี้ผมขอนำเสนอสำหรับผู้ใช้ Linux นะครับคือ&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;1. GPart:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;- Delete All Partition&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;- Create to linux swap&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;2. Shred:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;- ใช้คำสั่ง shred เขียน 0 ลงไปในทุกๆ sector&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;shred -vfz -n 100 /dev/sdb1&lt;br /&gt;&lt;br /&gt;น่าจะทำให้ข้อมูลที่อยู่ใน harddisk กู้คืนกลับมาได้ยากมากขึ้นไปอีกสักนิดนะครับ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-1091957366351989537?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/1091957366351989537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=1091957366351989537' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1091957366351989537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1091957366351989537'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/09/wipe-out-harddisk.html' title='Wipe out harddisk: เคลียร์ฮาร์ดดิสก่อนส่งต่อ'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-5922578089896796319</id><published>2010-08-28T21:29:00.000-07:00</published><updated>2010-08-28T21:41:19.267-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Canon Digital Photo Professional (DPP) in Ubuntu</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"   style="  color: rgb(51, 51, 51); line-height: 18px; font-family:Arial, Helvetica, Georgia, sans-serif;font-size:12px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"   style="color: rgb(0, 0, 0);  font-weight: normal; line-height: normal;  font-family:Georgia, serif;font-size:16px;"&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="color: rgb(51, 51, 51); line-height: 18px; font-family:Arial, Helvetica, Georgia, sans-serif;font-size:12px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Georgia, serif; font-weight: normal; line-height: normal; font-size: 16px; "&gt;สำหรับคนใช้ Ubuntu ที่ใช้กล้องของ Canon เราสามารถติดตั้ง DPP บน Ubuntu ได้โดยใช้ wine ครับแต่ตัว Explorer ด้านซ้ายมือจะมีปัญหาไม่ refresh ทำให้ยากต่อการใช้งาน&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;วิธีแก้ไขก็คือไปที่ ~/.wine/dosdevices/c:/windows หรือที่ Applications -&gt; Wine -&gt; Browse C:\ Drive จากนั้นเปิด regedit.exe ด้วย wine ครับ แล้วไปแก้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"    style="font-family:Arial, Helvetica, Georgia, sans-serif;font-size:100%;color:#333333;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 18px;"&gt;HKEY_LOCAL_MACHINE -&gt; Software -&gt; Microsoft -&gt; Windows NT -&gt; CurrentVersion -&gt; AeDebug&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Arial, Helvetica, Georgia, sans-serif;color:#333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px; font-size: -webkit-xxx-large; "&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="color: rgb(51, 51, 51); line-height: 18px; font-family:Arial, Helvetica, Georgia, sans-serif;font-size:12px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color: rgb(51, 51, 51); line-height: 18px; font-family:Arial, Helvetica, Georgia, sans-serif;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color: rgb(0, 0, 0); font-weight: normal; line-height: normal; font-family:Georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: medium; "&gt;แล้วไปแก้จาก 1 เป็น 0 ครับ&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="color: rgb(51, 51, 51); line-height: 18px; font-family:Arial, Helvetica, Georgia, sans-serif;font-size:12px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-5922578089896796319?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/5922578089896796319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=5922578089896796319' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5922578089896796319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5922578089896796319'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/08/canon-digital-photo-professional-dpp-in.html' title='Canon Digital Photo Professional (DPP) in Ubuntu'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-9141645571919535448</id><published>2010-07-29T20:20:00.000-07:00</published><updated>2010-07-29T20:35:16.257-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xsl'/><title type='text'>XSL with HTML escape character</title><content type='html'>บางครั้งการที่เราเขียน XSL ผ่าน Text Editor ธรรมดาก็ชวนให้ปวดหัวได้เหมือนกันครับ โดยเฉพาะเรื่องของ Html ที่ปนอยู่ XSL เพราะว่า XSL มีโครงสร้างทางภาษา based on XML ที่เมื่อมี start tag ก็ย่อมต้องมี end tag ในขณะที่ HTML มี element บางตัวเช่น meta หรือ br ส่วนของ end tag ถือว่า forbidden (อ้างตาม HTML 4.01 เค้า) แต่บางครั้งใน HTML เราจะเขียน &amp;lt;meta&amp;gt; หรือ เจ้า browser ต่างๆก็ไม่งงแต่อย่างใด แต่พอใส่แบบนี้เข้าไปใน XSL เจ้าตัว XSLT ก็ดัน process ออกมาให้เป็น ตามมาตรฐานซะนี้&lt;div&gt;&lt;br /&gt;ประการต่อมาบางครั้งเราเองก็อยากใส่ escape character ลงไปบ้างเช่น เว้นวรรค ก็จะเป็น   ลองใส่ลงใน XSL สิครับ จะพบ error เนื่องจาก &amp;amp; ถือว่าเป็น escape character เหมือนกัน&lt;br /&gt;ทั้งหลายทั้งปวงที่กล่าวมานี้สามารถแก้ไขได้ด้วย&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'courier new';color:#009900;"&gt;&lt;span class="Apple-style-span"   style="font-family:Georgia, serif;color:#000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'courier new';color:#009900;"&gt;&amp;lt;xsl:text disable-output-escaping="yes"&amp;gt;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ครับซึ่งถ้าเราอยากให้ html result เราเป็น &amp;lt;br/&amp;gt;  ก็ใส่&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;&amp;lt;xsl:text disable-output-escaping="yes"&amp;gt;&amp;amp;lt;br/&amp;amp;gt;&amp;lt;/xsl:text&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;หรือถ้าอยากให้เป็น  &amp;amp;nbsp;  ก็ใส่เป็น&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;&amp;lt;xsl:text disable-output-escaping="yes"&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/xsl:text&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;&lt;/span&gt;&lt;br /&gt;ว่ากันง่ายๆคือใช้ &amp;lt;xsl:text escaping="yes"&amp;gt; ร่วมกับการทำให้ตัวอักษรทุกตัวที่เป็น escape character กลายเป็นตัวที่เราใส่ escape เข้าไปให้แล้ว&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-9141645571919535448?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/9141645571919535448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=9141645571919535448' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/9141645571919535448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/9141645571919535448'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/07/xsl-with-html-escape-character.html' title='XSL with HTML escape character'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-1991215013939428690</id><published>2010-06-28T10:35:00.000-07:00</published><updated>2010-06-28T10:48:35.294-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MS-DOS'/><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>How to merge log files cluster?</title><content type='html'>&lt;div&gt;ในระบบคอมพิวเตอร์ที่มีผู้ใช้จำนวนมากเข้าใช้งาน application ใดอันใดพร้อมๆกัน ย่อมหนีไม่พ้นที่จะมีการออกแบบให้โครงสร้างมีการแบ่งงานกันทำ&lt;/div&gt;&lt;div&gt;ไม่ว่าจะอยู่ในรูปของ cluster ตลอดไปถึง load balancer ก็ตามสิ่งเหล่านี้ส่งผลดีต่อระบบแต่สร้างความหนักใจให้กับ developer หรือแม้กระทั่ง &lt;/div&gt;&lt;div&gt;Administrator ไม่ใช้น้อยเนื่องจาก log files ที่ได้จากการทำงานมักกระจัดกระจายกันอยู่ทำให้ยากแก่การวิเคราะห์เหตุการณ์ต่างๆ&lt;/div&gt;&lt;div&gt;ตัวอย่างเช่น Java Web Application 1 ตัวถูกแบ่งออกเป็น 2 server แล้วเขียน log file ออกมาในแต่ละ server ดังนี้&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;[server1]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;2010-04-01 20:00:17.015      - Loading data from some table...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;2010-04-01 20:00:17.567      - &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt; ***[Error Terminate.]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;2010-04-01 20:00:20.833      - Calculating balance...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;[server2]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;2010-04-01 20:00:16.015      - Update coporate data ...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;2010-04-01 20:00:17.507      - Update success&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;2010-04-01 20:00:18.476      - Delete user name id GOD&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;เราสามารถใช้ command ในการ merge files ทั้งสองเข้าได้กันได้ดังนี้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;$cat server1.log server2.log&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;2010-04-01 20:00:17.015      - Loading data from some table...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;2010-04-01 20:00:17.567      - &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt; ***[Error Terminate.]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;2010-04-01 20:00:20.833      - Calculating balance...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;2010-04-01 20:00:16.015      - Update coporate data ...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;2010-04-01 20:00:17.507      - Update success&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;2010-04-01 20:00:18.476      - Delete user name id GOD&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;$cat server1.log server2.log | sort&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;2010-04-01 20:00:16.015      - Update coporate data ...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;2010-04-01 20:00:17.015      - Loading data from some table...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;2010-04-01 20:00:17.507      - Update success&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;2010-04-01 20:00:17.567      - &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt; ***[Error Terminate.]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;2010-04-01 20:00:18.476      - Delete user name id GOD&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;2010-04-01 20:00:20.833      - Calculating balance...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;$cat server1.log server2.log | sort &gt; serverlog.log&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;หรืออาจใช้ควบคู่กันกับ uniq เพื่อช่วยจัดการข้อมูลที่ซ้ำซ้อนก็ได้ครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;สำหรับ MS-DOS ก็คงทำเป็นบรรทัดลำบากถ้าเขียนเป็นทีละคำสั่งน่าจะง่ายกว่าดังนี้&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;c:\&gt;type server1.log &gt; temp.log&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;c:\&gt;type server2.log &gt;&gt; temp.log&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;c:\&gt;sort temp.log &gt; serverlog.log&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-1991215013939428690?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/1991215013939428690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=1991215013939428690' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1991215013939428690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1991215013939428690'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/06/how-to-merge-log-file-cluster.html' title='How to merge log files cluster?'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-4358062806263807922</id><published>2010-06-21T11:16:00.000-07:00</published><updated>2010-06-21T11:31:43.163-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>ว่าด้วยคลื่นความถี่</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;เห็นข่าวเรื่องร่างกฎหมาย 3G มานานก็ยังไม่จบไม่สิ้นกันสักที&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;หลายๆคนถามว่าทำไมต้องทำให้ยุ่งยาก ก็แค่ความถี่ เปิดให้ใช้สิไม่เห็นจะยาก&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;ทำให้หวนคิดถึงสมัยเด็กที่ตั้งหน้าตั้งตาอ่านหนังสือสอบ พนักงานวิทยุสมัครเล่น เดี๋ยวนี้ยังมีใครเล่นอยู่บ้างรึป่าวก็ไม่รู้เน่อะ เขาบอกว่า &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;คลื่นความถี่เป็นทรัพยากรณ์ที่มีอยู่อย่างจำกัด (ทรัพยากรณ์มีทั้งแบบ จำกัด เช่น น้ำมัน ไม่จำกัด เช่น อากาศ) เนื่องจากคลื่นความถี่ิวิทยุจะไม่สามารถใช้งานร่วมความถี่กันได้ภายในบริเวณเดี๋ยวกันหรือใกล้เคียง เพราะจะเกิดการทับกันของคลื่นเกิดขึ้น ดังนั้นจึงต้องมีการจัดสรรค์คลื่นความถี่ขึ้น โดยถ้าอ้างตามศัพท์ของ พรบ. วิทยุโทรคมนาคม แล้วก็ต้องเรียกว่า คลืนแฮรตเซี่ยน&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma, sans-serif; font-size: 12px; border-collapse: collapse; color: rgb(69, 69, 69); line-height: 16px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 16px; "&gt;"คลื่นแฮรตเซียน" หมายความว่า คลื่นแม่เหล็กไฟฟ้าที่มีความถี่ระหว่าง 10 กิโลไซเคิลต่อวินาที และ 3,000,000 เมกกาไซเคิลต่อวินาที (10KHz - 3,000,000 MHz หรือ 10KHz - 3GHz)&lt;/div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;ผมอาจอยู่ผิดที่ผิดทาง แต่นอกจากเพื่อนที่ไปสอบพนักงานวิทยุสมัครเล่นด้วยกันแล้วพอพูดถึงคลื่นแฮรตเซี่ยนแล้วไม่มีใครเคยได้ยินหรือรู้จักเลย - -"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 16px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; font-size: medium;"&gt;โดยเบื้องต้นมีการแบ่งช่วงความถี่สำหรับ ความมั่นคง (ทหาร ตำรวจ) สาธารณชน (CB: Citizens Band) วิทยุโทรทัศน์ และอื่นๆ&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 16px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 16px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; font-size: medium;"&gt;สำหรับการป้องกัน ก็จะมี&lt;a href="http://www.hs3lzx.in.th/ศูนย์ตรวจสอบและเฝ้าฟัง/"&gt;ศูนย์ตรวจสอบและเฝ้าฟัง&lt;/a&gt; กระจายอยู่ตามที่ต่างๆทั่วประเทศ หากใครฝ่าฝืนก็จะรู้ทันใช้ (เพื่อนๆชาว Ham คงรู้จักกันดีเป็นพิเศษ) &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 16px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 16px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; font-size: medium;"&gt;กลับมาที่ 3G  ด้วยเหตุวุ่นวายต่างๆเหล่านี้จึงต้องมีการพิจารณาอย่างรอบคอบในการให้สัมประทานคลื่นความถี่ออกไป &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 16px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 16px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; font-size: medium;"&gt;แต่อย่างไรก็ตามก็ไม่นานขนาดนี้หรอก ที่นานเพราะมันไม่ธรรมดา อิอิ&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-4358062806263807922?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/4358062806263807922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=4358062806263807922' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/4358062806263807922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/4358062806263807922'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/06/blog-post.html' title='ว่าด้วยคลื่นความถี่'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-3004131842887920025</id><published>2010-06-21T10:25:00.000-07:00</published><updated>2010-06-21T10:30:06.030-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu: Sharing printer to Windows client</title><content type='html'>sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak&lt;div&gt;sudo gedit /etc/samba/smb.conf&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;มองหา [printers]&lt;/div&gt;&lt;div&gt;แก้ไข&lt;/div&gt;&lt;div&gt;   browseable = yes  &lt;-- กรณีที่ต้องการให้ browse แล้วเห็นชื่อเครื่องพิมพ์&lt;/div&gt;&lt;div&gt;   printable = yes      &lt;/div&gt;&lt;div&gt;   guest ok = yes        &lt;-- อนุญาติให้ guest เข้าใช้งานได้&lt;/div&gt;&lt;div&gt;   read only = yes&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;sudo /etc/init.d/samba restart&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-3004131842887920025?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/3004131842887920025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=3004131842887920025' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3004131842887920025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3004131842887920025'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/06/ubuntu-sharing-printer-to-windows.html' title='Ubuntu: Sharing printer to Windows client'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-7817969887837288080</id><published>2010-06-20T10:46:00.000-07:00</published><updated>2010-06-21T10:30:34.179-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Setting up Brother DCP-195c printer on Ubuntu 9.10 amd64</title><content type='html'>สำหรับ printer ของ Brother รุ่น DCP-195c นั้นทาง Brother เองเขามี driver สำหรับ Linux ทั้ง .rpm และ deb ให้ download ที่&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://welcome.solutions.brother.com/bsc/public_s/id/linux/en/download_prn.html#DCP-195C"&gt;http://welcome.solutions.brother.com/bsc/public_s/id/linux/en/download_prn.html#DCP-195C&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ครับ แต่จะเป็นของ i386 หากใครใช้ amd64 ก็ต้องใช้ option ของ dkpg เป็น --force-architecture ครับ หลังจาก download driver มาเรียบร้อยแล้วก็&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-size:13px;"&gt;&lt;span style=" ;font-size:13px;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;sudo aa-complain cupsd&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;sudo mkdir /usr/share/cups/model&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;sudo apt-get install &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;ia32-libs&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;sudo dpkg -i --force-architecture dcp195clpr-1.1.2-1.i386.deb&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;sudo dpkg -i --force-architecture dcp195ccupswrapper-1.1.2-2.i386.deb&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;sudo dpkg -i brscan3-0.2.11-2.amd64.deb&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-size:13px;"&gt;&lt;span style=" ;font-size:13px;"&gt;&lt;span style=" ;font-size:13px;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-family:Arial, Helvetica, sans-serif;font-size:13px;"&gt;&lt;span style="font-family:Arial, Helvetica, sans-serif;font-size:13px;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-family:Arial, Helvetica, sans-serif;font-size:13px;"&gt;&lt;span style="font-family:Arial, Helvetica, sans-serif;font-size:13px;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;จากนั้นก็จะมี list ของ printer ขึ้นใน System -&gt; Administrator -&gt; Printing ครับ&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Arial, Helvetica, sans-serif;"&gt;&lt;span style=" ;font-family:Arial, Helvetica, sans-serif;"&gt;&lt;span style=" ;font-family:Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;สำหรับเรื่องของ scan เดี๋ยวต้องหาวิธีก่อนครับ&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  ;font-family:Arial, Helvetica, sans-serif;font-size:13px;"&gt;&lt;b   style="  ;font-family:Arial, Helvetica, sans-serif;font-size:13px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;b style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; "&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-7817969887837288080?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/7817969887837288080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=7817969887837288080' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/7817969887837288080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/7817969887837288080'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/06/setup-brother-dcp-195c-printer-on.html' title='Setting up Brother DCP-195c printer on Ubuntu 9.10 amd64'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-141033960665422616</id><published>2010-06-15T01:51:00.000-07:00</published><updated>2010-06-15T01:54:36.888-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='groovy'/><title type='text'>First Groovy</title><content type='html'>&lt;div&gt;หลังจากพี่ที่บริษัทสอนให้ใช้งาน groovy พร้อมกับให้เขียนโปรแกรมเล่น เพือรับ input แบบนี้&lt;/div&gt;&lt;div&gt;&lt;div&gt;E:\grail\codes\exercises&gt;groovy Classified.groovy 1 2 4 test data 5 11  by 34 me 27 28 23 3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;แล้วให้ได้ output แบบนี้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Word:[test, data, by, me]&lt;/div&gt;&lt;div&gt;Number:[1, 2, 4, 5, 11, 34, 27, 28, 23, 3]&lt;/div&gt;&lt;div&gt;Prime: [2, 5, 11, 23, 3]&lt;/div&gt;&lt;div&gt;Special Character:[]&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;เราก็เลยได้ code มาแบบนี้ ที่เอามาลงก็เพราะชอบใจเป็นพิเศษกับส่วนที่เขียนหาจำนวนเฉพาะนี้ล่ะ&lt;/div&gt;&lt;div&gt;ทำง่ายดีจัง&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;println '\nWelcome to first groovy code';&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;def ltWords = [];&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;def ltNumbers = [];&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;def ltPrimes = [];&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;def ltSpecials = [];&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;def patternWord = ~/[a-zA-Z]+/;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;def patternNumber = ~/[0-9]*/;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;for (arg in this.args) {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;  if(match(patternWord,arg)){&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;      ltWords.add(arg);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;  }else if(match(patternNumber,arg)){&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;      ltNumbers.add(Integer.parseInt(arg));&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;  }else{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;      ltSpecials.add(arg);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;  }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;//get prime numbers&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;ltNumbers.each{ number -&gt; (2..number).each{ test -&gt; if(number%test==0 &amp;amp;&amp;amp; number!=test){ ltPrimes.add(number) }   } }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;ltPrimes = ltNumbers - ltPrimes - 1;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;println 'Word:' + ltWords;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;println 'Number:' + ltNumbers;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;println 'Prime: ' + ltPrimes;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;println 'Special Character:' + ltSpecials;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;def match(pattern, text){&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;    return pattern.matcher(text).matches();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-141033960665422616?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/141033960665422616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=141033960665422616' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/141033960665422616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/141033960665422616'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/06/first-groovy.html' title='First Groovy'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-8618319841546558241</id><published>2010-06-14T09:57:00.000-07:00</published><updated>2010-06-14T10:21:51.730-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>PHP get content from URL</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;ตามกระแสบอลโลก&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;พอดีเห็น Google เค้ามีผลบอลแสดงไว้ในหน้า search result ด้วย&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;ก็เลยคิดว่าถ้าอยากเอามา show ใน page เราบ้างจะทำยังไง&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;หา feed แล้วที่อื่่นๆก็ไม่มีให้โหลดเลย &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;เลยลองเขียนอ่านจาก Google หน่อยล่ะกัน พอดีว่า&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;php ที่รันบน server ที่มีไม่รองรับ&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 19px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; file_get_contents() &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 19px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;จึงต้องมาใช้ CURL แทน ดังนี้ครับ&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;$url = "http://www.google.co.th/search?hl=th&amp;amp;source=hp&amp;amp;q=world+cup+result&amp;amp;btnG=ค้นหาด้วย+Google&amp;amp;aq=f&amp;amp;aqi=&amp;amp;aql=&amp;amp;oq=&amp;amp;gs_rfai=";&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;$ch = curl_init();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;curl_setopt($ch, CURLOPT_URL,$url);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;curl_setopt($ch, CURLOPT_FAILONERROR, 1);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;curl_setopt($ch, CURLOPT_TIMEOUT, 0);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;curl_setopt($ch, CURLOPT_FAILONERROR, 0);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;curl_setopt($ch, CURLOPT_VERBOSE, 1);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;curl_setopt($ch, CURLOPT_HEADER, 1);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;curl_setopt($ch, CURLOPT_COOKIEFILE, 1);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;$result = curl_exec($ch);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;curl_close($ch);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;$patterns = array();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;$patterns[0] = '/HTTP.*[\s\S]*iGoogle/';&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;$patterns[1] = '/FIFA.com - 2010.*[\s\S]*/';&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;$patterns[2] = '/\&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;$patterns[3] = '/\/url\\?/';&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;$replacement = '';&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;$result = preg_replace($patterns, $replacement, $result);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;$result = preg_replace('/q=/', $replacement, $result);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;echo $result;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-family:arial, sans-serif;"&gt;&lt;span class="Apple-style-span"  style="line-height: 19px; font-size:medium;"&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial, sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;iframe src="http://www.kuapa.com/fifa.php" width="100%" height="300" frameborder="0" scrolling="auto"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-8618319841546558241?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/8618319841546558241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=8618319841546558241' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8618319841546558241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8618319841546558241'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/06/php-get-content-from-url.html' title='PHP get content from URL'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-3713952442675257847</id><published>2010-06-13T09:09:00.000-07:00</published><updated>2010-06-13T10:58:31.728-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>Limit your DB2 result on DB2 9.7.2</title><content type='html'>นานแล้วที่ผมรอคอยให้ DB2 สามารถ query เป็นส่วนๆ (Limit Result) ได้อย่าง MySQL&lt;br /&gt;ที่สามารถ&lt;br /&gt; &lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;SELECT * FROM TABLE LIMIT 5 AND 10&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;เพื่อให้สามารถทำ Page ได้ง่ายๆโดยไม่ต้องเสียพลังไปกับการ order ไปมาซ้ำยังต้องทำ table scan&lt;br /&gt;อีก กว่าจะได้ส่วนที่เราต้องการมา ทำให้คิดอยู่นานว่าควรจะแบ่งข้อมูลที่จะนำมาแสดงเป็น page หรือไม่&lt;br /&gt;&lt;br /&gt;วันนี้ DB2 v.9.7.2 ก็ใส่ function นี้เข้ามาสักที ดีใจมากมาย&lt;br /&gt;เป็น syntax ใหม่ของ SELECT statment ครับ โดยจะใช้ keyword คำว่า LIMIT และ OFFSET&lt;br /&gt;เข้ามาใช้ทำ Limit ครับ ตัวอย่างเช่น&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;SELECT * FROM TABLE LIMIT 5&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/blockquote&gt;ก็มีค่าเท่ากับ&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="color:#3366FF;"&gt;SELECT * FROM TABLE FETCH FIRST 5 ROWS ONLY&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;แต่เมื่อตั้งการให้เริ่มจาก ROW อื่นๆที่ไม่ใช่ 1 ก็จะใช้เป็น&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;SELECT * FROM TABLE LIMIT 5 OFFSET 10&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;อันนี้ก็จะได้ result ส่วนที่เป็น row 11 - 15 ครับ&lt;br /&gt;เพื่อให้สามารถใช้ option นี้ได้เราจำเป็นต้อง update ค่า DB2 Register ที่ชื่อว่า&lt;br /&gt;DB2_COMPATIBILITY_VECTOR ดังนี้ครับ&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;$ db2set DB2_COMPATIBILITY_VECTOR=MYS&lt;br /&gt;$ db2stop&lt;br /&gt;$ db2start&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-3713952442675257847?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/3713952442675257847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=3713952442675257847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3713952442675257847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3713952442675257847'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/06/limit-your-db2-result-on-db2-972.html' title='Limit your DB2 result on DB2 9.7.2'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-8194191532591502088</id><published>2010-05-30T10:45:00.000-07:00</published><updated>2010-05-30T10:53:36.517-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>External Microphone on Ubuntu 9.10</title><content type='html'>วันนี้ได้โอกาสทดลองช่อง external microphone ของ vostro 1320 หลังจากใช้มานาน แต่ไม่มีโอกาสใช้สักที ไม่ง่ายอย่างที่คิดครับ ubuntu 9.10 ยังคงใช้ input จาก internal microphone อยู่ (แต่จากการลองอัดเสียงดู พบว่า microphone ที่ติดมากับ vostro 1320 คุณภาพความไวใช้ได้เลยทีเดียว) สิ่งที่ต้องทำคือ&lt;br /&gt;เปิด ๊Ubuntu Software Center -&gt; ติดตั้ง GNOME ALSA Mixer เท่านั้นยังไม่พอต้องต่อด้วย&lt;br /&gt;&lt;br /&gt;sudo apt-get install linux-backports-modules-alsa-karmic-generic&lt;br /&gt;&lt;br /&gt;จากนั้นก็ทำการ restart ปัญหาต่อมาคือ driver การ์ดจอหายเลยต้อง&lt;br /&gt;uninstall EnvyNG ตัวเก่าออก เพราะเปิดไม่ขึ้นด้วยจากนั้น&lt;br /&gt;&lt;br /&gt;sudo apt-get install envy-ng&lt;br /&gt;sudo apt-get install envy-core&lt;br /&gt;&lt;br /&gt;แล้วจึงต้องติดตั้งด้วย&lt;br /&gt;&lt;br /&gt;sudo envy -t&lt;br /&gt;&lt;br /&gt;ครับ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-8194191532591502088?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/8194191532591502088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=8194191532591502088' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8194191532591502088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8194191532591502088'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/05/external-microphone-on-ubuntu-910.html' title='External Microphone on Ubuntu 9.10'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-5056729843292265557</id><published>2010-05-15T11:07:00.000-07:00</published><updated>2010-05-15T11:10:38.573-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>How to use Mobile Broadband on Ubuntu ?</title><content type='html'>&lt;div&gt;เนื่องจากเร่ร่อนไปอยู่ site ลูกค้า internet ไม่มีให้ใช้จึงจำเป็นต้องต่อ internet ผ่านมือถือ&lt;/div&gt;&lt;div&gt;ผมใช้มือถือ Nokia 5630 Express + Ubuntu 9.10 ครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;พอเสียบ usb ปุ๊บ ที่มือถือก็จะมี message ถามว่าต้องการให้การเชื่อมต่อผ่าน usb นี้เป็นแบบไหน&lt;/div&gt;&lt;div&gt;ประกอบด้วย&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt; PC Suite&lt;/li&gt;&lt;li&gt; Media Transfer&lt;/li&gt;&lt;li&gt; Storage&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;เราก็เลือก PC Suite ครับ จากนั้นก็มีดูที่ network connection ที่มุมขวาบนน่ะครับ เมื่อคลิกก็จะเห็น&lt;/div&gt;&lt;div&gt; &lt;b&gt;New Mobile Broadband (GSM) connection...&lt;/b&gt;&lt;/div&gt;&lt;div&gt;จัดการเลือกเลยครับก็จะมี message dialog ขึ้นมาถาม&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt; 1. Set up a Mobile Broadband Connection -&gt; Forward&lt;/div&gt;&lt;div&gt; 2. Choose Your Provider's Country -&gt; Thailand&lt;/div&gt;&lt;div&gt; 3. Choose Your Provider -&gt; DTAC &lt;/div&gt;&lt;div&gt; 4. Choose Your Billing Plan -&gt; Default&lt;/div&gt;&lt;div&gt; 5. Confirm Mobile Broadbrand Setting -&gt; Apply&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ที่ Network Connection ก็จะมี Mobile Broadband แสดง DTAC Default ให้เห็น&lt;/div&gt;&lt;div&gt;เมื่อดูที่มือถือก็จะเห็นว่ามีการต่อ GPRS/EDGE อยู่ครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;แล้วก็ลองใช้งานดูสิ ใช้ได้แล้วไม่เห็นต้องลง ์Nokia PC Suite เลย&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-5056729843292265557?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/5056729843292265557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=5056729843292265557' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5056729843292265557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5056729843292265557'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/05/how-to-use-mobile-broadband-on-ubuntu.html' title='How to use Mobile Broadband on Ubuntu ?'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-6627833354817823607</id><published>2010-04-29T23:38:00.000-07:00</published><updated>2010-04-29T23:39:52.967-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>SQL1072C  The database manager resources are in an inconsistent state.</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;วันนี้ db2 ในเครื่องดูดีๆก็มีปัญหา db2start ไม่ได้เกิด SQL 1072 ซะงั้น&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;db2inst1@chan-dell-laptop:~$ db2start&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;04/30/2010 11:33:51     0   0   SQL1072C  The database manager resources are in an inconsistent state.  The database manager might have been incorrectly terminated, or another application might be using system resources in a way that conflicts with the database manager's use of system resources.  System resource cleanup might be required.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;SQL1032N  No start database manager command was issued.  SQLSTATE=57019&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ไม่ได้ใช้มาหลายวันมันเป็นอารายว้าา วันก่อนยังใช้ได้อยู่เลย&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ปัญหานี้เกิดจากตอน terminate database manager ทำแบบไม่ถูกต้องหรือไม่ก็มี process อื่นเข้ามาใช้ resource ของ db2 อยู่ โอ้วแปลตรงตัวจริงๆ&lt;/div&gt;&lt;div&gt;วิธีแก้คือ clean up  ครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;สำหรับผมก็&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;db2inst1@chan-dell-laptop:~$ cd sqllib/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;db2inst1@chan-dell-laptop:~/sqllib$ rm .ftok&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;db2inst1@chan-dell-laptop:~/sqllib$ db2start&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;04/30/2010 11:45:09     0   0   SQL1220N  The database manager shared memory set cannot be allocated.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;SQL1032N  No start database manager command was issued.  SQLSTATE=57019&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;อ่าลืม create .ftok&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;db2inst1@chan-dell-laptop:~/sqllib$ touch .ftok&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;db2inst1@chan-dell-laptop:~/sqllib$ db2start&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;04/30/2010 11:45:29     0   0   SQL1063N  DB2START processing was successful.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;SQL1063N  DB2START processing was successful.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;db2inst1@chan-dell-laptop:~/sqllib$ &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;สรุปคือ&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;cd sqllib&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;rm .ftok&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;touch .ftok&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;สำหรับ&lt;b&gt; .ftok&lt;/b&gt; นั้นเป็นไฟล์ที่ db2 จะสร้างขึ้นมาสำหรับเก็บข้อมูลต่างๆเกี่ยวกับ IPC key (interprocess communication key) เพื่อใช้ในการจองหน่วยความจำและอื่นๆครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-6627833354817823607?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/6627833354817823607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=6627833354817823607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/6627833354817823607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/6627833354817823607'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/04/sql1072c-database-manager-resources-are.html' title='SQL1072C  The database manager resources are in an inconsistent state.'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-2366687771354324330</id><published>2010-04-27T01:54:00.000-07:00</published><updated>2010-04-27T01:57:29.746-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>How to retrieve result set from db2 DML statement</title><content type='html'>สำหรับ db2 หากใครต้องการที่จะ select ข้อมูลที่เราได้ทำการ insert/delete/update นั้นก็สามารถทำได้โดยการใช้&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;FINAL TABLE&lt;/b&gt;: ผลที่ได้จะเหมือนกับ NEW TABLE แต่เป็นการรับรองว่าผลที่ได้นี้เกิดขึ้นหลังจากทำ trigger แล้ว&lt;/li&gt;&lt;li&gt;&lt;b&gt;NEW TABLE&lt;/b&gt;: ค่าใหม่ที่ถูก insert หรือ update &lt;/li&gt;&lt;li&gt;&lt;b&gt;OLD TABLE&lt;/b&gt;: ข้อมูลเก่าที่ถูก delete&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;ดังตัวอย่างต่อไปนี้&lt;br /&gt;&lt;br /&gt;&lt;b&gt;sql statement:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;SELECT * FROM FINAL TABLE (&lt;br /&gt;  INSERT INTO TB_HITME (MYKEY, MYMESSAGE) SELECT 1, 'ONE' FROM SYSCAT.TABLES FETCH FIRST 5 ROWS ONLY&lt;br /&gt;) &lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;หรือ&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;SELECT * FROM NEW TABLE (&lt;br /&gt;  INSERT INTO TB_HITME (MYKEY, MYMESSAGE) SELECT 1, 'ONE' FROM SYSCAT.TABLES FETCH FIRST 5 ROWS ONLY&lt;br /&gt;)&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;result:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;MYKEY     MYMESSAGE  &lt;br /&gt;--------  ------------&lt;br /&gt;1              ONE        &lt;br /&gt;1              ONE &lt;/div&gt;&lt;div&gt;1              ONE &lt;/div&gt;&lt;div&gt;1              ONE &lt;/div&gt;&lt;div&gt;1              ONE &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;sql statement:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;SELECT * FROM FINAL TABLE (&lt;br /&gt;  UPDATE TB_HITME SET MYKEY = MYKEY + 1&lt;br /&gt;)&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;result: &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;MYKEY     MYMESSAGE  &lt;br /&gt;--------  ------------&lt;br /&gt;2               ONE &lt;/div&gt;&lt;div&gt;2               ONE &lt;/div&gt;&lt;div&gt;2               ONE &lt;/div&gt;&lt;div&gt;2               ONE &lt;/div&gt;&lt;div&gt;2               ONE &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;sql statement:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;SELECT * FROM OLD TABLE (&lt;br /&gt;  delete from tb_hitme&lt;br /&gt;)&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;result:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;MYKEY     MYMESSAGE  &lt;br /&gt;--------  ------------&lt;br /&gt;2               ONE &lt;/div&gt;&lt;div&gt;2               ONE &lt;/div&gt;&lt;div&gt;2               ONE &lt;/div&gt;&lt;div&gt;2               ONE &lt;/div&gt;&lt;div&gt;2               ONE&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-2366687771354324330?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/2366687771354324330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=2366687771354324330' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/2366687771354324330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/2366687771354324330'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/04/how-to-retrieve-result-set-from-db2-dml.html' title='How to retrieve result set from db2 DML statement'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-93713245301646716</id><published>2010-04-18T10:06:00.000-07:00</published><updated>2010-04-18T10:10:14.698-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Where are IPv1, IPv2, IPv3, and IPv5?</title><content type='html'>&lt;div style="text-align: left;"&gt;       หลายคนเคยได้ยิน IPv4 หรือ Internet Protocol version 4 และเข้าใจว่าทำไมปัจจุบัน IETF จึงผลักดันให้ไปใช้ IPv6 กัน (ก็เพราะว่า IPv6 กำลังจะเต็มนั้นเอง) จากรูปนี้แสดงให้เห็นว่า IPv4 ที่ยังไม่ได้นำไปใช้งานเหลืออยู่เพียงประมาณ 7% เท่านั้น (ใกล้จะหมดเต็มทีแล้วสินะ)&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_t50Y90j6TyI/S8s8suju0WI/AAAAAAAACLU/ODL_g7R5hcM/s1600/ipadd.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_t50Y90j6TyI/S8s8suju0WI/AAAAAAAACLU/ODL_g7R5hcM/s320/ipadd.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5461525712226668898" style="text-align: left;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 320px; height: 160px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        แต่ที่เขียนวันนี้ไม่ใช่จะอธิบายว่าทำไมเราต้องเปลี่ยนจาก IPv4 ไปเป็น IPv6 หรอกครับเพราะเค้า deploy กันมานานตั้ง 15 ปีแล้วตั้งวันที่คิดค้น IPv6 ได้แต่ปัจจุบันก็ยังไม่มีการใช้ IPv6 อย่างเต็มรูปแบบสักที&lt;/div&gt;&lt;div&gt;       เข้าเรื่องกันดีกว่า เราเห็นและคุ้นเคยกับ IPv4 และ IPv6 ใครสงสัยบ้างครับว่า IPv1, IPv2, IPv3, and IPv5 หายไปไหน หลายคนเข้าใจว่า ที่เรียกว่า IPv4 ก็เพราะว่า IPv4 ใช้ 32 bits และแบ่งชุดตัวเลขออกเป็น 4 ชุด ชุดละ 8 bits รวมแล้วได้ 4 bytes อ้าวว แล้วทำไม IPv6 ถึงใช้ 128 bits แบ่งตัวเลขออกเป็น 8 ชุด แต่ละชุดแบ่งเป็นฐานสิบหก 4 ตัวล่ะ แบบนี้ก็น่าจะต้องเป็น IPv16 รึป่าว นั้นสิ ไม่เห็นจะเกี่ยวกันเท่าไหร่เลย&lt;/div&gt;&lt;div&gt;       เมื่อมาดูที่ Header ของ Internet Protocol ตามมาตฐานของ RFC ก็จะเห็นว่าส่วนแรกของ Header จะเป็นส่วนของ version ที่จะระบุว่า Internet Protocol นี้เป็น version อะไรส่วนนี้ใช้ bit ที่ 0 - 3 หมายความว่าส่วนนี้สามารถบอก version ได้ตั้งแต่ version 0 - version 15 (0000-1111) นั้นเอง ดังนั้นเมื่อค้นไปค้นมาก็พอจะได้ความว่า&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;version 0 (0000) - อันนี้ไม่ใครกล่าวถึงคงเริ่มนับจาก 1 ไปเลย&lt;/div&gt;&lt;div&gt;version 1 (0001) - &lt;/div&gt;&lt;div&gt;version 2 (0010) - ทั้งสาม version นี้ดูเหมือนจะมีการทำงานร่วมกันอยู่ระหว่าง IP กับ TCP น่ะครับแล้วก็มีการพัฒนาเร็วมาก &lt;/div&gt;&lt;div&gt;version 3 (0011) - &lt;/div&gt;&lt;div&gt;version 4 (0100) - เป็น version ที่ใช้กันมาอย่างยาวนานจนถึงปัจจุบันมีการแยกการทำงานของ TCP และ IP ออกจากกัน&lt;/div&gt;&lt;div&gt;version 5 (0101) - เป็น version ที่ยังคงไม่ต่างอะไรกับ version 4 นัก แต่เน้นไปที่การส่ง package แบบ Straming Protocol ทำงานบน Unix &lt;/div&gt;&lt;div&gt;version 6 (0110) - เป็น version ที่ถูกกล่าวถึงเป็นอย่างมากในปัจจุบันโดย IETF พยายามผลักดันที่จะให้ไปใช้ version นี้กัน&lt;/div&gt;&lt;div&gt;version 7 (0111) - ได้ยินมาบ้างแต่ยังไม่รู้รายละเอียดที่แน่นอน ช่างมันเหอะ อิอิ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-93713245301646716?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/93713245301646716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=93713245301646716' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/93713245301646716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/93713245301646716'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/04/where-are-ipv1-ipv2-ipv3-and-ipv5.html' title='Where are IPv1, IPv2, IPv3, and IPv5?'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_t50Y90j6TyI/S8s8suju0WI/AAAAAAAACLU/ODL_g7R5hcM/s72-c/ipadd.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-6509641817299416213</id><published>2010-04-05T03:13:00.000-07:00</published><updated>2010-04-05T03:14:51.525-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>DB2DIALOG: Primary received a pair validation request from standby</title><content type='html'>&lt;div&gt;บางครั้ง เวลาก็ช่วยรักษาความเจ็บปวด!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;คงเป็นคำขึ้นต้นที่น้ำเน่าที่สุดตั้งแต่ทำ blog นี้มา ถึงขึ้นแบบนี้เพราะในยามที่ database มัน crash หลายคนใจร้อน อยากจะรีบเร่งเอาขึ้นมาเสียให้ได้&lt;/div&gt;&lt;div&gt;บางครั้งต้องให้เวลามันหน่อยครับ &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;จริงๆแล้วมีหลายเหตุผลครับที่เมื่อเรารัน command &lt;/div&gt;&lt;div&gt;&lt;blockquote&gt; &lt;span class="Apple-style-span"  style="color:#3366FF;"&gt;db2 connect to &lt;database&gt; user &lt;username&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="color:#3366FF;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;แล้วเราต้องรอ รอ และรอ เป็นเวลานานๆ เมื่อเกิดเหตุการแบบนี้ สิ่งที่ผมอยากจะแนะนำเป็นอย่างแรกคือ รอ แต่มาก็คือทำใจให้นิ่งเข้าไว้ครับ อย่าสั่น&lt;/div&gt;&lt;div&gt;แล้วก็ไปดู db2diag.log ว่าเกิดปัญหาอะไรขึ้น ถ้าเราไม่กำหนด log level ไว้สูงเกิน เราก็อาจจะได้เห็นสิ่งที่ db2 กำหนดทำอยู่แต่ไม่ได้บอกให้เราทราบ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;วันนี้ผมขอเสนอ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#3366FF;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#3366FF;"&gt;010-04-05-17.46.01.260000+480 I13775433F480      LEVEL: Warning&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#3366FF;"&gt;PID     : 5208                 TID  : 6116        PROC : db2syscs.exe&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#3366FF;"&gt;INSTANCE: IPRD                 NODE : 000&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#3366FF;"&gt;FUNCTION: DB2 UDB, High Availability Disaster Recovery, hdrEduP, probe:20470&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#3366FF;"&gt;MESSAGE : Primary received a pair validation request from standby - waiting for &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#3366FF;"&gt;          crash recovery to complete&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#3366FF;"&gt;DATA #1 : Hexdump, 8 bytes&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#3366FF;"&gt;0x0000000135D56040 : 0000 0000 0000 0000                        ........&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#3366FF;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ถ้าใครเจอแบบนี้ก็อดทนรอมันหน่อยนะครับ ถ้าฟ้าไม่กลั่นแกล้งเดี๋ยวก็หายครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-6509641817299416213?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/6509641817299416213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=6509641817299416213' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/6509641817299416213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/6509641817299416213'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/04/db2dialog-primary-received-pair.html' title='DB2DIALOG: Primary received a pair validation request from standby'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-2657826493322302260</id><published>2010-03-29T00:47:00.000-07:00</published><updated>2010-03-29T00:55:08.335-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>DB2 Monitor Tool (DB2MON)</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_t50Y90j6TyI/S7BcggimoaI/AAAAAAAACLE/9w-bX-1wZqQ/s1600/db2mon.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 229px;" src="http://3.bp.blogspot.com/_t50Y90j6TyI/S7BcggimoaI/AAAAAAAACLE/9w-bX-1wZqQ/s320/db2mon.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5453960862306312610" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;       วันนี้น้องที่ทำงานพูดถึง db2mon ขึ้นมาเลยคิดขึ้นมาได้ว่ายังไม่เคยเขียนถึง tool ตัวนี้ลงในบลอคเลย สำหรับ db2mon นั้นเป็น db2 monitor tool ครับที่มีให้ download มาใช้ฟรีๆเลยครับ แต่เท่าที่ผมเห็นคือเจ้า db2mon ที่มีให้ download จะมีเฉพาะสำหรับ Windows เท่านั้นครับ อาจเป็นไปได้ว่าถ้าไม่ใช้ Server แล้วเครื่องที่นำมาติดต่อกับ database server ส่วนมากแล้วก็จะเป็น Windows ก็เป็นได้ อันนี้ผมเดาเอานะครับ มาเริ่มกันเลยดีกว่า&lt;/div&gt;&lt;div&gt;       เริ่มจากลองเข้าไปดูใน www.db2mon.com ก็จะมี db2mon ให้เราได้ download กันมาใช้งานตั้งแต่สำหรับ version 6.x ถึง 9.5 เลยทีเดียว จากนั้นก็ unzip file เลยครับ เป็นอันว่าใช้ได้&lt;/div&gt;&lt;div&gt;จากที่ลองใช้งานมาผมเข้าใจว่า db2mon ตัวนี้จำเป็นที่จะต้องทำงานร่วมกับ db2client ครับ โดย db2mon จะโหลดค่า catalog ที่เราทำไว้ขึ้นมาให้เราเลือกที่จะ connect เข้าไป monitor ครับ&lt;/div&gt;&lt;div&gt;feature หลักๆที่มีให้เห็นใน db2mon (v.9.1) ก็มี&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;แสดง Applications ที่ connect อยู่กับ DB2 server ขณะนั้นพร้อมกับสามารถสั่ง force ได้ หน้าตาก็จะออกมาคล้ายๆกับเมนู Applications ของ db2cc นั้นล่ะครับ ผิดกันตรงที่เจ้า db2mon สามารถแสดงให้เห็นได้ถึง SQL Statement ของ Connection นั้นๆได้ด้วยครับ&lt;/li&gt;&lt;li&gt;สามารถทำ REORG Check ได้เพื่อช่วยให้เราเห็นได้ง่ายขึ้นครับว่า Tables ไหนของเราจำเป็นที่จะต้อง reorganize แล้ว&lt;/li&gt;&lt;li&gt;นอกจากนี้ยัง Monitor ได้ตั้งแต่ Lock, Tables, Tablespace ไปจนถึง BufferPools เลยทีเดียวครับ&lt;/li&gt;&lt;li&gt;เท่านั้นยังไม่พอครับสามารถช่วยเราแก้ไข DBM CFG และ DB CFG ได้ด้วยครับ&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_t50Y90j6TyI/S7Bcmi77iII/AAAAAAAACLM/Jc9dN5I_ikk/s1600/db2mon2.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_t50Y90j6TyI/S7Bcmi77iII/AAAAAAAACLM/Jc9dN5I_ikk/s320/db2mon2.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5453960966028626050" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 228px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;       โดยรวมแล้วถึงแม้ว่า db2mon จะเป็น tool ตัวเล็กไม่ต้อง install เพื่อใช้งานแต่อย่างใด แต่ก็เล็กพริกขึ้หนูครับ ยังไงลองหามาทดลองใช้งานดูครับ จะได้ไม่ต้อง snapshot หรือ quey sysibmadm ให้เมื่อยมือครับ&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-2657826493322302260?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/2657826493322302260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=2657826493322302260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/2657826493322302260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/2657826493322302260'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/03/db2-monitor-tool-db2mon.html' title='DB2 Monitor Tool (DB2MON)'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_t50Y90j6TyI/S7BcggimoaI/AAAAAAAACLE/9w-bX-1wZqQ/s72-c/db2mon.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-8672479521491535593</id><published>2010-03-24T02:03:00.000-07:00</published><updated>2010-03-24T02:06:34.331-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>How to compare DB2 database object</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_t50Y90j6TyI/S6nVwHz-k0I/AAAAAAAACK8/nqBYaEvuRis/s1600/cmp.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 187px;" src="http://2.bp.blogspot.com/_t50Y90j6TyI/S6nVwHz-k0I/AAAAAAAACK8/nqBYaEvuRis/s320/cmp.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5452123846616191810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;ผมได้มีโอกาสเล่น Aqua Studio 6.5 (ดูเหมือนเดี๋ยวจะมี version 7++ ไป) จากเครื่องของเพื่อนคนหนึ่ง&lt;/div&gt;&lt;div&gt;ปกติผมใช้ v. 4.5 ครับเนื่องจากเป็นของฟรีเลยยังทำอะไรไม่ได้มากนัก สำหรับ v.6.5 นี้เค้าคิดเงินแล้วครับ&lt;/div&gt;&lt;div&gt;สรุปคือ ผมออกตัวก่อนว่าผมไม่ได้ไปละเมิดลิขสิทธิเขาหรอกครับ &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;สิ่งที่น่าสนใจเป็นอย่างยิ่งของ Aqua Studio version นี้คือความสามารถในการเปรียบเทียบความต่างของ&lt;/div&gt;&lt;div&gt;database object ระหว่างฐานข้อมูลสองฐานข้อมูลได้ แถบยัง generate ออกมาเป็น html ได้ด้วย แล้วก็ไม่ใช้แค่บอกว่าต่างไม่ต่างเหมือนไม่เหมือนนะครับ ยังมีตัว body ของ object นั้นๆ แสดงให้เห็นพร้อมทั้ง highlight ไว้ให้ด้วยช่วยประหยัดเวลาในการนั่งเปรียบเทียบเยอะเลยล่ะครับ เพราะไม่อย่างนั้นก็ต้องใช้ Tool ของ IBM ในการเปรียบเทียบไปเลยซึ่งก็ไม่ใช่ทุกคนที่จะหามาใช้งานได้ - -"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-8672479521491535593?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/8672479521491535593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=8672479521491535593' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8672479521491535593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8672479521491535593'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/03/how-to-compare-db2-database-object.html' title='How to compare DB2 database object'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_t50Y90j6TyI/S6nVwHz-k0I/AAAAAAAACK8/nqBYaEvuRis/s72-c/cmp.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-5958531174447891615</id><published>2010-03-05T01:45:00.000-08:00</published><updated>2010-03-05T01:48:57.009-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>Create SAMPLE database in DB2</title><content type='html'>&lt;div&gt;C:\Documents and Settings\Administrator&gt;db2sampl&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  Creating database "SAMPLE"...&lt;/div&gt;&lt;div&gt;  Connecting to database "SAMPLE"...&lt;/div&gt;&lt;div&gt;  Creating tables and data in schema "ADM1N1STRAT0R"...&lt;/div&gt;&lt;div&gt;  Creating tables with XML columns and XML data in schema "ADM1N1STRAT0R"...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  'db2sampl' processing complete.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;==============================&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; Database alias                                        = SAMPLE&lt;/div&gt;&lt;div&gt; Database name                                      = SAMPLE&lt;/div&gt;&lt;div&gt; Local database directory                      = C:&lt;/div&gt;&lt;div&gt; Database release level                          = b.00&lt;/div&gt;&lt;div&gt; Comment                                                = A sample database&lt;/div&gt;&lt;div&gt; Directory entry type                             = Indirect&lt;/div&gt;&lt;div&gt; Catalog database partition number     = 0&lt;/div&gt;&lt;div&gt; Alternate server hostname                  =&lt;/div&gt;&lt;div&gt; Alternate server port number             =&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-5958531174447891615?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/5958531174447891615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=5958531174447891615' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5958531174447891615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5958531174447891615'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/03/create-sample-database-in-db2.html' title='Create SAMPLE database in DB2'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-2370384056138350692</id><published>2010-03-04T23:44:00.000-08:00</published><updated>2010-03-04T23:46:35.933-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>Microsoft Visual C++ Runtime Library -- db2syscs.exe</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_t50Y90j6TyI/S5C2uC67BvI/AAAAAAAACK0/c98hKcUUEn8/s1600-h/db2TIPs.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 128px;" src="http://2.bp.blogspot.com/_t50Y90j6TyI/S5C2uC67BvI/AAAAAAAACK0/c98hKcUUEn8/s320/db2TIPs.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445052851665176306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;หากใครเจอ error &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Microsoft Visual C++ Runtime Library&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Runtime: C:\PROGRA~2\IBM\SQLLIB\bin\db2syscs.exe&lt;/div&gt;&lt;div&gt;R6034&lt;/div&gt;&lt;div&gt;An application has mad an attemp to load the C runtime library incorrectly.&lt;/div&gt;&lt;div&gt;Please contact the application's support team for more information.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Error นี้เป็นเพราะ Library หายหรือซ้ำครับ &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;เอาเป็นว่าให้ไป create empty file ชื่อ&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;msvcr80.dll&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;msvcm80.dll&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;msvcp80.dll&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;ที่ SQLLIB ของ db2 เลยครับ แล้วมันก็จะหายไปเอง&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-2370384056138350692?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/2370384056138350692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=2370384056138350692' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/2370384056138350692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/2370384056138350692'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/03/microsoft-visual-c-runtime-library.html' title='Microsoft Visual C++ Runtime Library -- db2syscs.exe'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_t50Y90j6TyI/S5C2uC67BvI/AAAAAAAACK0/c98hKcUUEn8/s72-c/db2TIPs.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-6326716855381775778</id><published>2010-02-12T22:00:00.000-08:00</published><updated>2010-02-12T22:01:24.579-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>How to restore Applications menu on Ubuntu</title><content type='html'>ใครเคยเผลอไปลบ Applications Menu ของ Ubuntu ออกบ้างครับ&lt;div&gt;มันเกิดกับผมแล้วครับ โดยผมไปที่ System -&gt; Preferrences -&gt; Main Menu แล้วก็เลือกไปลบทิ้งทั้งหมดเลย ผลที่ได้เป็นไงน่ะหรอครับ Applications Menu หลายเกลี้ยงเลยครับ พอเรียก Main Menu ขึ้นมา Revert ก็ค้างเลยครับ ผลตามมาก็คือ ไม่สามารถเรียก Main Menu ได้อีีก ไม่ว่าจะ restart หรือ shutdown แล้วก็ตาม&lt;/div&gt;&lt;div&gt;วิธีแก้เบื้องต้น อาจจะใช้คำสั่ง&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt; sudo  gnome debconf gnome-panel&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;เพื่อให้มี Applications Menu ขึ้นมาทำงานก่อนก็ได้ครับ แต่เมื่อ shutdown แล้วเปิดใหม่ก็เหมือนเดิมครับ คือไม่ Applications Menu ให้เราเล่น&lt;/div&gt;&lt;div&gt;วิธีแก้อย่างถาวรคือ&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;1. cd ~/.config/menus&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;2. mv applicaitons.menu applications.menu.bak&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;3. cd /etc/xdg/menus&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;4. cp applications.menu ~/.config/menus&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;เท่านี้ล่ะครับ Applications Menu เราก็กลับมาแล้ว&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-6326716855381775778?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/6326716855381775778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=6326716855381775778' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/6326716855381775778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/6326716855381775778'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/02/how-to-restore-applications-menu-on.html' title='How to restore Applications menu on Ubuntu'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-5381274797828536749</id><published>2010-02-11T10:35:00.000-08:00</published><updated>2010-02-11T10:43:30.845-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu: Convert postscript (.ps) to pdf</title><content type='html'>We can convert postscript (.ps) file to PDF file by Ghostscript command line. Ghostscipt have been bundled with Ubuntu. So, you can do following step for conversion:&lt;div&gt;1. Print your data to file by choose "Print To File"&lt;/div&gt;&lt;div&gt;2. Save file output as filename.ps&lt;/div&gt;&lt;div&gt;3. Open Terminal and type command as below:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 11px; "&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;gs -q -dBATCH -dAutoFilterColorImages=false -sColorImageFilter=FlateEncode -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=${output_file}.pdf ${ps_file}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;${output_file} is your output filename that you want&lt;/div&gt;&lt;div&gt;${ps_file} is your postscript filename&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-5381274797828536749?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/5381274797828536749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=5381274797828536749' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5381274797828536749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5381274797828536749'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/02/ubuntu-convert-postscript-ps-to-pdf.html' title='Ubuntu: Convert postscript (.ps) to pdf'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-3940194274546470766</id><published>2010-02-11T06:39:00.000-08:00</published><updated>2010-02-11T06:41:15.384-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>SQL22205C</title><content type='html'>&lt;div&gt;SQL22205C The DB2 Administration Server encountered an &lt;/div&gt;&lt;div&gt;          unexpected error while executing a request.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Explanation: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; An unexpected error occurred in the DB2 Administration Server &lt;/div&gt;&lt;div&gt;while it was processing a request.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;User Response: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; Refer to the DB2 Administration Server's First Failure Data &lt;/div&gt;&lt;div&gt;Capture Log for additional information.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; If trace was active, invoke the Independent Trace Facility at &lt;/div&gt;&lt;div&gt;the operating system command prompt.  Contact IBM Support with &lt;/div&gt;&lt;div&gt;the following required information: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;o   Problem description &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;o   SQLCODE or message number &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;o   SQLCA contents if possible &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;o   Trace file if possible &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ดูจาก Error แล้วจะงงมากครับ ถึงขั้นต้องติดต่อ IBM Support เลยหรอ &lt;/div&gt;&lt;div&gt;งั้นเราลอง ลบ DB2Admin แล้วสร้างใหม่กันดีกว่าครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;DB2Admin stop&lt;/div&gt;&lt;div&gt;DB2Admin drop&lt;/div&gt;&lt;div&gt;DB2Admin create /user:user /password:password&lt;/div&gt;&lt;div&gt;DB2Admin start&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-3940194274546470766?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/3940194274546470766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=3940194274546470766' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3940194274546470766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3940194274546470766'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/02/sql22205c.html' title='SQL22205C'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-5700267084212333051</id><published>2010-01-18T18:52:00.000-08:00</published><updated>2010-01-18T18:56:28.236-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>The script for Show Desktop</title><content type='html'>&lt;div&gt;Open TextEditor and paste following script:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;[Shell]&lt;br /&gt;Command=2&lt;br /&gt;IconFile=explorer.exe,3&lt;br /&gt;[Taskbar]&lt;br /&gt;Command=ToggleDesktop &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and then save file type as &lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;&lt;b&gt;.scf&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-5700267084212333051?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/5700267084212333051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=5700267084212333051' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5700267084212333051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5700267084212333051'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/01/script-for-show-desktop.html' title='The script for Show Desktop'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-813061560116637807</id><published>2010-01-13T01:52:00.000-08:00</published><updated>2010-01-13T01:54:40.772-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MQ'/><title type='text'>Can not expand Queue Manager node on MQ Explorer (2)</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_t50Y90j6TyI/SoUgeUTG5fI/AAAAAAAACE4/kGvB6-_GJ-Q/s320/mq-cannot-expand.png"&gt;&lt;img src="http://3.bp.blogspot.com/_t50Y90j6TyI/SoUgeUTG5fI/AAAAAAAACE4/kGvB6-_GJ-Q/s320/mq-cannot-expand.png" border="0" alt="" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 268px; height: 135px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;จากเรื่อง &lt;a href="http://fuangwith.blogspot.com/2009/08/can-not-expand-queue-manager-node-on-mq.html"&gt;Can not expand Queue Manager node on MQ Explorer&lt;/a&gt; ที่เคยเขียนไป ผมพบว่าการแก้ไขที่เคยเขียนไปนั้นไม่สามารถแก้ไขได้ทุกกรณี เพราะเมื่อผมพบปัญหาอีกครั้งก็ไม่สามารถใช้วิธีนี้ได้ สิ่งที่ต้องทำคือการตรวจสอบ path และ environment path ตามที่หัวข้อ &lt;a href="http://fuangwith.blogspot.com/2010/01/main-javalangunsatisfiedlinkerror-no.html"&gt;mqbnd05&lt;/a&gt; แล้ว stop queue manager และ MQ Server จากนั้นค่อยเปิดขึ้นมาใช้งานอีกครั้งก็จะใช้ได้ครับ เนื่องจาก Eclipse ของ Websphere MQ Explorer ไม่สามารถติดต่อกับ Queue Manager ได้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-813061560116637807?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/813061560116637807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=813061560116637807' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/813061560116637807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/813061560116637807'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/01/can-not-expand-queue-manager-node-on-mq.html' title='Can not expand Queue Manager node on MQ Explorer (2)'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_t50Y90j6TyI/SoUgeUTG5fI/AAAAAAAACE4/kGvB6-_GJ-Q/s72-c/mq-cannot-expand.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-1236208266416830637</id><published>2010-01-13T01:30:00.001-08:00</published><updated>2010-01-13T01:36:01.899-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MQ'/><title type='text'>"main" java.lang.UnsatisfiedLinkError: no mqjbnd05 in java.l ibrary.path</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; color: rgb(0, 0, 102); "&gt;Exception in thread "main" java.lang.UnsatisfiedLinkError: no mqjbnd05 in java.library.path&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1491)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;        at java.lang.Runtime.loadLibrary0(Runtime.java:788)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;        at java.lang.System.loadLibrary(System.java:834)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;        at com.ibm.mq.MQSESSION.loadLib(MQSESSION.java:872)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;        at com.ibm.mq.server.MQSESSION$1.run(MQSESSION.java:228)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;        at java.security.AccessController.doPrivileged(Native Method)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;        at com.ibm.mq.server.MQSESSION.&lt;clinit&gt;(MQSESSION.java:222)&lt;/clinit&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;        at com.ibm.mq.MQSESSIONServer.getMQSESSION(MQSESSIONServer.java:70)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;        at com.ibm.mq.MQSESSION.getSession(MQSESSION.java:492)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;      &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;    สำหรับใครที่ทำงานกับ MQ แล้วเจอ error แบบนี้ ผมพอจะอธิบายให้ฟังได้ครับคราวๆครับว่าเกิดจากอะไรสิ่งที่เกิดขึ้นก็คือ java หาตำแหน่งของ library mqjbnd05.dll (สำหรับ windows) หรือ mqjbnd05.so (สำหรับ linux) เบื้องต้นอาจเกิดจากมีการแก้ไข environment path ต่างๆของตัว Websphere MQ ครับ ไม่ว่าจะจากมนุษย์ หรือซอฟต์แวร์ที่มีการติดตั้งลงไปใหม่ครับ วิธีที่แก้ไขก็ต้องตรวจสอบ path กันใหม่ครับว่า path ต่อไปนี้ได้กำหนดค่าไว้ถูกต้อง หรือไม่ (อ้างตาม Websphere MQ using Java)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_t50Y90j6TyI/S02TTNwetPI/AAAAAAAACKE/AcCiMQapS_o/s1600-h/classpath.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_t50Y90j6TyI/S02TTNwetPI/AAAAAAAACKE/AcCiMQapS_o/s320/classpath.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5426155084371113202" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 268px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_t50Y90j6TyI/S02TbLH9-VI/AAAAAAAACKM/9KlhgRJyZ-8/s1600-h/env.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_t50Y90j6TyI/S02TbLH9-VI/AAAAAAAACKM/9KlhgRJyZ-8/s320/env.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5426155221103278418" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 118px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;MQ_JAVA_DATA_PATH&lt;/b&gt;:  C:\Program Files\IBM\WebSphere MQ&lt;/div&gt;&lt;div&gt;&lt;b&gt;MQ_JAVA_INSTALL_PATH&lt;/b&gt;:  C:\Program Files\IBM\WebSphere MQ\Java&lt;/div&gt;&lt;div&gt;&lt;b&gt;MQ_JAVA_LIB_PATH&lt;/b&gt;:  C:\Program Files\IBM\WebSphere MQ\Java\lib&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;   หากแก้ไขให้ตรงกับค่าเหล่านี้แล้วยังไม่สามารถแก้ปัญหาได้ แสดงว่า java ไม่สามารถเข้าถึง MQ java library path ได้ ดังนั้นให้กำหนด path ดังนี้&lt;/div&gt;&lt;div&gt;   &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;set path=%path%;C:\Program Files\IBM\WebSphere MQ\Java\lib&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;แล้วเมื่อรันแล้วอาจจะเกิด Exception ตัวใหม่ดังนี้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Program Files (x86)\IBM\WebSphere MQ\Java\lib\mqjbnd05.dll: &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;Can't find dependent libraries&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;เนื่องจาก mqbnd05.dll มีการเรียกใช้งาน mqm.dll และอื่นๆ (สามารถดูได้โดยใช้ Dependencies tool ของ Visual Stuio .Net) ดังนั้นให้เพิ่ม&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;    set path=%path%;C:\Program Files\IBM\WebSphere MQ\bin&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  ก็จะสามารถทำงานได้ โดยเพื่อให้สามารถทำงานได้ใน scope กว้างจึงควรกำหนดที่ Tab Advances ใน My Computer หรือ profiles ของ Linux ครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-1236208266416830637?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/1236208266416830637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=1236208266416830637' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1236208266416830637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1236208266416830637'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2010/01/main-javalangunsatisfiedlinkerror-no.html' title='&quot;main&quot; java.lang.UnsatisfiedLinkError: no mqjbnd05 in java.l ibrary.path'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_t50Y90j6TyI/S02TTNwetPI/AAAAAAAACKE/AcCiMQapS_o/s72-c/classpath.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-526237110006244079</id><published>2009-12-10T08:12:00.000-08:00</published><updated>2009-12-10T08:19:38.610-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>aMsn -- Msn Client on Ubuntu</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_t50Y90j6TyI/SyEfMsZCHuI/AAAAAAAACJ8/c5ZMS7IrfMk/s1600-h/amsn-m.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://4.bp.blogspot.com/_t50Y90j6TyI/SyEfMsZCHuI/AAAAAAAACJ8/c5ZMS7IrfMk/s320/amsn-m.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5413642530011094754" /&gt;&lt;/a&gt;&lt;br /&gt;       สำหรับ Ubuntu 9.04 ผมใช้ DELL vostro 1320 บอกได้เลยครับว่าใช้งานไม่ได้หลายอย่างเลย&lt;div&gt;หนึ่งในนั้นมี aMsn ด้วยที่ไม่สามารถใช้ webcam ได้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        แต่มาวันนี้ผมยิ่งเทใจให้ Linux มากขึ้น เพราะ Ubuntu 9.10 เข้ากันได้ดีเหลือเกินครับกับ Vostro 1320 ของผม aMsn ก็เช่นกันใช้ webcam ได้สักที งานนี้แฟนคงไม่ต้องมาบ่นแล้วล่ะมา "จรรยาบรรณมันกินได้ม้ายยยยย " ตอนที่ผมใช้ webcam ไม่ได้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        สำหรับขั้นตอนการติดตั้งก็ไปที่ Ubuntu Software Center -&gt; Get Free Software -&gt; พิมพ์ aMsn -&gt; Install ครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-526237110006244079?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/526237110006244079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=526237110006244079' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/526237110006244079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/526237110006244079'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/12/amsn-msn-client-on-ubuntu.html' title='aMsn -- Msn Client on Ubuntu'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_t50Y90j6TyI/SyEfMsZCHuI/AAAAAAAACJ8/c5ZMS7IrfMk/s72-c/amsn-m.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-1747849698548552512</id><published>2009-12-04T21:48:00.000-08:00</published><updated>2009-12-04T21:52:33.107-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>GTalk กับ Empathy IM Client</title><content type='html'>จดไว้กันลืม ใช้งานพวก Jabber ทีไรเล่นเอามึนทุกทีกับการต่อ Google Talk&lt;div&gt;จริงๆมันก็เรื่องไม่ยาก แค่จำ port กับ host ให้ได้ก็จบ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;็Host: talk.google.com&lt;/div&gt;&lt;div&gt;port: 443 (port 5222, 5223 ที่ผ่าน http ที่เป็น default มาไม่เคยใช้ได้สักทีเห้อ)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;use old SSL&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-1747849698548552512?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/1747849698548552512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=1747849698548552512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1747849698548552512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1747849698548552512'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/12/gtalk-empathy-im-client.html' title='GTalk กับ Empathy IM Client'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-8246803484077859088</id><published>2009-11-27T21:11:00.001-08:00</published><updated>2009-11-27T21:11:59.254-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu 9.10 wireless not found</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;หลังจากติดตั้ง Ubuntu 9.10 เรียบร้อยแล้วพบว่า wireless ไม่สามารถใช้งานได้&lt;/div&gt;&lt;div&gt;โดยมีรายละเอียดดังนี้&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;1. เมื่อ iwconfig พบว่าไม่มี network adapter ตัวไหนเป็น wireless&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;2. ใช้ ndiswrapper ก็ไม่สามารถเพิ่ม network adapter ได้&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;3. สร้าง connection ใหม่ด้วย Network Connections ไม่ได้&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;4. boot ด้วย live cd ของ 9.10 มองก็มีอาการเหมือนกัน แต่ถ้า boot ด้วย live cd ของ 9.04 สามารถใช้งาน wireless ได้เหมือนเดิม&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;และแล้วก็พบว่าตายน้ำตื่นครับ เมื่อทดลอง เปิด Hardware Drivers ขึ้นมาพบว่า driver สำหรับ wireless ถูก disable อยู่ ผมก็เลย activate แล้ว restart ก็จะพบว่าเมื่อ iwconfig จะมี eth2 เพิ่มขึ้นมาซึ่งเป็น wireless adapter&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;รายละเอียดของเครื่องผม&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;1. DELL vostro 1320&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;2. Bios enable wireless card แล้วแต่ตอนเปิดเครื่องจนถึงเข้า Linux ไฟสถานะของ wireless ดับแต่ bluetooth ติดและสามารถใช้งานได้&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;3. เลือก Activate Broadcom STA wireless driver (จึงมีให้เลือก 2 driver แต่มั่วเอาตัวนี้)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-8246803484077859088?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/8246803484077859088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=8246803484077859088' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8246803484077859088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8246803484077859088'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/11/ubuntu-910-wireless-not-found.html' title='Ubuntu 9.10 wireless not found'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-4832143325561103696</id><published>2009-11-26T20:22:00.001-08:00</published><updated>2009-11-26T20:26:09.939-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>First time with Google Wave</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_t50Y90j6TyI/Sw9UYqsY6zI/AAAAAAAACJw/PKxS0bw-r90/s1600/wave2.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 162px;" src="http://4.bp.blogspot.com/_t50Y90j6TyI/Sw9UYqsY6zI/AAAAAAAACJw/PKxS0bw-r90/s320/wave2.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5408634460249320242" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;แหละแล้วก็มี account ของ Google Wave สักที&lt;/div&gt;&lt;div&gt;เมื่อวานเพื่อนใจดี invite Google Wave มาให้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;หลังจากเพือ่น invite สักพักใหญ่ (หลายชั่วโมง)&lt;/div&gt;&lt;div&gt;ก็มี mail เข้ามาว่าให้ไป activate Google Wave&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_t50Y90j6TyI/Sw9UG9ukzkI/AAAAAAAACJo/78ZbOTIZFBA/s1600/wave1.PNG"&gt;&lt;img src="http://1.bp.blogspot.com/_t50Y90j6TyI/Sw9UG9ukzkI/AAAAAAAACJo/78ZbOTIZFBA/s320/wave1.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5408634156121116226" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 222px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;พอเข้ามาก็งงๆ หน้าตาเหมือน mail box พร้อมกับมีให้เรา invite ต่อได้อีก 8 คน&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;เดี๋ยวต้องทดลองใช้งานก่อน ดียังไงจะเอามาบอกต่อ&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-4832143325561103696?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/4832143325561103696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=4832143325561103696' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/4832143325561103696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/4832143325561103696'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/11/first-time-with-google-wave.html' title='First time with Google Wave'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_t50Y90j6TyI/Sw9UYqsY6zI/AAAAAAAACJw/PKxS0bw-r90/s72-c/wave2.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-899548238613179280</id><published>2009-11-26T10:15:00.000-08:00</published><updated>2009-11-26T10:19:04.788-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>install/update graphic driver on Ubuntu</title><content type='html'>&lt;div&gt;หลายวันก่อนพยายาม update driver การ์ดจอเองแบบ manual&lt;/div&gt;&lt;div&gt;ทำไงก็ไม่ work ครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;อ่านในเว็บเค้าบอกให้ใช้ envy แทน &lt;/div&gt;&lt;div&gt;ไม่ยากเลยครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;sudo apt-get install ennyng-gtk&lt;/div&gt;&lt;div&gt;sudo envyng -t&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;จากนั้นเลือกรายการตาม menu ที่ recommend &lt;/div&gt;&lt;div&gt;แล้ว restart ครับ&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-899548238613179280?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/899548238613179280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=899548238613179280' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/899548238613179280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/899548238613179280'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/11/installupdate-graphic-driver-on-ubuntu.html' title='install/update graphic driver on Ubuntu'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-3241977453587060644</id><published>2009-11-18T09:05:00.000-08:00</published><updated>2009-11-18T09:08:18.672-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Karmic Koala Ubuntu 9.10 -- IPV6</title><content type='html'>&lt;div&gt;อ๊ากกก โดยเข้าอย่างจัง หลังจากลง Ubuntu 9.10&lt;/div&gt;&lt;div&gt;หมีติดกรรม วันนี้ทำเอาใช้ Internet ไม่ได้เลย&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;อาการเป็นดังต่อไปนี้&lt;/div&gt;&lt;div&gt;terminal: &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;1. ping www.google.com ได้&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;2. nslookup ไม่ว่าจะ domain ไหนได้เป็น 1.0.0.0 ไป ซะหมด&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;3. บางครั้ง ping และ nslookup ทุก host แต่ได้ ip เดียวกันหมดเลย&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;browser&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;1. firefox เว็บไหนไม่ได้เลย ไม่ว่าจะเอา proxy ออกหรือไม่&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;2. chrome เข้าไม่ได้เหมือนกัน แต่พอ ping google.com ก่อนก็เข้า google.com ได้ search ได้แต่ click ที่ link แล้วอยู่หน้าเดิม&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;3. chrome ทำเหมือนเดิม ping ก่อนแล้วค่อยเข้าผ่าน chrome พบแต่ข้อความว่า It's work หรือไม่ก็ proxy7&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Other&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;1. Empathy IM Client ได้&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;2. ใช้ wget ได้&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;3. ใช้ apt-get ได้&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;4. Ubuntu Software Center ใช้งานไม่ได้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ปัญหาเป็นเพราะว่าอะไรสักอย่างไม่รองรับ IPV6 เพราะ IPV6 enable อยู่&lt;/div&gt;&lt;div&gt;แก้ไขโดย&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;gksudo gedit /etc/default/grub&lt;/span&gt;&lt;/div&gt;&lt;div&gt;เพื่อเข้าไปแก้ไข grub แล้วเปลี่ยนจาก&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;GRUB_CMD_LINE_LINUX_DEFAULT="quiet splash"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;เป็น&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet splash"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;save and exit จากนั้น update grub ด้วยคำสั่ง&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;sudo update-grub&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;เสร็จแล้ว reboot ครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-3241977453587060644?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/3241977453587060644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=3241977453587060644' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3241977453587060644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3241977453587060644'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/11/karlic-koala-ubuntu-910-ipv6.html' title='Karmic Koala Ubuntu 9.10 -- IPV6'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-4586093326646734779</id><published>2009-10-21T19:32:00.000-07:00</published><updated>2009-10-21T19:33:38.088-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>Restrictions on PL/SQL support</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;หลายวันก่อนคิดว่าจะลอง PL/SQL บน DB2 9.7 สักหน่อย เผื่อได้รื้อฟื้นความหลังกับ PL/SQL บ้าง&lt;/div&gt;&lt;div&gt;ก็เริ่มจากการติดตั้ง DB2 9.7 Express แล้วทดลองกำหนด register ให้รองรับ PL/SQL  ดังนี้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;DB2SET DB2_COMPATIBILITY_VECTOR=ORA&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;error เฉยครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;DBI1301E  Invalid value.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Explanation:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The value specified for the registry variable is invalid.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;User response:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Refer to the DB2 Information Center to determine the valid values for&lt;/div&gt;&lt;div&gt;the registry variable.&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ทำไมถึงบอกว่าไม่มี register ตัวนี้ล่ะ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;db2set -lr | find "COMP"&lt;/div&gt;&lt;div&gt;DB2_PMAP_COMPATIBILITY&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ไม่มีจริงๆด้วย&lt;/div&gt;&lt;div&gt;และเมื่อไปอ่าน &lt;a href="http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=/com.ibm.db2.luw.apdv.plsql.doc/doc/c0053608.html"&gt;Restrictions on PL/SQL support&lt;/a&gt; ก็พบว่า&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;มันไม่รองรับใน Edition ต่อไปนี้ครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;DB2® Express™&lt;/div&gt;&lt;div&gt;DB2 Express-C&lt;/div&gt;&lt;div&gt;DB2 Personal Edition&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;โห เซ็งมากมาย&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-4586093326646734779?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/4586093326646734779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=4586093326646734779' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/4586093326646734779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/4586093326646734779'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/10/restrictions-on-plsql-support.html' title='Restrictions on PL/SQL support'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-8926499482894297332</id><published>2009-10-10T12:13:00.001-07:00</published><updated>2009-10-10T12:15:49.119-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>IBM DB2 pureScale</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www-01.ibm.com/software/data/db2/9/images/pureScale530x160.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 530px; height: 160px;" src="http://www-01.ibm.com/software/data/db2/9/images/pureScale530x160.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;วันนี้แฟนๆ DB2 ถ้าไม่พูดถึง pureScale ก็คงจะเรียกได้ว่าค่อนข้างจะเชยซะแล้วล่ะ&lt;br /&gt;โดยสองสามวันที่ผ่านมา IBM ออกมาประกาศถึงเทคโนโลยีใหม่ที่มีชื่อว่า DB2 pureScale&lt;br /&gt;&lt;br /&gt;แล้ว DB2 pureScale คืออะไร ???&lt;br /&gt;&lt;br /&gt;จากที่เข้าใจคร่าวๆ  DB2 pureScale คือ software ตัวใหม่(ก็ DB2 นั้นล่ะ) ที่รันบนเครื่อง IBM Power 550 Express แล้วก็ Power 595 โดยเจ้าตัว DB2 pureScale จะช่วยให้ระบบฐานข้อมูลของเราสามารถรองรับกลับ transactions ที่เพิ่มขึ้นปริมาณมากๆ ความต้องการของลูกค้าที่เพิ่ม และอื่นๆ โดยที่เราไม่จำเป็นที่จะต้องเปลี่ยน พวก hardware ตลอดถึง infrastructure ต่างๆโดยหลักๆ ก็จะอยู่ที่&lt;br /&gt; 1. ไม่จำกัดความจุสำหรับ transactions ต่างๆ (Unlimited Capacity)&lt;br /&gt; 2. ไม่ต้องปรับเปลี่ยน application เดิมที่มีอยู่ โดยเมื่อมี business ใหม่เข้ามาก็เพิ่มเติมต่อไปได้ตาม requirement (Application Transparency)&lt;br /&gt; 3. ด้วยเทคโนลีของตัว Power เองและ redundant architecture สิ่งเหล่านี้จะทำให้ระบบมีเสถียรภาพและทำงานติดต่อกันไปได้โดยไม่ต้องหยุดชะงัก หรือก็ความระบบมีความน่าเชื่อถือนั้นเอง (Continuous Availability)&lt;br /&gt;&lt;br /&gt;แต่ก็น่าเสียดายนะครับที่มันไม่สามารถใช้งานได้บน x86 หรือพวก Unix ต่าง&lt;br /&gt;เดี๋ยวไปบอกคุณแม่ให้ซื้อ Power มาไว้เล่นที่บ้านสักตัวดีกว่า อิอิ&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ที่มา: &lt;a href="http://www-01.ibm.com/software/data/db2/9/editions-features-purescale.html"&gt;http://www-01.ibm.com/software/data/db2/9/editions-features-purescale.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-8926499482894297332?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/8926499482894297332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=8926499482894297332' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8926499482894297332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8926499482894297332'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/10/ibm-db2-purescale.html' title='IBM DB2 pureScale'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-4956475401599788511</id><published>2009-10-08T11:23:00.001-07:00</published><updated>2009-10-08T11:23:57.766-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>GPG error: NO_PUBKEY</title><content type='html'>ตอนใช้ Synaptic Package Manager ของ Ubuntu ใครเคยเจอ error แบบนี้บ้าง&lt;br /&gt;&lt;br /&gt;W: GPG error: http://ppa.launchpad.net intrepid Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5A9BF3BB4E5E17B5&lt;br /&gt;&lt;br /&gt;วิธีแก้ไขก็ไม่ยากครับ เราก็ไป load public key มาใหม่ครับ&lt;br /&gt;ตาม command ข้างล่างนี้ครับ (เปลี่ยนค่า pubkey ให้ตรงตามใน error ด้วยนะครับ)&lt;br /&gt;&lt;br /&gt;chan@chan-dell-laptop:~$ gpg --keyserver subkeys.pgp.net --recv 5A9BF3BB4E5E17B5&lt;br /&gt;&lt;br /&gt;และก็จะได้ output ประมาณนี้&lt;br /&gt;&lt;br /&gt;gpg: requesting key 4E5E17B5 from hkp server subkeys.pgp.net&lt;br /&gt;gpg: key 4E5E17B5: public key "Launchpad PPA for chromium-daily" imported&lt;br /&gt;gpg: no ultimately trusted keys found&lt;br /&gt;gpg: Total number processed: 1&lt;br /&gt;gpg:               imported: 1  (RSA: 1)&lt;br /&gt;&lt;br /&gt;จากนั้นก็ add key ตามนี้ครับ&lt;br /&gt;&lt;br /&gt;chan@chan-dell-laptop:~$ gpg --export --armor 5A9BF3BB4E5E17B5 | sudo apt-key add -&lt;br /&gt;&lt;br /&gt;ผลลัพธ์&lt;br /&gt;OK&lt;br /&gt;&lt;br /&gt;เท่านี้เองครับ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-4956475401599788511?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/4956475401599788511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=4956475401599788511' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/4956475401599788511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/4956475401599788511'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/10/gpg-error-nopubkey.html' title='GPG error: NO_PUBKEY'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-4917298011041843733</id><published>2009-09-22T11:52:00.000-07:00</published><updated>2009-09-22T11:55:07.502-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Open .mdf and .iso with VLC</title><content type='html'>วันนี้ของใช้ VLC เปิด .mdf และ .iso ดู&lt;br /&gt;ใช้งานได้ปกติเลยครับ ไม่ต้อง mount ให้เสียเวลา&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-4917298011041843733?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/4917298011041843733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=4917298011041843733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/4917298011041843733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/4917298011041843733'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/09/open-mdf-and-iso-with-vlc.html' title='Open .mdf and .iso with VLC'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-177875268853880639</id><published>2009-09-20T10:24:00.000-07:00</published><updated>2009-09-20T10:25:29.874-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Add new font for Ubuntu</title><content type='html'>ขั้นตอนการเพิ่ม font TTF ให้กับ Ubuntu&lt;br /&gt;1. กำหนดให้ font chan.ttf อยู่ที่ /home/chan/Desktop&lt;br /&gt;2. cd /usr/share/fonts/truetype&lt;br /&gt;3. mkdir myfonts&lt;br /&gt;4. cd myfonts&lt;br /&gt;5. cp /home/chan/Desktop/chan.ttf .&lt;br /&gt;6. sudo chown root.root chan.ttf&lt;br /&gt;7. sudo mkfontdir&lt;br /&gt;8. cd ..&lt;br /&gt;9. fc-cache&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-177875268853880639?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/177875268853880639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=177875268853880639' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/177875268853880639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/177875268853880639'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/09/add-new-font-for-ubuntu.html' title='Add new font for Ubuntu'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-3033243200045318791</id><published>2009-09-19T10:37:00.000-07:00</published><updated>2009-09-19T10:51:26.341-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Oracle said "... IBM, we 're looking forward to competing with you in the hardware business"</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_t50Y90j6TyI/SrUXDZ3WpXI/AAAAAAAACFQ/ewnCue7kR6o/s1600-h/sun_customers_lg.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 214px; height: 320px;" src="http://3.bp.blogspot.com/_t50Y90j6TyI/SrUXDZ3WpXI/AAAAAAAACFQ/ewnCue7kR6o/s320/sun_customers_lg.gif" alt="" id="BLOGGER_PHOTO_ID_5383234276841399666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;แข่งกันสนุกจริงๆครับ สำหรับ IBM กับ ORACLE&lt;br /&gt;หลังจาก&lt;br /&gt;- IBM แห้วจากการเข้าซื้อ SUN micro systems&lt;br /&gt;- ORACLE ซื้อ SUN ไปเรียบร้อยแล้ว&lt;br /&gt;- ลูกค้า SUN ขาดความมั่นใจทำให้ SUN ขาดทุนไปในช่วงที่ผ่านมา 147 ล้าน มั้งถ้าจำไม่ผิด&lt;br /&gt;- IBM ไปซื้อ SPSS แทน&lt;br /&gt;- ORACLE ประกาศว่า SUN + ORACLE เร็วกว่า IBM  System x3950 M2 ที่บอกว่าสามารถทำ 1.2 ล้าน transaction ได้ภายใน 1 นาที&lt;br /&gt;- IBM DB2 9.7 เขียน PL/SQL ที่ใช้ใน ORACLE ได้พร้อมกับมีวิธีย้ายจาก ORACLE มายัง DB2 ออกให้มาดูกันเยอะแยะ&lt;br /&gt;- IBM ออก POWER7 ที่เร็วและเล็กกว่า POWER6&lt;br /&gt;&lt;br /&gt;วันนี้ดู ORACLE ออกมาประกาศสิครับ&lt;br /&gt; "... IBM, we 're looking forward to competing with you in the hardware business"&lt;br /&gt;ref: &lt;a href="http://www.oracle.com/features/suncustomers.html"&gt;http://www.oracle.com/features/suncustomers.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;หนุกหนานครับ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-3033243200045318791?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/3033243200045318791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=3033243200045318791' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3033243200045318791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3033243200045318791'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/09/oracle-said-ibm-we-re-looking-forward.html' title='Oracle said &quot;... IBM, we &apos;re looking forward to competing with you in the hardware business&quot;'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_t50Y90j6TyI/SrUXDZ3WpXI/AAAAAAAACFQ/ewnCue7kR6o/s72-c/sun_customers_lg.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-1208375245980188759</id><published>2009-09-15T11:00:00.000-07:00</published><updated>2009-09-15T11:07:30.574-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Add new font for Ubuntu OpenOffice</title><content type='html'>เมื่อเข้ามาใช้งาน Ubuntu ก็ต้องเปลี่ยนจากใช้ Ms.Office มาใช้ OpenOffice ด้วย&lt;br /&gt;แต่  fonts ที่เราเคยใช้ประจำล่ะครับ ไม่ตามมาด้วยเราก็คิดถึงเหมือนกัน&lt;br /&gt;&lt;br /&gt;ที่ม.อุบลราชธานีมีให้เราได้ download มาใช้งานครับโดยมีรายการ fonts ดังนี้ครับ&lt;br /&gt;&lt;br /&gt; - TH K2D July8 Bold.ttf&lt;br /&gt; - Arundinamobd.ttf&lt;br /&gt; - TH KoHo.ttf&lt;br /&gt; - TH Charm of AU.ttf&lt;br /&gt; - TH Chakra Petch Bold Italic.ttf&lt;br /&gt; - tahoma.ttf&lt;br /&gt; - THSarabun.ttf&lt;br /&gt; - TH Chakra Petch Bold.ttf&lt;br /&gt; - TH Krub Bold Italic.ttf&lt;br /&gt; - TH K2D July8 Bold Italic.ttf&lt;br /&gt; - CORDIAUI.TTF&lt;br /&gt; - TH K2D July8.ttf&lt;br /&gt; - CORDIAUZ.TTF&lt;br /&gt; - TH Fahkwang Bold Italic.ttf&lt;br /&gt; - TH Charmonman.ttf&lt;br /&gt; - tahomabd.ttf&lt;br /&gt; - TH Fahkwang.ttf&lt;br /&gt; - ANGSAUI.TTF&lt;br /&gt; - TH Kodchasal Bold Italic.ttf&lt;br /&gt; - TH Kodchasal Bold.ttf&lt;br /&gt; - TH KoHo Italic.ttf&lt;br /&gt; - ANGSAB.TTF&lt;br /&gt; - TH Chakra Petch Italic.ttf&lt;br /&gt; - TH Fahkwang Italic.ttf&lt;br /&gt; - TH Baijam.ttf&lt;br /&gt; - TH Mali Grade6 Italic.ttf&lt;br /&gt; - TH Baijam Bold.ttf&lt;br /&gt; - Arundinab.ttf&lt;br /&gt; - TH KoHo Bold.ttf&lt;br /&gt; - TH Fahkwang Bold.ttf&lt;br /&gt; - TH Niramit AS Bold.ttf&lt;br /&gt; - Arundinao.ttf&lt;br /&gt; - ArunSer.ttf&lt;br /&gt; - Arundinabo.ttf&lt;br /&gt; - CORDIAUB.TTF&lt;br /&gt; - ANGSAUZ.TTF&lt;br /&gt; - TH Kodchasal Italic.ttf&lt;br /&gt; - CORDIAU.TTF&lt;br /&gt; - TH Krub Italic.ttf&lt;br /&gt; - CORDIAZ.TTF&lt;br /&gt; - CORDIAI.TTF&lt;br /&gt; - THSarabun Bold.ttf&lt;br /&gt; - TH Niramit AS Bold Italic.ttf&lt;br /&gt; - TH Mali Grade6 Bold.ttf&lt;br /&gt; - THSarabun BoldItalic.ttf&lt;br /&gt; - TH Srisakdi.ttf&lt;br /&gt; - Arundinamoit.ttf&lt;br /&gt; - TH Chakra Petch.ttf&lt;br /&gt; - TH Krub Bold.ttf&lt;br /&gt; - Arundinamobi.ttf&lt;br /&gt; - ANGSAZ.TTF&lt;br /&gt; - ArunSerB.ttf&lt;br /&gt; - THSarabun Italic.ttf&lt;br /&gt; - TH Charmonman Bold.ttf&lt;br /&gt; - TH Baijam Italic.ttf&lt;br /&gt; - TH Niramit AS Italic.ttf&lt;br /&gt; - TH Srisakdi Bold.ttf&lt;br /&gt; - TH K2D July8 Italic.ttf&lt;br /&gt; - ANGSAUB.TTF&lt;br /&gt; - Arundinamono.ttf&lt;br /&gt; - ANGSAU.TTF&lt;br /&gt; - CORDIAB.TTF&lt;br /&gt; - TH Niramit AS.ttf&lt;br /&gt; - CORDIA.TTF&lt;br /&gt; - TH Baijam Bold Italic.ttf&lt;br /&gt; - Arundina.ttf&lt;br /&gt; - TH Krub.ttf&lt;br /&gt; - TH KoHo Bold Italic.ttf&lt;br /&gt; - TH Mali Grade6 Bold Italic.ttf&lt;br /&gt; - TH Mali Grade6.ttf&lt;br /&gt; - TH Kodchasal.ttf&lt;br /&gt; - ANGSAI.TTF&lt;br /&gt; - ANGSA.TTF&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;วิธีติดตั้งก็ไม่ยากครับเนื่องจากเค้าเขียน shell script ไว้ให้แล้ว&lt;br /&gt;เราก็ไป download shell script มารันได้เลยครับที่&lt;br /&gt;&lt;a href="http://lion.bus.ubu.ac.th/oss/Ubuntu/thfonts.sh" target="_blank"&gt;http://lion.bus.ubu.ac.th/oss/Ubuntu/thfonts.sh&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;จากนั้นก็ chmod +x thfonts.sh&lt;br /&gt;แล้วก็ตามด้วย ./thfonts.sh ครับ&lt;br /&gt;เท่านี้ก็ได้ fonts เพิ่มเข้ามาแล้วครับ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-1208375245980188759?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/1208375245980188759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=1208375245980188759' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1208375245980188759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1208375245980188759'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/09/add-new-font-for-ubuntu-openoffice.html' title='Add new font for Ubuntu OpenOffice'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-3860628275212494415</id><published>2009-09-14T11:56:00.001-07:00</published><updated>2009-09-14T11:57:50.256-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu on DELL, hear sound from speaker and headphone at same time</title><content type='html'>ไม่เคยมาก่อนครับ กับการที่จะต้องใช้  linux version ของ desktop&lt;br /&gt;เพราะปกติที่ใช้ก็จะอยู่ในรูปแบบของการ terminal เข้าใช้งานมากกว่า&lt;br /&gt;พอมาใช้ linux แทน windows ก็เลยชักจะตื่นตระหนกอะไรเอาง่ายๆ&lt;br /&gt;วันนี้ก็เหมือนกัน อยากจะดูหนังฟังเพลงขึ้นมา เลยหยิบเอาหูฟังมาเสียบ&lt;br /&gt;แต่เอ๊ะ!!  ทำไมเสียงในหูฟังก็ดัง ลำโพงของ notebook เองก็ดัง&lt;br /&gt;พยายามเสียบเข้าถอดออกอยู่สักพังก็ไม่หาย หูฟังเราไม่เสียชัวร์&lt;br /&gt;เพราะ notebook อีกเครื่องยังใช้กับหูฟังนี้ได้อยู่เลย อ่า notebook พังแน่เลย&lt;br /&gt;&lt;br /&gt;จริงๆแล้วไม่ใช่เรื่องของ notebook หรือว่า หูฟัง พังหรอกครับ&lt;br /&gt;แต่มันเป็นที่ Linux น่ะครับที่ออกแบบไว้ให้มี options ให้สามารถเสียบหูฟังแล้ว&lt;br /&gt;แต่ก็ยังมีเสียงออกที่ลำโพงของ notebook ได้ สงสัยเอาไว้ทำ 5.0 ล่ะมั้ง&lt;br /&gt;&lt;br /&gt;จากการค้นหาอยู่พักใหญ่ หลายๆที่บอกว่าให้ enable "Headphone jack sense"&lt;br /&gt;ก็อยากจะทำตามอยู่หรอกครับ แต่มันไม่มีอ่ะครับ&lt;br /&gt;ผมใช้ vostro 1320 ลง Ubuntu 9.04 amd64 ไม่เห็นจะมีอะไรแบบนี้ให้เลือกเลย&lt;br /&gt;สุดท้ายใช้วิธี update ALSA (Advanced Linux Sound Architecture) ครับ&lt;br /&gt;โดยมีขั้นตอนดังนี้&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;1. ดู version กันก่อนว่าใช้ ALSA version ไหนอยู่&lt;br /&gt;  $cat /proc/asound/version&lt;br /&gt;   Advanced Linux Sound Architecture Driver Version 1.0.18rc3.&lt;br /&gt;&lt;br /&gt;2. ลงตัว compile กันก่อน&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;   $sudo apt-get -y install build-essential ncurses-dev gettext xmlto&lt;br /&gt;  $sudo apt-get -y install linux-headers-`uname -r`&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. ftp ไปเอา file มาเก็บไว้ที่ home directory ก่อนครับ&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;    $cd ~&lt;br /&gt;   $wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.20.tar.bz2&lt;br /&gt;   $wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.20.tar.bz2&lt;br /&gt;   $wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.20.tar.bz2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4. เรียบร้อยแล้วก็ สร้าง directory แล้ว copy file ไปเก็บไว้&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;    $sudo mkdir -p /usr/src/alsa&lt;br /&gt;   $cd /usr/src/alsa&lt;br /&gt;   $sudo cp ~/alsa* .&lt;br /&gt;&lt;br /&gt;5. ตามด้วย extract tar.bz2 ที่ load มาครับ&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span&gt;    &lt;/span&gt;$sudo tar xjf alsa-driver*&lt;br /&gt;&lt;span&gt;    &lt;/span&gt;$ sudo tar xjf alsa-lib*&lt;br /&gt;&lt;span&gt;    &lt;/span&gt;$ sudo tar xjf alsa-utils*&lt;br /&gt;&lt;br /&gt;6. compile แล้วก็ install ครับ&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span&gt;    &lt;/span&gt;$cd alsa-driver*&lt;br /&gt;&lt;span&gt;    &lt;/span&gt;$sudo ./configure --with-cards=hda-intel --with-kernel=/usr/src/linux-headers-$(uname -r)&lt;br /&gt;&lt;span&gt;    &lt;/span&gt;$sudo make&lt;br /&gt;&lt;span&gt;    &lt;/span&gt;$sudo make install&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span&gt;    &lt;/span&gt;$cd ../alsa-lib*&lt;br /&gt;&lt;span&gt;    &lt;/span&gt;$sudo ./configure&lt;br /&gt;&lt;span&gt;    &lt;/span&gt;$sudo make&lt;br /&gt;&lt;span&gt;    &lt;/span&gt;$sudo make install&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span&gt;    &lt;/span&gt;$cd ../alsa-utils*&lt;br /&gt;&lt;span&gt;    &lt;/span&gt;$sudo ./configure&lt;br /&gt;&lt;span&gt;    &lt;/span&gt;$sudo make&lt;br /&gt;&lt;span&gt;    &lt;/span&gt;$sudo make install&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;7. restart notebook นะครับ แล้วก็ตัวสอบ version อีกครั้งตามขั้นที่ 1 มันควรจะเปลี่ยนเป็น version ใหม่แล้วนะครับ&lt;br /&gt;ถ้าเข้าไปดูที่ System -&gt; Preference -&gt; Sound ควรจะเห็น line in ฯลฯ เพิ่มขึ้นมา&lt;br /&gt;และอาการ เสียงดังทั้ง ลำโพง ทั้ง หูฟัง ควรจะหายไปครับ&lt;br /&gt;&lt;br /&gt;ขอบคุณ command line: &lt;span&gt;http://monespaceperso.org/blog-en/2009/05/09/upgrade-alsa-1020-on-ubuntu-jaunty-904/&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-3860628275212494415?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/3860628275212494415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=3860628275212494415' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3860628275212494415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3860628275212494415'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/09/linux-version-desktop-terminal-linux.html' title='Ubuntu on DELL, hear sound from speaker and headphone at same time'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-2452068599088275527</id><published>2009-09-14T02:44:00.000-07:00</published><updated>2009-09-14T02:45:22.606-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>DELL Technical Support</title><content type='html'>&lt;div&gt;วันนี้ได้โอกาสโทรหาฝ่าย support ที่ DELL &lt;/div&gt;&lt;div&gt;โดยเริ่มจาก &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;02-6707200 &lt;/div&gt;&lt;div&gt; กด 2 ภาษาไทย -&gt; กด 4 ติดต่อฝ่ายเทคนิค&lt;/div&gt;&lt;div&gt; รอแล้วรอเล่า เนิ่นนานเท่าไรก็ไม่รู้ ก็ยังไม่ติด&lt;/div&gt;&lt;div&gt; โทรตั้งแต่ 11.00 น. - 13.30 น. ก็ยังไม่ติด&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;1800-006-007&lt;/div&gt;&lt;div&gt; "กรุณาตรวจสอบหมายเลขที่ท่านเรียกอีกครั้ง"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;1800-006-009&lt;/div&gt;&lt;div&gt; "กรุณาตรวจสอบหมายเลขที่ท่านเรียกอีกครั้ง"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;001-8006-015-609&lt;/div&gt;&lt;div&gt; กด 2 ภาษาไทย -&gt; กด 3 Notebook -&gt; กด 1 Latitude&lt;/div&gt;&lt;div&gt; ??? อาวว แล้วเราใช้ vostro ทำไงอ่ะ ??? &lt;/div&gt;&lt;div&gt; สุดท้ายก็ใช้เบอร์นี้ล่ะครับคุยกับช่าง&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; เมื่อคุยกับช่างเรียบร้อยถามว่ามีวิธีไหนที่จะต่อมาได้ตรงๆหรือไม่&lt;/div&gt;&lt;div&gt; ช่างบอกว่า ถ้าโทรผ่านมือถือให้กด&lt;/div&gt;&lt;div&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;00-1800-006-007 หรือไม่ก็&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;00-1800-006-009&lt;/div&gt;&lt;div&gt; เมื่อลองกดโทร&lt;/div&gt;&lt;div&gt; "หมายเลขเรียกเก็บเงินปลายทางที่ท่านเรียก ยังไม่เปิดให้บริการในขณะนี้"&lt;/div&gt;&lt;div&gt;  - -"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ตกลงมันยังไงอ่ะ&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-2452068599088275527?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/2452068599088275527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=2452068599088275527' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/2452068599088275527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/2452068599088275527'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/09/dell-technical-support.html' title='DELL Technical Support'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-1174153370360291802</id><published>2009-09-09T10:56:00.001-07:00</published><updated>2009-09-09T10:56:39.062-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>บันทึก เริ่มต้นกับ Ubuntu #2</title><content type='html'>&lt;div&gt;หลังจากที่เมื่อวาน ลง Ubuntu ไปอ่านหนังสือเตรียมสอบไป&lt;/div&gt;&lt;div&gt;วันนี้ก็พบว่าเกิดปัญหาครับ boot เข้าหน้า login ได้ แต่ใส่ username/password ไม่ได้&lt;/div&gt;&lt;div&gt;ทำอยู่หลายครั้งก็ไม่ได้ เหมือนวานตอนลง ก็เกิดอาการคล้ายๆกัน แต่ไม่ 100% ขนาดนี้&lt;/div&gt;&lt;div&gt;แปลกมากครับ ไม่เคยเจอมาก่อน เลยลองหา mouse มาเสียบดู ใช้งานได้ซะงั้น&lt;/div&gt;&lt;div&gt;มันเกิดอะไรขึ้นครับเนี๊ยะ ทำไม touchpad กับ keyboard ใช้ไม่ได้&lt;/div&gt;&lt;div&gt;เพราะเอา mouse usb มาเสียบก็ใช้งานได้ หลังจาก login เข้าไป touchpad ก็ใช้งานได้ปกติ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;งงมากๆๆๆ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;หาอยู่นานครับพบใน internet ครับ พอสรุปได้ว่า เราต้องเข้าไปแก้ menu.lst ครับโดยมีขั้นตอนดังต่อไปนี้ครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;1. เปิด /boot/grub/menu.lst ขึ้นมาด้วย texteditor ครับ&lt;/div&gt;&lt;div&gt;    หรือใช้ command&lt;/div&gt;&lt;div&gt;     sudo gedit /boot/grub/menu.lst&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. มองหา End Default Option บรรทัดหลังจากนี้จะมีข้อมูลเกี่ยวกับ kernel &lt;/div&gt;&lt;div&gt;3. มองหา kernel ที่ลงท้ายด้วย ro quiet splash ครับในที่นี้ของผมเป็น&lt;/div&gt;&lt;div&gt;     kernel /vmlinuz-2.6.28-11.generic root=UUID=dccaaclb-36a3-49lf-aabf-7990026877bf2 ro quiet splash&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. ให้เพิ่ม i8042.reset i8042.nomux i8042.nopnp i8042.noloop ต่อท้ายเข้าไปครับ&lt;/div&gt;&lt;div&gt;     kernel /vmlinuz-2.6.28-11.generic root=UUID=dccaaclb-36a3-49lf-aabf-7990026877bf2 ro quiet splash i8042.reset i8042.nomux i8042.nopnp i8042.noloop&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. จากนั้น save แล้ว reboot ทดสอบดูครับ&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ป.ล. อย่าลืม comment ค่า kernel อันเก่าก่อนแก้ไขไว้ด้วยนะครับ&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-1174153370360291802?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/1174153370360291802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=1174153370360291802' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1174153370360291802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1174153370360291802'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/09/ubuntu-2.html' title='บันทึก เริ่มต้นกับ Ubuntu #2'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-5317852203082065723</id><published>2009-09-08T10:56:00.000-07:00</published><updated>2009-09-08T10:57:29.148-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>บันทึก เริ่มต้นกับ Ubuntu #1</title><content type='html'>&lt;div&gt;วันนี้ได้ notebook มาล่ะครับ เป็น DELL vostro 1320&lt;/div&gt;&lt;div&gt;ไม่รอช้าครับ ทั้งๆที่พรุ่งนี้ก็จะสอบ TM.501 เริ่มจากตรวจว่าเค้าลงอะไรมาบ้าง&lt;/div&gt;&lt;div&gt;จริงๆรุ่นที่สั่งเป็น free dos ครับแต่เค้าดันลง XP มาให้ เราก็ไม่สนใจครับ&lt;/div&gt;&lt;div&gt;format ลง Ubuntu 9.04 (64 bits) ทันที เริ่มจากแบ่ง partitionใหม่หมด&lt;/div&gt;&lt;div&gt;โดยกำหนดตาม step noob ดังนี้&lt;/div&gt;&lt;div&gt; / 30270 MB&lt;/div&gt;&lt;div&gt; /usr 10240 MB&lt;/div&gt;&lt;div&gt; /tmp 512 MB&lt;/div&gt;&lt;div&gt; /boot 200 MB&lt;/div&gt;&lt;div&gt; swap 8192 MB&lt;/div&gt;&lt;div&gt; /windows&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;มั่วเข้าไว้ ผิดถูกมีความรู้เพิ่มเติมเดี๋ยวลงใหม่ก็ไม่เป็นไร อิอิ&lt;/div&gt;&lt;div&gt;จากนั้นเมื่อลงเสร็จเรียบร้อยเข้าใช้งานได้ ว่าแต่ว่า root password เป็นอารายว้าา&lt;/div&gt;&lt;div&gt;ไอ้เราก็ไม่ค่อยได้ใช้ linux สุดท้ายใช้ command นี้ครับ&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;sudo su -&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;มันก็จะเข้า root ให้เราก็จัดการ &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;passwd root&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;เท่านี้ก็ยึดหัวหาด root ไว้ได้แล้วครับ&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-5317852203082065723?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/5317852203082065723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=5317852203082065723' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5317852203082065723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5317852203082065723'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/09/ubuntu-1.html' title='บันทึก เริ่มต้นกับ Ubuntu #1'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-6187135002078567654</id><published>2009-09-04T09:51:00.001-07:00</published><updated>2009-09-04T09:52:22.569-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>Overview and Basic Maintenance</title><content type='html'>เอา slide มาโชว์ห่วย&lt;br /&gt;อันนี้จัด workshop ให้ก้บเพื่อนที่บริษัทอ่ะ&lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_1952434"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/fuangwith/overview-and-basic-maintenance" title="Overview and Basic Maintenance"&gt;Overview and Basic Maintenance&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=day1-090904114646-phpapp01&amp;amp;stripped_title=overview-and-basic-maintenance"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=day1-090904114646-phpapp01&amp;amp;stripped_title=overview-and-basic-maintenance" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/fuangwith"&gt;fuangwith&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-6187135002078567654?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/6187135002078567654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=6187135002078567654' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/6187135002078567654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/6187135002078567654'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/09/overview-and-basic-maintenance.html' title='Overview and Basic Maintenance'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-2935684286282673859</id><published>2009-09-03T11:40:00.000-07:00</published><updated>2009-09-03T11:42:14.886-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Google Timeline</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_t50Y90j6TyI/SqAN-Vy49gI/AAAAAAAACFI/FMRfPQBeRIg/s1600-h/google-timeline-2+copyright.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://4.bp.blogspot.com/_t50Y90j6TyI/SqAN-Vy49gI/AAAAAAAACFI/FMRfPQBeRIg/s320/google-timeline-2+copyright.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5377313319734015490" /&gt;&lt;/a&gt;&lt;br /&gt;พอดีพรุ่งนี้ต้อง present เรื่อง Google ก็เลยได้มีโอกาสทำ Google Timeline ที่สรุปมาจาก Google Timeline ของตัว Google เอง&lt;br /&gt;งงป่ะ อิอิ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-2935684286282673859?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/2935684286282673859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=2935684286282673859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/2935684286282673859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/2935684286282673859'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/09/google-timeline.html' title='Google Timeline'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_t50Y90j6TyI/SqAN-Vy49gI/AAAAAAAACFI/FMRfPQBeRIg/s72-c/google-timeline-2+copyright.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-5956499732005685884</id><published>2009-08-27T21:15:00.000-07:00</published><updated>2009-08-27T21:41:03.359-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>Sun + Oracle = faster than DB2 on fastest server ?</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www-03.ibm.com/systems/resources/X3950M2_930x300.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 500px; height: 161px;" src="http://www-03.ibm.com/systems/resources/X3950M2_930x300.jpg" border="0" alt="" /&gt;&lt;/a&gt;555 หลายเดือนก่อน IBM ออก server ที่บอกว่าทำงานได้เร็วและแรงที่สุด โดยภายในมีการใส่ DB2 เข้าไปเป็น database &lt;a href="http://www-03.ibm.com/systems/info/x/3850m2/"&gt;http://www-03.ibm.com/systems/info/x/3850m2/&lt;/a&gt;&lt;div&gt;&lt;a href="http://www-03.ibm.com/systems/info/x/3850m2/"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.oracle.com/features/hp/images/sunoraclefaster.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 266px;" src="http://www.oracle.com/features/hp/images/sunoraclefaster.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Oracle จะยอมให้ IBM มาโม้อยู่อย่างนี้หรอครับ ยอมไม่ไ้ด้ๆ วันนี้ Oracle เลยออกมาพูดบ้างว่า&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="  font-weight: bold; line-height: 16px; font-family:arial;"&gt;&lt;a href="http://www.oracle.com/features/sunoraclefaster.html"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Sun plus Oracle is faster&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="  line-height: 16px; font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;ลองเข้าไปดูครับ&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:130%;"&gt;&lt;span class="Apple-style-span"  style=" line-height: 16px;font-size:14px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:130%;"&gt;&lt;span class="Apple-style-span"  style=" line-height: 16px;font-size:14px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-5956499732005685884?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/5956499732005685884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=5956499732005685884' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5956499732005685884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5956499732005685884'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/08/sun-oracle-faster-than-db2-on-fastest.html' title='Sun + Oracle = faster than DB2 on fastest server ?'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-3955171476236300223</id><published>2009-08-22T09:54:00.001-07:00</published><updated>2009-08-22T09:56:18.747-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Cannot.info</title><content type='html'>วันนี้ได้พบกับ http://cannot.info ครับ (ตามมาจากเว็บของกรมการปกครอง dopa น่ะครับ)&lt;div&gt;เข้ามาแล้วพบว่าภายใน cannot.info เนี๊ยะมีอะไรต่อมิอะไรน่าสนใจมากมายเลยครับ&lt;/div&gt;&lt;div&gt;อาทิเช่น .htaccess generator, counter and etc.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ว่างๆแวะไปเยี่ยมชมไ้ด้นะครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ปล. ผมไม่มีส่วนได้ส่วนเสียกับเค้านะครับ&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-3955171476236300223?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/3955171476236300223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=3955171476236300223' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3955171476236300223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3955171476236300223'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/08/cannotinfo.html' title='Cannot.info'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-8287563318175787628</id><published>2009-08-14T00:12:00.000-07:00</published><updated>2009-08-14T01:35:46.206-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MQ'/><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>Can not expand Queue Manager node on MQ Explorer</title><content type='html'>&lt;div&gt;&lt;div&gt;บางครั้งเมื่อเราเรียกใช้งาน MQ Explorer ขึ้นมาแล้วพบว่า Queue Manager ไม่สามารถ&lt;/div&gt;&lt;div&gt;Expand ออกมาเพื่อดู objects ภายใน queue manager นั้นได้ดังรูป&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_t50Y90j6TyI/SoUgeUTG5fI/AAAAAAAACE4/kGvB6-_GJ-Q/s1600-h/mq-cannot-expand.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 268px; height: 135px;" src="http://3.bp.blogspot.com/_t50Y90j6TyI/SoUgeUTG5fI/AAAAAAAACE4/kGvB6-_GJ-Q/s320/mq-cannot-expand.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5369733835926201842" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;วิธีแก้ ก็คือสั่ง stop Queue Manager แล้วปิด MQ Explorer &lt;/div&gt;&lt;div style="text-align: left;"&gt;จากนั้น ให้ไปที่ Taskbar และเปิด MQ Explorer จาก Taskbar แทน ตามรูป&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_t50Y90j6TyI/SoUg4kbHpoI/AAAAAAAACFA/uFsI30SdRmM/s1600-h/mq-cannot-expand-task.png"&gt;&lt;img src="http://1.bp.blogspot.com/_t50Y90j6TyI/SoUg4kbHpoI/AAAAAAAACFA/uFsI30SdRmM/s320/mq-cannot-expand-task.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5369734286931371650" style="cursor: pointer; width: 268px; height: 122px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;จากนั้นจะพบว่า Queue Manager จะสามารถ expand เพื่อให้เราสามารถทำงานกับ objects ภายในได้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_t50Y90j6TyI/SoUOhYg-ccI/AAAAAAAACEw/oub6S9I_UXE/s1600-h/mq-cannot-expand-2.png"&gt;&lt;img style="text-align: center;float: left; margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 0px; cursor: pointer; width: 268px; height: 168px; " src="http://3.bp.blogspot.com/_t50Y90j6TyI/SoUOhYg-ccI/AAAAAAAACEw/oub6S9I_UXE/s320/mq-cannot-expand-2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5369714097388417474" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-8287563318175787628?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/8287563318175787628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=8287563318175787628' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8287563318175787628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8287563318175787628'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/08/can-not-expand-queue-manager-node-on-mq.html' title='Can not expand Queue Manager node on MQ Explorer'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_t50Y90j6TyI/SoUgeUTG5fI/AAAAAAAACE4/kGvB6-_GJ-Q/s72-c/mq-cannot-expand.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-8422790276322416005</id><published>2009-08-13T03:55:00.001-07:00</published><updated>2009-08-13T03:57:00.219-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>DB2CE Auto commit OFF</title><content type='html'>บางครั้งมีความจำเป็นที่จะต้องทำงานผ่าน db2 command editor (db2ce)&lt;br /&gt;ถ้าใครเคยใช้งาน tool ตัวนี้คงนึกภาพออกนะครับว่ามันไม่ง่ายเลยที่ใช้งาน&lt;br /&gt;ไม่ว่าจะ ctrl+z เพื่อ undo ไม่ได้, ไม่มีสีสำหรับ syntax, ขึ้นบรรทัดใหม่โดยมีเว้นวรร&lt;br /&gt;ก็ compile ไม่ผ่าน และอื่นๆอีกเยอะแยะมากมาย&lt;br /&gt;&lt;br /&gt;วันนี้ผมมีความจำเป็นที่จะต้องรัน temporary table กับ procedure โดยที่ยังไม่ต้อง commit&lt;br /&gt;ทำไงดีล่ะ -c ที่ใช้ใน db2cmd ก็ไม่ผ่านแหะ สุดท้ายได้วิธีดังนี้ครับ&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;update command options using c off;&lt;br /&gt;&lt;br /&gt;sql statement1;&lt;br /&gt;&lt;br /&gt;sql statement2;&lt;br /&gt;&lt;br /&gt;rollback; หรือ commit;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;เท่านี้ก็รันแบบไม่ auto commit ได้แล้วครับ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-8422790276322416005?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/8422790276322416005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=8422790276322416005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8422790276322416005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8422790276322416005'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/08/db2ce-auto-commit-off.html' title='DB2CE Auto commit OFF'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-8277938622315109709</id><published>2009-08-12T23:05:00.000-07:00</published><updated>2009-08-12T23:38:32.443-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>JVMJ9GC028E Option too large</title><content type='html'>เมื่อ startServer แล้วพบอาการ&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;&lt;span style="color:#000099;"&gt;ADMU7704E: Failed while trying to start the Windows Service associated&lt;br /&gt;with server:&lt;br /&gt;server1;probable error executing WASService.exe:&lt;br /&gt;Starting Service:&lt;br /&gt;LOS0PFM0SVRNode01Service failed to start.&lt;br /&gt;startServer return&lt;br /&gt;code = -1&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;อาจเกิดขึ้นได้หลายสาเหตุ&lt;br /&gt;โดยสามารถดูรายละเอียดส่วนหนึ่งได้จาก&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;$WAS_HOME\profiles\&lt;profilename&gt;&lt;server&gt;native_stderr.log&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;วันนี้ขอเสนอ&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="color:#000099;"&gt;JVMJ9GC028E Option too large: '-Xmx4096m'JVMJ9VM015W Initialization error for&lt;br /&gt;library j9gc23(2): Failed to initialize, parsing command lineCould not create&lt;br /&gt;the Java virtual machine.&lt;/span&gt;&lt;/p&gt;Error นี้เกิดจากเราไปกำหนด Maximum Heapsize ให้กับ WAS มากเกินกว่าที่ server จะจองให้ได้มันก็จะ start ไม่ขึ้นพร้อมกับ print error ออกมาอย่างที่เห็นนี้ล่ะครับ&lt;br /&gt;แล้วจะทำยังไงดี (นี้เป็นคำถามสำหรับคนที่ config ค่า Maximum Heapsize ผ่าน Web Console) ไม่ยากครับเข้าไปแก้&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;$WAS_HOME\profiles\&lt;profilename&gt;config\cells&lt;cellname&gt;\nodes\&lt;nodename&gt;servers\&lt;servername&gt;server.xml&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;จากนั้นมองหา&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;&lt; id="JavaVirtualMachine_1249974906156" verbosemodeclass="false" verbosemodegarbagecollection="true" verbosemodejni="false" color="#ff6600"&gt;maximumheapsize="4096" runhprof="false" debugmode="false" debugargs="-Djava.compiler=NONE -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7777" genericjvmarguments="-Dsun.rmi.dgc.server.gcInterval=60000 -Dsun.rmi.dgc.client.gcInterval=60000 -Xdisableexplicitgc" disablejit="false"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ครับแล้วก็จัดการแก้ค่า &lt;strong&gt;maximumHeapSize&lt;/strong&gt; ให้มีขนาดน้อยๆก่อนครับ (อย่าลืม backup ไว้ด้วยล่ะ) จากนั้น save แล้วลอง startServer อีกครั้งครับผลลัพธ์ที่ได้ก็น่าจะเป็น&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;ADMU0128I: Starting tool with the &lt;profilename&gt;profile&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;ADMU3100I: Reading configuration for server: &lt;servername&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;ADMU3200I: Server launched. Waiting for initialization status.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;ADMU3000I: Server &lt;servername&gt;open for e-business; process id is 2328&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;ให้เราชื่นใจนะครับ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-8277938622315109709?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/8277938622315109709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=8277938622315109709' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8277938622315109709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8277938622315109709'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/08/jvmj9gc028e-option-too-large.html' title='JVMJ9GC028E Option too large'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-4129492987276709714</id><published>2009-08-09T01:07:00.000-07:00</published><updated>2009-08-09T01:13:59.963-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MS-DOS'/><title type='text'>control panel command line</title><content type='html'>&lt;div&gt;มาดูกันดีกว่าคำสั่งในที่ใช้เรียก control ต่างๆใน control panel ขึ้นมามีอะไรน่าสนใจบ้าง&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Control Panel -&gt; "control"&lt;/div&gt;&lt;div&gt;2. Accessibility Options -&gt; "Access.cpl"&lt;/div&gt;&lt;div&gt;3&lt;/div&gt;&lt;div&gt;4. Add or Remove Programs -&gt; "Appwiz.cpl"&lt;/div&gt;&lt;div&gt;5. Administrative Tools -&gt; "control admintools"&lt;/div&gt;&lt;div&gt;6. Automatic Updates -&gt; "wuaucpl.cpl"&lt;/div&gt;&lt;div&gt;7. Bluetooth Configuration -&gt; "fsquirt"&lt;/div&gt;&lt;div&gt;8. Bluetooth Devices -&gt; "bthprops.cpl"&lt;/div&gt;&lt;div&gt;9. Date and Time -&gt; "timedate.cpl"&lt;/div&gt;&lt;div&gt;10. Display -&gt; "desk.cpl"&lt;/div&gt;&lt;div&gt;11. Folder Options - &gt; "control folders"&lt;/div&gt;&lt;div&gt;12. Fonts -&gt; "fonts"&lt;/div&gt;&lt;div&gt;13. Game Controllers -&gt; "joy.cpl"&lt;/div&gt;&lt;div&gt;14. Internet Options -&gt; "inetcpl.cpl"&lt;/div&gt;&lt;div&gt;15. Java Plug-in -&gt; "jpicpl32.cpl"&lt;/div&gt;&lt;div&gt;16. Keyboard -&gt; "main.cpl keyboard"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;หมดแรง ส่วนที่เหลือค่อยมาเพิ่มต่อวันหลังละักัน&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-4129492987276709714?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/4129492987276709714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=4129492987276709714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/4129492987276709714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/4129492987276709714'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/08/control-panel-command-line.html' title='control panel command line'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-2866295049163560901</id><published>2009-08-08T02:58:00.000-07:00</published><updated>2009-08-08T02:59:50.940-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><title type='text'>หนาวๆร้อนๆเมื่อเล่นกับ .htaccess</title><content type='html'>วันก่อนผมเกิดอาการอยากแก้ .htacess ของ drupal ถือว่ามี .htacess backup ไว้ที่เครื่อง&lt;br /&gt;แก้ไปแก้มา web ล่มสิครับคราวนี้ delete แล้วเอาไปใส่ใหม่ก็แล้วก็ยังไม่หาย คิดไม่ออกเลยว่าเกิด&lt;br /&gt;จากอะไร มันไม่พูดอะไรมากนอกจาก&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;Warning: Lost connection to MySQL server during query query&lt;br /&gt;Warning: MySQL server has gone away query:&lt;br /&gt;Warning: Cannot modify header information - headers already sent by (output started&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;หรือว่า cache เรายังไม่ถึง timeout วะรอแล้วรออีก ไม่หาย ซวยละ&lt;br /&gt;เข้าไปดู log server  โอ้ววว!!! googlebot เข้ามาพอดีด้วย อะไรจะซวยขนาดนี้&lt;br /&gt;สมาธิๆ พรุ่งนี้มีเรียนอีก&lt;br /&gt;อ๋อ ต้องเป็นที่ Clean URLs แน่ๆเลย เราไป enable มันไว้พอเอา .htaccess ออกเลย error&lt;br /&gt;ไม่พูดพร่ำทำเพลงเปิด phpMyAdmin รีบเข้าไปดู&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt; SELECT *&lt;br /&gt; FROM  `variable` &lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;    name       value&lt;br /&gt;--------------   ----------&lt;br /&gt;clean_url  s:1:"1";&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;ไม่รอช้าแก้เป็น&lt;span style="font-weight:bold;"&gt; &lt;span class="Apple-style-span"  style="color:#000099;"&gt;s:1:"0";&lt;/span&gt;&lt;/span&gt;  แล้วรอดูผล&lt;br /&gt;เหลือเชื่อครับ หาย หาย error เลย จากนั้นค่อยกลับไป set Clean URLs ใหม่อีกครั้ง&lt;br /&gt;ได้นอนแล้วเรา&lt;br /&gt;&lt;br /&gt;นิทานเรื่องนี้สอนให้รู้ว่า อย่าลบ หรือแก้ .htaccess โดยไม่มั่นใจ ในขณะที่เราใช้ function Clean URLs อยู่ครับ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-2866295049163560901?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/2866295049163560901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=2866295049163560901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/2866295049163560901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/2866295049163560901'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/08/htaccess.html' title='หนาวๆร้อนๆเมื่อเล่นกับ .htaccess'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-3225851086491526575</id><published>2009-07-14T02:13:00.000-07:00</published><updated>2009-07-14T02:15:26.944-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>com.ibm.Websphere.naming.WsnInitialContextFactory</title><content type='html'>เคยมั้ยครับ เวลาใช้เขียน JNDI สำหรับ lookup ใน WAS6.1 แบบนี้ &lt;br /&gt;&lt;br /&gt;           &lt;blockquote&gt; Hashtable env = new Hashtable();&lt;br /&gt;            env.put(Context.INITIAL_CONTEXT_FACTORY,"com.ibm.Websphere.naming.WsnInitialContextFactory");&lt;br /&gt;            InitialContext ctx = new InitialContext(env);&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;แล้วเจอ error&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;javax.naming.NoInitialContextException: Cannot instantiate class: com.ibm.Websphere.naming.WsnInitialContextFactory.  Root exception is java.lang.ClassNotFoundException: com.ibm.Websphere.naming.WsnInitialContextFactory&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;       ทั้งๆที่เราก็อ้าง classpath ไปที่ naming.jar แล้วแต่ทำไมยังไม่ได้นะ extract ออกมา folder ภายในก็เป็นมีปกตินี่นาเข้าไปดูตัวอย่างมากมายใน Internet ก็เรียกใช้งาน &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;com.ibm.Websphere.naming.WsnInitialContextFactory &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;แบบนี้แทบทั้งนั้น มองเห็นอะไรผิดสังเกตป่ะครับ ใช้เลยครับชื่อ package ของ java ต้องเป็นตัวเล็กครับ ดังนั้นต้องแก้เป็น &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;com.ibm.websphere.naming.WsnInitialContextFactory &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;     เท่านี้ล่ะครับ เรียบร้อยละ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-3225851086491526575?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/3225851086491526575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=3225851086491526575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3225851086491526575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3225851086491526575'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/07/comibmwebspherenamingwsninitialcontextf.html' title='com.ibm.Websphere.naming.WsnInitialContextFactory'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-7208579169700634137</id><published>2009-07-05T20:55:00.000-07:00</published><updated>2009-07-05T20:59:03.105-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SEO'/><title type='text'>SEO Stater Guide</title><content type='html'>วันนี้เจอ pdf เกี่ยวกับ SEO ครับ&lt;br /&gt;มีให้แจกให้ download ถึง 40 ภาษาและแน่นอนครับมีภาษาไทยด้วยครับ&lt;br /&gt;ภายในเป็นเนื้อหาเกี่ยวกับการทำ SEO กับ Google ครับ&lt;br /&gt;&lt;br /&gt;น่าอ่านมากครับ ลอง download มาอ่านกันนะครับที่&lt;br /&gt;&lt;a href="http://www.google.co.th/intl/th/webmasters/docs/search-engine-optimization-starter-guide-th.pdf"&gt;http://www.google.co.th/intl/th/webmasters/docs/search-engine-optimization-starter-guide-th.pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-7208579169700634137?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/7208579169700634137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=7208579169700634137' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/7208579169700634137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/7208579169700634137'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/07/seo-stater-guide.html' title='SEO Stater Guide'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-910147546043446938</id><published>2009-06-25T20:15:00.000-07:00</published><updated>2009-06-25T20:32:05.441-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>IBM DB2 with pureXML</title><content type='html'>&lt;p&gt;พอดีไปเจอ demo เกี่ยวกับ IBM DB2 with pureXML น่าสนใจดีครับ &lt;/p&gt;&lt;p&gt;ทำสวยด้วย เลยเอามาแบ่งกันให้ได้ชมกัน&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;embed wmode="opaque" src="http://static.ning.com/socialnetworkmain/widgets/video/flvplayer/flvplayer.swf?v=4.4%3A23892" FlashVars="config=http%3A%2F%2Fwww.channeldb2.com%2Fvideo%2Fvideo%2FshowPlayerConfig%3Fid%3D807741%253AVideo%253A29818%26ck%3D-&amp;amp;video_smoothing=on&amp;amp;autoplay=off&amp;amp;isEmbedCode=1" width="456" height="344" bgColor="#000000" scale="noscale" allowScriptAccess="always" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt; &lt;/embed&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;ref: &lt;a href="http://download.boulder.ibm.com/ibmdl/pub/software/data/sw-library/db2/demos/purexml/index.html"&gt;http://download.boulder.ibm.com/ibmdl/pub/software/data/sw-library/db2/demos/purexml/index.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-910147546043446938?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/910147546043446938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=910147546043446938' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/910147546043446938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/910147546043446938'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/06/ibm-db2-with-purexml.html' title='IBM DB2 with pureXML'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-4959368830879834879</id><published>2009-06-11T04:03:00.000-07:00</published><updated>2009-06-11T04:10:47.554-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>DB2 LIKE predicate</title><content type='html'>&lt;div&gt;        บ่อยครั้งที่เราใช้ keyword LIKE ในการ select ข้อมูลจาก Database แบบ wildcard หลายๆคนคงคุ้นเคยกันดี แต่วันนี้ผมขอมาแนะนำการใช้งาน keyword LIKE ของ DB2 อีกครั้ง ลองดูกันนะครับว่ามีอะไรน่าสนใจบ้าง&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;div&gt;&gt;------------- LIKE ------------ pattern -----------------------------------&gt;&lt;/div&gt;&lt;div&gt;                                     |                                                          |&lt;/div&gt;&lt;div&gt;                                     ----- ESCAPE --------- pattern ----&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;โดย escape character ของ &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;LIKE &lt;/span&gt;ใน DB2 คือ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;1. &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;%&lt;/span&gt; มีค่าเท่ากับตัวอักษรอะไรก็ได้จำนวน 0 หรือมากว่า&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;2. &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;_&lt;/span&gt;  มีค่าเท่ากับตัวอักษรอะไรก็ได้จำนวน 1 ตัว&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ตัวอย่างเช่น&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;DATA    &lt;/div&gt;&lt;div&gt; ---------- &lt;/div&gt;&lt;div&gt; X    &lt;/div&gt;&lt;div&gt; XX_  &lt;/div&gt;&lt;div&gt; XXX&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 153, 0);"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;SELECT * FROM TABLE WHERE DATA LIKE 'X%'&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;        SQL statement ข้างต้นหมายความว่า จะเอา DATA ทุกตัวที่ขึ้นต้นด้วย X ขึ้นมาแสดงผล ดังนั้นผลลัพธ์จาก SQL statement นี้จะได้ เป็น&lt;span class="Apple-style-span" style="font-weight: bold;"&gt; &lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;X, XX_, XXX&lt;/span&gt;&lt;/span&gt;   &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 153, 0);"&gt;SELECT * FROM TABLE WHERE DATA LIKE 'XX%'&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;        SQL statement ข้างต้นหมายความว่า จะเอา DATA ทุกตัวที่ขึ้นต้นด้วย XX ขึ้นมาแสดงผล ดังนั้นผลลัพธ์จาก SQL statement นี้จะได้ เป็น &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;XX_, XXX&lt;/span&gt;&lt;/span&gt;   &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 153, 0);"&gt;SELECT * FROM TABLE WHERE DATA LIKE '%X'&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;        SQL statement ข้างต้นหมายความว่า จะเอา DATA ทุกตัวที่ลงท้ายด้วย X ขึ้นมาแสดงผล ดังนั้นผลลัพธ์จาก SQL statement นี้จะได้ เป็น &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;X, XXX  &lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 153, 0);"&gt;SELECT * FROM TABLE WHERE DATA LIKE 'XX_'&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;SQL statement ข้างต้นหมายความว่า จะเอา DATA ทุกตัวที่ขึ้นต้นด้วย XX และลงท้ายด้วยอะไรก็ได้ 1 ตัวขึ้นมาแสดงผล ดังนั้นผลลัพธ์จาก SQL statement นี้จะได้ เป็น &lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;XX_, XXX&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 153, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;SELECT * FROM TABLE WHERE DATA LIKE '_'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;        SQL statement ข้างต้นหมายความว่า จะเอา DATA ทุกตัวที่มีตัวอักษรอะไรก็ได้ 1 ตัวขึ้นมาแสดงผล ดังนั้นผลลัพธ์จาก SQL statement นี้จะได้ เป็น &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;X&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        มาถึงตรงนี้ถ้าเราต้องการให้ &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;XX_&lt;/span&gt;&lt;/span&gt; เท่านั้นขึ้นมาแสดงล่ะครับต้องทำไง ????&lt;/div&gt;&lt;div&gt;คำตอบคือเราต้องใช้ keyword เพิ่มเติมครับคือ &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;ESCAPE &lt;/span&gt;เนื่องจาก&lt;span class="Apple-style-span" style="font-weight: bold;"&gt; _ &lt;/span&gt;เป็น escape character ของ &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;LIKE &lt;/span&gt;ดังที่กล่าวไว้แล้วข้างต้น&lt;/div&gt;&lt;div&gt;        เอาล่ะครับ มาดูวิธีการใช้ &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;ESCAPE &lt;/span&gt;กันต่อเลย&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        การใช้นั้นไม่ยากครับ DB2 จะมองว่าอักขระทุกตัวที่อยู่เป็นคู่กับ อักขระที่ระบุไว้ใน ESCAPE เป็นอักขระที่ต้องการความหมายนั้นจริงๆ จะไม่นำไปใช้ในความหมายอื่นๆ&lt;/div&gt;&lt;div&gt;ดังตัวอย่างต่อไปนี้ครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 153, 0);"&gt;SELECT * FROM TABLE WHERE DATA LIKE 'XX+_' ESCAPE '+'&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;        หมายความว่าอักขระอะไรคู่กับเครื่องหมาย &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;+&lt;/span&gt; อักขระนั้น DB2 จะมองว่าเป็นอักขระจริงๆ ง่ายๆก็คือว่าถ้า &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;_ &lt;/span&gt;อยู่หลัง &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;+&lt;/span&gt; ก็จะถูกมองว่าเป็น &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;_ &lt;/span&gt;ไม่ใช้ ตัวอักษรอะไรก็ได้หนึ่งตัวดังนั้น ผลลัพธ์ของ SQL statement นี้ก็จะได้เป็น  &lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255); "&gt;XX_&lt;/span&gt;&lt;/span&gt; ตามที่เราต้องการ หรือเราอาจจะใช้อักขระอื่นในการทำเป็นคู่ของอักขระพิเศษก็ได้ครับ ที่เป็นแบบนี้เพราะให้เราสามารถใส่ตัวอักษรใน &lt;span class="Apple-style-span" style="font-weight: bold; "&gt;LIKE &lt;/span&gt;ได้หลากหลายขึ้น เพราะถ้า DB2 กำหนดว่าอะไรตามหลังบวกจะมองว่าเป็นอักขระจริงๆ แล้วถ้าเราต้องการ select ข้อมูลที่มี &lt;span class="Apple-style-span" style="font-weight: bold; "&gt;+&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt; &lt;/span&gt;ละต้องทำยังไง ++ ? อันนี้อาจจะทำให้ดูยาก เอาล่ะครับ นั้นหมายความว่าเราถ้าเราใช้ SQL statement ต่อไปนี้ ก็จะได้ผลลัพธ์เป็น &lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255); "&gt;XX_&lt;/span&gt;&lt;/span&gt; เหมือนกัน&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 153, 0);"&gt;SELECT * FROM TABLE WHERE DATA LIKE 'XXa_' ESCAPE 'a'&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-4959368830879834879?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/4959368830879834879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=4959368830879834879' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/4959368830879834879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/4959368830879834879'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/06/db2-like-predicate.html' title='DB2 LIKE predicate'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-4163881496836016840</id><published>2009-06-10T04:24:00.000-07:00</published><updated>2009-06-10T04:32:34.080-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>From DB2/2 to DB2 Universal Database</title><content type='html'>&lt;div&gt;        DB2 มีชื่ออย่างเป็นทางการว่า DATABASE 2 เกิดขึ้นบน MVS (Multiple Virtual Storage) บนเครื่อง Mainframe ของ IBM เมื่อปี ค.ศ. 1983  และถูกนำมาใช้บน Personal Computer เพื่อเป็น Database Manager บน OS/2 1.3 Extended Edition และในปีถัดมาก็อยู่ในรูปของ SQL/400 สำหรับ AS/400 server&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        ตั้งแต่ปี 1992 DB2 ถูกใช้งานเป็นแบบ stand-alone บน OS/2 ซึ่งในขณะนั้นเรียกว่า DB2/2&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        ต่อมาในปี 1993 - DB2 ได้ถูกปรับปรุงให้ใช้งานได้บนระบบปฎิบัติการ AIX (Advanced Interactive eXecutive) ได้จึงมีการเปลี่ยนชื่อจาก DB2/2 มาเป็น DB2 for Common Servers แทน&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        ในปี 1994 - DB2 ได้ออก New Editions ที่สามารถทำงานได้บน HP-UX และ Solaris &lt;/div&gt;&lt;div&gt;        ในปี 1995 - DB2 ถูกปรับปรุงให้ใช้งานได้บน Windows&lt;/div&gt;&lt;div&gt;        และปี 1999 - DB2 ก็สามารถใช้งานได้บน Linux เมื่อ DB2 สามารถใช้งานได้บนระบบปฎิบัติการที่หลากหลายแทบครบทุกชนิดจึงมีการเปลี่ยนชื่อจาก DB2 for Common Servers มาเป็น DB2 Universal Database ตั้งแต่ตอนนั้น&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-4163881496836016840?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/4163881496836016840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=4163881496836016840' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/4163881496836016840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/4163881496836016840'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/06/from-os22-to-db2-universal-database.html' title='From DB2/2 to DB2 Universal Database'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-935203611891152138</id><published>2009-06-08T08:14:00.000-07:00</published><updated>2009-06-08T09:21:38.638-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><title type='text'>Drupal: can not login when site status is offline.</title><content type='html'>&lt;div&gt;งงกับ drupal มากครับ&lt;/div&gt;&lt;div&gt;วันนี้ผมเปลี่ยน Site Status เป็น offline แล้ว logout&lt;/div&gt;&lt;div&gt;โอ้ววว กลับมาอีกทีเข้าไม่ได้ ไม่มี menu ให้ login&lt;/div&gt;&lt;div&gt;ทำไงดีละเนี๊ยะ คงไม่ต้องเข้าที่ update flag ที่ database นะ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;วิธีง่ายๆครับ ลองเข้า URL นี้ดู ก็จะพบว่ามีหน้าให้เรา login ขึ้นมาทันที&lt;/div&gt;&lt;div&gt;http://hostname/?q=user&lt;/div&gt;&lt;div&gt;เห้อ รอดตัวไป&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-935203611891152138?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/935203611891152138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=935203611891152138' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/935203611891152138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/935203611891152138'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/06/drupal-can-not-login-when-site-status.html' title='Drupal: can not login when site status is offline.'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-2153322473023311975</id><published>2009-05-31T10:58:00.000-07:00</published><updated>2009-05-31T11:02:13.568-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>DB2 9.7 Overview</title><content type='html'>เปิดตัวมาได้สักสองสามเดือนแล้วครับ สำหรับ IBM DB2 9.7 ความสามารถจะแตกต่างจาก DB2 9.5 และ DB2 9.1 มากน้้อยขนาดไหน ลองไปดูกันครับ&lt;br /&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/fuangwith/db2-97-overview?type=presentation" title="DB2 9.7 Overview"&gt;DB2 9.7 Overview&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=db2-9-7-090531124042-phpapp02&amp;amp;stripped_title=db2-97-overview"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=db2-9-7-090531124042-phpapp02&amp;amp;stripped_title=db2-97-overview" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;Microsoft Word documents&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/fuangwith"&gt;fuangwith&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;ref: &lt;a href="http://www-01.ibm.com/software/data/db2/9/labchats.html"&gt;http://www-01.ibm.com/software/data/db2/9/labchats.html&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-2153322473023311975?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/2153322473023311975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=2153322473023311975' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/2153322473023311975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/2153322473023311975'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/05/db2-97-overview.html' title='DB2 9.7 Overview'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-9109089371303732634</id><published>2009-05-23T01:04:00.000-07:00</published><updated>2009-05-23T01:05:35.038-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>When we should use ISOLATION (UR) ?</title><content type='html'>&lt;div&gt;การใช้ ISOLATION แบบ UR (Uncommitted Read) นั้นช่วยให้เราอ่านข้อมูลขึ้นมาจากฐานข้อมูลโดยไม่ต้อง&lt;/div&gt;&lt;div&gt;รอให้มีการ commit transaction ของ transaction ก่อนหน้า ช่วย sql statement ของเราที่มีการใช้ WITH UR&lt;/div&gt;&lt;div&gt;สามารถ retreive ข้อมูลขณะนั้นออกมาได้โดยไม่ต้องเสียเวลารอการ commit จาก transaction ก่อนหน้าและยังช่วย&lt;/div&gt;&lt;div&gt;ลดเปอร์เซ็นต์ในการ lock ภายในระบบลงได้ การนำไปใช้งานทั่วไปมักใช้ในการ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. แสดงข้อมูลแบบ real time&lt;/div&gt;&lt;div&gt;2. หลีกเลี่ยงการรอข้อมูลที่มีการ lock เพื่อ update ข้อมูล&lt;/div&gt;&lt;div&gt;3. ใช้ในการทำ data  warehouse เพราะการทำ data warehouse โดยธรรมชาติแล้วเป็นการอ่านข้อมูลอย่างเดียว&lt;/div&gt;&lt;div&gt;4. ใช้กับข้อมูลที่ไม่อ่อนไหว (sensitive)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;แต่ในข้อดีก็มีข้อเสีย ในบางกรณีนั้นเรามีความจำเป็นที่จะต้องรอให้ transaction ก่อนหน้าทำการ commit ก่อนเช่น&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. เมื่อการคำนวนต่างๆในระบบจำเป็นต้องมีความเท่ากันของตัวเลขในสมการ กล่าวคือถ้าเราใช้การอ่านแบบ WITH UR&lt;/div&gt;&lt;div&gt;ในการอ่านข้อมูลจากฐานข้อมูลขึ้นมาคำนวน จะมีความเป็นไปได้ว่าค่าที่เรานำไปใช้ในการคำนวนอาจไม่ใช้ค่าที่ถูกต้อง&lt;/div&gt;&lt;div&gt;กรณีนี้ ยกตัวอย่าง การกดเงินผ่าน ATM ถ้าเราไม่รอให้ transaction ก่อนหน้า commit ก่อน ก็มีความเป็นไปได้ว่า&lt;/div&gt;&lt;div&gt;ระบบจะอนุญาติให้ผู้ใช้สามารถกดเงินได้มากกว่าที่เป็นจริง&lt;/div&gt;&lt;div&gt;2. เมื่อระบบต้องการความถูกต้องของข้อมูล เช่น จำนวนเงิน, รายการสินค้าที่คงเหลือใน stock เมื่อถึงเวลาปิด stokc และอื่นๆอีกมากมาย&lt;/div&gt;&lt;div&gt;3. เมื่อเราไม่มั่นใจก็พยายามหลีกเลี่ยง เพราะการใช้ WITH UR นี้อาจจะก่อนให้เกิดความเสียหายของข้อมูลได้&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-9109089371303732634?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/9109089371303732634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=9109089371303732634' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/9109089371303732634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/9109089371303732634'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/05/when-we-should-use-isolation-ur.html' title='When we should use ISOLATION (UR) ?'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-5994284217084256471</id><published>2009-05-04T08:18:00.000-07:00</published><updated>2009-05-04T08:25:03.770-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><title type='text'>How to split for read more in Drupal</title><content type='html'>ในการ post ข้อบทความลงใน drupal นั้น ปกติแล้ว&lt;div&gt;ระบบจะตัดส่วนที่เกินเป็น read more ให้เราเองโดยอัตโนมัติ&lt;/div&gt;&lt;div&gt;ตามที่เราได้กำหนดค่าจำนวนตัวอักษรไว้ &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;แต่ถ้าเราอยากบังคับแบ่งไปเป็นส่วน read more เองเพื่อให้ได้&lt;/div&gt;&lt;div&gt;ใจความและความสวยงามเราจะำได้ไหม &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;คำตอบคือได้ โดยใช้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt; ! - - b r e a k - - &gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Helvetica; font-weight: normal; line-height: 19px; white-space: pre-wrap; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Helvetica; line-height: 19px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Helvetica; font-weight: normal; line-height: 19px; white-space: pre-wrap; "&gt;ในการแบ่งครับ&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-5994284217084256471?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/5994284217084256471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=5994284217084256471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5994284217084256471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/5994284217084256471'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/05/how-to-split-for-read-more-in-drupal.html' title='How to split for read more in Drupal'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-2063440895950062222</id><published>2009-05-03T02:14:00.000-07:00</published><updated>2009-05-03T02:22:30.899-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Why real harddisk capacity not equal the harddisk capacity beside the box</title><content type='html'>&lt;div&gt;วันนี้ผมซื้อ External Harddisk ของ Buffalo -- Slim design Lightweight มาใหม่&lt;/div&gt;&lt;div&gt;สีดำสวยงาม (Crystal Black) ข้างกล่องติด sticker ไว้ว่า 320GB USB2.0 &lt;/div&gt;&lt;div&gt;พอเสียบเข้ากับ Computer สิ่งแรกที่ผมทำคือดูพื้นที่ของ HDD ก่อนว่ามีให้ใช้จริงอยู่เท่าไหร่&lt;/div&gt;&lt;div&gt;เพราะเป็นปกติที่ค่าความจุที่ติดอยู่ข้างกล่องจะไม่เท่ากับค่าความจุจริงที่ Windows อ่านได้&lt;/div&gt;&lt;div&gt;สิ่งที่ผมคือผมมีพื้นที่ให้ใช้จัดเก็บข้อมูลเพียงแค่ 298.02 GB เท่านั้น โหหายไปตั้ง 21.98 GB&lt;/div&gt;&lt;div&gt;เยอะมากๆเลยใช่มั้ยครับ สงสัยกันหรือไม่ครับว่าทำไมถึงเช่นนั้น&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ความจริงมีอยู่ว่า บริษัทผู้ผลิต Hard disk นั้นได้เขียนตัวที่ติดไว้ข้างกล่องโดยขนาดความจุที่เขียนเป็นเลขฐานสิบ&lt;/div&gt;&lt;div&gt;แต่ Windows ของเรานั้นอ่านค่าความจุออกมาเป็นเลขฐานสองครับ ถึงตรงนี้หลายคนคงยังไม่ถึงบ้างอ้อ&lt;/div&gt;&lt;div&gt;เอาง่ายลองมาดูตัวอย่างกันครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ฐานสิบ       &lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;1000 = 1 K, 1000 K = 1 M, 1000 M = 1 G&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;ดังนั้น         &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;1 G = 1000^3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;ฐานสอง     &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;1024 = 1 K, 1024 K = 1 M, 1024 M = 1G&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;ดังนั้น         &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;1 G = 1024 ^3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;เลขข้างกล่อง HDD ของผม =   &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;320 GB &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;                                              =&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt; 320,000,000,000 Bytes&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;แปลงเป็น GB ฐานสิบ&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;      =  &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;320,000,000,000 / (1000^3) GB  = 320       GB&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;แปลงเป็น GB ฐานสอง&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;      =  &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; "&gt;320,000,000,000 &lt;/span&gt;/   (1024^3)   GB    = 298.023224  GB&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;จากการเปรียบเทียบข้างต้นทำให้เราพอประมาณการณ์ได้ว่า&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;ถ้ายิ่งเลขที่ติดอยู่ข้างกล่องยิ่งสูงขึ้นเท่าไหร่ ความแตกต่างระหว่างความจุจริงกับความจุข้างยิ่งมากขึ้นเท่านั้น&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-2063440895950062222?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/2063440895950062222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=2063440895950062222' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/2063440895950062222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/2063440895950062222'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/05/why-real-harddisk-capacity-not-equal.html' title='Why real harddisk capacity not equal the harddisk capacity beside the box'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-3411364551530706782</id><published>2009-04-24T09:38:00.000-07:00</published><updated>2009-04-24T09:43:00.693-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>Got error "38H01;DB2MQ.MQSEND|MQSND1CLOB|rc=1:amSesCreateSe" when DB2 trigger send message to MQ</title><content type='html'>&lt;div&gt;หลังจากทดลองใช้ข้อมูลไปยัง MQ ผ่านทาง DB2MQ.MQSEND and etc. ไปแล้ว&lt;/div&gt;&lt;div&gt;ผมก็ได้ทดลองนำไป implement เข้ากับ trigger แต่ผลที่ได้ ตกใจเลยครับ ซวยละมัน error&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;DB2 SQL error: SQLCODE: -723, SQLSTATE: 09000, SQLERRMC: COMMON.TGT_EPAPP;-&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;443;38H01;DB2MQ.MQSEND|MQSND1CLOB|rc=1:amSesCreateSe&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt; Message: An error occurred in a triggered SQL statement in trigger "COMMON.TGT_EPAPP".  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;Information returned for the error includes SQLCODE "-443", SQLSTATE "38H01" and message &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;tokens "DB2MQ.MQSEND|MQSND1CLOB|rc=1:amSesCreateSe". &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;เกิดอะไรขึ้นเนี๊ยะ error  SQL-443 เนี๊ยะก็มีหลาย reason ด้วย งงเลยครับ&lt;/div&gt;&lt;div&gt;แล้ว SQLSTATE 38H01 เนี๊ยะไม่เคยเห็นมาก่อนเลย หาไปหามาก็ได้คำตอบว่า&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;38H01&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;An MQSeries® function failed to initialize.&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ครับโดยอ้างอิงจาก  &lt;a href="http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp? topic=/com.ibm.db29.doc.codes/db2z_sqlstatevalues.htm"&gt;นี้&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;อ้าวแล้วทำไมอยู่ดีๆมันถึง initial ไม่ได้ละงงล่ะสิครับ ทดลองสร้าง table ขึ้นมาเอง แล้วรัน&lt;/div&gt;&lt;div&gt;ก็ทำได้แฮะ  งั้นเราลองรัน command ผ่าน font end เพื่อให้ trigger ทำงานดีกว่า&lt;/div&gt;&lt;div&gt;อาวว ก็ทำงานได้นี่ แล้วทำไม พอรันผ่าน WebSphere Application Server ไม่ได้เนี๊ยะ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;คิดไปคิดมา มีสิ่งเดียวที่แตกต่าง นั้นก็คือ USER ที่เข้าใช้งาน DB2 นั้นเอง&lt;/div&gt;&lt;div&gt;ผมเลยทดลองใช้ font-end login เข้าด้วย user เดียวกับที่ set ไว้ใน connection pool&lt;/div&gt;&lt;div&gt;ผลก็คือได้ error&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;SQLCODE "-443", SQLSTATE "38H01" and message tokens &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;"DB2MQ.MQSEND|MQSND1CLOB|rc=1:amSesCreateSe&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;เหมือนกันเลยครับ แบบนี้ต้องเกี่ยวกับ permission แน่เลย&lt;/div&gt;&lt;div&gt;เมื่อทดลองใช้ command grant สิทธิสำหรับ select ให้กับ user ใน connection pool&lt;/div&gt;&lt;div&gt;ดังนี้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;CONNECT TO CHANDB;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;GRANT  SELECT ON TABLE DB2MQ.MQHOST TO USER POOLUSER;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;GRANT  SELECT ON TABLE DB2MQ.MQPOLICY TO USER POOLUSER;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;GRANT  SELECT ON TABLE DB2MQ.MQPUBSUB TO USER POOLUSER;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;GRANT  SELECT ON TABLE DB2MQ.MQSERVICE TO USER POOLUSER;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;GRANT  SELECT ON TABLE DB2MQ.MQUPDATED TO USER POOLUSER;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;CONNECT RESET;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;แล้วทดลองอีกครั้ง โอ้ววว ทำงานได้ปกติแล้ว&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;เรื่องนี้สอนให้รู้ว่า error code ไม่ได้ช่วยอะไรเราเลย &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-3411364551530706782?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/3411364551530706782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=3411364551530706782' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3411364551530706782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3411364551530706782'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/04/got-error-38h01db2mqmqsendmqsnd1clobrc1.html' title='Got error &quot;38H01;DB2MQ.MQSEND|MQSND1CLOB|rc=1:amSesCreateSe&quot; when DB2 trigger send message to MQ'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-7572830250003125590</id><published>2009-04-22T01:15:00.000-07:00</published><updated>2009-04-22T02:47:32.512-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>Setting up DB2 WebSphere MQ functions</title><content type='html'>&lt;div&gt;วันนี้ขอนำเสนอวิธีการทำให้ IBM DB2 สามารถติดต่อ รับส่ง ข้อมูลผ่านทาง IBM Websphere MQ ได้&lt;/div&gt;&lt;div&gt;ดังนี้ครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. ตรวจสอบว่า SQLLIB\BIN ในกรณีที่เป็น Windows platform ว่ามี &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;db2qgmq.dll&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;db2mqsw.dll &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;     อยู่หรือไม่&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2.  จากนั้น download Application Message Interface (AMI) จาก &lt;a href="http://www-01.ibm.com/support/docview.wss?rs=171&amp;amp;uid=swg24000641&amp;amp;loc=en_US&amp;amp;cs=utf- 8&amp;amp;lang=en"&gt;ที่นี้&lt;/a&gt; &lt;/div&gt;&lt;div&gt;      แล้วเลือกโหลดตาม platform ของ DB2 ครับเช่น Windows ก็ใช้ &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;ma0f_nt.zip&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. เพิ่มตัวแปร &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;AMT_DATA_PATH &lt;/span&gt;ซึ่งเป็น DB2 environment variable ที่ถูกใช้โดย DB2 UDB เพื่อให้แน่ใจว่า&lt;/div&gt;&lt;div&gt;MQ UDF จะถูก execute ถูกที่&lt;/div&gt;&lt;div&gt;     โดยการเพิ่มตัวแปรนี้จะเข้าไปเพิ่มใน %DB2PATH%\profile.env หรือใช้ command&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;     DB2SET DB2ENVLIST="AMT_DATA_PATH"&lt;/span&gt;&lt;/span&gt; &lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;     แบบนี้ก็ได้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. restart DB2 instance ด้วยคำสั่ง&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153); font-family: 'courier new';"&gt;DB2STOP&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;DB2START &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;    เพื่อให้ตัวแปร take effect&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. เสร็จแล้วรัน script สำหรับสร้าง DB2MQ schema ดังนี้&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;DB2 CONNECT TO UATDB&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;CD C:\Program Files\IBM\SQLLIB\cfg\mq&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;DB2 -tvf amtsetup.sql&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6. หลังจากนั้นเราจะใช้คำสั่ง &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;enable_MQFunctions &lt;/span&gt;ของ DB2 ในการสร้าง Queue Manager ใน &lt;/div&gt;&lt;div&gt;Websphere MQ โดยโครงสร้างของ enable_MQFunctions เป็นดังนี้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;============================================================&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;Usage: enable_MQFunctions -n dbName -u uID -p password&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;                    [-q queuemanager] [-v 0pc|1pc|2pc|all]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;                    [-novalidate] [-echo] [-force]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;============================================================&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;ref: &lt;/span&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp? topic=/com.ibm.db2.udb.admin.doc/doc/r0010964.htm"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp? topic=/com.ibm.db2.udb.admin.doc/doc/r0010964.htm"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp? topic=/com.ibm.db2.udb.admin.doc/doc/r0010964.htm"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;topic=/com.ibm.db2.udb.admin.doc/doc/r0010964.htm&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;จากนั้นรันคำสั่งต่อไ ปนี้บน DB2 CONSOLE (DB2CMD)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;enable_MQFunctions -n CHANDB -u ADMIN -p PAssword&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;จะไำด้ผลลัพธ์ดังนี้&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;C:\Program Files\IBM\SQLLIB\cfg\mq&gt;enable_MQFunctions -n CHANDB -u ADMIN -p PAssword&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;  *** Please wait: creating queue manager (DB2MQ_DEFAULT_MQM) ......&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;  *** Please wait: starting the queue manager (DB2MQ_DEFAULT_MQM) ......&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;   (68) MQ UDFs of the selected version or schema were found.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;  MQSeries functions already exist ...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;  *** Please allow a few seconds to clean up the system ......&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;C:\Program Files\IBM\SQLLIB\cfg\mq&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;7. จากนั้นทดลองส่งข้อความและอ่านข้อความจาก MQ ดังนี้&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;VALUES DB2MQ.MQSEND('SAWASDEE MQ') &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;VALUES DB2MQ.MQRECEIVE() &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;อ้างอิงจาก&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;1.&lt;/span&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp? topic=/com.ibm.swg.im.iis.db.found.appdev.fed.mq.doc/topics/tiimqins.html"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; [Installing and using the DB2 WebSphere MQ functions] &lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;2. [&lt;/span&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Installing DB2 WebSphere MQ functions&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;] &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;3. [&lt;/span&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp? topic=/com.ibm.db2.udb.doc/core/r0010964.htmtopic=/com.ibm.db2.ii.doc/ad/tiimqins.htm"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Setting up DB2 WebSphere MQ functions&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;] &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;4. [&lt;/span&gt;&lt;a href="http://www.ibm.com/developerworks/data/library/techarticle/wolfson/0108wolfson.html"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Using MQSeries from DB2 Applications&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;] &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-7572830250003125590?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/7572830250003125590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=7572830250003125590' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/7572830250003125590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/7572830250003125590'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/04/setting-up-db2-websphere-mq-functions.html' title='Setting up DB2 WebSphere MQ functions'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-7187571802136512755</id><published>2009-04-21T10:51:00.000-07:00</published><updated>2009-04-21T10:53:46.192-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>Test 000-730: DB2 9 Family Fundamentals</title><content type='html'>&lt;div style="margin-left: 0.09in;"&gt;&lt;span&gt;ห้อข้อที่ใช้สอบใน 000-730: DB2 9 Family Fundamentals&lt;br /&gt;&lt;br /&gt;This Database Associate is an entry level DBA or a user of any of the DB2 family of products. This individual is knowledgeable about the fundamental concepts of DB2 9 through either hands on experience or formal and informal education. The database associate should have an in-depth knowledge of the basic to intermediate tasks required in day-to-day administration, basic SQL (Structured Query Language), understand how DB2 9 is packaged and installed, understand how to create databases and database objects, and have a basic knowledge of database security and transaction isolation.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;Section 1 - Planning (14%)&lt;/b&gt;&lt;/p&gt;&lt;ol type="a"&gt;&lt;li&gt;Knowledge of restricting data access&lt;/li&gt;&lt;li&gt;Knowledge of the features or functions available in DB2 tools (just tools that come with product - distributed +space - i.e., control center, configuration advisor, configuration assistant, command line processor) &lt;/li&gt;&lt;li&gt;Knowledge database workloads (OLTP vs warehousing) &lt;/li&gt;&lt;li&gt;Knowledge of non-relational data concepts (extenders) &lt;/li&gt;&lt;li&gt;Knowledge of XML data implications (non-shreading)&lt;/li&gt;&lt;/ol&gt;&lt;!--first level indent close--&gt;&lt;p&gt;&lt;b&gt;Section 2 - Security (11%)&lt;/b&gt;&lt;/p&gt;&lt;ol type="a"&gt;&lt;li&gt;Knowledge of DB2 products (client, server, etc.) &lt;/li&gt;&lt;li&gt;Knowledge of different privileges and authorities &lt;/li&gt;&lt;li&gt;Knowledge of encryption options (data and network) &lt;/li&gt;&lt;li&gt;Given a DDL SQL statement, knowledge to identify results (grant/revoke/connect statements)&lt;/li&gt;&lt;/ol&gt;&lt;!--first level indent close--&gt;&lt;p&gt;&lt;b&gt;Section 3 - Working with Databases and Database Objects (17%)&lt;/b&gt;&lt;/p&gt;&lt;ol type="a"&gt;&lt;li&gt;Ability to identify and connect to DB2 servers and databases &lt;/li&gt;&lt;li&gt;Ability to identify DB2 objects &lt;/li&gt;&lt;li&gt;Knowledge of basic characteristics and properties of DB2 objects &lt;/li&gt;&lt;li&gt;Given a DDL SQL statement, knowledge to identify results (ability to create objects)&lt;/li&gt;&lt;/ol&gt;&lt;!--first level indent close--&gt;&lt;p&gt;&lt;b&gt;Section 4 - Working with DB2 Data using SQL (23.5%)&lt;/b&gt;&lt;/p&gt;&lt;ol type="a"&gt;&lt;li&gt;Given a DML SQL statement, knowledge to identify results&lt;/li&gt;&lt;li&gt;Ability to use SQL to SELECT data from tables &lt;/li&gt;&lt;li&gt;Ability to use SQL to SORT or GROUP data &lt;/li&gt;&lt;li&gt;Ability to use SQL to UPDATE, DELETE, or INSERT data &lt;/li&gt;&lt;li&gt;Knowledge of transactions (i.e., commit/rollback and transaction boundaries) &lt;/li&gt;&lt;li&gt;Ability to call a procedure or invoke a user defined function &lt;/li&gt;&lt;li&gt;Given an XQuery statement, knowledge to identify results&lt;/li&gt;&lt;/ol&gt;&lt;!--first level indent close--&gt;&lt;p&gt;&lt;b&gt;Section 5 - Working with DB2 Tables, Views and Indexes (23.5%)&lt;/b&gt;&lt;/p&gt;&lt;ol type="a"&gt;&lt;li&gt;Ability to demonstrate usage of DB2 data types &lt;/li&gt;&lt;li&gt;Given a situation, ability to create table &lt;/li&gt;&lt;li&gt;Knowledge to identify when referential integrity should be used &lt;/li&gt;&lt;li&gt;Knowledge to identify methods of data constraint &lt;/li&gt;&lt;li&gt;Knowledge to identify characteristics of a table, view or index &lt;/li&gt;&lt;li&gt;Knowledge to identify when triggers should be used &lt;/li&gt;&lt;li&gt;Knowledge of schemas &lt;/li&gt;&lt;li&gt;Knowledge of data type options for storing XML data&lt;/li&gt;&lt;/ol&gt;&lt;!--first level indent close--&gt;&lt;p&gt;&lt;b&gt;Section 6 - Data Concurrency  (11%)&lt;/b&gt;&lt;/p&gt;&lt;ol type="a"&gt;&lt;li&gt;Knowledge to identify factors that influence locking &lt;/li&gt;&lt;li&gt;Ability to list objects on which locks can be obtained &lt;/li&gt;&lt;li&gt;Knowledge to identify characteristics of DB2 locks &lt;/li&gt;&lt;li&gt;Given a situation, knowledge to identify the isolation levels that should be used&lt;/li&gt;&lt;/ol&gt;อ้างอิงจาก: http://www-03.ibm.com/certify/tests/obj730.shtml&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-7187571802136512755?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/7187571802136512755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=7187571802136512755' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/7187571802136512755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/7187571802136512755'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/04/test-000-730-db2-9-family-fundamentals.html' title='Test 000-730: DB2 9 Family Fundamentals'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-9138176970372540601</id><published>2009-04-17T04:09:00.000-07:00</published><updated>2009-04-17T04:10:23.944-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Ms. Access "Syntax error in field definition"</title><content type='html'>&lt;div&gt;ปกติใช้แต่ DB2, Oracle หรือไม่ก็ Ms.SQL&lt;/div&gt;&lt;div&gt;วันนี้ผมเลยลองเขียน code ด้วย C#.NET ต่อกับ Ms.Access &lt;/div&gt;&lt;div&gt;ผ่าน OleDb ครับ แล้วลอง create database ด้วย command ต่อไปนี้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;create table tb_chan (first varchar(1),last varchar(2))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;แต่ปรากฎว่าขึ้น error &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;"Syntax error in field definition"&lt;/span&gt; เฉยเลยครับ&lt;/div&gt;&lt;div&gt;ทั้งๆที่ command นี้รันบน Ms.Access ในส่วนของ SQL View ได้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ที่แท้เป็นเพราะว่า first และ last ตรงกับ keyword ของ Ms.Access นั้นเอง&lt;/div&gt;&lt;div&gt;เราจึงต้องเขียนเป็น &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;create table tb_chan ([first] varchar(1),[last] varchar(2))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;แทน ก็จะได้ครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;เห้อเล่น error มาแค่นี้ใครจะรู้ครับเนี๊ยะ &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-9138176970372540601?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/9138176970372540601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=9138176970372540601' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/9138176970372540601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/9138176970372540601'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/04/ms-access-syntax-error-in-field.html' title='Ms. Access &quot;Syntax error in field definition&quot;'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-1870163455016091098</id><published>2009-04-11T00:21:00.000-07:00</published><updated>2009-04-11T00:31:04.216-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>DB2 Certification roadmap</title><content type='html'>ที่่ผ่านมาก็ดูแต่ certification roadmap ของ JAVA วันนี้เลยอยากรู้ว่า IBM DB2 เป็นอย่างไร&lt;br /&gt;โดยทั่วไปแล้วก็เหมือนกับ JAVA ครับคือมี 3 Level โดยต้องผ่าน fundamental เพื่อให้เข้าใจพื้นฐานการทำงานโดยทั่วไปของเค้าก่อน เมื่อได้ดูจากรูปข้างล่างคิดว่าคงอธิบายได้เข้าใจง่ายกว่าครับ&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.ibm.com/developerworks/data/library/techarticle/dm-0401fosdick/image001.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 571px; height: 364px;" src="http://www.ibm.com/developerworks/data/library/techarticle/dm-0401fosdick/image001.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;ref: &lt;a href="http://www.ibm.com/developerworks/data/library/techarticle/dm-0401fosdick/"&gt;http://www.ibm.com/developerworks/data/library/techarticle/dm-0401fosdick/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:Tahoma;font-size:85%;"&gt;&lt;span lang="th"&gt;&lt;br /&gt;ข้อสอบ &lt;/span&gt;Test 730 DB2 9 Family Fundamentals&lt;br /&gt;&lt;span lang="th"&gt;จำนวนข้อสอบ &lt;/span&gt;64 &lt;span lang="th"&gt;ข้อ &lt;/span&gt;90 &lt;span lang="th"&gt;นาที&lt;/span&gt;&lt;br /&gt;&lt;span lang="th"&gt;จำนวนคะแนนที่สอบผ่าน &lt;/span&gt;59%&lt;br /&gt;&lt;span lang="th"&gt;ราคา &lt;/span&gt;2,254 &lt;span lang="th"&gt;บาท (ไม่รวม&lt;/span&gt; VAT)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;ref: &lt;a href="http://www.ccp.or.th/SOA/Pages/Cert.aspx"&gt;http://www.ccp.or.th/SOA/Pages/Cert.aspx&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-1870163455016091098?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/1870163455016091098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=1870163455016091098' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1870163455016091098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1870163455016091098'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/04/db2-certification-roadmap.html' title='DB2 Certification roadmap'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-3705418307682903028</id><published>2009-04-03T11:49:00.000-07:00</published><updated>2009-04-03T11:53:28.678-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>How to find out the SQL statements causing deadlock?</title><content type='html'>เมื่อพูดถึงเรื่อง dead lock หลายคนคงถอนหายใจเพราะเคยเจอกันมาบ้างไม่มากก็น้อย&lt;br /&gt;ปัจจัยที่ทำให้เกิด dead lock ไม่ว่าจะบน client, server, windows app, web หรือแม้กระทั่ง database นั้น&lt;br /&gt;ล้วนเกิดจากการที่ชุดคำสั่งตั้งแต่สองชุดขึ้นไปใช้ทรัพยากรณ์ในระบบร่วมกันโดยขาดการควบคุมที่ดี จึงก่อให้เกิด&lt;br /&gt;การรอกันเพื่อใช้งานทรัพยากร์ สามารถดูตัวอย่างการเกิด deadlock ได้ที่ &lt;a href="http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.admin.doc/doc/c0005419.htm"&gt;&lt;/a&gt;&lt;a&gt;นี้&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;แล้วเราจะหาต้นตอของการทำให้เกิด dead lock ในระบบของเราได้อย่างไรกันล่ะ  ยิ่งถ้าเกิดกับระบบที่มีความซับซ้อนแล้วล่ะก็&lt;br /&gt;ลำพังแต่นั่งพิจารณา ตรวจสอบ code และ business เพียงอย่างเดียวคงเหมือนกับการงมเข็มในมหาสมุทร&lt;br /&gt;&lt;br /&gt;วันนี้ผมเลยขอนำเสนอ การหาสาเหตุที่แท้จริงของการทำให้เกิด dead lock บนฐานข้อมูล DB2 ครับ&lt;br /&gt;สำหรับใน DB2 นั้นเมื่อเราสร้าง database ขึ้นมา deadlock event monitor ที่ชื่อว่า &lt;span style="font-weight: bold;"&gt;DB2DETAILDEADLOCK&lt;/span&gt;&lt;br /&gt;ก็จะถูกสร้างขึ้นมาด้วยอยู่แล้วครับ เราสามารถสั่ง stop/start ได้ด้วยคำสั่ง&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;db2 set event monitor db2detaildeadlock state 0&lt;/span&gt;&lt;br /&gt;ในกรณีที่ต้องการ stop db2detaildeadlock event monitor&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;db2 set event monitor db2detaildeadlock state 1&lt;/span&gt;&lt;br /&gt;ในกรณีที่ต้องการ start db2detaildeadlock eventmonitor&lt;br /&gt;&lt;br /&gt;แต่ในที่นี้ผมขอแนะนำให้ทำการ create dead lock event monitor ของเราเองขึ้นมาดีกว่าครับ&lt;br /&gt;เนื่องจากรายละเอียดที่ได้จาก DB2DETAILDEADLOCK นั้นยังไม่เพียงพอต่อความต้องการ(ของผม)&lt;br /&gt;เริ่มจาก&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;CREATE EVENT MONITOR DEADLOCKMON FOR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;DEADLOCKS WITH DETAILS HISTORY VALUES&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;WRITE TO TABLE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ซึ่งสามารถดู syntax ได้จาก &lt;a href="http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?%20topic=/com.ibm.db2.luw.sql.ref.doc/doc/r0000915.html"&gt;นี้&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;เมื่อสร้าง deadlock event monitor ด้วยคำสั่งตามข้างบนแล้ว db2 จะสร้าง table ดังต่อไปนี้ขึ้นมาให้เรา&lt;br /&gt;โดยอัตโนมัติบน schema ที่ตรงตามกับ user ที่รันคำสั่งนี้&lt;br /&gt;&lt;br /&gt;1. CONNHEADER_DEADLOCKMON - จะเก็บข้อมูลของ connection ที่ connect เข้ามาครับ&lt;br /&gt;2. DEADLOCK_DEADLOCKMON - เก็บรายการ deadlock พร้อมทั้ง statement สุดท้ายที่ทำให้เกิด deadlock&lt;br /&gt;3. DLCONN__DEADLOCKMON - เก็บรายการ deadlock โดยอ้างอิงตาม application ที่เกี่ยวข้องกับการกิด deadlock&lt;br /&gt;4. DLLOCK_DEADLOCKMON -  เก็บรายการ lock ทั้งหมดที่เกี่ยวข้องกับการเกิด deadlock&lt;br /&gt;5. STMTHIST_DEADLOCKMON - เก็บรายการ sql statement ทั้งหมดของแต่ละการทำงานของแต่ละ application&lt;br /&gt;6. STMTVALS_DEADLOCKMON - เก็บ input parameter ของ statement ในข้อ 5&lt;br /&gt;&lt;br /&gt;ซึ่งหากใช้คำสั่งแตกต่างไปจากนี้สามารถอ่านละเอียดเพิ่มเติมของแต่ละ table ได้ที่&lt;br /&gt;&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/admin/c0006121.htm"&gt;http://publib.boulder.ibm.com/infocenter/db2...&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ที่ผมเลือกที่จะใช้วิธีให้ db2 เขียนข้อมูลเกี่ยวกับ deadlock ลง table ก็เพราะให้ง่ายในการค้นหาและปรับเปลี่ยนมุมมองครับ&lt;br /&gt;&lt;br /&gt;หลังจากที่เราสร้าง DEADLOCKMON สำหรับเป็น deadlock event monitor เป็นที่เรียบร้อยแล้วขึ้นตอนต่อมาก็&lt;br /&gt;ให้ไปเปิดให้ Heath Monitor ของ db2 ทำงานครับและกำหนดค่าให้กับ Health Monitor ว่าถ้าเกิด deadlock ก็ให้ส่ง mail มาบอกเราครับ&lt;br /&gt;เพื่อที่จะได้ตรวจสอบ แก้ไข และเก็บข้อมูลได้ทันถ่วงทีครับ เสร็จแล้วเราก็เริ่ม start &lt;span style="font-weight: bold;"&gt;DEADLOCKMON&lt;/span&gt; ได้เลยครับ&lt;br /&gt;หลังจากนั้นก็รอรับ mail อย่างเดียว&lt;br /&gt;&lt;br /&gt;เมื่อได้รับ mail ว่าเกิด deadlock แล้วเราก็จัดการเปิด db2 font end ขึ้นมาเลยครับและรัน sql statement ดังต่อไปนี้&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;SELECT &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;    *&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;FROM &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;    ADMINISTRATOR.DEADLOCK_DEADLOCKMON&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;เพื่อแสดงรายการ deadlock ทั้งหมดที่เกิดขึ้น&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;SELECT &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;    AGENT_ID,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;    APPL_ID,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;    APPL_ID_HOLDING_LK,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;    DEADLOCK_ID,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;    START_TIME,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;    STMT_TEXT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;FROM &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;    ADMINISTRATOR.DLCONN_DEADLOCKMON&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;ORDER BY&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;    START_TIME&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;เพื่อ list ออกมาดูว่ามี application ไหนที่ทำให้เกิด deadlock ครับ แนะนำว่าให้ลองพยายามสังเกตุ &lt;span style="font-weight: bold;"&gt;APPL_ID&lt;/span&gt; กับ&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;APPL_ID_HOLDING_LK&lt;/span&gt; ของแต่ละ deadlock id ให้ดีครับ&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;SELECT &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;    DEADLOCK_ID,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;    PARTICIPANT_NO,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;    STMT_FIRST_USE_TIME,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;    STMT_ISOLATION,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;    STMT_HISTORY_ID,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;    STMT_TEXT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;FROM &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;    ADMINISTRATOR.STMTHIST_DEADLOCKMON&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;WHERE &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;    DEADLOCK_ID IN (1,2,3)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;ORDER BY&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;    STMT_FIRST_USE_TIME&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;เพื่อแสดง sql statement ทั้งหมดที่มีส่วนทำให้เกิด deadlock ครับในที่นี้ where  condition ของผมนั้นสามารถดัดแปลง&lt;br /&gt;ให้มา join กับ DEADLOCK_DEADLOCKMON ได้ครับ จุดที่น่าสังเกตุคือให้ order by DEADLOCK_ID แล้วพยายาม&lt;br /&gt;พิจารณา statment ประกอบกับ &lt;span style="font-weight: bold;"&gt;PARTICIPANT_NO&lt;/span&gt; ครับแล้วจะพบคำตอบของสาเหตุการเกิด deadlock ครับ&lt;br /&gt;&lt;br /&gt;แชน&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-3705418307682903028?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/3705418307682903028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=3705418307682903028' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3705418307682903028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3705418307682903028'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/04/how-to-find-out-sql-statements-causing.html' title='How to find out the SQL statements causing deadlock?'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-8736796837533608582</id><published>2009-03-29T03:17:00.000-07:00</published><updated>2009-03-29T03:21:30.650-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Cloud Computing by GoGrid</title><content type='html'>ได้ดู clip อธิบายเกี่ยวกับ Cloud Computing ตัวนี้แล้ว&lt;br /&gt;อดไม่ได้ครับ ที่จะต้องเอามาวางไว้ใน blog เพื่อโฆษณาให้เค้า&lt;br /&gt;เข้าใจง่าย ไม่ต้องเทคนิคมากมาย ลองดูกันครับ&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/QJncFirhjPg&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;feature=player_embedded&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/QJncFirhjPg&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;feature=player_embedded&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-8736796837533608582?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/8736796837533608582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=8736796837533608582' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8736796837533608582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8736796837533608582'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/03/cloud-computing-by-gogrid.html' title='Cloud Computing by GoGrid'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-1443411113777523387</id><published>2009-03-24T04:39:00.001-07:00</published><updated>2009-03-24T04:39:42.524-07:00</updated><title type='text'>How to start db2 even monitor with command line</title><content type='html'>หลายๆคนอาจจะรู้กันอยู่แล้วว่าจะ start/stop event monitor ของ db2 ผ่าน command line ได้ด้วย command อะไร&lt;br /&gt;แต่สำหรับผม ไม่ทราบมาก่อนครับ วันนี้เลยอยากนำเสนอ command line สำหรับ start/stop event monitor ครับ&lt;br /&gt;&lt;br /&gt;หลังจากที่เราได้สร้าง event monitor เพื่อ monitor เหตุการณ์ต่างของ database ไม่ว่าจะด้วย Control Center, Command Line&lt;br /&gt;หรือ Font End อื่นเป็นที่เรียบร้อยแล้วเราสามารถ stop/start event monitor ผ่าน command line หรือ script ได้ด้วยคำสั่งต่อไปนี่ครับ&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(51, 51, 255); font-family: courier new;"&gt;DB2 CONNECT TO DB;&lt;br /&gt;DB2 SET EVENT MONITOR SQLMON STATE=1 -- START EVENT MONITOR&lt;br /&gt;DB2 SET EVENT MONITOR SQLMON STATE=0 -- STOP EVENT MONITOR&lt;br /&gt;DB2 TERMINATE;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-1443411113777523387?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/1443411113777523387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=1443411113777523387' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1443411113777523387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1443411113777523387'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/03/how-to-start-db2-even-monitor-with.html' title='How to start db2 even monitor with command line'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-3808203382407768187</id><published>2009-03-18T09:11:00.000-07:00</published><updated>2009-03-18T09:14:41.612-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>How to get client  Request object  in IBM java web service</title><content type='html'>เมื่อเราเขียน web application ไม่ว่าจะด้วย servlet หรือ jsp&lt;br /&gt;หรืออื่นๆ เราก็สามารถ get client request ออกมาเพื่อหาค่า&lt;br /&gt;information ของ client ได้ แต่ web service ล่ะทำยังไง&lt;br /&gt;&lt;br /&gt;สำหรับ java web service นั้น ปกติ ก็ต้องมีการ implement&lt;br /&gt;interface ที่ inherit มาจาก rmi.Remote แล้วนำมา Generate&lt;br /&gt;ออกมาเป็น web serice&lt;br /&gt;&lt;br /&gt;อาว ไม่เห็นมี Request แบบใน Servlet เลยที่มี Request&lt;br /&gt;อยู่ใน &lt;span style="font-weight: bold;"&gt;doPost&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;doGet &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;วิธีเพื่อให้ได้มาซึ่ง Request มาสองทางครับคือ&lt;br /&gt;1. ในกรณีใช้ RAD ก็ง่าย หรือถ้าไม่ใช้ RAD ก็ต้องแก้ไข&lt;br /&gt;ค่าของ web.xml เพื่อทำการ create Filter class ขึ้นมาครับ&lt;br /&gt;โดยถ้าเป็น RAD ก็ไปที่ web.xml แล้ว click ขวา&lt;br /&gt;หลังจากนั้นเลือกให้เป็นด้วยตัว Editor ของมันครับ&lt;br /&gt;แล้วมองหา Tab ที่เขียนว่า Filters ครับ แล้วเลือก Add เพื่อสร้าง&lt;br /&gt;Filter ขึ้นมาครับแล้วตั้งชื่อ Filter class ตามใจชอบครับ&lt;br /&gt;หลังจากนั้นกด Next แล้วระบุว่าจะให้ Filter class ที่ได้นี้&lt;br /&gt;generate ลงไปใน folder อะไร มี package ชื่ออะไร&lt;br /&gt;และหรือ inherit มาจาก class ไหนด้วย จากนั้นก็ Finish ครับ&lt;br /&gt;สุดท้ายเมื่อมาถึง Add Filter Mapping To Servlet&lt;br /&gt;ก็ให้เลย Dispatcher Type เป็น Request ครับ เพื่อให้&lt;br /&gt;เราสามารถ Filter Request message ออกมาได้&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;package filters;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;import javax.servlet.Filter;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;import javax.servlet.FilterConfig;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;import javax.servlet.ServletException;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;import javax.servlet.ServletRequest;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;import javax.servlet.ServletResponse;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;import javax.servlet.FilterChain;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;import java.io.IOException;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;public class MyFilter implements Filter {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;public MyFilter() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;super();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;public void init(FilterConfig arg0) throws ServletException {}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                  throws IOException, ServletException {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;System.out.println("Remote Address: "+request.getRemoteAddr());&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;chain.doFilter(request, response);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;public void destroy() {}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Filter class ที่ได้ก็จะออกมาประมาณนี้ครับ เราสามารถเอาค่า Request มาใช้งานได้&lt;br /&gt;ใน &lt;span style="font-weight: bold;"&gt;doFilter &lt;/span&gt;ครับ&lt;br /&gt;&lt;br /&gt;2. คือเราไม่ต้องใช้ตัวช่วยครับ โดยให้เรา implement &lt;span style="font-weight: bold;"&gt;javax.xml.rpc.server.ServiceLifecycle&lt;/span&gt;&lt;br /&gt;ให้กับ class ที่เราใช้ทำเป็น web service ครับ โดย interface &lt;span style="font-weight: bold;"&gt;ServiceLifecycle &lt;/span&gt;นี้&lt;br /&gt;จะบังคับให้เรา override 2 method คือ init และ destroy ครับ และเราสามารถ get Request ได้ผ่าน&lt;br /&gt;ทาง &lt;span style="font-weight: bold;"&gt;ServletEndpointContext &lt;/span&gt;ดังนี้ครับ&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;public class  MyService implements javax.xml.rpc.server.ServiceLifecycle {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    private javax.xml.rpc.server.ServletEndpointContext ctx;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    public MyService(){&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    public void init(Object arg0) throws ServiceException {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        ctx=(javax.xml.rpc.server.ServletEndpointContext)arg0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    public void destroy(){&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    public java.lang.String getRemoteAddr() throws java.rmi.RemoteException {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        javax.servlet.http.HttpServletRequest request = (javax.servlet.http.HttpServletRequest)ctx.getMessageContext().getProperty(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;com.ibm.ws.webservices.engine.transport.http.HTTPConstants.MC_HTTP_SERVLETREQUEST);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        return = request.getRemoteAddr();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;จาก code ข้างบน method &lt;span style="font-weight: bold;"&gt;getRemoteAddr()&lt;/span&gt; คือตัวอย่างการเอา Request มาใช้งานเพื่อหาค่า ip address ของ client ครับ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-3808203382407768187?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/3808203382407768187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=3808203382407768187' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3808203382407768187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3808203382407768187'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/03/how-to-get-client-request-object-in-ibm.html' title='How to get client  Request object  in IBM java web service'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-7316114551383719959</id><published>2009-03-16T08:48:00.000-07:00</published><updated>2009-03-16T08:58:38.193-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Why Google Reader can not show items list</title><content type='html'>ช่วงสองสามเดือนที่ผ่านมานี้ผมเจออาการ Google Reader ไม่สามารถ load ข้อมูลมาแสดงได้โดยขึ้นแต่คำว่า&lt;span style="font-weight: bold;"&gt; Loading&lt;/span&gt; แล้วก็จอสีขาวว่างเปล่า เครียดครับ ลองมาหลาย browser หลาย environment สอบถามจากหลายคนก็เป็นกันครับ ชอบ Google Reader มากๆซะด้วยสิ ไม่อยากเปลี่ยนไปใช้ Feed Reader อย่างอื่นเลย ก็เลยพยายามหาใน Internet ก็คำตอบมาคร่าวๆว่าเหตุที่ทำให้ Google Reader เป็นแบบนี้เพราะ Cache ในเครื่องเรามันจำไวนั้นเอง ถ้าใครใช้ Browser ก็จัดการ clear cookie อะไรพวกนี้ซะ ใช้ Google Gear สำหรับอ่านแบบ offline ก็ disable หรือ uninstall ไปก่อน สำหรับผมนั้นใช้ Mozilla Firefox ในการอ่าน Google Reader เป็นประจำ ก็เลยไปที่&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Tools -&gt; Clear Private Data หรือ Ctrl + Shift + Del&lt;/span&gt;&lt;br /&gt;แล้วก็จัดการ clear Cache, Cookie แล้วก็ Offline Website Data&lt;br /&gt;หลังจากนั้นทดลองเข้า Google Reader ใหม่ เข้าได้เฉยเลยครับ&lt;br /&gt;ดีใจจัง&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-7316114551383719959?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/7316114551383719959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=7316114551383719959' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/7316114551383719959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/7316114551383719959'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2009/03/google-reader-load.html' title='Why Google Reader can not show items list'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-3576490868251651910</id><published>2008-09-30T23:48:00.000-07:00</published><updated>2008-09-30T23:52:47.996-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>How to download mp3 from iJigg.com</title><content type='html'>คงต้องยอมรับว่า iJigg.com มีเพลงให้เราฟังเยอะจริงๆ  ถึงจะเป็น web site ที่ให้บริการเพลงแบบ flash player แต่ก็ยังใจดีแอบเปิดให้เราได้โหลด mp3 ของเพลงที่เราฟังไปแล้วมาเก็บไว้ในเครื่องได้ ขั้นตอนในการโหลด mp3 จาก iJigg.com นั้นหรอครับไม่อยากเลยครับมุขเก่าๆเดิมๆของคนเล่นคอมพ์ครับ เริ่มจาก&lt;br /&gt;&lt;br /&gt;          1. เข้า iJigg.com ด้วย IE (Internet Explorer) นี่ล่ะง่ายที่สุด&lt;br /&gt;          2. ไปที่ &lt;span style="font-weight: bold;"&gt;Tools-&gt;Internet Options-&gt;Temporary Internet files -&gt;Settings... -&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;               View Files&lt;/span&gt; เพื่อเข้าไปที่ folder Temporary Internet Files ของ IE&lt;br /&gt;          3. ลบทุกอย่างที่อยู่ใน folder นี้ให้หมด เพื่อให้ง่ายและสะดวกในขั้นตอนต่อไป&lt;br /&gt;          4. search หาเพลงที่เราต้องการ&lt;br /&gt;          5. ฟังมันซะให้จบ&lt;br /&gt;          6. กลับไปที่ folder Temporary Internet Files อีกครั้ง จากนั้นกด F5&lt;br /&gt;          7. จะพบ file  ชื่ออ่านไม่รู้เรื่องแต่เป็น mp3 copy มา paste ไว้ที่ไหนก็ได้&lt;br /&gt;              นอก  folder Temporay Internet&lt;br /&gt;          8. ฟังว่าเป็นเพลงของเราหรือไม่&lt;br /&gt;          9. rename มันซะ เท่านี้ก็เรียบร้อยแล้วครับ&lt;br /&gt;&lt;br /&gt;ปล. ผลงานสร้างสรรค์ ไม่ได้ถูกสร้างขึ้นอย่างง่ายๆ เราควรเคารพ&lt;br /&gt;และให้กำลังใจเหล่าศิลปินที่เราชื่นชอบด้วยการอุดหนุนผลงานของพวกเค้า&lt;br /&gt;เหล่านั้น มากกว่าขโมยมาฟัง&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-3576490868251651910?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/3576490868251651910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=3576490868251651910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3576490868251651910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/3576490868251651910'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2008/09/how-to-download-mp3-from-ijiggcom.html' title='How to download mp3 from iJigg.com'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-1852166835617802343</id><published>2008-09-21T02:52:00.000-07:00</published><updated>2008-09-21T03:02:36.038-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>IBM Websphere MQ process message immediate with C#</title><content type='html'>ในการใช้งาน IBM Websphere MQ นั้นบ่อยครั้งที่จำเป็นจะต้องประมวลผล message ที่เข้ามาใน Queue ทันที&lt;br /&gt;การ polling เพื่อตรวจสอบว่ามี message เข้ามาใน Queue แล้วหรือไม่นั้นคงไม่ใช้ทางออกที่ดีอย่างแน่นอน&lt;br /&gt;การทำงานแบบ event-driven น่าจะเหมาะสมกว่าสำหรับงานแบบนี้&lt;br /&gt;&lt;br /&gt;IBM Webphere MQ เองได้มี Trigger ไว้รองรับการทำงานแบบนี้ แต่ในความเป็นจริงแล้วการใช้งาน Trigger&lt;br /&gt;นั้นค่อนข้างยุ่งยาก และไม่สะดวกในนำไปใช้งาน เพราะเราจำเป็นที่จะต้องสร้าง Initial Queue  และ Process&lt;br /&gt;และกำหนดค่าต่างๆอีกมากมายให้กับ Queue ที่เราต้องการจะใช้งาน Trigger  อีกทั้ง Trigger จะไม่ทำงานได้จนกว่า&lt;br /&gt;เราจะรันคำสั่ง runmqtrm เพื่อ monitor mq's trigger ที่เราต้องการ&lt;br /&gt;&lt;br /&gt;ทางเลือกง่ายๆอีกอย่างทางที่สามารถทำได้คือเขียนโปรแกรมให้ application ของเราหยุดจนกว่าจะมี message เข้ามาใน queue&lt;br /&gt;แล้วจึงทำงานต่อไป&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;public class MQMessageListener&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;        public static MQMessage Listen(string qmName, string queueName)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            /** MQOO_INPUT_AS_Q_DEF -- open queue to get message using queue-define default.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;             *  MQOO_FAIL_IF_QUIESCING -- access fail if queue manange is quiescing. **/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_FAIL_IF_QUIESCING;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            MQQueueManager mqManager = new MQQueueManager(qmName);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            MQQueue queue = mqManager.AccessQueue(queueName,openOptions);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            /** MQGMO_FAIL_IF_QUIESCING -- get message fail if queue manager is quiescing.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;             *  MQGMO_WAIT -- waits for suitable message to arrive.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;             *  MQWI_UNLIMITED -- unlimited wait interval. **/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            MQGetMessageOptions gmo = new MQGetMessageOptions();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            gmo.Options = MQC.MQGMO_FAIL_IF_QUIESCING | MQC.MQGMO_WAIT;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            gmo.WaitInterval = MQC.MQWI_UNLIMITED;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            MQMessage message = new MQMessage();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            //wait for message&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            queue.Get(message, gmo);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            queue.Close();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            //release resource.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            mqManager = null;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            queue = null;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            gmo = null;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            System.GC.Collect();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            return message;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;class Program&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;        static void Main(string[] args)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            Console.WriteLine("==START==");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            String message = null;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            do{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                Console.WriteLine("Waiting...");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                MQMessage mqMessage = MQMessageListener.Listen("QUEUE.MANAGER", "LOC.QUEUE");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                message = mqMessage.ReadString(mqMessage.MessageLength);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;                Console.WriteLine("\tMessage: " + message); &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            }while(message != "BYE");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            Console.WriteLine("==END==");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_t50Y90j6TyI/SNYaDbqhP8I/AAAAAAAAAFU/3h6YMi9Aqas/s1600-h/MQWaitMessageDemoSnap1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_t50Y90j6TyI/SNYaDbqhP8I/AAAAAAAAAFU/3h6YMi9Aqas/s320/MQWaitMessageDemoSnap1.JPG" alt="" id="BLOGGER_PHOTO_ID_5248411062014918594" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-1852166835617802343?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/1852166835617802343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=1852166835617802343' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1852166835617802343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1852166835617802343'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2008/09/ibm-websphere-mq-process-message.html' title='IBM Websphere MQ process message immediate with C#'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_t50Y90j6TyI/SNYaDbqhP8I/AAAAAAAAAFU/3h6YMi9Aqas/s72-c/MQWaitMessageDemoSnap1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-8650011068993181536</id><published>2008-09-18T00:59:00.002-07:00</published><updated>2008-09-18T08:55:54.827-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MS-DOS'/><title type='text'>Windows FTP command with script file</title><content type='html'>ช่วงนี้ยังคงหนีไม่พ้นทำงานกับ Windows ก็คงต้องทนทำไปอีกสักพักหละ&lt;br /&gt;ก็บริษัทที่อยู่เล่นเป็น Microsoft Partnership (ไม่รู้จะเกี่ยวป่าว)&lt;br /&gt;ปกติบน Linux ก็มี vsftp, lftp etc. ซึ่งมันก็ทำงานกับ script ได้&lt;br /&gt;วันนี้จำเป็นต้องใช้ใน Windows บ้าง ftp ของ Windows จะทำงาน&lt;br /&gt;กับ script file ได้มั้ยนะ คำตอบคือได้ครับ ตัวไปนี้คือตัวอย่าง&lt;br /&gt;คิดว่าเห็นแล้วก็น่าจะเอาไปประยุกต์ใช้ได้กับหลายคำสั่งล่ะนะ&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[file: script.txt]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;USER Fuangwith&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;p@$$W0rd&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;CD Temp&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;BIN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;PUT C:\ORR.JPG&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;QUIT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;command สำหรับรันให้ ftp เรียกใช้งาน script file&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;ftp -n -s:script.txt hostname.domain.com&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;จากคำสั่งข้างบนสามารถอธิบายได้ดังนี้ครับ&lt;br /&gt;ftp จะ connect ไปที่ hostname.domain.com&lt;br /&gt;ด้วย user Fuangwith password p@$$W0rd&lt;br /&gt;หลังจากนั้นเข้าไปที่ directory Temp แล้วเปลี่ยน&lt;br /&gt;mode เป็น Binary Mode ต่อด้วย transfer file&lt;br /&gt;ORR.JPG จากเครื่อง client ไปยัง hostname.domain.com&lt;br /&gt;จบ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-8650011068993181536?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/8650011068993181536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=8650011068993181536' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8650011068993181536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8650011068993181536'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2008/09/windows-ftp-command-with-script-file.html' title='Windows FTP command with script file'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-7274946441287059708</id><published>2008-09-18T00:59:00.001-07:00</published><updated>2008-09-18T00:59:42.409-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MS-DOS'/><title type='text'>MS-DOS multiple command on single line</title><content type='html'>อันนี้ไม่ได้พูดถึงกรณีที่เราต้องการ pipe หรือ redirect&lt;br /&gt;output ของแต่ละ command เข้าด้วยกันนะครับ&lt;br /&gt;แต่พูดถึงในกรณีที่เรา ต้องการรัน command ต่อเนื่องกัน&lt;br /&gt;แต่ไม่อยากขึ้นบรรทัดใหม่ เช่น&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;E:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;CD TEMP&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;MKDIR SUBTEMP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ปกติใน windows ก็ต้องเปิด command window ขึ้นมา&lt;br /&gt;แล้วก็พิมพ์แล้ว Enter ทีละคำสั่งหรือไม่ก็เอาไปเขียนใน batch file&lt;br /&gt;แต่วันนี้ผมไม่อยากทำแบบนั้นอ่ะ&lt;br /&gt;ถ้าใน Linux เค้าก็ใช้ ; เป็นตัวขั้นระหว่างคำสั่งใน shell&lt;br /&gt;windows ก็นี้เลยครับ &amp;amp;&lt;br /&gt;&lt;br /&gt;เราก็จะได้เป็น&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;E: &amp;amp; CD TEMP &amp;amp; MKDIR SUBTEMP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;แค่นี้ล่ะครับ ได้แล้วบรรทัดเดียว ง่ายๆ&lt;br /&gt;หรือจะเป็น&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;CMD /K "E: &amp;amp; CD TEMP &amp;amp; MKDIR SUBTEMP"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;แบบนี้ก็ได้ครับ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-7274946441287059708?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/7274946441287059708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=7274946441287059708' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/7274946441287059708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/7274946441287059708'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2008/09/ms-dos-multiple-command-on-single-line.html' title='MS-DOS multiple command on single line'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-1200288740885790326</id><published>2008-09-16T01:27:00.000-07:00</published><updated>2008-09-16T01:30:32.969-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>DB2 LOOP INSERT</title><content type='html'>ปกติถ้าเราจะ insert ข้อมูลลง database โดยเอาข้อมูลจาก&lt;br /&gt;table อื่นมาก็มักจะใช้ insert ... select ... แบบนี้&lt;br /&gt;เพราะเขียนสั้น ง่ายดี  แต่ใน DB2 นั้นบางทีถ้าข้อมูลที่&lt;br /&gt;select ขึ้นมานั้นมีปริมาณมากๆ อาจะไม่หมูอย่างทีคิดก็เป็นได้&lt;br /&gt;เพราะการใช้ insert....select..... นั้นการทำงานดังรูป&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/topic/com.ibm.db2tools.oe.doc.ug/dvnhlpwithin.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/topic/com.ibm.db2tools.oe.doc.ug/dvnhlpwithin.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;ref: &lt;span style="font-size:78%;"&gt;http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/topic/com.ibm.db2tools.oe.doc.ug/dvnhlpwithin.gif&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;วันนี้ผมเลยขอแนะนำการ fetch cursor เพือ่ insert ข้อมูล&lt;br /&gt;ลงไปใน table แทน เคยลองมาแล้วครับเร็วมากครับ&lt;br /&gt;ลองดูตัวอย่างเลยครับ&lt;br /&gt;&lt;br /&gt;สร้างตารางสำหรับเก็บข้อมูลก่อน&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;CREATE TABLE TB_DATA(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    DATA1 VARCHAR(128) NOT NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    DATA2 VARCHAR(128)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ต่อมาก็เริ่มดู procedure กันเลยครับ&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;CREATE PROCEDURE SP_FETCH_INTSERT()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    LANGUAGE SQL&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;BEGIN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    --Author: Mr.Fuangwith S.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    DECLARE v_not_found CHARACTER(1) DEFAULT '1';&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    DECLARE v_tabname VARCHAR(128);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    DECLARE v_type CHARACTER(1);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    DECLARE c1 CURSOR FOR&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    SELECT&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;        TABNAME,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;        TYPE&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    FROM&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;        SYSCAT.TABLES&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    FOR READ ONLY;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    --v_not_found = 1 after fetch cursor pass last record&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    DECLARE EXIT HANDLER FOR NOT FOUND&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;         SET v_not_found = '1';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    OPEN c1;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    SET v_not_found = '0';&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    FETCH_LOOP:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      LOOP&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;        FETCH  c1 INTO v_tabname,v_type;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;        --exit loop when finish&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;        IF v_not_found = '1' THEN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;           LEAVE FETCH_LOOP;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;        END IF;&lt;/span&gt;&lt;br /&gt;       &lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;        INSERT INTO TB_DATA(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            DATA1,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            DATA2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;        )VALUES(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            v_tabname,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            v_type&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;        );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    END LOOP FETCH_LOOP;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    SET v_not_found = '1';&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    CLOSE c1;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;END&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;CALL  SP_FETCH_INTSERT()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;จาก procedure ด้านบนอธิบายได้ดังนั้นครับ&lt;br /&gt;ขั้นแรกก็ประกาศ cursor C1 ขึ้นมาเพื่อใช้ในการ fetch&lt;br /&gt;TabName และ Type จาก syscat.tables&lt;br /&gt;จากนั้นทำการวนลูป โดย scope ของ loop คือ&lt;br /&gt;fetch_loop ครับ ในขณะที่วนลูปก็เอาค่าขึ้นมา&lt;br /&gt;เก็บไว้ที่ตัวแปร v_tabname, v_type แล้ว&lt;br /&gt;ก็ inset ของ table TB_DATA ครับ&lt;br /&gt;เมื่อ fetch ข้อมูลออกมาจาก cursor จนหมด&lt;br /&gt;มันก็จะเกิด exception NOT FOUND ขึ้นน่ะครับ&lt;br /&gt;ค่าตัวแปร v_not_found ก็จะกลายเป็น 1&lt;br /&gt;แล้วมันก็จะออกจาก loop ในที่สุดครับ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-1200288740885790326?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/1200288740885790326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=1200288740885790326' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1200288740885790326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/1200288740885790326'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2008/09/db2-loop-insert.html' title='DB2 LOOP INSERT'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-616298938321239273</id><published>2008-09-15T20:34:00.000-07:00</published><updated>2008-09-15T20:35:12.295-07:00</updated><title type='text'>DB2 Try Catch Exception</title><content type='html'>หลายคนที่เขียน java หรือ .NET มาก็มีอึดอัดบ้างครับ&lt;br /&gt;อยาก try/catch exception ใน database Oracle ก็ทำได้&lt;br /&gt;แล้ว DB2 จะทำไม่ได้ได้ไง ดูตัวอย่างเลยครับ&lt;br /&gt;&lt;br /&gt;สร้างตารางสำหรับทดลองก่อน&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;CREATE TABLE TB_EXCEPTION_TEST(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;    MESSAGE VARCHAR(10) NOT NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;    ERROR VARCHAR(2000)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;CREATE PROCEDURE SP_HANDLE_EXCEPTION(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    IN pMessage VARCHAR(10)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    LANGUAGE SQL&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    RESULT SET 1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;BEGIN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    --Author: Mr.Fuangwith S.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    DECLARE v_errmsg VARCHAR(2000);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    DECLARE c1 CURSOR WITH RETURN FOR&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    SELECT &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;        MESSAGE,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;        ERROR&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    FROM &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;        TB_EXCEPTION_TEST&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    FOR READ ONLY;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    --Display error message&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    DECLARE C2 CURSOR WITH RETURN FOR&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    SELECT v_errmsg AS ERROR_MSG FROM SYSIBM.SYSDUMMY1;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    --Try catch exception&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    DECLARE EXIT HANDLER FOR SQLEXCEPTION&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    P1:BEGIN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;        GET DIAGNOSTICS EXCEPTION 1 v_errmsg = MESSAGE_TEXT;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;        INSERT INTO TB_EXCEPTION_TEST(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;            MESSAGE,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;            ERROR&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;        )VALUES(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;            'ERROR',&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;            v_errmsg&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;        );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;        OPEN c2;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    END P1;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    INSERT INTO TB_EXCEPTION_TEST(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;        MESSAGE&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    )VALUES(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;        pMessage&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    OPEN c1;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;END&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Execute&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;CALL SP_HANDLE_EXCEPTION(NULL)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Output ที่ได้คือ error ที่เราได้ที่เกิดขึ้นนะครับ&lt;br /&gt;สังเกตว่าเราสามารถจำมันมาใส่ table ได้ &lt;br /&gt;เพียงเท่านี้ก็คิดว่า หลายๆคนคงจะเอาไปพลิกแพลงใช้งานต่อ&lt;br /&gt;ได้แล้วนะครับ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-616298938321239273?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/616298938321239273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=616298938321239273' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/616298938321239273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/616298938321239273'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2008/09/db2-try-catch-exception.html' title='DB2 Try Catch Exception'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-7718629135413135774</id><published>2008-09-15T19:40:00.000-07:00</published><updated>2008-09-15T19:41:20.118-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><title type='text'>DB2 SIGNAL EXAMPLE</title><content type='html'>เขียน procedure ใน DB2 บางเวลาก็อยากจะให้มัน print ข้อความออกมาบ้าง&lt;br /&gt;เพื่อให้ debug ได้ง่ายขึ้น วันนี้เลยขอนำเสนอ การใช้ SIGNAL ใน DB2 ครับ&lt;br /&gt;ซึ่งก็เหมือนกัน throw exception ใน java อ่ะครับ&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;CREATE PROCEDURE SP_THROW_MESSAGE()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;    LANGUAGE SQL&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;BEGIN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;    --Author: Mr.Fuangwith S.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;    DECLARE v_err_message VARCHAR(255) DEFAULT '' ;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;    SET v_err_message = 'HELLO WORLD';&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;    SIGNAL SQLSTATE '12345' SET MESSAGE_TEXT = v_err_message;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;END&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 255, 51);"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;CALL SP_THROW_MESSAGE()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Output&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; DB2 SQL error: SQLCODE: -438, SQLSTATE: 12345, SQLERRMC: HELLO WORLD&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; Message: Application raised error with diagnostic text: "HELLO WORLD". &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note&lt;/span&gt;&lt;br /&gt;การกำหนดเลข SQLSTATE ให้อ้างตามนี้ครับ&lt;br /&gt;&lt;br /&gt; The following are the rules for an SQLSTATE value specified on&lt;br /&gt;the SIGNAL or RESIGNAL statement.&lt;br /&gt;&lt;br /&gt;o   Each character must be from the set of digits ('0' through&lt;br /&gt;    '9') or non-accented upper case letters ('A' through 'Z').&lt;br /&gt;&lt;br /&gt;o   The SQLSTATE class (first two characters) cannot be '00'.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; The following are the rules for an SQLSTATE value specified by&lt;br /&gt;the RAISE_ERROR function&lt;br /&gt;&lt;br /&gt;o   Each character must be from the set of digits ('0' through&lt;br /&gt;    '9') or non-accented upper case letters ('A' through 'Z')&lt;br /&gt;&lt;br /&gt;o   The SQLSTATE class (first two characters) cannot be '00',&lt;br /&gt;    '01', or '02' since these are not error classes.&lt;br /&gt;&lt;br /&gt;o   If the SQLSTATE class (first two characters) starts with the&lt;br /&gt;    character '0' through '6' or 'A' through 'H', then the&lt;br /&gt;    subclass (last three characters) must start with a character&lt;br /&gt;    in the range 'I' through 'Z'&lt;br /&gt;&lt;br /&gt;o   If the SQLSTATE class (first two characters) starts with the&lt;br /&gt;    character '7', '8', '9' or 'I' though 'Z', then the subclass&lt;br /&gt;    (last three characters) can be any of '0' through '9' or 'A'&lt;br /&gt;    through 'Z'.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-7718629135413135774?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/7718629135413135774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=7718629135413135774' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/7718629135413135774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/7718629135413135774'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2008/09/db2-signal-example.html' title='DB2 SIGNAL EXAMPLE'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-8471561037229253130</id><published>2008-09-13T21:17:00.000-07:00</published><updated>2008-09-13T21:18:15.933-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Visual Studio cannot update web reference</title><content type='html'>พอดีน้องในทีมเจอปัญหาใช้ Ms.Visual Studio 2005&lt;br /&gt;แล้วอยู่ดีๆมันก็ Update WebReference ไม่ได้ซะงั้น&lt;br /&gt;ขึ้น error ว่า&lt;br /&gt;&lt;br /&gt;"The web services enumeration components are not available.  You need to reinstall Visual Studio to add web references to your application. "&lt;br /&gt;&lt;br /&gt;ไม่ต้องไป install Visual Studio ใหม่หรอกครับ&lt;br /&gt;ให้ปิด Visual Studio ไปก่อนครับ&lt;br /&gt;แล้วไปที่ Visual Studio Command Prompt&lt;br /&gt;จากนั้นรัน command&lt;br /&gt;devenv /resetskippkgs&lt;br /&gt;&lt;br /&gt;เอวัง ก็มีด้วยประการฉะนี้ล่ะครับ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-8471561037229253130?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/8471561037229253130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=8471561037229253130' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8471561037229253130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/8471561037229253130'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2008/09/visual-studio-cannot-update-web.html' title='Visual Studio cannot update web reference'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-322014741637955406</id><published>2008-09-13T21:16:00.000-07:00</published><updated>2008-09-13T21:17:13.512-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere'/><title type='text'>First time with JACL scripts</title><content type='html'>เนื่องจากใช้งาน IBM Websphere แบบมวยวัดอยู่เรื่อย&lt;br /&gt;(เพราะไม่เคยได้ Train อะไรกับเค้าสักที) เราก็ต้องหาเรื่อง&lt;br /&gt;เล่นโน่นนี่ไปเรื่อย วันนี้อยากเล่น wsadmin ครับ&lt;br /&gt;แต่เห็นมันมีการนำ JACL และ  Jython มาใช้งานด้วย&lt;br /&gt;เลยเลือกที่จะเรียนรู้ JACL ก่อนดีกว่าอิอิ&lt;br /&gt;&lt;br /&gt;JACL ถ้ารู้มาไม่ผิดมันก็ย่อมาจาก Java Command Langauge&lt;br /&gt;ก็ไปดูรายละเอียดเพิ่มเติมได้ที่&lt;br /&gt; &lt;a href="http://tcljava.sourceforge.net/docs/website/index.html"&gt;http://tcljava.sourceforge.net/docs/website/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;วิธีเริ่มง่ายๆก็ไป download มาก่อนครับที่&lt;br /&gt;&lt;a href="http://tcljava.sourceforge.net/docs/website/download.html"&gt;http://tcljava.sourceforge.net/docs/website/download.html&lt;/a&gt;&lt;br /&gt;ครับ เอาที่เป็นตัวที่เขียนว่า jaclBinary น่ะครับ&lt;br /&gt;&lt;br /&gt;ต่อมาก็ extract ครับ จะเห็น Redme.txt แล้วก็ folder bin กับ lib&lt;br /&gt;เข้าไปใน lib ครับ copy jar files ทุกตัวไปใส่ไว้ที่ jre\lib\ext ของ java&lt;br /&gt;&lt;br /&gt;จากนั้นก็เข้าไปดูใน folder bin บ้างครับ จะเห็น batch files สำหรับ windows&lt;br /&gt;และ shell files สำหรับ Unix ลองเปิด jaclsh.bat ขึ้นมาด้วย editor มาดูนะครับ&lt;br /&gt;จะเห็นว่ามันมีการ set Environment  โน่นนี่ของมันนะครับ ก็ดูก่อนเลยว่า&lt;br /&gt;มันอ้าง java path ถูกต้องตามในเครื่องของเรารึป่าว&lt;br /&gt;(batch file  มันเขียนได้อ่านยากไปหน่อย)&lt;br /&gt;&lt;br /&gt;แก้เสร็จแล้วก็ double click เลยครับ&lt;br /&gt;จะเห็นหน้าจอ Terminal เปิดขึ้นมาหนึ่งจอ&lt;br /&gt;พร้อมกับมีเครื่องหมาย prompt&lt;br /&gt;%&lt;br /&gt;รออยู่ครับ&lt;br /&gt;&lt;br /&gt;อย่ารอช้าทำให้มัน print Hello,world ก่อนเลยครับ&lt;br /&gt;จะได้เหมือนว่าเราได้เริ่มเรียน JACL :D&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;%put stdout{Hello,world!}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;=&gt; Hello,world!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;แบบนี้ครับ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13920929-322014741637955406?l=fuangwith.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fuangwith.blogspot.com/feeds/322014741637955406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13920929&amp;postID=322014741637955406' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/322014741637955406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13920929/posts/default/322014741637955406'/><link rel='alternate' type='text/html' href='http://fuangwith.blogspot.com/2008/09/first-time-with-jacl-scripts.html' title='First time with JACL scripts'/><author><name>Fuangwith S.</name><uri>http://www.blogger.com/profile/05004459159452269792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_t50Y90j6TyI/SNYYXlYplEI/AAAAAAAAAE8/n2niAXbr7jA/S220/IMG_8963.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13920929.post-5195925206107877989</id><published>2008-09-13T21:08:00.000-07:00</published><updated>2008-09-13T21:09:16.898-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>How to change Windows Administrator password without old password</title><content type='html'>ทำงานกับ Windows มานาน&lt;br /&gt;ลองเล่นอะไรกับ Windows กันหน่อยม่ะ&lt;br /&gt;ถ้าเห็น Computer เปิดหน้าจอที่ logon ด้วย user Administrator ค้างไป&lt;br /&gt;เคยคิดอยากไปเปลี่ยน password เค้าบ้างหรือป่าวครับ&lt;br /&gt;ผมเคยนะ แต่พอกด ctrl+alt+del แล้ว Change Password มันดันให้ใส่&lt;br /&gt;Old Password แฮะ เซ็งว่ะ!!!&lt;br /&gt;&lt;br /&gt;วันนี้ลองเล่นอะไรหน่อย&lt;br /&gt;windows + R&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;cmd&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;cd\&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;cd Windows&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;cd System32&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;mkdir realfiles&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;copy cmd.exe realfiles\cmd.exe&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;copy logon.scr realfiles\logon.scr&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;del logon.scr&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;rename cmd.exe logon.scr&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;logon.scr&lt;/span&gt;&lt;br /&gt;จะเห็น  command  windows แสดงขึ้นมา&lt;br /&gt;(ตอนนี้ Windows น่าจะคิดว่า logon.scr ที่เป็น cmd.exe นั้นเป็น screen saver ไปแล้ว)&lt;br /&gt;วิ่งไปที่ command  windows นั้นเลยค
