<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>tech</title>
  <link rel="alternate" type="text/html" href="http://tewson.com/category/tags/tech"/>
  <link rel="self" type="application/atom+xml" href="http://tewson.com/taxonomy/term/64/atom/feed"/>
  <id>http://tewson.com/taxonomy/term/64/atom/feed</id>
  <updated>2009-05-23T04:31:31+07:00</updated>
  <entry>
    <title>Faulty Barcode Detection</title>
    <link rel="alternate" type="text/html" href="http://tewson.com/content/faulty-barcode-detection" />
    <id>http://tewson.com/content/faulty-barcode-detection</id>
    <published>2009-09-19T18:43:00+07:00</published>
    <updated>2009-09-19T18:43:00+07:00</updated>
    <author>
      <name>tewson</name>
    </author>
    <category term="image processing" />
    <category term="intellect" />
    <category term="programming" />
    <category term="project" />
    <category term="tech" />
    <summary type="html"><![CDATA[<p>อันนี้เป็นโครงงานเล็ก ๆ จากวิชา Computer Vision หัวข้อคือ ทำไงก็ได้ให้คอมมันรู้ได้ว่าภาพบาร์โค้ดมันสกปรก มีภาพตัวอย่างมาให้ด้วย</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>อันนี้เป็นโครงงานเล็ก ๆ จากวิชา Computer Vision หัวข้อคือ ทำไงก็ได้ให้คอมมันรู้ได้ว่าภาพบาร์โค้ดมันสกปรก มีภาพตัวอย่างมาให้ด้วย<br />
&lt;!--break--><br />
<img src="http://lh6.ggpht.com/_3MHSZs9ETeM/SrSwNFkhBkI/AAAAAAAACrQ/bjeevMJb0Ig/s400/BarCodeImage1.jpg" alt="Barcode1" /></p>
<p><img src="http://lh4.ggpht.com/_3MHSZs9ETeM/SrSwNfxi_ZI/AAAAAAAACrU/RfQyznjadM4/s400/BarCodeImage2.jpg" alt="Barcode2" /></p>
<p><img src="http://lh6.ggpht.com/_3MHSZs9ETeM/SrSwNqtb7jI/AAAAAAAACrY/6CY0D4QUVMM/s400/BarCodeImage3.jpg" alt="Barcode3" /></p>
<p>ดูแล้วก็แบบ เอ่อ มันสกปรกตรงไหนเนี่ย แต่ก็นั่นล่ะ เจ้าของโจทย์จริง ๆ เป็นบริษัทที่พิมพ์พวกบรรจุภัณฑ์กระดาษ เลยต้องการวิธีตรวจคุณภาพการพิมพ์ที่มันอัตโนมัติ (จริง ๆ แล้วซอฟท์แวร์อ่านบาร์โค้ดสมัยนี้มันฉลาดมาก เบี้ยวก็อ่านได้ เบลอก็อ่านได้)</p>
<p>จริง ๆ แล้วโจทย์มีสามข้อ คือ (1) ทำภาพแบบที่มีเอฟเฝ็กท์ประหลาด ๆ เช่น แขนขายืดออก ตัวหมุนเป็นเกลียว (ไอเดียคือตัดเอาส่วนเล็ก ๆ ของภาพในแต่ละเฟรมตามเวลามาต่อ ๆ กัน) (2) ใช้ภาพถ่ายของวัตถุเดียวกันสองภาพในตำแหน่งที่ต่างกันมาหาระยะห่างระหว่างวัตถุกับกล้อง และข้อสุดท้ายก็บาร์โค้ดนี่ล่ะ</p>
<p>เลือกข้อบาร์โค้ดนี่เพราะว่าข้อแรกคนทำเยอะมาก (เพราะเห็นผลชัดเจน) ตัวเปรียบเทียบเยอะ (ฮา) ส่วนข้อที่สองนี่ก็มีสูตรคณิตศาสตร์อยู่แล้ว เลือกข้อสุดท้ายนี่แหละ ท่าจะมันส์</p>
<p>เอาเข้าจริงมันก็มันส์ไปหน่อย งานวิชาอื่นก็ดันมาส่งพร้อม ๆ กัน (บอกผมสิว่าคุณไม่ดองงาน) ไอเดียในการแก้ปัญหามันเลยแอบเผา แต่อย่างน้อยมันก็ทำงานได้ตามจุดประสงค์เท่าที่มีตัวอย่างน่ะนะ</p>
<p><strong>ข้อความข้างล่างนี้ไปอาจจะน่าเบื่อไปหน่อย จริง ๆ ข้ามไปดูวิดีโอข้างล่างสุดได้เลย เอ๊ะ แต่ก็อยากให้อ่านแฮะ</strong></p>
<p>ไอเดียคร่าว ๆ ก็คือใช้ความ "เส้นเยอะ" (ไม่ใช่เส้นใหญ่) ของบาร์โค้ด ตอนแรกก็จับภาพนั้นมาหาเส้นก่อน ด้วย <a href="http://en.wikipedia.org/wiki/Hough_transform">Hough transform (แปลไทยว่า "การแปลงฮัฟ" เท่สลัด ๆ)</a> จะได้เส้นเยอะ ๆ ออกมา ซึ่งเส้นส่วนมากที่ได้จะมาจากบาร์โค้ด จากนั้นก็ดูมุมของความชันของเส้นพวกนั้น จัดการแบ่งมุมที่พบออกเป็นกลุ่มย่อย ๆ ก็จะพบว่ามีช่วงของขนาดมุมหนึ่ง ๆ ที่มีจำนวนเยอะกว่าช่วงอื่น (เช่น ถ้าบาร์โค้ดมันเอียงอยู่ประมาณ 45 องศา เราก็จะพบเส้นที่มีมุม 45 องศาเยอะกว่าเส้นที่ตั้งตรง) เราก็ถือเอาว่าช่วงมุมนั้นล่ะ เป็นมุมของความเอียงของบาร์โค้ด แล้วก็หมุนภาพให้บาร์โค้ดมันตั้งตรงซะ</p>
<p>เมื่อบาร์โค้ดมันตรงแล้ว อะไร ๆ ก็ง่ายขึ้น ก็จัดการหาขอบแนวตั้งซะก่อน คือ หาเส้นที่ตั้งตรง (ความชันเข้าใกล้อินฟินิตี้) แล้วเลือกเส้นที่อยู่นอกสุดสองฝั่งมา (ซึ่งวิธีนี้มันใช้ไม่ได้กับทุกสถานการณ์ ถ้ามีเส้นตั้งตรงอื่นอยู่นอกบาร์โค้ดแล้วจะจบเห่ อาศัยมองโลกในแง่ดีว่าถ้าจะให้คอมมันดูบาร์โค้ดให้แล้ว คนก็คงไม่ถ่ายภาพที่มันเป็นมุมกว้างมากมาให้หรอกมั้ง ฮา)</p>
<p>ต่อมาขอบแนวนอนนี่ปัญหาเลย เพราะบาร์โค้ดมันไม่มีขอบแนวนอน จะหารูปแบบของเส้นที่มันไม่ค่อยปะติดปะต่อกันแบบนั้นก็คงจะยากไป เลยจัดการ "ขยาย" (Dilate) แต่ละแท่งในบาร์โค้ดนั้นตามแนวนอน มันก็จะมาเชื่อมกัน กลายเป็นกล่อง มีขอบแนวนอนแล้ว เย้ (จริง ๆ ก็ขยายออกทางข้างแม่งทั้งภาพนั่นแหละ เพียงแต่ขยายนิดเดียว ส่วนอื่นของภาพไม่มีผลกระทบมาก แต่ช่องว่างในบาร์โค้ดมันแคบ เลยเชื่อมกันได้)</p>
<p>เจอปัญหาอีก คือพอจะหาเส้นแนวนอนแล้วมัน (เป็นไปได้ที่จะ) เสือกเจอหลายเส้น นอกเหนือจากขอบของบาร์โค้ด ก็แก้ปัญหาเฉพาะหน้า (งานโคตรเผา ฮา) ด้วยการเอาเส้นแนวตั้งสองเส้น กับเส้นแนวนอนทั้งหลายนั่นมาใช้แทนเส้นกริด เสมือนตัดภาพออกเป็นสี่เหลี่ยมหลาย ๆ อัน แล้วดูว่าสี่เหลี่ยมไหนที่บรรจุเส้นมากที่สุด นั่นล่ะบาร์โค้ด</p>
<p>เมื่อตัดเอาบาร์โค้ดออกมาได้แล้ว จะหารอยเปื้อนได้ยังไง คิดอยู่พักใหญ่เลย จะหาขอบของรอยเปื้อน จุดมันก็เล็กเกินไป ปกติในการหาความแตกต่างของภาพสองภาพ วิธีเบื้องต้นสุด ๆ คือการเอาสองภาพนั้นมาลบกัน (ลองนึกตามว่ามีภาพ (1) จุดสามจุด กับภาพ (2) จุดเดียวตรงกลาง เอาภาพ (2) ลบออกจากภาพ (1) ก็น่าจะได้จุดข้าง ๆ ที่เหลือ) ทีนี้ ถ้าเรามีภาพบาร์โค้ดเปื้อน ๆ อยู่ จะเอาภาพบาร์โค้ดสะอาด ๆ ที่ไหนมาลบออกไปล่ะ จ้องไปจ้องมาพบว่า เฮ้ย เราตั้งบาร์โค้ดได้แล้ว ถ้าเรา "หด" (Erode) ภาพบาร์โค้ดเปื้อนนั้นตามแนวตั้งเนี่ย พวกจุดก็จะหายไป แต่เส้นยังอยู่ (เพราะเส้นแนวตั้งมันยาว หดไปบ้างแต่ไม่หายไป) แล้วขยายกลับคืนตามแนวตั้ง ก็จะได้ภาพบาร์โค้ดสะอาด ๆ มา เอาไปลบออกจากภาพเดิมที่เปื้อนอยู่ ก็จะได้รอยเปื้อน!</p>
<p>ที่เหลือก็แค่นับรอยเปื้อน ซึ่งตรงนี้ก็เจอปัญหาอีกนิดหน่อย เพราะจากการที่เราหมุนภาพในตอนแรก มันทำให้เส้นขอบของแต่ละแท่งมันไม่ได้เรียบตรงเดี๊ยะ พอมายืด ๆ หด ๆ ตามแนวตั้งมันก็ยิ่งเปลี่ยนแปลง เมื่อเอาไปเทียบความแตกต่างกับรูปต้นฉบับจะพบว่าเกิดความแตกต่าง (ที่ไม่ใช่รอยเปื้อนจริง ๆ) พอสมควร ทางแก้ก็คือ แปลงภาพทั้งสอง (ภาพดั้งเดิมกับภาพสะอาด) ให้เป็นภาพขาวดำจริง ๆ ซะก่อน (คือมีแต่ขาวกับดำเท่านั้น) เอามาลบกัน จะพบว่าถ้าภาพดั้งเดิมมันสะอาด ผลต่างที่ได้จะเป็นแค่เส้นแนวดิ่งเล็ก ๆ กว้างไม่เกินหนึ่งพิกเซล (จากการหมุน) อย่างนี้ก็เสร็จโจร เราก็นับแค่เส้นแนวนอนที่ยาวสองพิกเซลขึ้นไป แล้วก็ดูว่าถ้ามีไอ้เส้นพวกนี้มากเท่าไรจึงจะตัดสินว่าภาพมันเปื้อน</p>
<p>มันน่าสับสนสินะ ใครที่อ่านข้างบนมานี่แล้วเข้าใจทั้งหมดผมแม่งโคตรนับถือเลยอะ ผมแนบวิดีโอสาธิตมาด้วยข้างล่างนี้ มีให้เห็นแต่ละขั้นตอนด้วย</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/z2T4MiZWS9c&hl=en&fs=1&rel=0" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><embed src="http://www.youtube.com/v/z2T4MiZWS9c&hl=en&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>เท่านั้นไม่พอ มี<a href="/sites/default/files/barcode.pdf">รายงาน</a> (pdf ประมาณ 7 เม็กฯ) กับ<a href="/sites/default/files/findbarcode.py">โค้ด</a>กาก ๆ (เขียนด้วย Python ใช้ไลบรารี่ OpenCV) ให้เอาไปหัวเราะเยาะด้วยเอ้า (อยากจะหาเวลาศึกษาการเขียนโค้ดแบบ Pythonic อยู่ครับ ไอ้แบบ tewsonic ที่เขียนนี่มันอนาถสิ้นดี)</p>
<p>แล้วก็ ผมเชื่อว่ามีวิธีที่ฉลาดกว่านี้อยู่มากมาย ใครเห็นใจก็บอกกันหน่อยนะจ๊ะ</p>
    ]]></content>
  </entry>
  <entry>
    <title>Mobile Activism</title>
    <link rel="alternate" type="text/html" href="http://tewson.com/content/mobile-activism" />
    <id>http://tewson.com/content/mobile-activism</id>
    <published>2009-09-10T01:28:34+07:00</published>
    <updated>2009-09-10T01:28:34+07:00</updated>
    <author>
      <name>tewson</name>
    </author>
    <category term="activism" />
    <category term="intellect" />
    <category term="mobile phone" />
    <category term="tech" />
    <category term="thought" />
    <summary type="html"><![CDATA[<p>ช่วงนี้ผมกำลังสนใจเป็นพิเศษในการอ่านเรื่องราวเกี่ยวกับการประยุกต์ใช้โทรศัพท์เคลื่อนที่ (หลังจากนี้ขอเรียกย่อ ๆ ว่ามือถือ) ให้เป็นประโยชน์ต่อสังคม ทั้งในด้านการศึกษา สาธารณสุข หรือการเมือง</p>
<p>เคยอ่าน<a href="http://www.techsoup.org/learningcenter/hardware/page7216.cfm">บทความ</a> เขาบอกว่า คนในพื้นที่ที่พัฒนาแล้วจะรับรู้ข่าวสารผ่านสามจอ คือ คอมพิวเต้อร์ โทรทัศน์ และมือถือ พวกที่ห่างไกลออกมาหน่อยก็สองจอ (ตัดคอมพิวเต้อร์ออก) และที่ห่างไกลที่สุดก็เหลือจอเดียว คือมือถือ</p>
<p>ในประเทศกาน่า จำนวนคนใช้มือถือมีมากถึง 39 ใน 40 ของคนที่มีโทรศัพท์ทั้งหมด ในประเทศแทนซาเนีย ประชาชนร้อยละ 97 สามารถหามือถือใช้ได้ (อาจจะของเพื่อน ของญาติ) ความ "เข้าถึง" ของมือถือที่มากขนาดนี้ คิดว่าน่าจะเป็นเพราะการเดินสายโทรศัพท์บ้านนั้นต้นทุนสูงกว่ามาก และความ "เข้าถึง" ของมือถือนี้เอง (แม้ว่าจะเป็นรุ่นห่วย ๆ ก็ตาม) เป็นโครงสร้างพื้นฐานที่มีประโยชน์มากในการรณรงค์ หรือทำกิจกรรมทางสังคมต่าง ๆ</p>
<p>หมัดเด็ดของมือถือก็คือ มันใช้แทนอินเทอร์เน็ตได้ในระดับหนึ่ง ยิ่งในพื้นที่ที่อินเทอร์เน็ตเข้าไม่ถึงแล้ว มือถือนี่โคตรสำคัญในการเป็นตัวกลางไปหาอินเทอร์เน็ต หรือไปหาโลกนั่นเอง</p>
<p>ผมเคยเขียนถึงเรื่อง<a href="/node/119">ระบบสืบค้นข้อมูลผ่าน SMS ในประเทศอูกันด้า</a> (หรือว่ามันอ่านว่า ยูกันด้า ฟะ) ไปแล้วหนหนึ่ง เพิ่งไปเจอ <a href="http://questionbox.org/">Question Box</a> ที่เจ๋งพอกันอยู่ในประเทศอินเดีย หลักการก็ง่าย ๆ คือ เอามือถือใส่กล่องที่ติดแผงโซล่าร์เซลล์ ไปตั้งไว้ ที่กล่องก็จะมีปุ่มกดให้พูด เมื่อกดแล้วมันก็จะต่อสายไปหาเจ้าหน้าที่ ที่สามารถเข้าถึงอินเทอร์เน็ตได้ แล้วอยากจะถามอะไรก็ถาม ความเท่มันอยู่ที่ว่า กล่องนี้ติดตั้งง่ายมาก ขอแค่มีแสงอาทิตย์ก็ไม่ต้องทำอะไรอีก แค่นี้ก็สามารถกระจายโอกาสในการ "เข้าถึงข้อมูล" ไปได้มาก (และแน่นอน กลุ่มที่ทำ Question Box นี้ก็ให้บริการถามตอบทาง SMS ด้วย)</p>
<p>ยุคนี้แล้วมือถือที่รับส่ง SMS ได้ก็น่าจะมีราคาถูกพอที่ใคร ๆ ก็ซื้อได้แล้ว นี่เป็นเรื่องที่ดีมากเพราะเรายังสามารถใช้ประโยชน์จาก SMS ได้เยอะ ข้อมูลมันก็จัดการง่าย เพราะเป็นแค่ข้อความ มีซอฟท์แวร์หลายตัวที่ถูกพัฒนาขึ้นเพื่อเป็นระบบรวบรวม SMS คือนึกภาพว่าเราตั้งกลุ่มเฉพาะกิจขึ้นมา คนกลางมีแค่แล็พท็อพเครื่องนึงที่ติดตั้งซอฟท์แวร์นี้ และเชื่อมต่อกับมือถือเครื่องนึง คนที่เหลือที่มีมือถือก็สามารถส่ง SMS มาหาคนกลาง เพื่อรายงาน/เก็บข้อมูล/สำรวจอะไรบางอย่าง เช่น ติดตามการทุจริตในการเลือกตั้ง รายงานภัยพิบัติ อะไรพวกนี้ ข้อความทั้งหมดก็จะถูกเก็บลงแล็พท็อพเอาไว้วิเคราะห์ต่อไป หรือจะส่งต่อไปกระจายเก็บไว้หลาย ๆ ที่ หรือส่งต่อไปสู่อินเทอร์เน็ตก็ย่อมได้ ตัวอย่างของซอฟท์แวร์ประเภทนี้ก็คือ <a href="http://www.frontlinesms.com">FrontlineSMS</a> หรือ <a href="http://developmentseed.org/blog/2009/aug/14/slingshotsms-alpha-code-released-lightweight-sms-gateway-stick">SlingshotSMS</a></p>
<p><a href="http://mobileactive.org/when-radio-meets-mobile-pakistan">ในประเทศปากีสถาน</a> มือถือแทบทุกเครื่องสามารถรับคลื่นวิทยุได้ และคนก็นิยมฟังวิทยุ ทำให้การกระจายข่าวสารเกี่ยวกับเหตุรุนแรงเป็นไปได้โดยง่าย</p>
<p>นอกจากของ "โลวเทค" อย่างที่กล่าวไปข้างต้นแล้ว ของ "ไฮเทค" ใหม่ ๆ อย่างพวก บริการตามพื้นที่ (ติดตามจาก GPS) หรือ <a href="http://en.wikipedia.org/wiki/Augmented_reality">Augmented Reality</a> (ลองดู <a href="http://layar.com">Layar</a> ได้) ก็ยิ่งช่วยเรื่องพวกนี้ได้อย่างพิสดารพันลึก</p>
<p>ถ้าสนใจเรื่องพรรค์นี้ ขอแนะนำให้อ่านเว็บเหล่านี้</p>
<ul>
<li><a href="http://www.techsoup.org/learningcenter/hardware/page7216.cfm">Mobile Phones and Social Activism</a></li>
<li><a href="http://mobileactive.org">MobileActive.org</a></li>
<li><a href="http://developmentseed.org">Development Seed</a></li>
<li><a href="http://appfrica.net">Appfrica</a></li>
</ul>
<p>หรือถ้าใครมีแหล่งอื่น ๆ ก็มาแบ่งกันอ่านนะครับ</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>ช่วงนี้ผมกำลังสนใจเป็นพิเศษในการอ่านเรื่องราวเกี่ยวกับการประยุกต์ใช้โทรศัพท์เคลื่อนที่ (หลังจากนี้ขอเรียกย่อ ๆ ว่ามือถือ) ให้เป็นประโยชน์ต่อสังคม ทั้งในด้านการศึกษา สาธารณสุข หรือการเมือง</p>
<p>เคยอ่าน<a href="http://www.techsoup.org/learningcenter/hardware/page7216.cfm">บทความ</a> เขาบอกว่า คนในพื้นที่ที่พัฒนาแล้วจะรับรู้ข่าวสารผ่านสามจอ คือ คอมพิวเต้อร์ โทรทัศน์ และมือถือ พวกที่ห่างไกลออกมาหน่อยก็สองจอ (ตัดคอมพิวเต้อร์ออก) และที่ห่างไกลที่สุดก็เหลือจอเดียว คือมือถือ</p>
<p>ในประเทศกาน่า จำนวนคนใช้มือถือมีมากถึง 39 ใน 40 ของคนที่มีโทรศัพท์ทั้งหมด ในประเทศแทนซาเนีย ประชาชนร้อยละ 97 สามารถหามือถือใช้ได้ (อาจจะของเพื่อน ของญาติ) ความ "เข้าถึง" ของมือถือที่มากขนาดนี้ คิดว่าน่าจะเป็นเพราะการเดินสายโทรศัพท์บ้านนั้นต้นทุนสูงกว่ามาก และความ "เข้าถึง" ของมือถือนี้เอง (แม้ว่าจะเป็นรุ่นห่วย ๆ ก็ตาม) เป็นโครงสร้างพื้นฐานที่มีประโยชน์มากในการรณรงค์ หรือทำกิจกรรมทางสังคมต่าง ๆ</p>
<p>หมัดเด็ดของมือถือก็คือ มันใช้แทนอินเทอร์เน็ตได้ในระดับหนึ่ง ยิ่งในพื้นที่ที่อินเทอร์เน็ตเข้าไม่ถึงแล้ว มือถือนี่โคตรสำคัญในการเป็นตัวกลางไปหาอินเทอร์เน็ต หรือไปหาโลกนั่นเอง</p>
<p>ผมเคยเขียนถึงเรื่อง<a href="/node/119">ระบบสืบค้นข้อมูลผ่าน SMS ในประเทศอูกันด้า</a> (หรือว่ามันอ่านว่า ยูกันด้า ฟะ) ไปแล้วหนหนึ่ง เพิ่งไปเจอ <a href="http://questionbox.org/">Question Box</a> ที่เจ๋งพอกันอยู่ในประเทศอินเดีย หลักการก็ง่าย ๆ คือ เอามือถือใส่กล่องที่ติดแผงโซล่าร์เซลล์ ไปตั้งไว้ ที่กล่องก็จะมีปุ่มกดให้พูด เมื่อกดแล้วมันก็จะต่อสายไปหาเจ้าหน้าที่ ที่สามารถเข้าถึงอินเทอร์เน็ตได้ แล้วอยากจะถามอะไรก็ถาม ความเท่มันอยู่ที่ว่า กล่องนี้ติดตั้งง่ายมาก ขอแค่มีแสงอาทิตย์ก็ไม่ต้องทำอะไรอีก แค่นี้ก็สามารถกระจายโอกาสในการ "เข้าถึงข้อมูล" ไปได้มาก (และแน่นอน กลุ่มที่ทำ Question Box นี้ก็ให้บริการถามตอบทาง SMS ด้วย)</p>
<p>ยุคนี้แล้วมือถือที่รับส่ง SMS ได้ก็น่าจะมีราคาถูกพอที่ใคร ๆ ก็ซื้อได้แล้ว นี่เป็นเรื่องที่ดีมากเพราะเรายังสามารถใช้ประโยชน์จาก SMS ได้เยอะ ข้อมูลมันก็จัดการง่าย เพราะเป็นแค่ข้อความ มีซอฟท์แวร์หลายตัวที่ถูกพัฒนาขึ้นเพื่อเป็นระบบรวบรวม SMS คือนึกภาพว่าเราตั้งกลุ่มเฉพาะกิจขึ้นมา คนกลางมีแค่แล็พท็อพเครื่องนึงที่ติดตั้งซอฟท์แวร์นี้ และเชื่อมต่อกับมือถือเครื่องนึง คนที่เหลือที่มีมือถือก็สามารถส่ง SMS มาหาคนกลาง เพื่อรายงาน/เก็บข้อมูล/สำรวจอะไรบางอย่าง เช่น ติดตามการทุจริตในการเลือกตั้ง รายงานภัยพิบัติ อะไรพวกนี้ ข้อความทั้งหมดก็จะถูกเก็บลงแล็พท็อพเอาไว้วิเคราะห์ต่อไป หรือจะส่งต่อไปกระจายเก็บไว้หลาย ๆ ที่ หรือส่งต่อไปสู่อินเทอร์เน็ตก็ย่อมได้ ตัวอย่างของซอฟท์แวร์ประเภทนี้ก็คือ <a href="http://www.frontlinesms.com">FrontlineSMS</a> หรือ <a href="http://developmentseed.org/blog/2009/aug/14/slingshotsms-alpha-code-released-lightweight-sms-gateway-stick">SlingshotSMS</a></p>
<p><a href="http://mobileactive.org/when-radio-meets-mobile-pakistan">ในประเทศปากีสถาน</a> มือถือแทบทุกเครื่องสามารถรับคลื่นวิทยุได้ และคนก็นิยมฟังวิทยุ ทำให้การกระจายข่าวสารเกี่ยวกับเหตุรุนแรงเป็นไปได้โดยง่าย</p>
<p>นอกจากของ "โลวเทค" อย่างที่กล่าวไปข้างต้นแล้ว ของ "ไฮเทค" ใหม่ ๆ อย่างพวก บริการตามพื้นที่ (ติดตามจาก GPS) หรือ <a href="http://en.wikipedia.org/wiki/Augmented_reality">Augmented Reality</a> (ลองดู <a href="http://layar.com">Layar</a> ได้) ก็ยิ่งช่วยเรื่องพวกนี้ได้อย่างพิสดารพันลึก</p>
<p>ถ้าสนใจเรื่องพรรค์นี้ ขอแนะนำให้อ่านเว็บเหล่านี้</p>
<ul>
<li><a href="http://www.techsoup.org/learningcenter/hardware/page7216.cfm">Mobile Phones and Social Activism</a></li>
<li><a href="http://mobileactive.org">MobileActive.org</a></li>
<li><a href="http://developmentseed.org">Development Seed</a></li>
<li><a href="http://appfrica.net">Appfrica</a></li>
</ul>
<p>หรือถ้าใครมีแหล่งอื่น ๆ ก็มาแบ่งกันอ่านนะครับ</p>
    ]]></content>
  </entry>
  <entry>
    <title>NS_ERROR_DOM_SECURITY_ERR in using canvas tag</title>
    <link rel="alternate" type="text/html" href="http://tewson.com/content/nserrordomsecurityerr-using-canvas-tag" />
    <id>http://tewson.com/content/nserrordomsecurityerr-using-canvas-tag</id>
    <published>2009-09-03T17:03:57+07:00</published>
    <updated>2009-09-03T17:03:57+07:00</updated>
    <author>
      <name>tewson</name>
    </author>
    <category term="image processing" />
    <category term="intellect" />
    <category term="javascript" />
    <category term="tech" />
    <summary type="html"><![CDATA[<p>I've found an incredible image processing library for JavaScript called "<a href="http://http://www.pixastic.com">Pixastic</a>". Of course I downloaded the code and tried it as a single HTML file in Firefox 3.5. Then, I just got the error NS_ERROR_DOM_SECURITY_ERR, which is an error thrown when you try to change some DOM information that is from another domain. So what's the problem while the image itself is exactly in the same place as the script?</p>
<p>Google just took me to <a href="http://www.nihilogic.dk" title="http://www.nihilogic.dk">http://www.nihilogic.dk</a>, which is eventually a blog of the author of Pixastic. There are some comments in there mentioning my problem. The solution is that: you need to put the script and you "hello world" page for the script in a server. Therefore, Firefox won't complain about the security thing. I copied the codes to my localhost and it just works!</p>
<p>I would like to thank <a href="http://blog.nihilogic.dk/2000/01/about.html">Jacob Seidelin</a> for creating this great tool.</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>I've found an incredible image processing library for JavaScript called "<a href="http://http://www.pixastic.com">Pixastic</a>". Of course I downloaded the code and tried it as a single HTML file in Firefox 3.5. Then, I just got the error NS_ERROR_DOM_SECURITY_ERR, which is an error thrown when you try to change some DOM information that is from another domain. So what's the problem while the image itself is exactly in the same place as the script?</p>
<p>Google just took me to <a href="http://www.nihilogic.dk" title="http://www.nihilogic.dk">http://www.nihilogic.dk</a>, which is eventually a blog of the author of Pixastic. There are some comments in there mentioning my problem. The solution is that: you need to put the script and you "hello world" page for the script in a server. Therefore, Firefox won't complain about the security thing. I copied the codes to my localhost and it just works!</p>
<p>I would like to thank <a href="http://blog.nihilogic.dk/2000/01/about.html">Jacob Seidelin</a> for creating this great tool.</p>
    ]]></content>
  </entry>
  <entry>
    <title>คอขวดของอินเทอร์เน็ตมหาวิทยาลัยธรรมศาสตร์</title>
    <link rel="alternate" type="text/html" href="http://tewson.com/content/%E0%B8%84%E0%B8%AD%E0%B8%82%E0%B8%A7%E0%B8%94%E0%B8%82%E0%B8%AD%E0%B8%87%E0%B8%AD%E0%B8%B4%E0%B8%99%E0%B9%80%E0%B8%97%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B9%80%E0%B8%99%E0%B9%87%E0%B8%95%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%A7%E0%B8%B4%E0%B8%97%E0%B8%A2%E0%B8%B2%E0%B8%A5%E0%B8%B1%E0%B8%A2%E0%B8%98%E0%B8%A3%E0%B8%A3%E0%B8%A1%E0%B8%A8%E0%B8%B2%E0%B8%AA%E0%B8%95%E0%B8%A3%E0%B9%8C" />
    <id>http://tewson.com/content/%E0%B8%84%E0%B8%AD%E0%B8%82%E0%B8%A7%E0%B8%94%E0%B8%82%E0%B8%AD%E0%B8%87%E0%B8%AD%E0%B8%B4%E0%B8%99%E0%B9%80%E0%B8%97%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B9%80%E0%B8%99%E0%B9%87%E0%B8%95%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%A7%E0%B8%B4%E0%B8%97%E0%B8%A2%E0%B8%B2%E0%B8%A5%E0%B8%B1%E0%B8%A2%E0%B8%98%E0%B8%A3%E0%B8%A3%E0%B8%A1%E0%B8%A8%E0%B8%B2%E0%B8%AA%E0%B8%95%E0%B8%A3%E0%B9%8C</id>
    <published>2009-08-21T01:42:00+07:00</published>
    <updated>2009-08-21T01:42:00+07:00</updated>
    <author>
      <name>tewson</name>
    </author>
    <category term="intellect" />
    <category term="tech" />
    <category term="university" />
    <summary type="html"><![CDATA[<p>หลังจาก พรบ. ว่าด้วยการกระทำผิดทางคอมพิวเตอร์ ถูกประกาศใช้ มหาวิทยาลัยธรรมศาสตร์ก็ติดตั้งระบบลงทะเบียนก่อนเข้าใช้อินเทอร์เน็ต นั่นคือทุกคนที่ใช้ Wi-Fi ของมหาวิทยาลัย เมื่อเริ่มต้นเข้าหน้าเว็บใด ๆ จะถูกนำไปพบกับหน้าลงทะเบียนก่อน หากกรอกชื่อผู้ใช้กับรหัสผ่านที่ได้รับแจกมาเมื่อปลายปีที่แล้ว ก็จะสามารถใช้งานอินเทอร์เน็ตได้ (พร้อมกับถูกบันทึกการใช้งานทุกฝีคลิก)<br />
ฟังดูเป็นเรื่องธรรมดา แต่ประเด็นก็คือ เท่าที่ผมเดาเอาอย่างไม่ค่อยมีความรู้เท่าไร โปรแกรมลงทะเบียนเข้าใช้อินเทอร์เน็ต (และฐานข้อมูล) เนี่ย มันน่าจะถูกติดตั้งอยู่ในคอมพิวเตอร์แค่เครื่องเดียว (สังเกตจากหมายเลข IP ของหน้าเว็บที่ใช้ลงทะเบียน ใช้ที่ไหน ๆ ก็ถูกเด้งไป IP นั้น) แล้วปัญหาก็คือ วันหนึ่ง ๆ จะมีคำขอลงทะเบียนเข้าใช้อินเทอร์เน็ตจำนวนมาก ถูกส่งไปยังเครื่องนี้ ทำให้กว่าจะเริ่มเข้าหน้าเว็บลงทะเบียนนั้นได้ มันค่อนข้างช้า ยิ่งไปกว่านั้น ถ้าเครื่องนี้มันเสือกดับ หรือฐานข้อมูลมันหยุดทำงาน ก็น่าจะไม่มีใครใช้ Wi-Fi ได้เลย (เพราะเรียกหน้าลงทะเบียนไม่ขึ้น หรือกรอกรหัสผ่านไปแล้วผลออกมาเป็นรหัสผ่านผิด ทั้ง ๆ ที่บันทึกเอาไว้ในเบราเซ่อร์) เป็นคอขวดที่น่าอนาถพอสมควร<br />
ต้องออกตัวไว้ก่อนว่าที่กล่าวข้างบนนี้ เกิดจากการสังเกตเท่านั้น แต่ที่แน่ ๆ ก็คือ ทั้ง ๆ ที่ตอนนี้อยู่ที่หอพัก ผมกลับต้องส่งเอนทรี่นี้จากอินเทอร์เน็ตที่เชื่อมต่อผ่านโทรศัพท์เคลื่อนที่</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>หลังจาก พรบ. ว่าด้วยการกระทำผิดทางคอมพิวเตอร์ ถูกประกาศใช้ มหาวิทยาลัยธรรมศาสตร์ก็ติดตั้งระบบลงทะเบียนก่อนเข้าใช้อินเทอร์เน็ต นั่นคือทุกคนที่ใช้ Wi-Fi ของมหาวิทยาลัย เมื่อเริ่มต้นเข้าหน้าเว็บใด ๆ จะถูกนำไปพบกับหน้าลงทะเบียนก่อน หากกรอกชื่อผู้ใช้กับรหัสผ่านที่ได้รับแจกมาเมื่อปลายปีที่แล้ว ก็จะสามารถใช้งานอินเทอร์เน็ตได้ (พร้อมกับถูกบันทึกการใช้งานทุกฝีคลิก)</p>
<p>ฟังดูเป็นเรื่องธรรมดา แต่ประเด็นก็คือ เท่าที่ผมเดาเอาอย่างไม่ค่อยมีความรู้เท่าไร โปรแกรมลงทะเบียนเข้าใช้อินเทอร์เน็ต (และฐานข้อมูล) เนี่ย มันน่าจะถูกติดตั้งอยู่ในคอมพิวเตอร์แค่เครื่องเดียว (สังเกตจากหมายเลข IP ของหน้าเว็บที่ใช้ลงทะเบียน ใช้ที่ไหน ๆ ก็ถูกเด้งไป IP นั้น) แล้วปัญหาก็คือ วันหนึ่ง ๆ จะมีคำขอลงทะเบียนเข้าใช้อินเทอร์เน็ตจำนวนมาก ถูกส่งไปยังเครื่องนี้ ทำให้กว่าจะเริ่มเข้าหน้าเว็บลงทะเบียนนั้นได้ มันค่อนข้างช้า ยิ่งไปกว่านั้น ถ้าเครื่องนี้มันเสือกดับ หรือฐานข้อมูลมันหยุดทำงาน ก็น่าจะไม่มีใครใช้ Wi-Fi ได้เลย (เพราะเรียกหน้าลงทะเบียนไม่ขึ้น หรือกรอกรหัสผ่านไปแล้วผลออกมาเป็นรหัสผ่านผิด ทั้ง ๆ ที่บันทึกเอาไว้ในเบราเซ่อร์) เป็นคอขวดที่น่าอนาถพอสมควร</p>
<p>ต้องออกตัวไว้ก่อนว่าที่กล่าวข้างบนนี้ เกิดจากการสังเกตเท่านั้น แต่ที่แน่ ๆ ก็คือ ทั้ง ๆ ที่ตอนนี้อยู่ที่หอพัก ผมกลับต้องส่งเอนทรี่นี้จากอินเทอร์เน็ตที่เชื่อมต่อผ่านโทรศัพท์เคลื่อนที่</p>
    ]]></content>
  </entry>
  <entry>
    <title>เว็บสองจุดศูนย์รำพัน</title>
    <link rel="alternate" type="text/html" href="http://tewson.com/content/%E0%B9%80%E0%B8%A7%E0%B9%87%E0%B8%9A%E0%B8%AA%E0%B8%AD%E0%B8%87%E0%B8%88%E0%B8%B8%E0%B8%94%E0%B8%A8%E0%B8%B9%E0%B8%99%E0%B8%A2%E0%B9%8C%E0%B8%A3%E0%B8%B3%E0%B8%9E%E0%B8%B1%E0%B8%99" />
    <id>http://tewson.com/content/%E0%B9%80%E0%B8%A7%E0%B9%87%E0%B8%9A%E0%B8%AA%E0%B8%AD%E0%B8%87%E0%B8%88%E0%B8%B8%E0%B8%94%E0%B8%A8%E0%B8%B9%E0%B8%99%E0%B8%A2%E0%B9%8C%E0%B8%A3%E0%B8%B3%E0%B8%9E%E0%B8%B1%E0%B8%99</id>
    <published>2009-08-17T00:02:58+07:00</published>
    <updated>2009-08-17T00:02:58+07:00</updated>
    <author>
      <name>tewson</name>
    </author>
    <category term="life" />
    <category term="poetry" />
    <category term="sense" />
    <category term="tech" />
    <summary type="html"><![CDATA[<p>อยากให้เธอ มาเม้นท์ ใน <a href="http://hi5.com">Hi5</a><br />
อยากให้เธอ กด Like ใน <a href="http://facebook.com">Facebook</a><br />
แลกเพลงฟัง ใน <a href="http://imeem.com">iMeem</a> คงเป็นสุข<br />
นึกสนุก กดไป <a href="http://digg.com">Digg</a> ให้เธอ</p>
<p>ฉันจะมี <a href="http://multiply.com">Multiply</a> ไว้ใส่รูป<br />
จะส่งจูบ จุ๊บจุ๊บไป ใน <a href="http://twitter.com">Twitter</a><br />
Share เรื่องหวาน ผ่าน <a href="http://google.com/reader">Goo- gle Reader</a><br />
เข้า <a href="http://flickr.com">Flickr</a> ดูหน้าเธอ ให้ชื่นใจ</p>
<p>จะบันทึก ความลุ่มหลง ลง <a href="http://wordpress.com">Wordpress</a><br />
สร้าง <a href="http://myspace.com">MySpace</a> แล้ว add เธอ เป็น friend ไว้<br />
เปิด <a href="http://google.com">Latitude</a> คอยดู เมื่ออยู่ไกล<br />
เขียนถึงใน <a href="http://livejournal.com">Livejournal</a> ทุกเช้าเย็น</p>
<p>แค่นั่งนึก นั่งฝัน กลางวันไป<br />
เพราะตัวเรา นั้นไซร้ เธอไม่เห็น<br />
เว็บที่เรา เล่าไว้ เธอไม่เล่น<br />
ซ้ำหลบเร้น หลีกเรา เศร้าสุดทรวง</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>อยากให้เธอ มาเม้นท์ ใน <a href="http://hi5.com">Hi5</a><br />
อยากให้เธอ กด Like ใน <a href="http://facebook.com">Facebook</a><br />
แลกเพลงฟัง ใน <a href="http://imeem.com">iMeem</a> คงเป็นสุข<br />
นึกสนุก กดไป <a href="http://digg.com">Digg</a> ให้เธอ</p>
<p>ฉันจะมี <a href="http://multiply.com">Multiply</a> ไว้ใส่รูป<br />
จะส่งจูบ จุ๊บจุ๊บไป ใน <a href="http://twitter.com">Twitter</a><br />
Share เรื่องหวาน ผ่าน <a href="http://google.com/reader">Goo- gle Reader</a><br />
เข้า <a href="http://flickr.com">Flickr</a> ดูหน้าเธอ ให้ชื่นใจ</p>
<p>จะบันทึก ความลุ่มหลง ลง <a href="http://wordpress.com">Wordpress</a><br />
สร้าง <a href="http://myspace.com">MySpace</a> แล้ว add เธอ เป็น friend ไว้<br />
เปิด <a href="http://google.com">Latitude</a> คอยดู เมื่ออยู่ไกล<br />
เขียนถึงใน <a href="http://livejournal.com">Livejournal</a> ทุกเช้าเย็น</p>
<p>แค่นั่งนึก นั่งฝัน กลางวันไป<br />
เพราะตัวเรา นั้นไซร้ เธอไม่เห็น<br />
เว็บที่เรา เล่าไว้ เธอไม่เล่น<br />
ซ้ำหลบเร้น หลีกเรา เศร้าสุดทรวง</p>
    ]]></content>
  </entry>
  <entry>
    <title>การเพิ่มคำสำหรับระบบสะกดคำอัตโนมัติในโทรศัพท์เคลื่อนที่</title>
    <link rel="alternate" type="text/html" href="http://tewson.com/content/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%80%E0%B8%9E%E0%B8%B4%E0%B9%88%E0%B8%A1%E0%B8%84%E0%B8%B3%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B8%A3%E0%B8%B0%E0%B8%9A%E0%B8%9A%E0%B8%AA%E0%B8%B0%E0%B8%81%E0%B8%94%E0%B8%84%E0%B8%B3%E0%B8%AD%E0%B8%B1%E0%B8%95%E0%B9%82%E0%B8%99%E0%B8%A1%E0%B8%B1%E0%B8%95%E0%B8%B4%E0%B9%83%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A8%E0%B8%B1%E0%B8%9E%E0%B8%97%E0%B9%8C%E0%B9%80%E0%B8%84%E0%B8%A5%E0%B8%B7%E0%B9%88%E0%B8%AD%E0%B8%99%E0%B8%97%E0%B8%B5%E0%B9%88" />
    <id>http://tewson.com/content/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%80%E0%B8%9E%E0%B8%B4%E0%B9%88%E0%B8%A1%E0%B8%84%E0%B8%B3%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B8%A3%E0%B8%B0%E0%B8%9A%E0%B8%9A%E0%B8%AA%E0%B8%B0%E0%B8%81%E0%B8%94%E0%B8%84%E0%B8%B3%E0%B8%AD%E0%B8%B1%E0%B8%95%E0%B9%82%E0%B8%99%E0%B8%A1%E0%B8%B1%E0%B8%95%E0%B8%B4%E0%B9%83%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A8%E0%B8%B1%E0%B8%9E%E0%B8%97%E0%B9%8C%E0%B9%80%E0%B8%84%E0%B8%A5%E0%B8%B7%E0%B9%88%E0%B8%AD%E0%B8%99%E0%B8%97%E0%B8%B5%E0%B9%88</id>
    <published>2009-08-04T15:44:18+07:00</published>
    <updated>2009-08-04T15:44:18+07:00</updated>
    <author>
      <name>tewson</name>
    </author>
    <category term="intellect" />
    <category term="mobile phone" />
    <category term="tech" />
    <summary type="html"><![CDATA[<p>หลังจากได้ Nokia 3110c มา ผมก็ทวีตเป็นบ้าเป็นหลัง และนั่นหมายถึงการพิมพ์ข้อความในโทรศัพท์อย่างเป็นบ้าเป็นหลังด้วยเช่นกัน<br />
โชคดีที่เรามี T9 ระบบสะกดคำอัตโนมัติในโทรศัพท์เคลื่อนที่! (กรุณาอ่านด้วยสำเนียงโฆษณาขายของทางโทรศัพท์ในโทรทัศน์ - อืม ทำไมมันไม่ขายของทางโทรทัศน์ในโทรศํพท์บ้าง แต่นั่นไม่เกี่ยวกัน - ตอนดึก ๆ)<br />
สำหรับคนที่ไม่รู้จัก หลักการง่าย ๆ ของ T9 ก็คือ (กรุณาหยิบโทรศัพท์ขึ้นมาดูประกอบ) ถ้าเราจะพิมพ์คำอย่าง "แกลบ" จะเห็นว่าเราอักขระต่าง ๆ อยู่บนปุ่มเรียงตามลำดับ ดังนี้<br />
"แ" บนเลข 0 - "ก" บนเลข 1 - "ล" บนเลข 8 - "บ" บนเลข 6<br />
ถ้าไม่ใช้ T9 เราก็ต้องนั่งกดเลือกอักขระเหล่านั้น เช่น กด 6 สองครั้ง เพื่อเปลี่ยนจาก น เป็น บ<br />
แต่ด้วยพลังของ T9 เราเพียงแค่กดตัวเลขที่มีอักขระเหล่านั้น คือ 0 1 8 6 มันก็จะแสดงคำที่ประกอบด้วยกลุ่มอักขระเหล่านั้น ในกรณีของโทรศัพท์ผม มันแสดง "แขวน" ขึ้นมาก่อน ก็กดปุ่มทิศทางลงเพื่อเลือกคำที่ต้องการ<br />
มันสะดวกดีชะมัด แต่เดี๋ยวก่อน!<br />
คือ T9 ของภาษาไทย มันมาพร้อมกับคำที่จำกัด บางคำมันก็ไม่รู้จัก เช่น คำว่า "เต่า" คือถ้าเรากด 0 5 * 0 แล้วเลื่อนหายังไงก็จะไม่เจอคำว่าเต่า ต้องเปลี่ยนกลับมาใช้วิธีธรรมดากดเอา (ในขณะที่บางคำเสือกมี เช่น กด 5 * 6 6 8 * 8 จะได้คำว่า "ดับบลิว" หรือกด 9 8 9 1 9 8 9 6 จะได้ "หลอกหลอน")<br />
ผมก็ก่นด่า T9 มาตลอดว่า ทำไมไม่มีคำอย่าง เต่า หรือ ตู้ (ใช่แล้ว คำว่า ตู้ ไม่มีมาตั้งแต่แรก) มาตั้งแต่แรกวะ ด่ามันใน twitter จนหลายคนน่าจะอิดหนาระอาใจ จนวันหนึ่งผมเกิดดวงตาเห็นธรรม! (โดยไม่ต้องให้นายกฯ มาอวยพร) นั่นคือ T9 มันเพิ่มคำเองได้<br />
ด้วยความที่ใช้ T9 ในการทวีตซะส่วนมาก เลยไม่เคยดูว่าในหน้าจอพิมพ์ข้อความมันมีตัวเลือกอะไรเพิ่มเติมบ้าง (แบบว่ารีบ) เมื่อกี้ลองกด Options ปุ๊บโป๊ะเชะ เจอ Insert word ก็เพิ่มคำว่า เต่า กับ ตู้ ลงไปอย่างบันเทิงใจ<br />
ต้องกราบขออภัย T9 มา ณ ที่นี้ด้วย (ว่าแต่คำว่า ตู้ มันไม่ได้ใช้กันทั่วไปเรอะ ถึงไม่ได้มีมาด้วย! คำว่า "บัญชร" ยังมีเลยโว้ย กด 6 * 3 3 8 หรือถ้าคุณกด 6 8 0 7 8 8 1 4 9 7 0 7 9 0 3 0 ต่อกันในคราวเดียวก็จะได้ "ประมวลกฎหมายอาญา" ซึ่งพบบ่อยกว่าคำว่า "ตู้" เรอะ!)</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>หลังจากได้ Nokia 3110c มา ผมก็ทวีตเป็นบ้าเป็นหลัง และนั่นหมายถึงการพิมพ์ข้อความในโทรศัพท์อย่างเป็นบ้าเป็นหลังด้วยเช่นกัน</p>
<p>โชคดีที่เรามี T9 ระบบสะกดคำอัตโนมัติในโทรศัพท์เคลื่อนที่! (กรุณาอ่านด้วยสำเนียงโฆษณาขายของทางโทรศัพท์ในโทรทัศน์ - อืม ทำไมมันไม่ขายของทางโทรทัศน์ในโทรศํพท์บ้าง แต่นั่นไม่เกี่ยวกัน - ตอนดึก ๆ)</p>
<p>สำหรับคนที่ไม่รู้จัก หลักการง่าย ๆ ของ T9 ก็คือ (กรุณาหยิบโทรศัพท์ขึ้นมาดูประกอบ) ถ้าเราจะพิมพ์คำอย่าง "แกลบ" จะเห็นว่าเราอักขระต่าง ๆ อยู่บนปุ่มเรียงตามลำดับ ดังนี้</p>
<p>"แ" บนเลข 0 - "ก" บนเลข 1 - "ล" บนเลข 8 - "บ" บนเลข 6</p>
<p>ถ้าไม่ใช้ T9 เราก็ต้องนั่งกดเลือกอักขระเหล่านั้น เช่น กด 6 สองครั้ง เพื่อเปลี่ยนจาก น เป็น บ</p>
<p>แต่ด้วยพลังของ T9 เราเพียงแค่กดตัวเลขที่มีอักขระเหล่านั้น คือ 0 1 8 6 มันก็จะแสดงคำที่ประกอบด้วยกลุ่มอักขระเหล่านั้น ในกรณีของโทรศัพท์ผม มันแสดง "แขวน" ขึ้นมาก่อน ก็กดปุ่มทิศทางลงเพื่อเลือกคำที่ต้องการ</p>
<p>มันสะดวกดีชะมัด แต่เดี๋ยวก่อน!</p>
<p>คือ T9 ของภาษาไทย มันมาพร้อมกับคำที่จำกัด บางคำมันก็ไม่รู้จัก เช่น คำว่า "เต่า" คือถ้าเรากด 0 5 * 0 แล้วเลื่อนหายังไงก็จะไม่เจอคำว่าเต่า ต้องเปลี่ยนกลับมาใช้วิธีธรรมดากดเอา (ในขณะที่บางคำเสือกมี เช่น กด 5 * 6 6 8 * 8 จะได้คำว่า "ดับบลิว" หรือกด 9 8 9 1 9 8 9 6 จะได้ "หลอกหลอน")</p>
<p>ผมก็ก่นด่า T9 มาตลอดว่า ทำไมไม่มีคำอย่าง เต่า หรือ ตู้ (ใช่แล้ว คำว่า ตู้ ไม่มีมาตั้งแต่แรก) มาตั้งแต่แรกวะ ด่ามันใน twitter จนหลายคนน่าจะอิดหนาระอาใจ จนวันหนึ่งผมเกิดดวงตาเห็นธรรม! (โดยไม่ต้องให้นายกฯ มาอวยพร) นั่นคือ T9 มันเพิ่มคำเองได้</p>
<p>ด้วยความที่ใช้ T9 ในการทวีตซะส่วนมาก เลยไม่เคยดูว่าในหน้าจอพิมพ์ข้อความมันมีตัวเลือกอะไรเพิ่มเติมบ้าง (แบบว่ารีบ) เมื่อกี้ลองกด Options ปุ๊บโป๊ะเชะ เจอ Insert word ก็เพิ่มคำว่า เต่า กับ ตู้ ลงไปอย่างบันเทิงใจ</p>
<p>ต้องกราบขออภัย T9 มา ณ ที่นี้ด้วย (ว่าแต่คำว่า ตู้ มันไม่ได้ใช้กันทั่วไปเรอะ ถึงไม่ได้มีมาด้วย! คำว่า "บัญชร" ยังมีเลยโว้ย กด 6 * 3 3 8 หรือถ้าคุณกด 6 8 0 7 8 8 1 4 9 7 0 7 9 0 3 0 ต่อกันในคราวเดียวก็จะได้ "ประมวลกฎหมายอาญา" ซึ่งพบบ่อยกว่าคำว่า "ตู้" เรอะ!)</p>
    ]]></content>
  </entry>
  <entry>
    <title>รู้จักกับ Google Wave</title>
    <link rel="alternate" type="text/html" href="http://tewson.com/content/%E0%B8%A3%E0%B8%B9%E0%B9%89%E0%B8%88%E0%B8%B1%E0%B8%81%E0%B8%81%E0%B8%B1%E0%B8%9A-google-wave" />
    <id>http://tewson.com/content/%E0%B8%A3%E0%B8%B9%E0%B9%89%E0%B8%88%E0%B8%B1%E0%B8%81%E0%B8%81%E0%B8%B1%E0%B8%9A-google-wave</id>
    <published>2009-06-13T02:40:43+07:00</published>
    <updated>2009-06-13T02:42:16+07:00</updated>
    <author>
      <name>tewson</name>
    </author>
    <category term="google" />
    <category term="google wave" />
    <category term="intellect" />
    <category term="tech" />
    <summary type="html"><![CDATA[<p>ชาวบ้านชาวช่องเขาพูดถึงกันมาได้สักพักแล้ว ผมเพิ่งได้มีโอกาสมาทำความรู้จักกับมันอย่างจริงจังก็วันนี้</p>
<p>คงไม่ต้องพูดถึงอีกแล้วว่า <a href="http://wave.google.com">Google Wave</a> มันเจ๋งอย่างไร หรือถ้าใครเพิ่งจะมารู้จักมันเหมือนผม ก็ลองอ่าน<a href="http://www.blognone.com/node/11840">ข่าวที่ blognone</a>ก่อนได้ แต่ความสนใจของผมต่อ Google Wave ไม่ได้มีแค่ในฐานะผู้ใช้ แต่รวมไปถึงการพัฒนาต่อ (ซึ่งมันก็คือการใช้ไม่ใช่หรือวะ)</p>
<p>Google Wave นั้นทำงานอยู่บน protocol - ระเบียบวิธีในการรับส่งข้อมูล - ที่ชื่อ <a href="http://waveprotocol.org">Google Wave Federation Protocol</a> ที่ Google พัฒนาต่อมาจาก <a href="http://xmpp.org">XMPP</a> ซึ่งจะโค้ด (ส่วนใหญ่) ก็จะถูกเปิดออกสู่สาธารณะ และใคร ๆ ก็จะสามารถเอา Wave Protocol ไปประยุกต์ใช้งานได้</p>
<p>แนะนำให้อ่าน <a href="http://mashable.com/2009/05/28/google-wave-guide/">Google Wave: A Complete Guide</a> แต่ถ้าขี้เกียจ อ่านข้างล่างนี่ก็ได้</p>
<p>รู้จักกับศัพท์ในวงการ Google Wave ก่อน</p>
<ul>
<li>Wave คือชุดของการสนทนา (รวมไปถึงเอกสารและสื่ออื่น ๆ ที่ฝังอยู่) เปรียบได้กับบันทึกการสนทนาของพวก Instant Messaging อย่าง Live Messenger หรือ Google Talk</li>
<li>Wavelet ก็เป็นชุดของการสนทนาเช่นกัน แต่เป็นการสนทนาย่อย ๆ ที่อาจจะแยกวงมาจาก Wave ใหญ่อีกทีหนึ่ง</li>
<li>Blip คือข้อความเดี่ยว ๆ ที่เป็นหน่วยย่อยใน Wavelet กับ Wave</li>
<li>Document คือสิ่งที่อยู่ใน Blip จะเป็นข้อความหรือไฟล์อะไรก็ว่าไป</li>
<li>Extension คือส่วนต่อขยายจาก Google Wave หรือโปรแกรมที่ทำงานกับ Wave แบ่งย่อยได้สองประเภทหลัก ๆ
<ul>
<li>Robot คือระบบจัดการข้อความอัตโนมัติ อาจจะตอบข้อความได้ หรือรับคำสั่งจากเราได้</li>
<li>Gadget คือโปรแกรมเล็ก ๆ ที่ทำงานบน Wave</li>
</ul>
</li>
<li>Embedded Wave คือการเอา Wave ไปแปะที่อื่น</li>
</ul>
<p>พอตามอ่านแล้วพบว่าเอกสารและบทความเกี่ยวกับ Google Wave และ protocol ของมัน มีเยอะมาก ทั้งในแง่โครงสร้าง กลไก ที่กำลังอ่านอยู่คือไอเดียของ <a href="http://en.wikipedia.org/wiki/Operational_transformation">Operational Transformation</a> ที่เป็นส่วนหนึ่งของการทำงานของ Google Wave ที่ช่วยให้คนหลายคนสามารถแก้ไขเอกสารพร้อม ๆ กันได้ แล้วยังมีแบบร่างของตัว Wave Federation Protocol อีก ไว้เข้าใจแล้วจะมาเล่า</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>ชาวบ้านชาวช่องเขาพูดถึงกันมาได้สักพักแล้ว ผมเพิ่งได้มีโอกาสมาทำความรู้จักกับมันอย่างจริงจังก็วันนี้</p>
<p>คงไม่ต้องพูดถึงอีกแล้วว่า <a href="http://wave.google.com">Google Wave</a> มันเจ๋งอย่างไร หรือถ้าใครเพิ่งจะมารู้จักมันเหมือนผม ก็ลองอ่าน<a href="http://www.blognone.com/node/11840">ข่าวที่ blognone</a>ก่อนได้ แต่ความสนใจของผมต่อ Google Wave ไม่ได้มีแค่ในฐานะผู้ใช้ แต่รวมไปถึงการพัฒนาต่อ (ซึ่งมันก็คือการใช้ไม่ใช่หรือวะ)</p>
<p>Google Wave นั้นทำงานอยู่บน protocol - ระเบียบวิธีในการรับส่งข้อมูล - ที่ชื่อ <a href="http://waveprotocol.org">Google Wave Federation Protocol</a> ที่ Google พัฒนาต่อมาจาก <a href="http://xmpp.org">XMPP</a> ซึ่งจะโค้ด (ส่วนใหญ่) ก็จะถูกเปิดออกสู่สาธารณะ และใคร ๆ ก็จะสามารถเอา Wave Protocol ไปประยุกต์ใช้งานได้</p>
<p>แนะนำให้อ่าน <a href="http://mashable.com/2009/05/28/google-wave-guide/">Google Wave: A Complete Guide</a> แต่ถ้าขี้เกียจ อ่านข้างล่างนี่ก็ได้</p>
<p>รู้จักกับศัพท์ในวงการ Google Wave ก่อน</p>
<ul>
<li>Wave คือชุดของการสนทนา (รวมไปถึงเอกสารและสื่ออื่น ๆ ที่ฝังอยู่) เปรียบได้กับบันทึกการสนทนาของพวก Instant Messaging อย่าง Live Messenger หรือ Google Talk</li>
<li>Wavelet ก็เป็นชุดของการสนทนาเช่นกัน แต่เป็นการสนทนาย่อย ๆ ที่อาจจะแยกวงมาจาก Wave ใหญ่อีกทีหนึ่ง</li>
<li>Blip คือข้อความเดี่ยว ๆ ที่เป็นหน่วยย่อยใน Wavelet กับ Wave</li>
<li>Document คือสิ่งที่อยู่ใน Blip จะเป็นข้อความหรือไฟล์อะไรก็ว่าไป</li>
<li>Extension คือส่วนต่อขยายจาก Google Wave หรือโปรแกรมที่ทำงานกับ Wave แบ่งย่อยได้สองประเภทหลัก ๆ
<ul>
<li>Robot คือระบบจัดการข้อความอัตโนมัติ อาจจะตอบข้อความได้ หรือรับคำสั่งจากเราได้</li>
<li>Gadget คือโปรแกรมเล็ก ๆ ที่ทำงานบน Wave</li>
</ul>
</li>
<li>Embedded Wave คือการเอา Wave ไปแปะที่อื่น</li>
</ul>
<p>พอตามอ่านแล้วพบว่าเอกสารและบทความเกี่ยวกับ Google Wave และ protocol ของมัน มีเยอะมาก ทั้งในแง่โครงสร้าง กลไก ที่กำลังอ่านอยู่คือไอเดียของ <a href="http://en.wikipedia.org/wiki/Operational_transformation">Operational Transformation</a> ที่เป็นส่วนหนึ่งของการทำงานของ Google Wave ที่ช่วยให้คนหลายคนสามารถแก้ไขเอกสารพร้อม ๆ กันได้ แล้วยังมีแบบร่างของตัว Wave Federation Protocol อีก ไว้เข้าใจแล้วจะมาเล่า</p>
    ]]></content>
  </entry>
  <entry>
    <title>Emergent Semantics</title>
    <link rel="alternate" type="text/html" href="http://tewson.com/content/emergent-semantics" />
    <id>http://tewson.com/content/emergent-semantics</id>
    <published>2009-06-04T17:40:38+07:00</published>
    <updated>2009-06-04T17:41:49+07:00</updated>
    <author>
      <name>tewson</name>
    </author>
    <category term="intellect" />
    <category term="lecture" />
    <category term="semantics" />
    <category term="tech" />
    <summary type="html"><![CDATA[<p>วันนี้ไปฟังบรรยายที่มหาวิทยาลัยเกษตรศาสตร์มา ในหัวข้อ "A Bag of Words Approach to Multimedia Semantics" โดย Prof. Dr. William I. Grosky จาก University of Michigan Dearborn<br />
bag-of-words model นี่เป็นหลักการทางการประมวลผลภาษาธรรมชาติ (NLP) คร่าว ๆ คือถือว่าเอกสารหนึ่ง ๆ เป็นเหมือนถุงใส่คำ คือไม่สนใจลำดับหรือไวยากรณ์ แล้วข้อมูลทางสถิติว่ามีคำไหนอยู่มากน้อยก็จะสามารถบอกอะไรได้บางอย่าง ตัวอย่างการประยุกต์ใช้ก็คือระบบป้องกัน spam<br />
ทีนี้ก็มีการเอา model นี้มาใช้ในสาขาอื่นบ้าง เช่นการรู้จำวัตถุจากภาพ โดยถือว่าภาพเป็นเอกสาร หรือถุงบรรจุคำ ส่วนคำที่ว่านี่ก็มาจากการแบ่งภาพออกเป็นส่วนย่อย ๆ เช่น แบ่งเป็นตาราง แล้วก็ดึงเอาคุณสมบัติบางอย่างในส่วนย่อยนั้นมา (ถือเป็นคำ) รวมในถุงใส่คำ แล้วก็ใช้วิธีทางสถิติวิเคราะห์<br />
จริง ๆ แล้วในการบรรยายนี้มีอีกหลายเรื่องมาก แต่เขาพูดเร็วมาก ไม่ก็ผมช้าเอง จดทันบ้างไม่ทันบ้าง เอาอีกเรื่องที่ผมว่าน่าสนใจก็แล้วกัน คือ Emergent Semantics<br />
ปกติแล้วเราสามารถดึง "ความหมาย" หรือ semantics ของข้อมูลใด ๆ ออกมาได้หลายวิธี ซึ่งข้อมูลสามารถมีได้หลายความหมายในเวลาเดียวกัน ขึ้นอยู่กับบริบทอื่น ๆ และผู้รับรู้ โดย ดร. คนนี้เสนอวิธีการดึงความหมายนั้นออกมาจากการ "ตามรอย" ของการรับรู้ข้อมูลกลุ่มหนึ่งที่เชื่อมโยงกัน (interlinked) เช่น หน้าเว็บ<br />
ตัวอย่างเช่น รูป X เป็นรูปป่าในหมอก ถ้าเอามาถามคนหลายคนว่ามันเป็นรูปอะไร คนนึงก็บอกว่ารูปป่า อีกคนก็อาจจะบอกว่ารูปหมอก แต่ถ้าเราเห็นว่า ก่อนจะมาถึงรูป X เนี่ย ไอ้หมอนี่ดูรูปป่ามาก่อนหลายรูป เราก็จะสามารถตีความได้ว่า รูป X ในตอนนี้ หมายความถึงป่า แสดงให้เห็นว่า "ความหมาย" ของข้อมูลมันผุดขึ้นมาในระหว่างการรับรู้ข้อมูลมาเรื่อย ๆ นั่นเอง<br />
ใครเข้าไปอ่านได้ก็ลองโหลดมาอ่านดูนะ<br />
<a href="http://portal.acm.org/citation.cfm?id=637420" title="http://portal.acm.org/citation.cfm?id=637420">http://portal.acm.org/citation.cfm?id=637420</a><br />
<a href="http://www.springerlink.com/content/plbac36pxnvx31cy/" title="http://www.springerlink.com/content/plbac36pxnvx31cy/">http://www.springerlink.com/content/plbac36pxnvx31cy/</a></p>
    ]]></summary>
    <content type="html"><![CDATA[<p>วันนี้ไปฟังบรรยายที่มหาวิทยาลัยเกษตรศาสตร์มา ในหัวข้อ "A Bag of Words Approach to Multimedia Semantics" โดย Prof. Dr. William I. Grosky จาก University of Michigan Dearborn</p>
<p>bag-of-words model นี่เป็นหลักการทางการประมวลผลภาษาธรรมชาติ (NLP) คร่าว ๆ คือถือว่าเอกสารหนึ่ง ๆ เป็นเหมือนถุงใส่คำ คือไม่สนใจลำดับหรือไวยากรณ์ แล้วข้อมูลทางสถิติว่ามีคำไหนอยู่มากน้อยก็จะสามารถบอกอะไรได้บางอย่าง ตัวอย่างการประยุกต์ใช้ก็คือระบบป้องกัน spam</p>
<p>ทีนี้ก็มีการเอา model นี้มาใช้ในสาขาอื่นบ้าง เช่นการรู้จำวัตถุจากภาพ โดยถือว่าภาพเป็นเอกสาร หรือถุงบรรจุคำ ส่วนคำที่ว่านี่ก็มาจากการแบ่งภาพออกเป็นส่วนย่อย ๆ เช่น แบ่งเป็นตาราง แล้วก็ดึงเอาคุณสมบัติบางอย่างในส่วนย่อยนั้นมา (ถือเป็นคำ) รวมในถุงใส่คำ แล้วก็ใช้วิธีทางสถิติวิเคราะห์</p>
<p>จริง ๆ แล้วในการบรรยายนี้มีอีกหลายเรื่องมาก แต่เขาพูดเร็วมาก ไม่ก็ผมช้าเอง จดทันบ้างไม่ทันบ้าง เอาอีกเรื่องที่ผมว่าน่าสนใจก็แล้วกัน คือ Emergent Semantics</p>
<p>ปกติแล้วเราสามารถดึง "ความหมาย" หรือ semantics ของข้อมูลใด ๆ ออกมาได้หลายวิธี ซึ่งข้อมูลสามารถมีได้หลายความหมายในเวลาเดียวกัน ขึ้นอยู่กับบริบทอื่น ๆ และผู้รับรู้ โดย ดร. คนนี้เสนอวิธีการดึงความหมายนั้นออกมาจากการ "ตามรอย" ของการรับรู้ข้อมูลกลุ่มหนึ่งที่เชื่อมโยงกัน (interlinked) เช่น หน้าเว็บ</p>
<p>ตัวอย่างเช่น รูป X เป็นรูปป่าในหมอก ถ้าเอามาถามคนหลายคนว่ามันเป็นรูปอะไร คนนึงก็บอกว่ารูปป่า อีกคนก็อาจจะบอกว่ารูปหมอก แต่ถ้าเราเห็นว่า ก่อนจะมาถึงรูป X เนี่ย ไอ้หมอนี่ดูรูปป่ามาก่อนหลายรูป เราก็จะสามารถตีความได้ว่า รูป X ในตอนนี้ หมายความถึงป่า แสดงให้เห็นว่า "ความหมาย" ของข้อมูลมันผุดขึ้นมาในระหว่างการรับรู้ข้อมูลมาเรื่อย ๆ นั่นเอง</p>
<p>ใครเข้าไปอ่านได้ก็ลองโหลดมาอ่านดูนะ<br />
<a href="http://portal.acm.org/citation.cfm?id=637420" title="http://portal.acm.org/citation.cfm?id=637420">http://portal.acm.org/citation.cfm?id=637420</a><br />
<a href="http://www.springerlink.com/content/plbac36pxnvx31cy/" title="http://www.springerlink.com/content/plbac36pxnvx31cy/">http://www.springerlink.com/content/plbac36pxnvx31cy/</a></p>
    ]]></content>
  </entry>
  <entry>
    <title>BarCamp Bangkok 3</title>
    <link rel="alternate" type="text/html" href="http://tewson.com/content/barcamp-bangkok-3" />
    <id>http://tewson.com/content/barcamp-bangkok-3</id>
    <published>2009-05-25T01:17:13+07:00</published>
    <updated>2009-05-25T01:17:13+07:00</updated>
    <author>
      <name>tewson</name>
    </author>
    <category term="bangkok" />
    <category term="barcampbkk3" />
    <category term="intellect" />
    <category term="programming" />
    <category term="project" />
    <category term="tech" />
    <summary type="html"><![CDATA[<p>และแล้ว<a href="http://barcampbangkok.org">บาร์แค้มป์ กรุงเทพฯ ครั้งที่ 3</a> ก็จบลงอย่างเงียบ ๆ</p>
<p>ผมขอสดุดีให้กับทีมงานทุกคนสำหรับความอุตสาหะในการจัดงานครั้งนี้ เพราะผมเห็นว่ามันประสบความสำเร็จมาก</p>
<p>บาร์แค้มป์ครั้งนี้มีสิ่งที่พิเศษกว่าครั้งก่อน ๆ มาก ไม่ว่าจะเป็น <a href="http://www.twitpic.com/5u0m4">ดนตรีสด</a> <a href="http://www.twitpic.com/5rnkw">การประกวดมิสบาร์แค้มป์</a> หรือแม้แต่<a href="http://www.twitpic.com/5rp9e">เชียร์ลีดเด้อร์</a>! ทั้งนี้ก็เพราะเป็นครั้งแรกที่มีการค้างคืนกันนั่นเอง</p>
<p>ผมเองก็เสนอหัวข้อไปตั้งแต่วันแรก แต่ไม่ได้รับการโหวต วันที่สองดูรอบเช้าก็ยังไม่ได้ เลยนิ่งนอนใจ เข้าฟังหัวข้อ ดรูปั้ลปะทะเวิร์ดเพรสปะทะจูมล่า ด้วยความง่วงงุน (คืนก่อนวันงาน นอน 5 ชั่วโมง คืนวันงานนอน 3 ชั่วโมง) เลยเผลอหลับ ตื่นขึ้นมาตอนเลิกพอดี (เพราะเสียงปรบมือ) ก็มั่ว ๆ เดินออกนอกห้องตาม ๆ เขาไป</p>
<p>เจอ <a href="http://twitter.com/noomz">@noomz</a> ทักว่าต่อไปเป็นหัวข้อของผม แล้วตะกี้ในห้องเขาก็ถามว่าใครพูดหัวข้อต่อไป แต่ก็ไม่มีใครตอบ (ก็หลับอยู่นี่หว่า) เลยเกิดอาการรน วิ่งไปดูให้แน่ใจแล้ววิ่งกลับมา ยังดีที่มีคนเดินมาฟังบ้าง ก็เลยพูด ด้วยความรนและเพิ่งตื่นเลยพูดเร็วเกิน ต้องขออภัยคนที่ฟังด้วย ข้างล่างนี่เป็นสไล้ด์</p>
<div style="width:425px;text-align:left" id="__ss_1482234"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/tewson/using-qtwebkit-in-pyqt-as-a-n00b?type=presentation" title="Using QtWebKit in PyQt as a N00b">Using QtWebKit in PyQt as a N00b</a>
<object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=barcamp-090524130330-phpapp02&stripped_title=using-qtwebkit-in-pyqt-as-a-n00b" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=barcamp-090524130330-phpapp02&stripped_title=using-qtwebkit-in-pyqt-as-a-n00b" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">Microsoft Word documents</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/tewson">tewson</a>.</div>
</div>
    ]]></summary>
    <content type="html"><![CDATA[<p>และแล้ว<a href="http://barcampbangkok.org">บาร์แค้มป์ กรุงเทพฯ ครั้งที่ 3</a> ก็จบลงอย่างเงียบ ๆ</p>
<p>ผมขอสดุดีให้กับทีมงานทุกคนสำหรับความอุตสาหะในการจัดงานครั้งนี้ เพราะผมเห็นว่ามันประสบความสำเร็จมาก</p>
<p>บาร์แค้มป์ครั้งนี้มีสิ่งที่พิเศษกว่าครั้งก่อน ๆ มาก ไม่ว่าจะเป็น <a href="http://www.twitpic.com/5u0m4">ดนตรีสด</a> <a href="http://www.twitpic.com/5rnkw">การประกวดมิสบาร์แค้มป์</a> หรือแม้แต่<a href="http://www.twitpic.com/5rp9e">เชียร์ลีดเด้อร์</a>! ทั้งนี้ก็เพราะเป็นครั้งแรกที่มีการค้างคืนกันนั่นเอง</p>
<p>ผมเองก็เสนอหัวข้อไปตั้งแต่วันแรก แต่ไม่ได้รับการโหวต วันที่สองดูรอบเช้าก็ยังไม่ได้ เลยนิ่งนอนใจ เข้าฟังหัวข้อ ดรูปั้ลปะทะเวิร์ดเพรสปะทะจูมล่า ด้วยความง่วงงุน (คืนก่อนวันงาน นอน 5 ชั่วโมง คืนวันงานนอน 3 ชั่วโมง) เลยเผลอหลับ ตื่นขึ้นมาตอนเลิกพอดี (เพราะเสียงปรบมือ) ก็มั่ว ๆ เดินออกนอกห้องตาม ๆ เขาไป</p>
<p>เจอ <a href="http://twitter.com/noomz">@noomz</a> ทักว่าต่อไปเป็นหัวข้อของผม แล้วตะกี้ในห้องเขาก็ถามว่าใครพูดหัวข้อต่อไป แต่ก็ไม่มีใครตอบ (ก็หลับอยู่นี่หว่า) เลยเกิดอาการรน วิ่งไปดูให้แน่ใจแล้ววิ่งกลับมา ยังดีที่มีคนเดินมาฟังบ้าง ก็เลยพูด ด้วยความรนและเพิ่งตื่นเลยพูดเร็วเกิน ต้องขออภัยคนที่ฟังด้วย ข้างล่างนี่เป็นสไล้ด์</p>
<div style="width:425px;text-align:left" id="__ss_1482234"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/tewson/using-qtwebkit-in-pyqt-as-a-n00b?type=presentation" title="Using QtWebKit in PyQt as a N00b">Using QtWebKit in PyQt as a N00b</a>
<object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=barcamp-090524130330-phpapp02&stripped_title=using-qtwebkit-in-pyqt-as-a-n00b" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=barcamp-090524130330-phpapp02&stripped_title=using-qtwebkit-in-pyqt-as-a-n00b" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">Microsoft Word documents</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/tewson">tewson</a>.</div>
</div>
    ]]></content>
  </entry>
  <entry>
    <title>Identifying Auxiliary Web Images Using Combinations of Analyses</title>
    <link rel="alternate" type="text/html" href="http://tewson.com/content/identifying-auxiliary-web-images-using-combinations-analyses" />
    <id>http://tewson.com/content/identifying-auxiliary-web-images-using-combinations-analyses</id>
    <published>2009-05-23T04:31:31+07:00</published>
    <updated>2009-05-23T04:31:31+07:00</updated>
    <author>
      <name>tewson</name>
    </author>
    <category term="intellect" />
    <category term="project" />
    <category term="tech" />
    <summary type="html"><![CDATA[<p>วันนี้เพิ่งเสนอความก้าวหน้าโครงงานที่ทำตอนฝึกงานมา ก็ตามหัวข้อ คือพยายามจะกำจัดรูปที่ไม่จำเป็นต่อหน้าเว็บออกไปโดยใช้การวิเคราะห์ต่าง ๆ ที่ทำไปแล้วตอนนี้ก็คือวิเคราะห์พวกตำแหน่ง ขนาด เรียกว่าเป็นคุณสมบัติในหน้าเว็บก็แล้วกัน กับวิเคราะห์คุณสมบัติทางภาพ เช่น สี จำนวนหน้าคน จำนวนตัวอักษร เมื่อเก็บพวกคุณสมบัติต่าง ๆ แล้ว ก็มาแปะป้ายว่า รูปไหนจำเป็น - ไม่จำเป็น แล้วก็เอาไปสอนคอมพิวเต้อร์ ให้มันสร้างโมเดล ประมาณว่าเราบอกมันว่า</p>
<ul>
<li>ของชิ้นที่ 1 จัดอยู่ในประเภท A มีคุณสมบัติ (1,2)</li>
<li>ของชิ้นที่ 2 จัดอยู่ในประเภท A มีคุณสมบัติ (1,1)</li>
<li>ของชิ้นที่ 3 จัดอยู่ในประเภท A มีคุณสมบัติ (1,0)</li>
<li>ของชิ้นที่ 4 จัดอยู่ในประเภท A มีคุณสมบัติ (2,2)</li>
<li>ของชิ้นที่ 5 จัดอยู่ในประเภท A มีคุณสมบัติ (2,1)</li>
<li>ของชิ้นที่ 6 จัดอยู่ในประเภท B มีคุณสมบัติ (10,9)</li>
<li>ของชิ้นที่ 7 จัดอยู่ในประเภท B มีคุณสมบัติ (10,8)</li>
<li>ของชิ้นที่ 8 จัดอยู่ในประเภท B มีคุณสมบัติ (9,9)</li>
<li>ของชิ้นที่ 9 จัดอยู่ในประเภท B มีคุณสมบัติ (11,9)</li>
<li>ของชิ้นที่ 10 จัดอยู่ในประเภท B มีคุณสมบัติ (10,11)</li>
</ul>
<p>แล้วถ้าเราเจอข้อมูลใหม่ มีคุณสมบัติ (11,10) เนี่ย โมเดลมันก็ควรจะทายได้ว่ามันเป็นประเภท B</p>
<p>สไล้ด์โชว์ก็ตามข้างล่างนี้ ได้รับคำวิจารณ์ว่ามีเนื้อหาน้อยไปหน่อย</p>
<div style="width:425px;text-align:left" id="__ss_1476673"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/tewson/identifying-auxiliary-web-images-using-combinations-of-analyses?type=powerpoint" title="Identifying Auxiliary Web Images Using Combinations of Analyses">Identifying Auxiliary Web Images Using Combinations of Analyses</a>
<object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=nectectewson-090522162407-phpapp01&stripped_title=identifying-auxiliary-web-images-using-combinations-of-analyses" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=nectectewson-090522162407-phpapp01&stripped_title=identifying-auxiliary-web-images-using-combinations-of-analyses" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">Microsoft Word documents</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/tewson">tewson</a>.</div>
</div>
<p>รู้สึกว่าตัวเองยังอ่อนหัดมาก แต่ไม่เป็นไร โลกนี้มีไว้ให้ใช้ชีวิตอยู่แล้ว</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>วันนี้เพิ่งเสนอความก้าวหน้าโครงงานที่ทำตอนฝึกงานมา ก็ตามหัวข้อ คือพยายามจะกำจัดรูปที่ไม่จำเป็นต่อหน้าเว็บออกไปโดยใช้การวิเคราะห์ต่าง ๆ ที่ทำไปแล้วตอนนี้ก็คือวิเคราะห์พวกตำแหน่ง ขนาด เรียกว่าเป็นคุณสมบัติในหน้าเว็บก็แล้วกัน กับวิเคราะห์คุณสมบัติทางภาพ เช่น สี จำนวนหน้าคน จำนวนตัวอักษร เมื่อเก็บพวกคุณสมบัติต่าง ๆ แล้ว ก็มาแปะป้ายว่า รูปไหนจำเป็น - ไม่จำเป็น แล้วก็เอาไปสอนคอมพิวเต้อร์ ให้มันสร้างโมเดล ประมาณว่าเราบอกมันว่า</p>
<ul>
<li>ของชิ้นที่ 1 จัดอยู่ในประเภท A มีคุณสมบัติ (1,2)</li>
<li>ของชิ้นที่ 2 จัดอยู่ในประเภท A มีคุณสมบัติ (1,1)</li>
<li>ของชิ้นที่ 3 จัดอยู่ในประเภท A มีคุณสมบัติ (1,0)</li>
<li>ของชิ้นที่ 4 จัดอยู่ในประเภท A มีคุณสมบัติ (2,2)</li>
<li>ของชิ้นที่ 5 จัดอยู่ในประเภท A มีคุณสมบัติ (2,1)</li>
<li>ของชิ้นที่ 6 จัดอยู่ในประเภท B มีคุณสมบัติ (10,9)</li>
<li>ของชิ้นที่ 7 จัดอยู่ในประเภท B มีคุณสมบัติ (10,8)</li>
<li>ของชิ้นที่ 8 จัดอยู่ในประเภท B มีคุณสมบัติ (9,9)</li>
<li>ของชิ้นที่ 9 จัดอยู่ในประเภท B มีคุณสมบัติ (11,9)</li>
<li>ของชิ้นที่ 10 จัดอยู่ในประเภท B มีคุณสมบัติ (10,11)</li>
</ul>
<p>แล้วถ้าเราเจอข้อมูลใหม่ มีคุณสมบัติ (11,10) เนี่ย โมเดลมันก็ควรจะทายได้ว่ามันเป็นประเภท B</p>
<p>สไล้ด์โชว์ก็ตามข้างล่างนี้ ได้รับคำวิจารณ์ว่ามีเนื้อหาน้อยไปหน่อย</p>
<div style="width:425px;text-align:left" id="__ss_1476673"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/tewson/identifying-auxiliary-web-images-using-combinations-of-analyses?type=powerpoint" title="Identifying Auxiliary Web Images Using Combinations of Analyses">Identifying Auxiliary Web Images Using Combinations of Analyses</a>
<object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=nectectewson-090522162407-phpapp01&stripped_title=identifying-auxiliary-web-images-using-combinations-of-analyses" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=nectectewson-090522162407-phpapp01&stripped_title=identifying-auxiliary-web-images-using-combinations-of-analyses" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">Microsoft Word documents</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/tewson">tewson</a>.</div>
</div>
<p>รู้สึกว่าตัวเองยังอ่อนหัดมาก แต่ไม่เป็นไร โลกนี้มีไว้ให้ใช้ชีวิตอยู่แล้ว</p>
    ]]></content>
  </entry>
</feed>
