<?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-3994895416828900595</id><updated>2012-01-27T18:00:38.788-08:00</updated><category term='จีน'/><category term='สิบสี่องศา'/><category term='fglrx'/><category term='WDF'/><category term='ati'/><category term='kubuntu'/><category term='14degree'/><category term='Linux'/><category term='pbo'/><category term='GPS'/><category term='Video For Linux'/><category term='video wall'/><category term='Windows Driver'/><category term='พึมพำ'/><category term='kdevelop'/><category term='wxWidgets'/><category term='OpenGL'/><category term='wxFormBuilder'/><title type='text'>switaya</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-4388308185947549507</id><published>2009-08-23T06:46:00.000-07:00</published><updated>2009-08-23T06:52:49.160-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='สิบสี่องศา'/><category scheme='http://www.blogger.com/atom/ns#' term='14degree'/><title type='text'>www.14degree.com</title><content type='html'>เนื่องจากว่าได้เช่าใช้ web hosting เป็นหลักแหล่งแล้ว ลง WordPress ไว้เขียนบล็อก ก็ดูโอเคดีไม่มีปัญหา ดังนั้นต่อไปนี้คงหยุดอัพเดตที่นี่แล้วครับ ย้ายบ้านไปอยู่ที่นู่นเลย เพราะมีทั้ง อีเมล์ ร้านค้า เรียกว่า ครบ ไม่ต้องเช็คกันหลายที่ให้วุ่นวาย ไวกว่าด้วย เนื่องจาก server อยู่ในไทย จะอัพโหลดอะไรก็ไวกว่าเนอะ ยังคงมีเรื่องราวเกี่ยวกับ software development มาเล่าสู่กันฟังเหมือนเดิม&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/3994895416828900595-4388308185947549507?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/4388308185947549507/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=4388308185947549507' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/4388308185947549507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/4388308185947549507'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2009/08/www14degreecom.html' title='www.14degree.com'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-4776856875052575533</id><published>2009-08-07T23:59:00.000-07:00</published><updated>2009-08-08T18:30:27.296-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GPS'/><category scheme='http://www.blogger.com/atom/ns#' term='จีน'/><title type='text'>ผมขาย GPS จีนคร้าบบบ</title><content type='html'>โอววว หลังจากหมด contract กับลอยเธอแล้วก็กลายมาเป็น freelance อีกครั้ง อาทิตย์นี้เลยนั่งทำเว็บขายของ เริ่มจาก GPS ก่อนเพราะว่าได้ราคามาพอสู้กับคนอื่นได้แถมไม่ต้องนำเข้าเอง service ได้เต็มที่หน่อยเพราะ ถ้ามีเคลมก็วิ่งไปหาได้สบายๆ&lt;br /&gt;&lt;br /&gt;    จริงๆเริ่มสนใจก็เพราะว่า เท่าที่ดูแล้ว spec hardware ช่างเหมือนกับบอร์ดพัฒนาที่ตอนนี้ฮิตๆกัน แต่ได้อะไรๆมากกว่า ถ้าเอามา hack ได้เนี่ยคุ้มมาก ส่วนใช้งานปกติก็ถือว่าไม่แพงเลย ตามสไตล์จีนอยู่แล้ว&lt;br /&gt;&lt;br /&gt;    อีกอย่างที่รออยู่คือมือถือ Android จ่ายตังค์ไปแระ แต่ยังไม่มาสักที นั่งหาข้อมูล บางคนก็บอกว่ามันของปลอม ไม่จริงหรอก ยิ่งดูจากฝรั่งรีวิว แมร่งทำท่าทางน้ำเสียงแบบดูถูกสุดๆ แต่ไม่ยักกะบอกว่า มันไม่ใช่แอนดรอยด์ยังงัย เข้าไปดูเอกสารในเว็บของ android ก็ไม่เห็นว่ามันจะวิเศษวิโสขนาดไหน ก็ลินุกส์กับจาวานั่นแหละ ทำไมจีนจะทำบ่ได้ ญี่ปุ่นเมื่อก่อนก็ก๊อปเค้าจนพัฒนาก้าวกระโดดไปไกล ให้จีนมาก๊อปตามบ้าง ฝรั่งมัวแต่เล่นตัว มันถึงได้เจ๊งกันเป็นแถบๆ พูดถึงมือถือลินุกส์ ค่ายโมโตก็ทำมานานแล้วนะ ผมก็ซื้อมาเล่นอยู่ตัว(มือสอง) ยังไม่ทันได้ทำอะไรกะมันมาก ดันทำหายซะนี่ เซร็ง&lt;br /&gt;&lt;br /&gt;    เวลาบ่นนี่ยาวทุกที ใครหลงมาก็ช่วยคลิกไปหน้าร้านหน่อยนะคร้าบ ไม่ซื้อหาไม่ว่ากัน อยู่ในดุลพินิจของท่านเอง www.14degree.com/store ตอนนี้กำลังหาข้อมูล windows ce กับตัว 7" อยู่ ถ้ามีแววจะเล่นหรือเขียนโปรแกรมกับมันได้ จะเอามาชำแหละให้ดูสักตัวครับ&lt;br /&gt;&lt;br /&gt;    ***ล่าสุดครับ ลองลง version รองล่าสุด Jun09 จากเว็บนอกและใช้ map, voice, poi จาก navthai ใช้งานได้ดีกับทั้งสองตัวครับ ตัว 7" ต้องปล้ำกับมันนิดหน่อย(แก้ไข sys.txt) กว่าจะทำได้สำเร็จ (เนื่องด้วย data.zip และ branding.zip เป็นสาเหตุว่าทำไมต้องใช้ตัวโปรแกรมจากเว็บนอก)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3994895416828900595-4776856875052575533?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/4776856875052575533/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=4776856875052575533' title='1 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/4776856875052575533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/4776856875052575533'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2009/08/gps.html' title='ผมขาย GPS จีนคร้าบบบ'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-5176601486018640900</id><published>2009-07-23T18:14:00.000-07:00</published><updated>2009-07-24T07:50:59.594-07:00</updated><title type='text'>zotac mini-itx + Q9550 ประทับใจ booting is faster !</title><content type='html'>อาทิตย์นี้ผมได้รับเมนบอร์ดที่สั่งซื้อมาจากนอก เป็น mini-itx (เฉพาะขนาดของมันอะนะ) และ CPU intel Q9550 ที่สั่งจองไว้ก็ได้รับมาในเวลาไล่เลี่ยกัน ไม่รอช้า จัดการเอาองค์ประกอบที่พอเหลือมีอยู่ จับใส่เข้าไปในเคสเก่าอันนึง&lt;br /&gt;&lt;br /&gt;    เสร็จแล้วก็ลง Kubuntu 9.04, driver nvidia, อัพเดตแพทช์ทั้งหลาย บร๊ะเจ้า!!! มันบูทไวมากเลยใช้เวลาในการที่จะขึ้นหน้าล็อกอินสั้นกว่า PC ที่มีอยู่สองเท่าได้เลยมั้งนั่น&lt;br /&gt;&lt;br /&gt;    ตัวนี้ให้การ์ดจอออนบอร์ดเป็น nvidia 9300 สนับสนุน SLI เพราะมี PCI-EX 16x มาให้สล็อตหนึ่งด้วย กะจะเอามาลอง VDPAU (video api) ซะหน่อย เนื่องจาก ATI ยังไม่ยอมปล่อยออกมาเลย&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/3994895416828900595-5176601486018640900?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/5176601486018640900/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=5176601486018640900' title='2 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/5176601486018640900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/5176601486018640900'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2009/07/zotac-miniitx-q9550-booting-is-so-fast.html' title='zotac mini-itx + Q9550 ประทับใจ booting is faster !'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-1019645956537490850</id><published>2009-05-30T23:50:00.000-07:00</published><updated>2009-05-31T00:52:15.775-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pbo'/><category scheme='http://www.blogger.com/atom/ns#' term='fglrx'/><title type='text'>ati driver (fglrx) support pbo แล้วนะ</title><content type='html'>ข่าวดีส่งท้ายเดือนนี้ เพื่งสังเกตว่า fgl_glxgears นั้นลง caption ใหม่เอาไว้ว่าใช้ pbuffer ก็เลยสงสัยว่า pbo ที่ผิดหวังไป&lt;a href="http://switaya.blogspot.com/2008/09/ati.html"&gt;คราวก่อน&lt;/a&gt;นั้น มันมาแล้ว หลังจากให้รอมานาน ปรากฏว่าจริงซะด้วย&lt;br /&gt;&lt;br /&gt;    แต่ก็งานเข้านิดๆ เพราะต้องกลับไปแก้โค้ดแล้วลองรันเปรียบเทียบ performance อีกรอบ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3994895416828900595-1019645956537490850?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/1019645956537490850/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=1019645956537490850' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/1019645956537490850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/1019645956537490850'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2009/05/ati-driver-fglrx-support-pbo.html' title='ati driver (fglrx) support pbo แล้วนะ'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-7086332921210641885</id><published>2009-05-17T07:31:00.000-07:00</published><updated>2009-05-17T07:49:19.481-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video wall'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><title type='text'>Video Wall</title><content type='html'>เคยบอกไว้ในบล็อกแล้วว่าสิ่งที่อยากทำอย่างหนึ่งก็คือ video wall ตอนนี้ลองทำขึ้นมาได้ขั้นหนึ่งแล้วก็เอามาโชว์ซะหน่อย client คือ laptop สามารถส่ง data และ event ไปให้ server ได้ ส่วน server ที่ render ภาพสองตัวนั้นคือ Windows ตัวหนึ่ง อีกตัวหนึ่งคือลินุกส์จ้า ส่วนไอ้ภาพเส้นๆ นั้นก็แทนอินพุตภาพวิดิโอจริงๆ แต่ทำไม่ทันเอาแบบว่า random วาดเส้นทุกๆเฟรมไปก่อน เอิ๊กๆ&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-cac371bced982b82" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v9.nonxt2.googlevideo.com/videoplayback?id%3Dcac371bced982b82%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1331239983%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D2DE158024CBB4B37F0A1DE732D340006F906FA52.51B76FE08A3E634121F2481B32593F55CFACABC8%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dcac371bced982b82%26offsetms%3D5000%26itag%3Dw160%26sigh%3D2R0GTjfdZy8vBaBSAk5pgx4n_as&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v9.nonxt2.googlevideo.com/videoplayback?id%3Dcac371bced982b82%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1331239983%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D2DE158024CBB4B37F0A1DE732D340006F906FA52.51B76FE08A3E634121F2481B32593F55CFACABC8%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dcac371bced982b82%26offsetms%3D5000%26itag%3Dw160%26sigh%3D2R0GTjfdZy8vBaBSAk5pgx4n_as&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3994895416828900595-7086332921210641885?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=cac371bced982b82&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/7086332921210641885/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=7086332921210641885' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/7086332921210641885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/7086332921210641885'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2009/05/video-wall.html' title='Video Wall'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-1528590659348076264</id><published>2009-05-10T17:46:00.000-07:00</published><updated>2009-05-15T07:32:22.135-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kdevelop'/><title type='text'>ปัญหา Kdevelop กับ libtool</title><content type='html'>รู้สึกว่าจะมีปัญหาหาตั้งแต่ kubuntu 8.10 มาแล้ว ถ้าเราเลือกใช้ kdevelop 3.5.x แทนที่จะเป็น 4 beta ซึ่งก็คงต้องเป็นอย่างนั้นเพราะตัว 4beta มันไม่มี project template มาให้เลยยกเว้น qt&lt;br /&gt;&lt;br /&gt;พอมาลอง build โปรแกรมที่สร้างด้วย template C++ sample hello world จะพบว่า build ไม่ผ่าน ติดที่ libtool จากการค้นในเน็ตปรากฏว่า เพราะ template ของ kdevelop ใช้เวอร์ชั่นเก่ากว่าและไม่ได้เรียกใช้จากตัวที่เราลง package&lt;br /&gt;&lt;br /&gt;ดังนั้นวิธีแก้ก็คือ copy ltmain.sh จาก /usr/share/libtool/config ไปทับในโปรเจ็กของเรา แล้ว distclean หลังจากนั้น ลอง build อีกที ฉลุย&lt;br /&gt;&lt;br /&gt;ยังงี้คงต้องเรียกว่าเป็น bug แต่เค้าก็เจอกันนานแล้วนะ ไม่ยักแก้แฮะ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3994895416828900595-1528590659348076264?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/1528590659348076264/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=1528590659348076264' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/1528590659348076264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/1528590659348076264'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2009/05/kdevelop-libtool.html' title='ปัญหา Kdevelop กับ libtool'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-2086582868496002734</id><published>2009-05-10T03:45:00.000-07:00</published><updated>2009-05-15T07:32:52.036-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kubuntu'/><title type='text'>ลง kubuntu 9.04 กับเครื่องที่มีการ์ดจอ ati</title><content type='html'>เอาอีกแล้วครับท่าน ปัญหาใหญ่ที่สุดอันหนึ่งของ linux ก็คงเป็นการ install นี่แหละ เห็นมีปัญหาทุกเวอร์ชั่น ผมได้ทำการลง kubuntu 9.04 ลงบน lenovo ideapad u330 ซึ่งมีความสามารถในการสลับการ์ดจอได้ว่าจะใช้ discrete ซึ่งเป็น ati hd3450 หรือจะเป็น onboard ซึ่งเป็น intel หลังจากลองผิดลองถูกอยู่สองวันหนึ่งคืน และทำการพิสูจน์กับเครื่อง desktop ซึ่งตัดใจลงใหม่เพราะไม่มีปัญญาเซ็ตคอนฟิกให้จอใหม่ที่เพิ่งซื้อมาคืิอ benq t2200hd สิ่งที่ผมได้รู้คือ&lt;br /&gt;&lt;br /&gt;     หากท่านต้องการลง kubuntu ในเครื่องของท่าน ขอแนะนำว่าให้ลง 8.10 ก่อน เพราะมันสามารถ detect จอและสร้างคอนฟิกของ x ได้ถูกต้องที่สุด แต่หลังจากลงสำเร็จแล้วควรจะอัพเกรดไปเป็น 9.04 เพราะผมว่ามันใช้งานดีกว่านะ&lt;br /&gt;     แต่ก่อนที่จะอัพเกรด สำหรับเครื่องที่เป็นการ์ดจอ ati ควรจะติดตั้ง driver fglrx ให้เสร็จเรียบร้อยเสียก่อน แนะนำให้ใช้ตัวล่าสุด ตอนนี้ก็คือ 9.4 ถ้าทำได้เรียบร้อยดีไม่มีปัญหาก็ค่อยทำการอัพเกรดต่อไป&lt;br /&gt;     ส่วนการอัพเกรด ถ้ารอการอัพเกรดแบบผ่านอินเตอร์เน็ตคงรอกันนานมากๆ ให้ใช้วิธีนี้แทนคือ ดาว์นโหลดตัว install แบบ alternate มา จะ mount หรือเขียนลงแผ่นก็ได้ แล้วเรียกโปรแกรมสำหรับอัพเกรดขึ้นมา วิธีนี้จะไวกว่าเพราะเราสามารถหา mirror ในไทยเพื่อดาว์นโหลด iso มาได้อย่างรวดเร็ว ซึ่งไม่เหมือนกับการ download มาทีละ package ซึ่งมันช้าโคตรๆ&lt;br /&gt;&lt;br /&gt;     อ้อ ส่วน เจ้า ideapad ของผม ต้องใข้การเซ็ต bios เพื่อเลือกใช้การ์ดจอแยกไปเลย จึงจะทำการลงได้อย่างไม่มีปัญหาอะไร&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3994895416828900595-2086582868496002734?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/2086582868496002734/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=2086582868496002734' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/2086582868496002734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/2086582868496002734'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2009/05/kubuntu-904-ati.html' title='ลง kubuntu 9.04 กับเครื่องที่มีการ์ดจอ ati'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-6192887386608118152</id><published>2009-03-04T08:37:00.000-08:00</published><updated>2009-03-04T08:54:03.881-08:00</updated><title type='text'>Smooth Streaming with IIS 7</title><content type='html'>เจ๋งมากค้าบ ทดลอง install และทดสอบด้วยตัวเองแล้วหลังจากเข้าไปลองที่ akamai โดยใช้ silverlight เป็น client ชอบตรง แทบไม่ต้องทำไรเลย (หรือเพราะรันจากตัวอย่างที่เค้าทำมาให้แล้วเลยง่ายก็ไม่รู้) ก็สามารถเปิดให้บริการได้แล้ว เดี๋ยวคงเข้าไปเจาะลึกการทำงานมันอีกที&lt;br /&gt;&lt;br /&gt;กะว่าจะลอง feature อื่นๆ เช่น web playlist ด้วย อ้อแล้วก็ live streaming (อันนี้พ้อยต์เลย) แต่มันต้องการ windows 2008 ยังไม่มีอะ&lt;br /&gt;&lt;br /&gt;สุดท้ายก็คงต้องเอาไปเปรียบเทียบกับ streaming server ตัวอื่นๆดูด้วย เช่น darwin, vlc แล้วมาดูกันอีกที แต่ว่าตอนนี้เกิดสนใจ silverlight ขึ้นมาบ้างแล้วสิ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3994895416828900595-6192887386608118152?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/6192887386608118152/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=6192887386608118152' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/6192887386608118152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/6192887386608118152'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2009/03/smooth-streaming-with-iis-7.html' title='Smooth Streaming with IIS 7'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-2426856144372167051</id><published>2009-01-28T09:48:00.000-08:00</published><updated>2009-01-28T09:52:34.955-08:00</updated><title type='text'>เจ็บใจ Gimbal lock</title><content type='html'>นึกว่าจะสำเร็จเสร็จแล้วเชียว สวรรค์ล่มเพราะเจ้า Gimbal lock นี่เอง ต้องมานั่งรื้อใหม่หมด ถ้าทำแค่ Tilt Sensor ก็ไม่มีปัญหา แต่พอคิดถึงว่ามันจะกลายเป็นก้างชิ้นใหญ่ในอนาคต สู้ลงมือเปลี่ยนซะตอนนี้เลยดีกว่า เหนื่อยจริงๆกลับไปอ่านเลขอีกมากมาย...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3994895416828900595-2426856144372167051?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/2426856144372167051/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=2426856144372167051' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/2426856144372167051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/2426856144372167051'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2009/01/gimbal-lock.html' title='เจ็บใจ Gimbal lock'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-5791419579195358346</id><published>2009-01-12T19:52:00.000-08:00</published><updated>2009-01-12T20:42:45.578-08:00</updated><title type='text'>พายเรือวนอยู่ในอ่าง kalman</title><content type='html'>หายไปนาน เอาเวลาไปทุ่มกับ imu ทั้งวันทั้งคืนมาร่วมสองเดือน ยังไปไม่ถึงไหนเท่าไรเลย เนื่องด้วยความยากและการต้องเคาะสนิมเลขออกมาใช้&lt;br /&gt;&lt;br /&gt;ความยาก มันมาจากไหนเหรอ อย่างแรก จากความผิดพลาดของค่าที่อ่านได้จาก sensor แต่ละตัว อันนี้ก็ขึ้นอยู่กับความถูกแพงของ sensor ที่เราใช้ด้วย&lt;br /&gt;&lt;br /&gt;1. accelerator ชื่อมันบอกว่าเป็นการวัดความเร่ง (dynamics) ก็ดีพอใช้ได้สำหรับค่าความเร่ง ในแนว xy ซึ่งสมมติว่าไม่มีแรง g เข้ามาเกี่ยวนะ แต่ที่เราอยากได้มันคือค่า position (ทำไมต้องเขียนเป็นภาษาอังกฤษด้วยนะ) ลองดุว่า ค่า a ที่เราได้จาก sensor จริงๆมันคือ&lt;br /&gt;&lt;br /&gt;a_sensor = a_real + a_bias + a_noise&lt;br /&gt;&lt;br /&gt;พอ integrate สองครั้งเพื่อให้ได้ค่า position ค่า bias และ noise จึงเข้ามามีผลอย่างมากมาย ถ้าเราไม่มีการวัดค่า position จริงๆ เข้ามาเป็น input ป้อนกลับ เพื่อไว้แก้ค่า error เพื่อใช้ในการทำนายค่าล่วงหน้าใน kalman filter มันก็ช่วยอะไรไม่ได้มาก ใช้วิธีการเขียนโปรแกรมธรรมดา ทำ low pass filter เอาก็พอแล้ว ที่ว่า พอแล้ว หมายถึงมันได้ดีที่สุดเท่านี้แหละ&lt;br /&gt;&lt;br /&gt;ผลจากการที่มันสามารถวัดความเร่งได้ แน่นอนว่ามันต้อง sense แรง g (ที่เป็น bias ในสภาวะ dynamics) ได้ กลายเป็นประโยชน์เมื่อทำให้เราสามารถวัดมุมเอียงได้จากการแตกแรง g ในสภาวะ static เรียกว่ามันกลายเป็น tilt sensor ไป แป่ว&lt;br /&gt;&lt;br /&gt;2. gyroscope เป็น sensor วัดความเร็วเชิงมุม อันนี้ง่ายขึ้นมาหน่อยเพราะ อินทิเกรตทีเดียว ก็ได้ ค่ามุมแล้ว เรียกว่าเราสามารถรู้ว่าเราหมุนไปกี่องศาในแต่ละแกนเมื่อเวลาผ่านไป เรียกว่าเรารู้ orientation ของตัวเราได้ ข้อเสียมันมี(ทำไมต้องมีด้วยนะ) มันสามารถวัดอย่างถูกต้องได้เพียงช่วงเวลาสั้นๆ หลังจากนั้นแล้วค่าที่วัดได้จะมี bias เรียกว่า drift จะต้องมีกระบวนการขจัดเจ้าสิ่งนี้ออกปาย&lt;br /&gt;&lt;br /&gt;3. magnetometer เค้าเปรียบเทียบว่า ถ้าไม่มี ทิศทางก็เหมือนเราอยู่ในห้องมืด ค่าที่ได้จาก sensor ทั้งสองตัวข้างบน ไม่สามารถบอกได้ว่าเราอยู่ตรงไหน(อ้างอิงกับสิ่งหนึ่งสิ่งใดภายนอก) เจ้า sensor ตัวนี้มีดีตรงมัน sense สนามแม่เหล็กโลกได้ เหมือนเข็มทิศนั่นเอง ข้อเสียของมันก็คืออะไรที่มีคุณสมบัติแม่เหล็กมันก็ sense ได้ทั้งนั้น แปลว่ามันไม่ทนต่อสัญญาณรบกวนนั่นเอง แป่ว(อีกที)&lt;br /&gt;&lt;br /&gt;เมื่อเอาเจ้าพวกนี้มายำรวมๆกันเรียกให่เท่ห์ว่า fusion ก็จะได้ sensor ที่บอกได้ทั้ง orientation และ positioning ถ้าใช้ร่วมกับ GPS ก็จะได้ localization ด้วย แต่มันก็ต้องมีศิลปะในการยำไม่ใช้น้อย&lt;br /&gt;&lt;br /&gt;ประโยชน์ของมันนั้นมีมากหลาย ถ้ามันเวิร์คอะนะ ทั้งเรื่อง motion capture ที่ตัวผมเองสนใจ และนั่งหน้าดำคร่ำเครียดพัฒนาอยู่, uav (อากาศยานไร้คนขับ), camera match moving สำหรับทำ realtime video composite นี่เอาแค่หย่ายๆนะ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3994895416828900595-5791419579195358346?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/5791419579195358346/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=5791419579195358346' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/5791419579195358346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/5791419579195358346'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2009/01/kalman.html' title='พายเรือวนอยู่ในอ่าง kalman'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-1046763704861993332</id><published>2008-11-16T19:53:00.000-08:00</published><updated>2008-11-17T07:39:54.450-08:00</updated><title type='text'>windows driver development note # 4</title><content type='html'>วันนี้มาว่ากันที่ USB บ้าง ตัว device จะถูกเรียกว่า client และเครื่องคอมพิวเตอร์ของเราที่มี USB port จะเรียกว่า host&lt;br /&gt;ตัว client มันก็จะรัน firmware สำหรับติดต่อพูดคุยกับ host และเพื่อบ่งบอกตัวเองว่าเป็นใคร (vendor id, product id, version id) ถูกคอนฟิกมาเพื่อติดต่อกับ host ในลักษณะใด โดยจะมีรูปแบบของคอนฟิกเป็นดังตัวอย่างข้างล่างนี้&lt;br /&gt;&lt;br /&gt;configuration 1&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;- interface 0&lt;br /&gt;&lt;ul&gt;&lt;li&gt;- endpoint (หรือเรียกว่า pipe) 0 ชนิด interrupt ทิศทาง IN (from device to host)&lt;br /&gt;- endpoint 1 ชนิด Bulk ทิศทาง OUT (from host to device)&lt;br /&gt;- ...&lt;/li&gt;&lt;/ul&gt;- interface 1&lt;br /&gt;- ...&lt;/li&gt;&lt;/ul&gt;คอนฟิกอาจมีมากกว่าหนึ่งได้ แต่ active ใช้งานได้ทีละคอนฟิกเดียวเท่านั้น นอกจากนี้ device จะต้องมี default pipe เพื่อให้ host สามารถขอ descriptor ของ configuration ของ device นั้นๆ เมื่อเวลาที่มัน ถูก plug-in เข้าไป&lt;br /&gt;&lt;br /&gt;packet คือ บล็อกของ data ทีส่งระหว่าง device กับ host ในหนึ่ง packet ประกอบด้วย synchronization signals, packet id (pid), data และ CRC check bytes&lt;br /&gt;&lt;br /&gt;pid มี 10 ค่า แบ่งได้เป็น 4 ชนิด คือ&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;token คือ OUT, IN , SETUP, SOF&lt;br /&gt;data คือ DATA0, DATA1&lt;br /&gt;handshake คือ ACK, NAK, STALL&lt;br /&gt;special คือ PRE&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;การทำ transaction ระหว่าง device กับ host นั้นจะเริ่มด้วย การส่ง token ตามด้วย data และ handshake ซึ่งจะมีทิศทางตรงกันช้ามกับการส่ง data&lt;br /&gt;&lt;br /&gt;ชนิดของการ transfer หรือการทำ transaction นั้น มี 4 ชนิดด้วยกันคือ control, interrupt, bulk และ isochronous&lt;br /&gt;&lt;br /&gt;ใน packet แบบ token นั้นจะมี address และ endpoint เพื่อบ่งชี้ device และ endpoint ที่ต้องการจะติดต่อด้วย&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3994895416828900595-1046763704861993332?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/1046763704861993332/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=1046763704861993332' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/1046763704861993332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/1046763704861993332'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2008/11/windows-driver-development-note-4.html' title='windows driver development note # 4'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-2003244339520069770</id><published>2008-10-22T20:33:00.001-07:00</published><updated>2008-10-22T20:55:25.484-07:00</updated><title type='text'>windows driver development note # 1</title><content type='html'>เป็นเพราะระบบดีไวซ์บนเมนบอร์ดนั้นเชื่อมต่อกันแบบต้นไม้หรือลูกโซ่ ดังนั้นระบบ driver หรือ software ที่ใช้ติดต่อกับดีไวซ์นั้นๆก็มีโครงสร้างเช่นเดียวกัน การทำงานตอบสนอง request จาก user mode ที่เป็น api เช่น read, write, open, close จะถูกเปลี่ยนมาเป็นรูปแบบของ message ที่วิ่งไปและกลับตามลำดับชั้นของ driver ใน kernel mode ที่เรียกว่า irp ซึ่ง irp จะประกอบไปด้วย header และ data structure ทีสัมพันธ์กับ driver แต่ละตัว เรียกว่า IO_STACK_LOCATION เมื่อ driver ทำงานก็จะทำการเปลี่ยนแปลงหรือเขียนข้อมูลลงในโครงสร้างข้อมูลที่ว่านี้&lt;br /&gt;&lt;br /&gt;    นอกจาก function driver ที่ติดต่อกับดีไวซ์จริงๆแล้ว ยังมี driver อีกชนิดหนึ่งชื่อ filter driver มันมีความสามารถในการเปลี่ยนแปลงแก้ไขข้อมูลที่ได้จากการทำงานของ function driver โดยการที่เรา install มันเอาไว้ใน chain ก่อนหรือหลัง function driver เพื่อประโยชน์บางอย่าง เช่น ทำการ encrypt ข้อมูลก่อนจะส่งกลับขึ้นไปให้ user mode&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/3994895416828900595-2003244339520069770?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/2003244339520069770/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=2003244339520069770' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/2003244339520069770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/2003244339520069770'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2008/10/windows-driver-development-note-1.html' title='windows driver development note # 1'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-6268219052315359453</id><published>2008-10-03T09:43:00.000-07:00</published><updated>2008-10-03T09:55:28.043-07:00</updated><title type='text'>มาสร้าง driver กันเหอะ</title><content type='html'>ความเดิมจากตอนที่แล้ว พอจะเริ่มเขียนตอนต่อไป ความขี้เกียจเข้าครอบงำทันที จึงเปลี่ยนวิธีการ น่าจะดีกว่า ตั้งธงเอาไว้ว่า อยากจะทำ driver อะไร แล้วค่อยๆทำไป step by step แล้วก็มาเล่าให้ฟังไปด้วย น่าจะเวอร์คกว่า&lt;br /&gt;&lt;br /&gt;    แต่ เอ ทำอะไรดีละ...&lt;br /&gt;&lt;br /&gt;    เอางี้ดีกว่า เรามาศึกษา USB driver กันดีกว่า ทำ hard lock เล่นๆดู โดยการใช้ flash drive ด้วยการ encrpyt ไฟล์ที่ใส่ serial number ไว้ แล้วให้โปรแกรมที่เราต้องการ protect อ่านออกมาตรวจสอบถ้า decrypt ได้ถูกต้องก็รันโปรแกรมต่อไป ถ้าไม่ถูกหรือหาไฟล์บน flash drive นั้นไม่เจอ ก็รันโปรแกรมไม่ได้&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/3994895416828900595-6268219052315359453?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/6268219052315359453/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=6268219052315359453' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/6268219052315359453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/6268219052315359453'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2008/10/driver.html' title='มาสร้าง driver กันเหอะ'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-7516368276127808070</id><published>2008-09-28T00:07:00.000-07:00</published><updated>2008-09-28T00:25:17.089-07:00</updated><title type='text'>ATI - ตัดใจไม่ลง</title><content type='html'>อัพเดตล่าสุด กลับมาใช้ ati อีกแล้วอะ ด้วยความตะขดตะขวงใจ และตามประสาชอบมวยรอง ตอนนี้ fglrx รองรับ tvtime แล้วนะ มีคำสั่งที่สามารถมอนิเตอร์ดูคล็อก ดูอุณหภูมิของ GPU ได้ ก็ดีสำหรับงานภาคสนามนะ&lt;br /&gt;&lt;br /&gt;ส่วนที่ไม่เข้าใจ และยังไม่รองรับ นั่นก็คือ pbo - pixel buffer object ก็ไม่รู้ว่าทำไมมันไม่ยอมทำสักที แต่ถึงกระนั้นก็เหอะ ข้อดีที่ทำให้ยอมรับมันได้กับการใช้ 4850 นะก็คือ กิน cpu น้อยลงมาก แถมการไม่ใช้ pbo ก็ให้ผลลัพธ์ที่ดี ยอมรับได้อีกด้วย อีกอย่างการรันโปรแกรมก็ไม่เกิดแครชเลย ทั้งทั้งที่บน nvidia นั้น 50-50 เลยแหละ&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/3994895416828900595-7516368276127808070?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/7516368276127808070/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=7516368276127808070' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/7516368276127808070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/7516368276127808070'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2008/09/ati.html' title='ATI - ตัดใจไม่ลง'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-7157970543121506115</id><published>2008-08-01T07:31:00.000-07:00</published><updated>2008-09-16T09:26:11.982-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Driver'/><category scheme='http://www.blogger.com/atom/ns#' term='WDF'/><title type='text'>WDF Part 0</title><content type='html'>ห่างหายไปนาน มาคราวนี้ย้ายฝั่งกลับมา Windows บ้าง แต่จะกลับมาทั้งทีต้องมีอะไรเด็ดๆมาว่ากันยาวๆหน่อย น่าจะสนุกแน่ เพราะมีครบทั้ง hardware และ document มาให้ติดตามและทดลองกันให้เห็นจะจะ ไหนๆก็ซื้อมาดองไว้นานได้ที่และ&lt;br /&gt;&lt;br /&gt;   อันนี้เนี่ย เมื่อก่อนเนี้ยเป็นความใฝ่ฝันอันหนึ่งเลย แต่ด้วยเหตุว่ามันทำเงินให้ไม่ได้ และงานด้านนี้ก็โคตรหายากในเมืองไทย(ก็ต้องกิน ต้องใช้อะนะ) และจะศึกษามันก็ไม่ใช่เรื่องง่ายๆ ก็เลยพักไว้ก่อนแต่ก็ยังคงติดตามข่าวคราวอยู่สม่ำเสมอ เนื่องด้วยได้รับ magazine ชื่อ The NT insider อยู่เป็นประจำ(ฟรีอีกต่างหาก)มาหลายปีแล้ว ส่งตรงมาจาก OSR.com ก็ขอบคุณงามๆไว้ ณ ที่นี้ด้วย ในความกรุณา developer ไทยจนๆคนหนึ่ง กระทั่งทนหน้าด้านรับเค้าฟรีๆต่อไปไม่ไหว ก็เลยช่วยอุดหนุนโดยการซื้อ บอร์ดทดลองเพื่อการพัฒนาสิ่งที่กำลังจะพูดถึงต่อไปนี้&lt;br /&gt;&lt;br /&gt;   เกริ่นมาตั้งนานแล้ว บอกก็ได้ว่า สิ่งที่จะเขียนต่อไปในซีรี่ย์นี้ก็เรื่อง การพัฒนา driver ด้วย Windows Driver Foundation (WDF) ก็รู้อะนะว่าคงมีคนสนใจน้อยมากหรือไม่มีเลย แต่ถ้าไม่เขียนไว้ มันก็คงไม่มีต่อไป ก็หวังว่าสักวันมันคงทำให้ใครสักคนที่สนใจเริ่มต้นพัฒนาซอฟแวร์ชนิดนี้ได้ง่ายขึ้น ก็ถือเป็นการสืบทอดเจตนารมย์ของ OSR ต่อมาละกัน&lt;br /&gt;&lt;br /&gt;   เข้าเรื่องนิดหน่อยเลยดีกว่า พอเข้ายุค windows98, Windows2000 เรื่อยมาเนี่ย สถาปัตยกรรมของวินโดวส์ก็เปลี่ยนไปจากเดิมมาก การเขียนโปรแกรมเพื่อติดต่อกับอุปกรณ์ภายนอกนั้นต้องทำผ่านไดรเวอร์เป็นหลัก ดูง่ายๆเลยก็เช่น ปรินเตอร์ หรือ การ์ดจอ การ์ดเสียง หรืออุปกรณ์ที่ต่อภายนอกอื่นๆผ่านทางพอร์ตต่างๆ เข่น USB ก่อนใช้งานเราต้องลงไดรเวอร์ เพื่อให้วินโดวส์รู้จักเสียก่อนจึงจะสามารถใข้งานได้อย่างเต็มที่&lt;br /&gt; &lt;br /&gt;   ที่นี้ถ้าเราอยากสร้างดีไวซ์ขึ้นมาสักตัวหนึ่งเพื่อขายหรือใช้เองและต้องมีการติดต่อกับคอมพิวเตอร์เพื่อรับส่งคำสั่งและข้อมูลระหว่างกัน ทั้งสองฝั่งก็ต้องรู้จักกัน คุยกันรู้เรื่องได้ตลอดรอดฝั่ง มันก็ต้องมีวิธีการน่ะ ทางด้านตัววินโดวส์เองก็ต้องทำตัวเป็นตัวกลางเพื่อให้โปรแกรมที่เราใช้สามารถติดต่อสื่อสารไปถึงอุปกรณ์ที่ต่ออยู่ได้ ด้วยเหตุนี้เองการพัฒนาไดรเวอร์จึงเป็นสิ่งจำเป็นและดูเป็นศาตร์ด้านมืด(แปดด้าน) เนื่องจากต้องรู้การทำงานของเคอร์เนลของวินโดวส์และอาจจะต้องรู้การเขียนโปรแกรมบนอุปกรณ์นั้นควบคู่ไปด้วย ถ้าไม่มีใครช่วยทำให้อะนะ&lt;br /&gt;&lt;br /&gt;   เมื่อก่อนเคยพยายามศึกษามันหลายทีแล้ว แต่ไปไม่ถึงไหนสักทีด้วยเหตุผลที่บอกๆไปข้างต้น แต่มาบัดนี้ ด้วย WDF จะทำให้งานของเราง่ายขึ้น รึเปล่า? ก็ลองติดตามกันต่อๆไปละกัน วันนี้เมื่อยแล้ว พอแค่นี้ก่อน&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3994895416828900595-7157970543121506115?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/7157970543121506115/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=7157970543121506115' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/7157970543121506115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/7157970543121506115'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2008/08/wdf-part-0.html' title='WDF Part 0'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-3845297190870280789</id><published>2008-05-18T20:50:00.000-07:00</published><updated>2008-05-18T21:35:11.161-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ati'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>ati ผิดหวังอย่างแรง</title><content type='html'>สืบเนื่องจากการทดลองลงเครื่อง pheonom + HD3870 ก็เลยซื้อมาทดลองใช้กับ project นี้ดูบ้าง ก็รากฏว่า ต้องผิดหวังอย่างแรง ตั้งแต่การลงที่ค่อนข้างยาก ผมลงไม่สำเร็จบน kubuntu 7.04 จึงต้องลงเครื่องใหม่เป็น 7.10 แล้วใช้ script จำพวก envy มาช่วยลงก็ถึงจะทำได้อย่างเรียบรอยดีไม่มีปัญหา&lt;br /&gt;&lt;br /&gt;    แต่ปัญหาหลักที่ทำให้ต้องยกเลิกความคิดที่จะใช้การ์ดนี้ก็คือ มันไม่สามารถเล่น tvtime ได้ เนื่องจาก fglrx ซึ่งเป็น driver ของการ์ด มันไม่ support pixel format YUY2 ซึ่ง tvtime ต้องการ&lt;br /&gt;&lt;br /&gt;    เซ็งเลย เพราะ performance เวลารัน glxgears เมื่อเทียบกับ 8600gt นั้น มันทำ frame rate ได้ดีกว่าถึง 2 เท่า เดี๋ยวจะไปซื้อ 9600 มาลองเปรียบเทียบกันอีกที&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3994895416828900595-3845297190870280789?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/3845297190870280789/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=3845297190870280789' title='1 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/3845297190870280789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/3845297190870280789'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2008/05/ati.html' title='ati ผิดหวังอย่างแรง'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-4433719724338499269</id><published>2008-05-13T23:46:00.000-07:00</published><updated>2008-05-14T00:02:56.853-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wxWidgets'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><title type='text'>OpenGL ตอนที่ 2</title><content type='html'>ในที่สุดก็ใช้งาน OpenGL เบื้องต้นได้ ที่บอกว่าเบื้องต้นก็เพราะ มันดูเหมือนไม่ได้ช่วยให้ CPU ทำงานน้อยลงเลย หรือมันถูก block ไว้ก็ไม่รู้ แต่มันก็ช่วยให้ frame rate ดีขึ้นแหละนะ หลักๆที่แก้ไป ไม่ใช่เรื่อง multi-thread เพราะออกแบบให้ copy ลง memory ก่อนแล้วค่อยให้ gui thread เรียก glTexSubImage2D อยู่แล้ว แต่เป็นเรื่องการทำงานร่วมกันระหว่าง wxGLCanvas กับ glut และ OpenGL มากกว่า โดยไปออกแบบใหม่ให้ลด layer ของ window ลง ลองไปอ่านใน wiki ดูนะคร้าบ อีกอันหนึ่งคือ การสร้าง texture object ดูเหมือนว่าเราจะสร้างใน constructor ของ wxGLCanvas ไม่ได้นะ ต้องให้มัน show ก่อน&lt;br /&gt;&lt;br /&gt;อย่างไรก็ดี คงจะต้องปรับปรุงกันต่อไป เห็นมีการพูดถึง Pixel Buffer Object ไม่รู้ว่าจะช่วยได้ป่าว ต้องลองดูตามที่ไปหามา(อีกแล้ว)&lt;br /&gt;&lt;br /&gt;1. Create PBO&lt;br /&gt;2. map buffer&lt;br /&gt;3. give pbo pointer to decoder thread (or put it in pool of free pbo's)&lt;br /&gt;4. decoder copy frame in pbo memory and notify render thread about that, or decoder ask pool for free pbo pointer and copy image data and notify render thread about that.&lt;br /&gt;5. render thread unmap pointer and call glTexSubImage2D&lt;br /&gt;6. render thread mark that pbo to map its pointer again at next frame (or two frames later)&lt;br /&gt;7. at next frame (or two frames later) map pbo pointer and give it to decoder thread (or pool)&lt;br /&gt;&lt;br /&gt;Using pool you can handle multiple video stream transfers.&lt;br /&gt;&lt;br /&gt;ก๊อปมาจาก &lt;a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&amp;amp;Number=235782"&gt;ที่นี่&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/3994895416828900595-4433719724338499269?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/4433719724338499269/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=4433719724338499269' title='1 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/4433719724338499269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/4433719724338499269'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2008/05/opengl-2.html' title='OpenGL ตอนที่ 2'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-8802795024662620421</id><published>2008-05-04T17:39:00.000-07:00</published><updated>2008-05-04T19:15:43.331-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wxWidgets'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><title type='text'>OpenGL and Multithreading</title><content type='html'>&lt;span id="body3"&gt;    หลังจากที่ต้องการวาดภาพที่ได้จากหลายๆตัวพร้อมๆกัน โดยใช้ multi-thread นั้นก็พบว่า ถ้าไม่ใช้ความสามารถของการ์ดจอเข้ามาช่วยละก็พอแต่ละ window มันใหญ่ขึ้น ก็จะกิน cpu แบบมหาศาล แล้วจะ crash ไปในที่สุด ไม่สามารถรันติดต่อกันเป็นเวลานานๆได้ นั่นเป็นเรื่องที่ยอมรับไม่ได้เลยทีเดียว (จากการทดสอบ ถา้เปิดแค่สองกล้อง จะรันได้ข้ามวัน แต่ถ้าเปิดสี่กล้อง สองชั่วโมงก็ตายแว้วว) อันนี้ไม่เกี่ยวกับเมมโมรี่ แต่สังเกตได้ว่าเกิดจากการที่ main thread ซึ่งทำหน้าที่วาดที่ทุกอย่างนั้นทำงานช้าเกินไป&lt;br /&gt;&lt;br /&gt;จากที่เล่ามาข้างบนจึงมาคิดว่า คงต้องให้การ์ดจออันแสนแพง ทำงานคุ้มค่าหน่อย วิธีหนึ่งที่ทำได้ง่ายๆคือใช้ OpenGL ใช่มั้ยครับ แต่ แต่ช้าแต่ ช้าก่อนครับ มันไม่ง่ายอย่างนั้นน่ะสิ เพราะตอนนี้เราทำงานแบบ multihreading ซึ่งตัว OpenGL มันเหมือนจะไม่ได้ออกแบบมาเพื่อการนี้สักเท่าไร ถึงกระนัน้ก็ตาม ไม่ใช่ผมเป็นคนแรกที่คิดจะทำแบบนี้แน่่นอน ว่าแล้วก็ค้นดูจาก google จนได้ link ไปที่ forum ซึ่งมีการพูดคุยเรื่องนี้อยู่ และมีคนแนะนำไว้ว่าอย่างนี้&lt;br /&gt;&lt;br /&gt;(I copied this below text from this &lt;a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&amp;amp;Number=234543"&gt;link&lt;/a&gt;)&lt;br /&gt;The basic problem with multithreading in OGL is the fact that OGL context, which contains entire state of the OGL, can be at one time bound to only one thread. Because of this you can not simultaneously modify it from two threads. You basically have three options.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;You can create one context for each thread and enable sharing of display lists and textures between them. It is likely that this path is not too well supported by the drivers.&lt;/li&gt;&lt;li&gt;You can load and prepare the resources by the second thread and let the main thread do the creation call into OGL.&lt;/li&gt;&lt;li&gt;If the resource type supports it (e.g. VBO), you can map its memory by the main thread. Fill it in the second thread and unmap it by the main thread&lt;/li&gt;&lt;/ul&gt;    ประเด็นมันอยู่ตรงนี้เอง นั่งทำอยู่สองวัน ได้แค่หน้าจอดำๆ ต้องกลับไปแก้ไขใหม่ ได้เรื่องอย่างไรแล้วจะเอามาให้ชมเป็นตอนต่อไป อ้อ การเขียน OpenGL บน wxWidgets นั้น เค้ามี class wxGLCanvas่ กับ wxGLContext มาให้ใช้ ช่วยให้สะดวกขึ้นมิใช่น้อย&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3994895416828900595-8802795024662620421?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/8802795024662620421/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=8802795024662620421' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/8802795024662620421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/8802795024662620421'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2008/05/opengl-and-multithreading.html' title='OpenGL and Multithreading'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-8252550609586187204</id><published>2008-04-30T01:39:00.000-07:00</published><updated>2008-12-10T19:18:18.780-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wxWidgets'/><category scheme='http://www.blogger.com/atom/ns#' term='Video For Linux'/><title type='text'>wxWidgets part: wxThread</title><content type='html'>&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_PsqquBoCRIQ/SBgxtQOEGmI/AAAAAAAAAAk/O_ry3qCGs1U/s1600-h/snapshot11.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5194956823689697890" style="margin: 0px auto 10px; display: block; text-align: center;" alt="" src="http://4.bp.blogspot.com/_PsqquBoCRIQ/SBgxtQOEGmI/AAAAAAAAAAk/O_ry3qCGs1U/s320/snapshot11.jpg" border="0" /&gt;&lt;/a&gt;    หลังจากที่สร้้างฟอร์มเสร็จอย่่างสวยงามได้ดังใจมาแล้ว ก็ถึงคราวใส่อะไรๆลงไป รูปข้างบนผมได้เขียนโค้ดการรับภาพจากกล้อง cctv ซึ่งต่อกับการ์้ด DVR แบบ real-time 4 channel โดยใช้ API คือ Video For Linux 2 และใช้ OpenCV library ช่วยในการจัดการภาพในขั้นตอนต่อๆไป พอดีว่ามีสายอยู่สามเส้นจึงทดลองต่อกล้องได้สามตัว&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;    wxWidgets ทำให้ผมประทับใจอีกครั้ง ด้้วยการสนับสนุนการเขียน multi-thread และคำนึงถึงการติดต่่อระหว่าง worker thread และ main thread ซึ่งปรกติจะรัน GUI ทำให้ออกแบบโปรแกรมและเขียนโค้ดได้ง่ายขึ้น&lt;br /&gt;&lt;br /&gt;  อย่างที่ผมทำนั้น ได้ใช้วิธีการสร้าง worker thread ซึ่งจะทำหน้้าที่ติดต่่อกับกล้อง 1 thread ต่อ 1 ตัวแล้วก็ส่งภาพมาให้ window object แต่ละช่องทำการวาด&lt;br /&gt;&lt;br /&gt;  จากเอกสารและตัวอย่างนั้นได้แนะนำเอาไว้ว่า&lt;br /&gt;&lt;br /&gt;  1. ไม่ควรมีการเรียก GUI function จาก thread เกินกว่า 1 thread&lt;br /&gt;  2. ถ้าต้องการทำ ให้ใช้วิธี post event แทนซึ่ง function ที่สนับสนุนนั้นเป็น thread safe จึงไม่ต้องกังวล&lt;br /&gt;  3. อีก 2 ฟังก์ชั่นที่สำคัญคือ wxMutexGuiEnter และ wxMutexGuiLeave&lt;br /&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/3994895416828900595-8252550609586187204?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/8252550609586187204/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=8252550609586187204' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/8252550609586187204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/8252550609586187204'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2008/04/wxwidgets-wxthread.html' title='wxWidgets part: wxThread'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_PsqquBoCRIQ/SBgxtQOEGmI/AAAAAAAAAAk/O_ry3qCGs1U/s72-c/snapshot11.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-2243894971450536390</id><published>2008-04-20T07:39:00.000-07:00</published><updated>2008-12-10T19:18:19.096-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wxWidgets'/><category scheme='http://www.blogger.com/atom/ns#' term='wxFormBuilder'/><title type='text'>wxFormBuilder part: 3</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_PsqquBoCRIQ/SAtV2wl_BuI/AAAAAAAAAAc/1XixzYJuuZo/s1600-h/snapshot9.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_PsqquBoCRIQ/SAtV2wl_BuI/AAAAAAAAAAc/1XixzYJuuZo/s320/snapshot9.jpg" alt="" id="BLOGGER_PHOTO_ID_5191337394720147170" border="0" /&gt;&lt;/a&gt;    หลังจากที่ design กันไปแล้้ว ก็เอามาคอมไพล์ในโปรเจ็กที่สร้างบน KDevelop ที่เห็นเป็น 4 ่ช่องนั้น แต่ละช่องเป็น custom window object ที่พร้อมสำหรับการวาดภาพลงไป ว้าวๆ ประทับใจจริงๆ&lt;br /&gt;&lt;div style="text-align: center;"&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/3994895416828900595-2243894971450536390?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/2243894971450536390/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=2243894971450536390' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/2243894971450536390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/2243894971450536390'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2008/04/wxformbuilder-3.html' title='wxFormBuilder part: 3'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_PsqquBoCRIQ/SAtV2wl_BuI/AAAAAAAAAAc/1XixzYJuuZo/s72-c/snapshot9.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-2898158918893101947</id><published>2008-04-18T07:33:00.000-07:00</published><updated>2008-12-10T19:18:19.114-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wxWidgets'/><category scheme='http://www.blogger.com/atom/ns#' term='wxFormBuilder'/><title type='text'>wxFormBuilder part: 2</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_PsqquBoCRIQ/SAiyLMreZmI/AAAAAAAAAAU/Zh0oLJH9QPs/s1600-h/snapshot8.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_PsqquBoCRIQ/SAiyLMreZmI/AAAAAAAAAAU/Zh0oLJH9QPs/s320/snapshot8.jpg" alt="" id="BLOGGER_PHOTO_ID_5190594475996374626" border="0" /&gt;&lt;/a&gt;   หลังจากที่ทดลองใช้กันอยู่วันหนึ่งเต็มๆ ก็ต้องบอกว่าค่อนข้างประทับใจมาก ด้วยเหตุผลหลายๆประการ ดังนี้&lt;br /&gt;1. ตัว tool ใช้ง่าย แต่ต้องทำความเข้าใจคอนเซ็ปต์ของมันให้ได้เสียก่อน เมื่อทำความคุ้นเคยได้แล้ว ทีนี้ก็ออกแบบได้ง่าย&lt;br /&gt;2. ตัว code ที่ generate ออกมาเป็น  OO ใครที่คุ้นเคยกับการเขียน win32 api ละก็ จะรู้สึกได้ว่ามีส่วนคล้ายกันอยู่มากทีเดียว ทำให้เดาทางได้ง่ายขึ้น&lt;br /&gt;3. อันนี้อ่านมาจากใน forum เค้าว่่าด้วยการทำแบบนี้ คือ แยก gui code ออกจาก logic ทำให้ออกแบบ automate test ของส่วน gui ได้ง่าย&lt;br /&gt;4. มีตัวอย่างการใช้ร่วมกับ OpenCV และ openGL ซะด้วย&lt;br /&gt;5. support multi-threading&lt;br /&gt;&lt;br /&gt;ที่เหลือก็เรื่องความเสถียรกับประสิทธิภาพ ก็ต้องลองดูกันต่อไป&lt;br /&gt;&lt;div style="text-align: center;"&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/3994895416828900595-2898158918893101947?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/2898158918893101947/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=2898158918893101947' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/2898158918893101947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/2898158918893101947'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2008/04/wxformbuilder-2.html' title='wxFormBuilder part: 2'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_PsqquBoCRIQ/SAiyLMreZmI/AAAAAAAAAAU/Zh0oLJH9QPs/s72-c/snapshot8.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-9209765392873889463</id><published>2008-04-17T06:18:00.000-07:00</published><updated>2008-05-01T18:42:25.360-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wxWidgets'/><category scheme='http://www.blogger.com/atom/ns#' term='wxFormBuilder'/><title type='text'>GUI toolkit : WxFormBuilder</title><content type='html'>วันนี้กะว่าจะยกเครื่อง GUI ของโปรแกรม traffic monitor ซึ่งตอนนี้เขียนด้วย FLTK 1.1 แบบง่ายๆไว้ เนื่องด้วยความต้องการที่จะทำให้มันดู professional ขึ้นมา กับคนที่เกลียดการเขียน UI ที่สุดมันจะกลายเป็นเรื่องยุ่งยากใจทันที สิ่งที่ไม่ชอบที่สุดของ FLTK ก็คือ ui designer tool ที่เข้าขั้น ห่วย ไม่ว่าจะเป็นหน้าตาหรือการใช้งาน ฟังดูอาจขัดกับที่เคยแนะนำไป แต่ช่วยไม่ได้อะ พอต้องการที่จะทำให้มันสวยๆ มันรู้สึกอย่างนั้นจริงๆ&lt;br /&gt;&lt;br /&gt;   วันนี้ก็เลยเสียเวลาทั้งวันในการหา toolkit ตัวใหม่ที่ต้องการจะลงหลักปักฐานด้วยไปตลอดต่อจากนี้ ตอนแรกลังเลว่าจะกลับไปมอง QT/KDE แต่มานึกถึงเรื่อง license แล้วก็เลยไม่อยากเสี่ยง มองหาที่เป็น GPL/LGPL ดีกว่า ด้วยความที่มันเป็น opensource ข้อเสียอย่างหนึ่งก็คือ มันมีให้เลือกเยอะจริงๆ ก็ต้องมานั่งหา นั่งเปรียบเทียบ ลองลงอยู่กันเป็นนานสองนาน การตัดสินใจเลือกตัวใดนั้นจะมีปัจจัยหลักสองข้อคือสนับสนุน OpenGL และ multi-thread&lt;br /&gt;&lt;br /&gt;   ตอนแรกเลยก็ลอง FLTK 2.0 ซึ่งเวอร์ชั่นนี้บอกว่าเป็น OO มากขึ้น แต่ก็ยังไม่ประทับใจเท่าไร สุดท้ายก็มาจบที่ wxWindows ซึ่งก็ดันมี tool มาเป็นตัวเลือกสำหรับทำ rad หลายตัวอีก ท้ายสุดเมื่อเปรียบเทียบจาก&lt;a href="http://wiki.codeblocks.org/index.php?title=Comparison_of_wxSmith_features"&gt;ตาราง&lt;/a&gt; ก็เลยตกลงปลงใจกับ &lt;a href="http://wxformbuilder.org/"&gt;wxFormBuilder&lt;/a&gt; v3.0 เวอร์ชั่นนี้ต้องการ wxWidget version 2.8&lt;br /&gt;&lt;br /&gt;   เนื่องจาก Kubuntu ที่ใช้อยู่เป็น version 7.04 จึงต้องทำการ upgrade wxWidget เสียก่อน เอาละตอนนี้ก็พร้อมที่จะทดลองใช้มันแล้ว ขอเวลาไปลองเล่นก่อน ได้ผลยังงัย ชอบ ไม่ชอบ จะมาบอกอีกที&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3994895416828900595-9209765392873889463?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/9209765392873889463/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=9209765392873889463' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/9209765392873889463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/9209765392873889463'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2008/04/gui-toolkit-wxformbuilder.html' title='GUI toolkit : WxFormBuilder'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-2152780522231735334</id><published>2008-04-15T21:34:00.000-07:00</published><updated>2008-04-15T21:49:14.526-07:00</updated><title type='text'>Kubuntu on Amd64 Phenom</title><content type='html'>ในที่สุดก็ลงสำเร็จจนได้กับเครื่องใหม่ของทีมที่เป็น Phenom 9500 + HD3870 ปัญหาก็มีหลายอย่างเหลือเกิ๊น ตั้งแต่ write iso image ด้วยโปรแกรมบน Kubuntu แล้วเอามาลงไม่สำเร็จ สุดท้ายจำเลยก็คือ(คิดว่านะ) ตัว writer ที่บ้านนั่นเอง เป็นยี่ห้อ LiteOn แต่เครื่องใหม่เป็น Asus พอเอาไปเขียนด้วยเครื่องที่ทำงาน ซึ่งเป็น Asus เหมือนกัน ก็จบข่าวเลย&lt;br /&gt;&lt;br /&gt;ต่อมาก็เรื่องลง driver ของ ATI เทียบกับลง driver ของ Nvidia เจ้าหลังนี่ไม่ค่อยมีปัญหาเท่าไร แต่ข้อดีของ ATI คือจะมีโปรแกรม config มาให้ชื่อ Catalyst ใช้ set feature ต่างๆได้สะดวกดี&lt;br /&gt;&lt;br /&gt;ปัญหาต่อมาก็คือไม่สามารถเซ็ตความละเอียดที่ 1680x1050 ได้แม้ว่าจะเข้าไปแก้ xorg.conf ตรงๆ ทางแก้ก็คือ ต้องใช้คำสั่งหรือโปรแกรมที่ทำการ reconfig X-server ใหม่ ถึงจะได้&lt;br /&gt;&lt;br /&gt;หลังจากนั้นก็ฉลุย ลง Apache2, trac, svn แต่ยังไม่ได้เซ็ตเลยอะ รำคาญเสียงพัดลมของเคสมาก ทนไม่ไหวซะก่อน นี่ว่าจะแกะออกมาถอดสายไฟออกซะเลย ไม่น่าจะเป็นไรมั้งเนอะ เห็นว่า cpu ตัวนี้ไม่ร้อนเท่าไรแถมเคสก็ใหญ่มีพื้นที่มากอยู๋แล้วด้วย&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3994895416828900595-2152780522231735334?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/2152780522231735334/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=2152780522231735334' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/2152780522231735334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/2152780522231735334'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2008/04/kubuntu-on-amd64-phenom.html' title='Kubuntu on Amd64 Phenom'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-7245042766986749063</id><published>2008-03-12T00:35:00.000-07:00</published><updated>2008-03-12T00:55:53.836-07:00</updated><title type='text'>Render farm</title><content type='html'>เมื่อวานสมัครสมาชิก LinuxJournal ไปปีหนึ่งบวกกับ online access เล่มใหม่เขียนถึงหนังเรื่อง Spiderwick Chronicles ว่าสตูดิโอที่ทำกราฟิกให้นั้นใช้ Linux เกือบทั้งหมด ทั้งออกแบบโปรแกรมขึ้นมาใหม่และ render farm ทำให้ต้องเก็บไว้ในความอยากส่วนตัวอีกอันหนึ่งว่า อยากจะทำสตูดิโอที่ให้บริการ render ด้วย Linux farm บ้างจัง นอกเหนือไปจากที่เคยอยากทำ video wall ด้วย Linux&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/3994895416828900595-7245042766986749063?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/7245042766986749063/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=7245042766986749063' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/7245042766986749063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/7245042766986749063'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2008/03/render-farm.html' title='Render farm'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-2391139323982509384</id><published>2008-03-04T23:13:00.000-08:00</published><updated>2008-03-04T23:38:51.560-08:00</updated><title type='text'>FLTK gui programming</title><content type='html'>เดี๋ยวนี้ ภาษาสคริปต์มาแรงมาก ทุกอย่างที่เคยเขียนด้วย c++ ก็เอามาเขียนด้วยสคริปต์ได้แล้ว ดูตัวอย่างได้จาก Python ส่วนตัวเป็นคนที่ไม่ชอบภาษาสคริปต์ เพราะเป็นคนไม่มีระเบียบเท่าไรอยู่แล้ว เจอภาษาที่มันยืดหยุ่นได้มากๆนี่ จะงงเอา อีกอย่างรู้สึกแก่เกินจะเรียนรู้อะไรแบบนี้แล้ว ก็เลยมองหาอะไรที่ friendly กับสิ่งที่เราเป็นอยู่ดีกว่า&lt;br /&gt;เมื่อต้องทำ application และมี gui ด้วยซึ่งเป็นอีกเรื่องที่ไม่ชอบเอาซะเลย ก็เลยมองหาตัวช่วย ก็ไปเจอเข้ากับอะไรที่คิดว่าเหมาะกับตัวเรามากทีเดียว นั่นคือ FLTK นี่เอง มันดียังงัยเหรอ มันก็คล้ายๆ เราใช้ visual sutdio และออกแบบ gui บนนั้นน่ะแหละ มันจะมี tool สำหรับ ออกแบบ แล้วสามารถ convert เป็น c++ code ให้เราใช้ได้เลย ก็ลดความน่าเบื่อลงไปได้มากทีเดียวนะ&lt;br /&gt;สนใจก็ลองไปเล่นกันดู&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3994895416828900595-2391139323982509384?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/2391139323982509384/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=2391139323982509384' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/2391139323982509384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/2391139323982509384'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2008/03/fltk-gui-programming.html' title='FLTK gui programming'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-6839407781396393288</id><published>2008-02-23T20:07:00.000-08:00</published><updated>2008-05-04T19:25:19.516-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Video For Linux'/><title type='text'>Step 1: Video for Linux API</title><content type='html'>การทำ application ด้าน realtime video processing ไม่ว่าจะ apply ไปใช้ด้านไหน เช่น broadcasting, editing, computer vision, image processing สิ่งสำคัญอันดับแรกนั่นก็คือ การรับ data input เข้ามานั่นเอง ยิ่งเป็นด้านที่เกี่ยวกับ streaming ด้วยละก็ เน้นเลย เพราะต้องรับ data เข้ามาอย่างต่อเนื่อง ดังนั้นเรื่องความถูกต้อง, frame rate, คุณภาพ และความเสถียร ของระบบจึงเป็นเรื่องสำคัญมากๆ&lt;br /&gt;&lt;br /&gt;การเขียนโปรแกรมติดต่อกับ video input บนลินุกส์นั้นอาศัย API ที่ชื่อว่า Video For Linux (v4l) ซึ่ง driver เกือบทุกตัว สนับสนุนการติดต่อผ่าน v4l นี้ทำให้ไม่ต้องคำนึงว่า hardware จะเป็นอะไร หมายความว่าถ้าเราสามารถ setup (install driver, config)ให้อุปกรณ์ทำงานได้แล้วละก็ โปรแกรมที่เราเขียนด้วย v4l สามารถคุยกับอุปกรณ์นั้นได้อย่างแน่นอน เช่น webcam USB, dvr card&lt;br /&gt;&lt;br /&gt;ปัจจุบัน v4l มี 2 เวอร์ชันซึ่ง ซึ่งแนวทางการเขียนก็ไม่ได้แตกต่างกัน คือ เรียกใช้ฟังก์ชันต่างๆผ่านทาง ioctl() ซึ่งมีทั้ง get และ set คุณสมบัติต่างๆของตัวอุปกรณ์&lt;br /&gt;&lt;br /&gt;วิธีที่ดูจะง่ายและเสถียรที่สุดในการรับภาพเข้ามาคือ รับแบบ blocking function โดยใช้ mmap เพราะเราจะได้ framerate ตามความเป็นจริงเลย โดยไม่ต้องมานั่ง sync เอาเอง แต่สิ่งที่ต้องคำนึงก็คือจำนวน buffer ที่จะใช้เอาไปรับภาพหรือข้อมูลมา ที่เคยลองเขียนมาอย่างน้อยต้องเป็น double buffer จึงจะได้ภาพที่ full framerate จริงๆ เช่น ถ้าเป็น PAL ก็จะเป็นที่ 25 fps&lt;br /&gt;&lt;br /&gt;เมื่อมีระบบที่ให้ raw data ที่ดีได้แล้ว จะทำไรต่อไปก็เชิญตามสะดวกได้แล้วทีนี้&lt;br /&gt;&lt;br /&gt;ถ้ามีใครเข้ามาทัก จะเขียนต่อ (coding by example) อิอิ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3994895416828900595-6839407781396393288?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/6839407781396393288/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=6839407781396393288' title='2 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/6839407781396393288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/6839407781396393288'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2008/02/video-for-linux-api.html' title='Step 1: Video for Linux API'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3994895416828900595.post-4928978652868947437</id><published>2007-12-17T07:45:00.000-08:00</published><updated>2008-05-04T19:26:33.281-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='พึมพำ'/><title type='text'>Step Zero:</title><content type='html'>รู้สึกว่าจะเขียนบล็อกเกี่ยวกะงานมากไปแล้วใน multiply ของตัวเอง ในขณะที่คนอื่นเค้าเขียนอะไรสบายๆ เลยดูกลายเป็นเครียดๆไปเลย ก็เลยว่าจะยกอะไรที่เป็นเรื่องที่ตัวเองสนใจแต่ออกแนวเป็นงาน ก็อะไรๆที่เกี่ยวข้องกับคอมพิวเตอร์และอิเล็กทรอนิกส์นั่นแหละมาไว้ที่นี่ซะให้หมดแทน&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3994895416828900595-4928978652868947437?l=switaya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://switaya.blogspot.com/feeds/4928978652868947437/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3994895416828900595&amp;postID=4928978652868947437' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/4928978652868947437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3994895416828900595/posts/default/4928978652868947437'/><link rel='alternate' type='text/html' href='http://switaya.blogspot.com/2007/12/blog-post.html' title='Step Zero:'/><author><name>switaya</name><uri>http://www.blogger.com/profile/00588056870537720238</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
