<?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:blogger='http://schemas.google.com/blogger/2008' 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-3055070353216963447</id><updated>2024-11-01T18:20:15.055+07:00</updated><category term="C/C++"/><category term="Data Structures and Algorithms"/><category term="Raspberry PI"/><category term="Raspbian"/><category term="Android - Article"/><category term="Business"/><category term="Computer Security"/><category term="Java"/><title type='text'>Johnny Dew Dev Note</title><subtitle type='html'>Software development</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bangdew.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3055070353216963447/posts/default'/><link rel='alternate' type='text/html' href='http://bangdew.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Johnny Dew</name><uri>http://www.blogger.com/profile/06286585852660545697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqzwenXEDt1rNR92ZT5d9gFXNBHH5nll5blkazk5pCzmJZwRhYKOg-HSgtiDAmEthNoz0b-uECAN2xJmHtiIk9ILRkG2blCC7zLuqvAK9P_aefJGPJyqPKDhD3h-_Oc2Y/s220/Exception.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3055070353216963447.post-2733246104138842161</id><published>2014-03-21T04:25:00.001+07:00</published><updated>2014-03-21T04:25:15.969+07:00</updated><title type='text'>บ้านหลังใหม่</title><content type='html'>ตอนนี้ผมย้ายไปเขียนบล็อกที่เว็บส่วนตัวอย่างเป็นทางการ (สักที) ที่&amp;nbsp;&lt;a href=&quot;http://www.onlydevtwice.com/&quot;&gt;www.onlydevtwice.com&lt;/a&gt; นะครับ&lt;br /&gt;
&lt;br /&gt;
ติดตามหรือไปพูดคุยกันได้ครับ :-)</content><link rel='replies' type='application/atom+xml' href='http://bangdew.blogspot.com/feeds/2733246104138842161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bangdew.blogspot.com/2014/03/blog-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3055070353216963447/posts/default/2733246104138842161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3055070353216963447/posts/default/2733246104138842161'/><link rel='alternate' type='text/html' href='http://bangdew.blogspot.com/2014/03/blog-post.html' title='บ้านหลังใหม่'/><author><name>Johnny Dew</name><uri>http://www.blogger.com/profile/06286585852660545697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqzwenXEDt1rNR92ZT5d9gFXNBHH5nll5blkazk5pCzmJZwRhYKOg-HSgtiDAmEthNoz0b-uECAN2xJmHtiIk9ILRkG2blCC7zLuqvAK9P_aefJGPJyqPKDhD3h-_Oc2Y/s220/Exception.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3055070353216963447.post-5722609079377043235</id><published>2013-06-09T14:23:00.001+07:00</published><updated>2013-06-09T19:50:01.164+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Raspberry PI"/><category scheme="http://www.blogger.com/atom/ns#" term="Raspbian"/><title type='text'>จับภาพหน้าจอใน Raspbian Wheezy</title><content type='html'>&lt;br /&gt;
&lt;a href=&quot;http://johnnydew.blogspot.com/2013/06/take-screenshot-in-raspbian-wheezy.html&quot; target=&quot;_blank&quot;&gt;English Version:&amp;nbsp;Take a screenshot in Raspbian Wheezy.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
การจับภาพหน้าจอในขณะที่เราทำงานอยู่ใน LXDE ของ Raspbian สามารถทำได้โดยใช้โปรแกรมที่ชื่ีอ ImageMagick โดยสามารถติดตั้งได้ด้วย apt&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;sudo apt-get install imagemagick&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
หลังจากติดตั้ง ImageMagick เป็นที่เรียบร้อย เราก็สามารถจับภาพหน้าจอโดยใช้คำสั่ง import&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;import -window root screen.png&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
หรือหากต้องการช่วงจังหวะดีเลย์ก่อนเริ่มจับภาพหน้าจอ ก็สามารถระบุเวลาดีเลย์เป็นวินาทีได้โดยใช้ร่วมกับคำสั่ง sleep เช่น&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;sleep 5; import -window root screen.png&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
อ้างอิง:&amp;nbsp;&lt;a href=&quot;http://stackoverflow.com/questions/10581953/how-do-i-take-a-screenshot-on-a-raspberry-pi-running-debian-squeeze-and-lxde&quot;&gt;http://stackoverflow.com/questions/10581953/how-do-i-take-a-screenshot-on-a-raspberry-pi-running-debian-squeeze-and-lxde&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://bangdew.blogspot.com/feeds/5722609079377043235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bangdew.blogspot.com/2013/06/raspbian-wheezy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3055070353216963447/posts/default/5722609079377043235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3055070353216963447/posts/default/5722609079377043235'/><link rel='alternate' type='text/html' href='http://bangdew.blogspot.com/2013/06/raspbian-wheezy.html' title='จับภาพหน้าจอใน Raspbian Wheezy'/><author><name>Johnny Dew</name><uri>http://www.blogger.com/profile/06286585852660545697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqzwenXEDt1rNR92ZT5d9gFXNBHH5nll5blkazk5pCzmJZwRhYKOg-HSgtiDAmEthNoz0b-uECAN2xJmHtiIk9ILRkG2blCC7zLuqvAK9P_aefJGPJyqPKDhD3h-_Oc2Y/s220/Exception.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3055070353216963447.post-5797018610477137241</id><published>2013-06-08T11:16:00.000+07:00</published><updated>2013-06-09T19:49:50.052+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Raspberry PI"/><category scheme="http://www.blogger.com/atom/ns#" term="Raspbian"/><title type='text'>แก้ปัญหาคีย์บอร์ด mapping ใน Raspbian Wheezy</title><content type='html'>&lt;br /&gt;
&lt;b&gt;&lt;a href=&quot;http://johnnydew.blogspot.com/2013/06/raspbian-wheezy-keyboard-mapping-problem.html&quot; target=&quot;_blank&quot;&gt;View in English version&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
ช่วงนี้กำลังเล่น Raspberry Pi อยู่ครับ ลองเจ้า Raspbian Wheezy อยู่ แต่เจอปัญหาคีย์บอร์ด map ไม่ตรง ที่ผมเจอคือพอจะกดสัญลักษณ์ @ หรือ # มันกลับได้เป็นอักขระอื่น&lt;br /&gt;
&lt;br /&gt;
หลังจากค้นหาในอินเตอร์เนทก็เลยพบว่าเลย์เอาท์ของมันเป็นแบบ UK ดังนั้นวิธีแก้ไขก็คือปรับมาเป็น US โดยใช้ nano เข้าไปแก้ไขตั้งค่าคีย์บอร์ด&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;sudo nano /etc/default/keyboard&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
แล้วเปลี่ยนค่า &lt;span style=&quot;color: #111111; font-family: Helvetica Neue, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px; line-height: 19.59375px;&quot;&gt;XKBLAYOUT จาก &quot;gb&quot; (เดาว่าน่าจะมาจาก Great&amp;nbsp;Britain) เป็น &quot;us&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #111111; font-family: Helvetica Neue, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px; line-height: 19.59375px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #111111; font-family: Helvetica Neue, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px; line-height: 19.59375px;&quot;&gt;จากนั้นก็รีบูตเครื่อง&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #111111; font-family: Helvetica Neue, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px; line-height: 19.59375px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #111111; font-family: Helvetica Neue, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px; line-height: 19.59375px;&quot;&gt;&lt;b&gt;sudo /sbin/reboot&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #111111; font-family: Helvetica Neue, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px; line-height: 19.59375px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #111111; font-family: Helvetica Neue, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px; line-height: 19.59375px;&quot;&gt;หลังจาก PI เปิดขึ้นมาอีกครั้ง คุณก็จะได้เลย์เอาท์ US แบบที่คุ้นเคยแล้วหละครับ&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #111111; font-family: Helvetica Neue, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px; line-height: 19.59375px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #111111; font-family: Helvetica Neue, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px; line-height: 19.59375px;&quot;&gt;อ้างอิง:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://raspberrypi.stackexchange.com/questions/1042/why-is-my-symbol-not-working&quot;&gt;http://raspberrypi.stackexchange.com/questions/1042/why-is-my-symbol-not-working&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://bangdew.blogspot.com/feeds/5797018610477137241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bangdew.blogspot.com/2013/06/mapping-raspbian-wheezy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3055070353216963447/posts/default/5797018610477137241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3055070353216963447/posts/default/5797018610477137241'/><link rel='alternate' type='text/html' href='http://bangdew.blogspot.com/2013/06/mapping-raspbian-wheezy.html' title='แก้ปัญหาคีย์บอร์ด mapping ใน Raspbian Wheezy'/><author><name>Johnny Dew</name><uri>http://www.blogger.com/profile/06286585852660545697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqzwenXEDt1rNR92ZT5d9gFXNBHH5nll5blkazk5pCzmJZwRhYKOg-HSgtiDAmEthNoz0b-uECAN2xJmHtiIk9ILRkG2blCC7zLuqvAK9P_aefJGPJyqPKDhD3h-_Oc2Y/s220/Exception.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3055070353216963447.post-2153913418476506451</id><published>2012-08-29T00:59:00.001+07:00</published><updated>2012-08-29T01:05:21.122+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Business"/><title type='text'>บันทึกแสนสั้นของผม จากสัมนา Mobile App ที่ CMMU</title><content type='html'>&lt;br /&gt;
เมื่อบ่ายไปงาน &lt;a href=&quot;http://thumbsup.in.th/2012/08/mobile-application-seminar-cmmu/&quot; target=&quot;_blank&quot;&gt;สัมนา Mobile Apps&lt;/a&gt; ที่วิทยาลัยการจัดการ มหาวิทยาลัยมหิดล&amp;nbsp;(CMMU) ได้ข้อมูลดีๆ มาเยอะ&amp;nbsp;ทั้งข้อมููลจากผลวิจัยของ CMMU และจากวิทยากรรับเชิญ&lt;br /&gt;
&lt;br /&gt;
ขอยกข้อมูลอย่างหนึ่งที่น่าสนใจเขียนเก็บเป็นโน๊ตกันลืมไว้&lt;br /&gt;
&lt;br /&gt;
ข้อมูลนั้นคือวิธีในการใช้แอพเป็นเครื่องมือในการทำธุรกิจขององค์กรต่างๆ&amp;nbsp;ซึ่งเป็นข้อมูลที่เขาไปทำสำรวจและวิจัยมา&lt;br /&gt;
&lt;br /&gt;
วิธีการใช้แอพเป็นเครื่องมือทางธุรกิจมีสองรูปแบบ คือใช้สร้างเป็นธุรกิจและใช้สนับสนุนองค์กร&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;ใช้สร้างเป็นธุรกิจ&lt;br /&gt;แอพประเภทนี้มีการสร้างรายได้จาก End User โดยตรง เช่นจากการขายแอพ, In-app purchase หรือแม้กระทั่งการขายแบนเนอร์โฆษณาในแอพ ในงานยกตัวอย่างแอพของ ASTV, Wongnai, Shop Spot และ Molome&lt;/li&gt;
&lt;li&gt;ใช้สนับสนุนองค์กร&lt;br /&gt;เป็นการใช้เพื่อส่งเสริมภาพลักษณ์และเพิ่มช่องทางในการโปรโมทสินค้าและบริการขององค์กรผ่านทาง mobile application ในงานยกตัวอย่างแอพของ AIS, NokAir, KBank, Rarinjinda ซึ่งโดยรวมแอพประเภทนี้ก็ทำหน้าที่เป็นเหมือนอีกช่องทางที่ทำให้ลูกค้าเข้าถึงบริการได้สะดวกขึ้น&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
จริงๆ ผมเชื่อว่าข้อมูลข้างต้น นักพัฒนาหรือคนที่ใช้ smart phone อยู่เป็นประจำคงเข้าใจดีอยู่แล้ว เพียงแต่ผมเห็นว่าข้อมูลที่ได้ฟังมาวันนี้เป็นผลมาจากการสำรวจและวิจัยโดยตรง จึงน่าจะโน๊ตเก็บไว้ เท่านั้นเอง :-D&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
ข้อมูลอีกส่วนที่นักพัฒนาน่าจะสนใจคือ คำตอบจากคำถามที่ว่าเราควรจะพัฒนา app แบบ mobile website application (รวมถึงเทคโนโลยี cross platform อย่าง HTML5) หรือ native application ซึ่งผู้ตอบคำถามก็คือพี่เนยแห่ง Molome ซึ่งใจความที่ผมจับได้พี่เนยแสดงความเห็นว่า native app มี performance ที่ดีกว่าและมีลูกเล่นที่เยอะกว่า แต่ในระยะหลังๆ เริ่มมีการพัฒนา app ด้วย HTML5 มากขึ้น ซึ่งพี่เนยก็บอกว่าถ้าทำ app แนว informative (app ที่นำเสนอ content เป็นหลัก) ใช้ HTML5 ก็เหมาะดี&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
โดยส่วนตัวผมก็เห็นด้วยกับความเห็นนี้ เพราะจากที่เคยเจอมาเอง ผมเชื่อว่าถ้าองค์กรต้องการจะมี mobile application เป็นของตัวเองและต้องการรีบผลักดันออกสู่ตลาดเร็วๆ ใน short term ใช้ HTML5 ก็ถือว่าเหมาะเพราะใช้เวลาและงบประมาณในการพัฒนาน้อยกว่าและเป็น cross platform แต่ใน long term เมื่อมีความต้องการฟังก์ชันที่มากขึ้น ควรจะพัฒนาเป็น native app เพราะมี performance ที่ดีกว่าและที่สำคัญ &quot;User Experience&quot; ก็ดีกว่าด้วย&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://bangdew.blogspot.com/feeds/2153913418476506451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bangdew.blogspot.com/2012/08/mobile-app-cmmu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3055070353216963447/posts/default/2153913418476506451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3055070353216963447/posts/default/2153913418476506451'/><link rel='alternate' type='text/html' href='http://bangdew.blogspot.com/2012/08/mobile-app-cmmu.html' title='บันทึกแสนสั้นของผม จากสัมนา Mobile App ที่ CMMU'/><author><name>Johnny Dew</name><uri>http://www.blogger.com/profile/06286585852660545697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqzwenXEDt1rNR92ZT5d9gFXNBHH5nll5blkazk5pCzmJZwRhYKOg-HSgtiDAmEthNoz0b-uECAN2xJmHtiIk9ILRkG2blCC7zLuqvAK9P_aefJGPJyqPKDhD3h-_Oc2Y/s220/Exception.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3055070353216963447.post-3228045523663562226</id><published>2011-11-10T23:56:00.001+07:00</published><updated>2011-11-10T23:57:29.881+07:00</updated><title type='text'>กลับมาแว้ววว</title><content type='html'>ผมกลับมาเขียนบล็อกภาษาไทยที่นี่นะครับ สำหรับบล็อกภาษาอังกฤษตามอ่านได้ที่ &lt;a href=&quot;http://johnnydew.blogspot.com&quot;&gt;http://johnnydew.blogspot.com&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://bangdew.blogspot.com/feeds/3228045523663562226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bangdew.blogspot.com/2011/11/blog-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3055070353216963447/posts/default/3228045523663562226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3055070353216963447/posts/default/3228045523663562226'/><link rel='alternate' type='text/html' href='http://bangdew.blogspot.com/2011/11/blog-post.html' title='กลับมาแว้ววว'/><author><name>Johnny Dew</name><uri>http://www.blogger.com/profile/06286585852660545697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqzwenXEDt1rNR92ZT5d9gFXNBHH5nll5blkazk5pCzmJZwRhYKOg-HSgtiDAmEthNoz0b-uECAN2xJmHtiIk9ILRkG2blCC7zLuqvAK9P_aefJGPJyqPKDhD3h-_Oc2Y/s220/Exception.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3055070353216963447.post-5396320818631108278</id><published>2009-12-31T19:43:00.004+07:00</published><updated>2009-12-31T21:30:04.412+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Structures and Algorithms"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>ยืดๆ หดๆ กับ ArrayList</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkktVYWNWi2SavixPsd92KOO-6ZOBeL86XTQkh7odO4ftzLO4dEgPmHEQ47T8Tc4aaIU5MBXunjUARJ_ZPfjrcWU5FumLoUtV9C1WppYFVcQvCuxFAN1EQ8Iv6a5bHnEMvJHA8fmymmEY/s1600-h/Duke+ArrayList.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 255px; height: 200px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkktVYWNWi2SavixPsd92KOO-6ZOBeL86XTQkh7odO4ftzLO4dEgPmHEQ47T8Tc4aaIU5MBXunjUARJ_ZPfjrcWU5FumLoUtV9C1WppYFVcQvCuxFAN1EQ8Iv6a5bHnEMvJHA8fmymmEY/s320/Duke+ArrayList.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5421402302473752962&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;  ห่างหายจากการเขียนบล็อกไปเดือนหนึ่ง ตอนนี้พ้นช่วงสอบ ทั้งสอบกลางภาคและสอบเข้าทำงาน คืนวันสิ้นปีแบบนี้ก็ขอเขียนบล็อกกันสักหน่อยครับ เผื่อความรู้อันน้อยนิดของผมจะพอเป็นประโยชน์แก่คนอื่นบ้าง (คนเราเกิดมาแล้ว หากไม่ทำประโยชน์ให้โลกบ้าง ก็เกิดมาหนักแผ่นดินเปล่าๆ)&lt;br /&gt;&lt;br /&gt;  หลายๆ คนที่เขียนโปรแกรมด้วยภาษา Java ก็คงจะคุ้นเคยกับเจ้า ArrayList ซึ่งมีความสามารถในการยืดหดขนาดของตัวเอง (^ ^&quot;) ตอนที่มีการเพิ่มหรือลบข้อมูลเหมือนกับ Linked List และยังเข้าถึงข้อมูลในindex ที่ต้องการได้โดยตรง(direct access) ราวๆกับอาร์เรย์ทั่วๆไป เจ้า ArrayList ได้นำข้อดีของทั้งArray และLinked List มารวมไว้ด้วยกัน&lt;br /&gt;&lt;br /&gt;  เวลาเราใช้่ArrayList ในโปรแกรมของเรา ถ้าต้องการดูขนาดของArrayList เราก็จะเรียกใช้เมธอดที่ชื่อว่า size() ซึ่งเมธอดนี้จะรีเทิร์นผลลัพธ์เป็นเลขจำนวนเต็มบอกถึงจำนวนข้อมูลที่อยู่ในArrayList นั้นๆ และเมื่อเราจะเพิ่มข้อมูลลงไปตรงตำแหน่งท้ายสุดของArrayList เราก็ใช้เมธอด add(E element) ซึ่งใช้เวลาการทำงานเท่ากับ O(1) หรือ add(int index, E element) ในกรณีที่ต้องการระบุตำแหน่งที่ต้องการใส่ข้อมูลใหม่ลงไป ซึ่งใช้เวลาการทำงานเท่ากับ O(n) เนื่องจากต้องเลื่อนข้อมูลทุกตัวไปทางขวามือหนึ่งช่อง ส่วนเวลาต้องการข้อมูลก็เรียกใช้เมธอด get(int index) ซึ่งใช้เวลาในการทำงานเท่ากับ O(1) ถ้าจะลบก็ใช้เมธอด remove(int index) ซึ่งใช้เวลาในการทำงานเท่ากับ O(1) เช่นกัน (เนื่องจากทั้งสองเมธอดเป็นการทำงานแบบ direct access)&lt;br /&gt;&lt;br /&gt;  เวลาเราใช้เมธอด add() หรือ remove() ขนาดของArrayList ก็จะเปลี่ยนไปด้วย (ทดสอบได้ด้วยการเรียกจากเมธอด size() ) ดูแล้วราวกับว่าArrayList จะปรับเปลี่ยนขนาดของตัวเองได้เหมือนกับ Linked List แต่จริงๆ แล้วเจ้าArrayList ก็มีลิมิตของตัวเองเหมือนกันนะจ้ะ !!!??!!&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9DQT2kuCCr09b8mma76zouvnZINcow_895_kOMDSKIk6ZLV6QmzJJ5ErEywZ6mb2AS-fmiVyC8bWgdpFbwUgwfnoMeUn-fIBKpGp1mQ1RaBEKbKc6RaSUFyG9ytCwZmnvyXJTxQFOyVs/s1600-h/ArrayList.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 320px; height: 32px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9DQT2kuCCr09b8mma76zouvnZINcow_895_kOMDSKIk6ZLV6QmzJJ5ErEywZ6mb2AS-fmiVyC8bWgdpFbwUgwfnoMeUn-fIBKpGp1mQ1RaBEKbKc6RaSUFyG9ytCwZmnvyXJTxQFOyVs/s320/ArrayList.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5421397696393792354&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  จริงๆ แล้วArryaList จะจองหน่วยความจำไว้ค่าหนึ่ง แล้วเมื่อเราเพิ่มข้อมูล(เรียกเมธอด add()) ไปเรื่อยๆจนพื้นที่ตรงนั้นเต็ม ArrayList ก็จะทำการเพิ่มหน่วยความจำให้เองโดยอัตโนมัติ ซึ่งขั้นตอนการจองหน่วยความจำตรงนี้ ผู้เขียนโปรแกรมเองไม่จำเป็นต้องทำเอง ทั้งหมดล้วนทำงานอยู่เบื้องหลัง แต่ผู้เขียนโปรแกรมเองก็สามารถที่จะสั่งให้ArrayList เพิ่มขนาดได้ด้วยเช่นกัน โดยการเรียกเมธอด ensureCapacity(int minCapacity)  โดยที่อาร์กิวเมนต์ minCapacity คือจำนวนช่องที่เราจะขอเพิ่มขนาดของArrayList&lt;br /&gt;&lt;br /&gt;  การที่เราขอจองพื้นที่เอง มีประโยชน์ในกรณีที่เราต้องการให้ArrayList เก็บข้อมูลปริมาณมากๆ ซึ่งหากเราปล่อยให้ArrayList ทำการเพิ่มพื้นที่เอง ArrayList ก็จะทำการเพิ่มขนาดให้เท่ากับสองเท่าของขนาดเดิม ซึ่งหากข้อมูลมีปริมาณมาก ก็จะทำให้เสียเวลาในการเพิ่มขนาดอยู่บ่อยๆ และการจองพื้นที่เองก็เป็นการช่วยให้ใช้เมมโมรี่ได้อย่างคุ้มค่า เพราะหากปล่อยให้ArrayList จองพื้นที่เอง สุดท้ายแล้วอาจจะมีพื้นที่ที่ไม่ได้ใช้เหลือไว้ด้วยเช่นกัน</content><link rel='replies' type='application/atom+xml' href='http://bangdew.blogspot.com/feeds/5396320818631108278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bangdew.blogspot.com/2009/12/arraylist.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3055070353216963447/posts/default/5396320818631108278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3055070353216963447/posts/default/5396320818631108278'/><link rel='alternate' type='text/html' href='http://bangdew.blogspot.com/2009/12/arraylist.html' title='ยืดๆ หดๆ กับ ArrayList'/><author><name>Johnny Dew</name><uri>http://www.blogger.com/profile/06286585852660545697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqzwenXEDt1rNR92ZT5d9gFXNBHH5nll5blkazk5pCzmJZwRhYKOg-HSgtiDAmEthNoz0b-uECAN2xJmHtiIk9ILRkG2blCC7zLuqvAK9P_aefJGPJyqPKDhD3h-_Oc2Y/s220/Exception.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkktVYWNWi2SavixPsd92KOO-6ZOBeL86XTQkh7odO4ftzLO4dEgPmHEQ47T8Tc4aaIU5MBXunjUARJ_ZPfjrcWU5FumLoUtV9C1WppYFVcQvCuxFAN1EQ8Iv6a5bHnEMvJHA8fmymmEY/s72-c/Duke+ArrayList.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3055070353216963447.post-5170616177199380460</id><published>2009-11-28T00:16:00.003+07:00</published><updated>2009-11-28T01:30:46.754+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C/C++"/><category scheme="http://www.blogger.com/atom/ns#" term="Computer Security"/><title type='text'>มาซ่อนข้อความลับในไฟล์รูปภาพกันเถอะ !!!</title><content type='html'>เมื่อเช้า Notebook ของผมอาการเข้าขั้นโคม่าเลยครับ ช่องเสียบชารจ์แบตท้ายเครื่องเจ้ง เสียบไฟไม่เข้า วันนี้ทั้งวันผมเลยวุ่นอยู่กับการชำแหละ Notebook ออกมาเป็นชิ้นๆ สุดท้ายก็เจอสาเหตุครับ นั่นคือเจ้าตัวช่องเสียบชาร์จแบตมันเริ่มหลวมๆ ก็เลยต้องบัดกรีมันลงบนเมนบอร์ดใหม่ให้แน่นขึ้น ตอนนี้ก็ดีเหมือนเดิม ได้กลับมาอัพblog อีกครั้ง ^ ^&lt;br /&gt;&lt;br /&gt;งานนี้ต้องขอบคุณพี่ิเบิ้มที่ช่วยแนะนำตอนผมชำแหละเครื่อง, พี่อนุชาและพี่แก้วแห่งห้องแลบฮาร์ดแวร์ที่ช่วยบัดกรีเมนบอร์ดให้&lt;br /&gt;&lt;br /&gt;มาเข้าเรื่องบทความกัน วันนี้ผมขอแนะนำวิธีการซ่อนข้อความไว้ในไฟล์ภาพ หรือที่เรียกกันว่า Steganography พอดีการบ้านวิชา Computer Security อาจารย์ให้ทำ Steganography วันนี้ก็เลยอยากจะมาแนะนำวิธีทำ Steganography แบบเบสิกกันครับ&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAuAhetur-gDq5FcTUxtP5ZQiT3FpX59vqRm3gt8kJD7uGfFqyvKLk-wiz59MOqNbgR0NFuE_MYw3-xbNeAjDBY9zaWJ6IJIx12_WWzW41TY27coKnl6UC40BByL0ZEwYY7skvI92eI2A/s1600/header.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 302px; height: 240px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAuAhetur-gDq5FcTUxtP5ZQiT3FpX59vqRm3gt8kJD7uGfFqyvKLk-wiz59MOqNbgR0NFuE_MYw3-xbNeAjDBY9zaWJ6IJIx12_WWzW41TY27coKnl6UC40BByL0ZEwYY7skvI92eI2A/s320/header.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5408835652950893874&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Steganography&quot;&gt;&lt;br /&gt;Steganography&lt;/a&gt; เป็นเทคนิคในการซ่อนข้อมูลไว้ในไฟล์อื่น ซึ่งอาจจะเป็นไฟล์ภาพ หรือไฟล์เสียงก็สามารถที่จะซ่อนได้ แต่ที่เป็นที่นิยมก็คือไฟล์ภาพ ไฟล์ภาพที่จะนำมาซ่อนข้อความก็มีอีกหลายชนิด ไม่ว่าจะเป็น GIF, JPEG, PNG ฯลฯ โดยในบทความนี้ ผมจะแนะนำวิธีการทำ Steganography ทั้งตัวซ่อนข้อความ (Encoder) และตัวถอดข้อความออกจากภาพ (Decoder) โดยจะใช้ไฟล์ภาพแบบ GIF และใช้ภาษาซีในการทำครับ&lt;br /&gt;&lt;br /&gt;ก่อนอื่นก็ต้องรู้จักโครงสร้างของรูปภาพแบบ GIF กันก่อน โดยขอให้ดูที่เว็บไซต์ของคุณ Matthew Flickinger(&lt;a href=&quot;http://www.matthewflickinger.com/lab/whatsinagif/bits_and_bytes.asp&quot;&gt;http://www.matthewflickinger.com/lab/whatsinagif/bits_and_bytes.asp&lt;/a&gt;) ประกอบนะครับ เพราะที่เว็บนี้มีรูปโครงสร้างของไฟล์ภาพแบบ GIF ที่เข้าใจได้ง่ายมาก นอกจากนั้น อยากแนะนำให้ใช้โปรแกรม Hex Editor Neo กัน เพราะโปรแกรมนี้สามารถที่จะเปิดดู Binary Code ของไฟล์ต่างๆ รวมไปถึงไฟล์ภาพแบบ GIF ที่เราจะใช้กันด้วย ซึ่งพอเราเปิดไฟล์ภาพแบบ GIF ในโปรแกรม Hex Editor Neo ประกอบกับดูรูปอธิบายโครงสร้างไฟล์ภาพของคุณ Matthew Flickinger แล้วจะยิ่งเข้าใจโครงสร้างของ GIF มากขึ้นครับ&lt;br /&gt;&lt;br /&gt;โปรแกรม Hex Editor Neo โหลดได้ที่เว็บไซต์ &lt;a href=&quot;http://www.new-hex-editor.com/&quot;&gt;http://www.new-hex-editor.com/&lt;/a&gt; โดยเจ้าโปรแกรมตัวนี้ สามารถที่จะดูโค้ดภายในรูปได้ทั้งแบบเลขฐานสอง หรือฐานสิบหก รวมถึงยังสามารถค้นหา Pattern ในโค้ดได้ด้วย ซึ่งจะสะดวกมากเวลาเราจะค้นหาส่วนต่างๆ ในรูป&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSjvm0XSfl5o7A2VZQBj9bXEckfn4KyKGVhigm1vm5vCvikgFk2469UF2QXPuAPgrfDzeW_Gxlphdy2q8rOfZKRDbzrSUhfJYW8j0RngjFGttbuw931YCkixaYeikRbmfedwtkbCgnEu0/s1600/hexeditor.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 194px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSjvm0XSfl5o7A2VZQBj9bXEckfn4KyKGVhigm1vm5vCvikgFk2469UF2QXPuAPgrfDzeW_Gxlphdy2q8rOfZKRDbzrSUhfJYW8j0RngjFGttbuw931YCkixaYeikRbmfedwtkbCgnEu0/s320/hexeditor.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5408835981869032450&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;สำหรับวิธีการหรืออัลกอริทึมที่จะใช้ในการซ่อนข้อความนั้น ผมจะใช้การซ่อนแต่ละบิตของข้อความไว้ในบิตที่มีนัยสำคัญน้อยที่สุด(LSB) ของ Global Color Table ของไฟล์ GIF เนื่องจากการที่เราไปเปลี่ยนแปลงบิต LSB ของ Global Color Table นั้น จะไปส่งผลให้เฉดสีของรูปในแต่ละ pixel เปลี่ยนไปแค่เล็กน้อยมากๆ จนตาคนเราสังเกตุเห็นได้ยาก ในทางกลับกันถ้าเราเปลี่ยนไปซ่อนในบิตที่มีนัยสำคัญสูงที่สุด (MSB) ของ Global Color Table จะทำให้เฉดสีเปลี่ยนไปเป็นคนละสี ซึ๋งง่ายต่อการสังเกตุด้วยตาเปล่า&lt;br /&gt;&lt;br /&gt;ตัวอย่าง&lt;br /&gt;&lt;br /&gt;อักขระ A แปลงเป็นเลขฐานสองได้ 0100  0001&lt;br /&gt;และสมมติให้ข้อมูลใน Global Color Table เป็นดังต่อไปนี้&lt;br /&gt;&lt;br /&gt;11111110  11111111  11111110  11111110&lt;br /&gt;11111111  11111111  11111110  11111100&lt;br /&gt;&lt;br /&gt;เมื่อนำแต่ละบิตของอักขระ A (เริ่มจาก LSB) ไปแทนที่ตำแหน่ LSB ของแต่ละไบต์ใน Global Color Table จะได้ผลลัพธ์ดังนี้&lt;br /&gt;&lt;br /&gt;11111111  11111110  11111110  11111110&lt;br /&gt;11111110  11111110  11111111  11111100&lt;br /&gt;&lt;br /&gt;เราก็ทำแบบเดียวกันนี้กับตัวอักษรตัวอื่นๆ ครับ ซึ่งเราสามารถจะเก็บได้เรื่อยๆ จนกระทั่งสิ้นสุดตำแหน่งของ Global Color Table&lt;br /&gt;&lt;br /&gt;อัลกอริทึมที่จะใช้สำหรับ Encoder นั้นเป็นไปตาม Flow Chart ดังนี้ (คลิกที่รูปเพื่อดูภาพขยายครับ)&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs550pgm_Mx2GP4FpF0UGDCKZZ7WTIVYyO3ynvsSfStrSVVCKyjSe_k7FHtWol8Mlw0A_jhU5i6M76x-AeZJ6Wy-oDvurDM54J3wJiKBrRoNNZQxYr7YIeUmLVShLjQfcDx3CAESMppYU/s1600/Encoder.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 120px; height: 320px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs550pgm_Mx2GP4FpF0UGDCKZZ7WTIVYyO3ynvsSfStrSVVCKyjSe_k7FHtWol8Mlw0A_jhU5i6M76x-AeZJ6Wy-oDvurDM54J3wJiKBrRoNNZQxYr7YIeUmLVShLjQfcDx3CAESMppYU/s320/Encoder.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5408838646736220706&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;จากอัลกอริทึมนี้ จะเห็นว่าเราจะใส่ท้ายข้อความด้วยอักขระ ‘:’ เพื่อที่เวลา Decoder ทำการถอดข้อความออกจากรูปภาพ จะได้ทราบจุดสิ้นสุดของข้อความด้วยการมองหาอักขระ ‘:’&lt;br /&gt;ในส่วนของ Decoder มีอัลกอริทึกดังนี้ (คลิกที่รูปเพื่อดูภาพขยายครับ)&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXd-yeniB3hejFsqFIpQF2YkpUFk1iIlrNsXZNHi5P_WfK059kz3cpV7YGz7ZPry4GIYM00DfnaET4Ck81_5jzHwqc56o2MkO9wt0UklI84yfP2xRVPVWSGCuBFIeM8WB9jlUgI27bVsY/s1600/Decoder.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 115px; height: 320px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXd-yeniB3hejFsqFIpQF2YkpUFk1iIlrNsXZNHi5P_WfK059kz3cpV7YGz7ZPry4GIYM00DfnaET4Ck81_5jzHwqc56o2MkO9wt0UklI84yfP2xRVPVWSGCuBFIeM8WB9jlUgI27bVsY/s320/Decoder.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5408844558589224850&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;ส่วนของ Decoder จะมองหาอักขระ ‘:’ เนื่องจากถ้าไม่มีอักขระ ‘:’ ก็แสดงว่าไฟล์ภาพนี้ยังไม่ได้ผ่านการซ่อนข้อความจาก Encoder สำหรับ source code ภาษาซีทั้ง Encoder และ Decoder สามารถ&lt;a href=&quot;http://www.4shared.com/file/160905880/d3eac79e/Steganography_Code.html&quot;&gt;ดาวน์โหลดได้ที่นี่&lt;/a&gt; โค้ดนี้สามารถคอมไพล์ได้ทั้ง gcc บน unix , c-free บน windows หรือ IDE ตัวอื่นๆ ของภาษาซีก็ได้ครับ หากมีข้อสงสัยเกี่ยวกับ code ที่ให้ไป (ต้องสงสัยแน่ เพราะคนเขียนนูป ^ ^&quot;) ก็เมล์มาถามกันได้ครับที่ programmer_boyz@hotmail.com&lt;br /&gt;&lt;br /&gt;สำหรับวิธีการซ่อนข้อความไว้ในไฟล์ GIF ยังมีอีกหลายแนวทางที่สามารถทำได้ ไม่ว่าจะเป็นซ่อนใน Local Color Table หรือแม้แต่ซ่อนใน Comment Extension ก็สามารถทำได้ ซึ่งขึ้นอยู่กับความต้องการของผู้ใช้ ถ้าเราเข้าใจโครงสร้างของไฟล์ภาพ ก็สามารถที่จะเลือกซ่อนข้อความได้หลากหลายวิธีครับ&lt;br /&gt;&lt;br /&gt;สำหรับวันนี้ ขอลาไปก่อนนะครับ ^ ^&lt;br /&gt;&lt;br /&gt;ปล.เครดิตให้คุณ Fah Longhorn ที่แนะนำอัลกอริทึมนี้ให้ผมตอนทำ Assignment วิชา Computer Security ครับ&lt;br /&gt;&lt;br /&gt;ปล.อีกทีนะ  คุณ &lt;a href=&quot;http://twitter.com/@aeronz&quot;&gt;@aeronz&lt;/a&gt; เขียนบทความเกี่ยวกับ Steganography ในไฟล์ภาพแบบ PNG ไว้ ลองคลิกอ่านดูเพิ่มเติมกัน&lt;a href=&quot;http://blog.pupasoft.com/2009/11/09/aeronzsteganography/&quot;&gt;ที่นี่&lt;/a&gt;เลยครับ</content><link rel='replies' type='application/atom+xml' href='http://bangdew.blogspot.com/feeds/5170616177199380460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bangdew.blogspot.com/2009/11/blog-post_27.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3055070353216963447/posts/default/5170616177199380460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3055070353216963447/posts/default/5170616177199380460'/><link rel='alternate' type='text/html' href='http://bangdew.blogspot.com/2009/11/blog-post_27.html' title='มาซ่อนข้อความลับในไฟล์รูปภาพกันเถอะ !!!'/><author><name>Johnny Dew</name><uri>http://www.blogger.com/profile/06286585852660545697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqzwenXEDt1rNR92ZT5d9gFXNBHH5nll5blkazk5pCzmJZwRhYKOg-HSgtiDAmEthNoz0b-uECAN2xJmHtiIk9ILRkG2blCC7zLuqvAK9P_aefJGPJyqPKDhD3h-_Oc2Y/s220/Exception.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAuAhetur-gDq5FcTUxtP5ZQiT3FpX59vqRm3gt8kJD7uGfFqyvKLk-wiz59MOqNbgR0NFuE_MYw3-xbNeAjDBY9zaWJ6IJIx12_WWzW41TY27coKnl6UC40BByL0ZEwYY7skvI92eI2A/s72-c/header.jpg" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3055070353216963447.post-4887155451739893088</id><published>2009-11-24T17:04:00.002+07:00</published><updated>2009-11-28T01:32:08.842+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C/C++"/><category scheme="http://www.blogger.com/atom/ns#" term="Data Structures and Algorithms"/><title type='text'>มาทบทวน Pointer ในภาษา C กันเถอะ</title><content type='html'>&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm1h_Zox6FE5HJVlFrmxFz4Gpnu_y9ulJa5l7FXUZeScxdu6zUMsaCmiJa6HqIcgyTG7YvSxO8umjpQKFM-bFp0DiYr5L4bM8R90FnKG_3BCZfIIJfOC1lG66vWQM7W8O239VlQv-c7FQ/s1600/pointer.gif&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 224px; height: 229px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm1h_Zox6FE5HJVlFrmxFz4Gpnu_y9ulJa5l7FXUZeScxdu6zUMsaCmiJa6HqIcgyTG7YvSxO8umjpQKFM-bFp0DiYr5L4bM8R90FnKG_3BCZfIIJfOC1lG66vWQM7W8O239VlQv-c7FQ/s320/pointer.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5407646703606681282&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;วันนี้ผมเรียนวิชา Advance Data Structures and Algorithms มาครับ เรียนเรื่องโครงสร้างข้อมูลใน Java มีอีกหลายอย่างที่ยังไม่รู้ จริงๆก่อนหน้านี้เขียน Java บ่อยๆใช้ก็แต่ ArrayList รู้แค่ว่าใน Java มี Linked List, Graph, Tree ฯลฯ เตรียมไว้ให้ แต่พอได้เรียนจริงๆ ปรากฎว่ามีโครงสร้างข้อมูลอีกหลายชนิดเลยครับที่ Java มีให้ และผมเองก็ไม่เคยได้ยินชื่อมันมาก่อน เดี๋ยวไว้ว่างๆ จะเขียนบทความเกี่ยวกับโครงสร้างข้อมูลแปลกๆ ที่เรียนมานะครับ&lt;br /&gt;&lt;br /&gt;จากคาบเรียนวันนี้ ทำให้รู้ว่าจริงๆแล้ว Java ยังมีโครงสร้างโครงมูลให้ใช้อีกเยอะแยะ ผมเลยนึกถึงปรัชญาเรื่องแก้วชาที่มีน้ำชาอยู่เต็มใบ ซึ่งแก้วนั้นไม่สามารถจะใส่น้ำเพิ่มได้อีก ใส่ไปก็ล้น คนเราก็เหมือนกันควรจะเป็นเหมือนแก้วที่ว่างพร้อมจะรับสิ่งใหม่ๆ อยู่เสมอ ว่ามั้ยครับ&lt;br /&gt;&lt;br /&gt;พล่ามกันมาเยอะแล้ว เข้าเรื่องกันดีกว่า สำหรับ Pointer ในภาษาซีนั้นเชื่อว่าหลายๆ คนคงเคยใช้หรือเคยเรียนกันมาบ้าง เท่าที่ผมเคยเห็นมา พบว่าเรื่อง Pointer ถือเป็นเรื่องยากเรื่องหนึ่งในการทำความเข้าใจของหลายๆ คน ก่อนอื่นก็ต้องขอบอกก่อนว่า Pointer ก็คือตัวแปรชนิดหนึ่ง แต่แตกต่างจากตัวแปรทั่วๆไปตรงที่ Pointer ใช้ในการทำหน้าที่ชี้ (Reference) ไปยังตัวแปรอื่นๆ ซึ่ง Pointer นั้นสามารถนำไปประยุกต์ใช้งานได้หลายอย่าง แต่ที่เห็นชัดเจนและใช้กันบ่อยๆ ก็คงจะเป็นการนำ Pointer ไปสร้างเป็นโครงสร้างข้อมูลยอดนิยมอย่าง Linked List, Tree และ Graphชนิดต่างๆ แต่ผมไม่ขอพูดถึงวิธีการนำ Pointer ไปใช้ในโครงสร้างข้อมูลเหล่านั้นนะครับ ขอพูดแค่พื้นฐาน&lt;br /&gt;&lt;br /&gt;ลองดูรูปโครงสร้างของตัวแปรแบบทั่วไป กับโครงสร้างตัวแปรแบบ Pointer กันนะครับ (รูปโครงสร้างตัวแปรในบทความนี้ ใช้เพื่อประกอบคำอธิบายเพื่อให้เข้าใจง่ายขึ้นเท่านั้นนะครับ จริงๆ แล้วโครงสร้างจริงๆ ในหน่วยความจำจะเก็บอยู่ในรูปแบบเลขฐานสอง)&lt;br /&gt;&lt;br /&gt;สมมติผมประกาศตัวแปรว่า&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; font-style: italic; color: rgb(153, 51, 0);font-family:arial;&quot; &gt;int foo = 21;&lt;br /&gt;int *bar;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq3QIwOkKeavN_orRKKF7GiYCqV6OjLL999i4xfkKmHNS8HdIlbOmTEA_HVjOV9Quu9KGjSqY_dw8H3rWd8FUhHUI65TZf75NsRTizmT60QqsjC6DLRnE9ipJNGU6E-2Xp6jilELYdrAc/s1600/1.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 240px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq3QIwOkKeavN_orRKKF7GiYCqV6OjLL999i4xfkKmHNS8HdIlbOmTEA_HVjOV9Quu9KGjSqY_dw8H3rWd8FUhHUI65TZf75NsRTizmT60QqsjC6DLRnE9ipJNGU6E-2Xp6jilELYdrAc/s320/1.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5407620676730931202&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;จากคำสั่งประกาศตัวแปร foo เป็นชนิด int พร้อมกับใส่ค่าเป็น 21 แล้วประกาศตัวแปร bar เป็นแบบ Pointer ของ int ก็จะได้ตามรูปข้างบน ซึ่งตัวแปร foo จะถูกจองอยู่ในหน่วยความจำของคอมพิวเตอร์ ซึ่งจากรูปนี้ foo จะอยู่ที่ตำแหน่ง 240ff58 ของหน่วยความจำ แล้ว foo ก็เก็บค่า 21 ไว้ (ในหน่วยความจำจริงๆ จะเก็บเป็นเลขฐานสอง ไม่ได้เก็บเลข 21 ไว้นะครับ)  และในทำนองเดียวกันตัวแปร bar ก็ถูกเก็บอยู่ในหน่วยความจำ ซึ่งตามรูปคือที่ตำแหน่ง 240ff5c และเรายังไม่ได้กำหนดค่าให้ bar  นอกจากนั้นจะเห็นว่าตัวแปรแบบ bar นั้นจะมีfieldข้อมูลมากกว่าตัวแปรแบบธรรมดาอยู่ 1 field เรามาดูคำสั่งต่อไปกันต่อนะครับ&lt;br /&gt;ผมพิมพ์โค้ดว่า&lt;span style=&quot;font-weight: bold; font-style: italic;font-family:arial;&quot; &gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(153, 0, 0);&quot;&gt;bar = &amp;foo;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5oanna0d2GElP1xtCEM2EibQiQB6SU4Y7Cvoc-NiKGxlUwjTKE22QQ1HZWCEPCiIu9lxNTNoPNZBQZVCZ-yIKOn-f1PQHbNv4N5lsNAsEfnDdU29dlQWs3E6_xHP382KZENKc3yCgMts/s1600/2.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 240px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5oanna0d2GElP1xtCEM2EibQiQB6SU4Y7Cvoc-NiKGxlUwjTKE22QQ1HZWCEPCiIu9lxNTNoPNZBQZVCZ-yIKOn-f1PQHbNv4N5lsNAsEfnDdU29dlQWs3E6_xHP382KZENKc3yCgMts/s320/2.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5407624982676316690&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style=&quot;text-align: left;&quot;&gt;จากรูป ผลลัพธ์ที่ได้เมื่อเราสั่งให้ bar ชี้ (Reference) ไปยัง foo จะทำให้ส่วนของ value ของ bar เก็บ address ของ foo ไว้ ถ้าเราลองพิมพ์ค่าของตัวแปรทั้งสองตัวออกมาด้วยคำสั่ง printf&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;&lt;span style=&quot;color: rgb(153, 0, 0);font-family:arial;&quot; &gt;printf(&quot;Address of  foo is %x , Values Store in foo is %d\n&quot;,&amp;amp;foo, foo);&lt;br /&gt;printf(&quot;Address of *bar is %x, Values Store in *bar is %x, Values Point by *bar is %d&quot;, &amp;amp;bar, bar, *bar);&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;ผลลัพธ์ที่ได้ก็คือ&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic; color: rgb(51, 51, 255);font-family:arial;&quot; &gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Address of  foo is 240ff58 , Values Store in foo is 21&lt;br /&gt;Address of *bar is 240ff5c , Values Store in *bar is 240ff58 , Values Point by *bar is 21&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;จะเห็นว่าเมื่อเราสั่งให้ Pointer ชี้ไปยังตัวแปรที่ต้องการ ค่าที่เก็บอยู่ในตัวแปร Pointer ก็คือ Address ของตัวแปรที่มันชี้อยู่ันั่นเอง ส่วนใน field * ของ Pointer นั้น เมื่อเราอ้างถึง fieldนี้ ก็จะหมายถึงการอ้างถึงค่าซื่งเก็บอยู่ในตัวแปรที่ Pointer ชี้อยู่ (ในที่นี้คือค่า 21 ที่เก็บอยู่ในตัวแปร foo) ดังนั้นถ้าเราพิมพ์ค่า bar ออกมา ก็จะได้ผลลัพธ์เป็นค่าในตัวแปร foo&lt;br /&gt;&lt;br /&gt;และถ้าหากเราแก้ไขค่าโดยการอ้าง fild * ของ Pointer จะส่งผลให้ค่าในตัวแปรที่ Pointer ชี้อยู่ เปลี่ยนแปลงไปด้วย เช่น&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;color: rgb(153, 0, 0);font-family:arial;&quot; &gt;*bar = 3;&lt;br /&gt;printf(&quot;*bar = %d   foo = %d&quot;, *bar, foo);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;ผลลัพธ์ที่ได้ก็คือ&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 255);font-family:arial;&quot; &gt;&lt;br /&gt;&lt;br /&gt;*bar = 3&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 255);font-family:arial;&quot; &gt;  foo = 3&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;คงได้ทบทวนกันไปพอเป็นน้ำจิ้มนะครับ สำหรับเรื่อง Pointer ในภาษาซี การใช้งานจริงของ Pointer นั้นถ้าเราเข้าใจพื้นฐานแล้ว รับรองว่าไม่ยากครับ มีข้อแนะนำนิดนึงสำหรับเวลาเขียนโปรแกรมที่ต้องใช้โครงสร้างข้อมูล หรือเวลาเขียนโปรแกรมอะไรก็ตาม อยากให้วาดรูปโครงสร้างที่ใช้ในโปรแกรมขึ้นมาก่อน พยายามออกแบบก่อน จะทำให้เวลา coding จริงๆ จะง่ายขึ้น debug ก็ง่ายขึ้นด้วย&lt;br /&gt;&lt;br /&gt;ไปก่อนนะครับ ^ ^&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;meta equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;&lt;meta name=&quot;ProgId&quot; content=&quot;Word.Document&quot;&gt;&lt;meta name=&quot;Generator&quot; content=&quot;Microsoft Word 12&quot;&gt;&lt;meta name=&quot;Originator&quot; content=&quot;Microsoft Word 12&quot;&gt;&lt;link rel=&quot;File-List&quot; href=&quot;file:///C:%5CDOCUME%7E1%5CMilky%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml&quot;&gt;&lt;link rel=&quot;themeData&quot; href=&quot;file:///C:%5CDOCUME%7E1%5CMilky%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx&quot;&gt;&lt;link rel=&quot;colorSchemeMapping&quot; href=&quot;file:///C:%5CDOCUME%7E1%5CMilky%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml&quot;&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;TH&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:applybreakingrules/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;    &lt;w:usefelayout/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val=&quot;Cambria Math&quot;&gt;    &lt;m:brkbin val=&quot;before&quot;&gt;    &lt;m:brkbinsub val=&quot;--&quot;&gt;    &lt;m:smallfrac val=&quot;off&quot;&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val=&quot;0&quot;&gt;    &lt;m:rmargin val=&quot;0&quot;&gt;    &lt;m:defjc val=&quot;centerGroup&quot;&gt;    &lt;m:wrapindent val=&quot;1440&quot;&gt;    &lt;m:intlim val=&quot;subSup&quot;&gt;    &lt;m:narylim val=&quot;undOvr&quot;&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate=&quot;false&quot; defunhidewhenused=&quot;true&quot; defsemihidden=&quot;true&quot; defqformat=&quot;false&quot; defpriority=&quot;99&quot; latentstylecount=&quot;267&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;1&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Normal&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;heading 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 7&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 8&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 9&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 7&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 8&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 9&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;35&quot; qformat=&quot;true&quot; name=&quot;caption&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;10&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Title&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;1&quot; name=&quot;Default Paragraph Font&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;11&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Subtitle&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;22&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Strong&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;20&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Emphasis&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;59&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Table Grid&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Placeholder Text&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;1&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;No Spacing&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Revision&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;34&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;List Paragraph&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;29&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Quote&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;30&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Intense Quote&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;19&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Subtle Emphasis&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;21&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Intense Emphasis&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;31&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Subtle Reference&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;32&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Intense Reference&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;33&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Book Title&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;37&quot; name=&quot;Bibliography&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; qformat=&quot;true&quot; name=&quot;TOC Heading&quot;&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:&quot;Cambria Math&quot;; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face 	{font-family:Tahoma; 	panose-1:2 11 6 4 3 5 4 4 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:1627400839 -2147483648 8 0 66047 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-priority:1; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:&quot;&quot;; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	mso-bidi-font-size:10.0pt; 	font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:&quot;Times New Roman&quot;; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:Tahoma; 	mso-bidi-theme-font:minor-bidi;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-bidi-font-size:10.0pt; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:&quot;Times New Roman&quot;; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:Tahoma; 	mso-bidi-theme-font:minor-bidi;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:&quot;Table Normal&quot;; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:&quot;&quot;; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	mso-bidi-font-size:14.0pt; 	font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} &lt;/style&gt; &lt;![endif]--&gt;&lt;meta equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;&lt;meta name=&quot;ProgId&quot; content=&quot;Word.Document&quot;&gt;&lt;meta name=&quot;Generator&quot; content=&quot;Microsoft Word 12&quot;&gt;&lt;meta name=&quot;Originator&quot; content=&quot;Microsoft Word 12&quot;&gt;&lt;link rel=&quot;File-List&quot; href=&quot;file:///C:%5CDOCUME%7E1%5CMilky%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml&quot;&gt;&lt;link rel=&quot;themeData&quot; href=&quot;file:///C:%5CDOCUME%7E1%5CMilky%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx&quot;&gt;&lt;link rel=&quot;colorSchemeMapping&quot; href=&quot;file:///C:%5CDOCUME%7E1%5CMilky%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml&quot;&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;TH&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:applybreakingrules/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;    &lt;w:usefelayout/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val=&quot;Cambria Math&quot;&gt;    &lt;m:brkbin val=&quot;before&quot;&gt;    &lt;m:brkbinsub val=&quot;--&quot;&gt;    &lt;m:smallfrac val=&quot;off&quot;&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val=&quot;0&quot;&gt;    &lt;m:rmargin val=&quot;0&quot;&gt;    &lt;m:defjc val=&quot;centerGroup&quot;&gt;    &lt;m:wrapindent val=&quot;1440&quot;&gt;    &lt;m:intlim val=&quot;subSup&quot;&gt;    &lt;m:narylim val=&quot;undOvr&quot;&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate=&quot;false&quot; defunhidewhenused=&quot;true&quot; defsemihidden=&quot;true&quot; defqformat=&quot;false&quot; defpriority=&quot;99&quot; latentstylecount=&quot;267&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;1&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Normal&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;heading 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 7&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 8&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 9&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 7&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 8&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 9&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;35&quot; qformat=&quot;true&quot; name=&quot;caption&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;10&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Title&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;1&quot; name=&quot;Default Paragraph Font&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;11&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Subtitle&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;22&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Strong&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;20&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Emphasis&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;59&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Table Grid&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Placeholder Text&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;1&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;No Spacing&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Revision&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;34&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;List Paragraph&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;29&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Quote&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;30&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Intense Quote&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;19&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Subtle Emphasis&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;21&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Intense Emphasis&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;31&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Subtle Reference&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;32&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Intense Reference&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;33&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Book Title&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;37&quot; name=&quot;Bibliography&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; qformat=&quot;true&quot; name=&quot;TOC Heading&quot;&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:&quot;Cambria Math&quot;; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face 	{font-family:Tahoma; 	panose-1:2 11 6 4 3 5 4 4 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:1627400839 -2147483648 8 0 66047 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-priority:1; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:&quot;&quot;; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	mso-bidi-font-size:10.0pt; 	font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:&quot;Times New Roman&quot;; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:Tahoma; 	mso-bidi-theme-font:minor-bidi;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-bidi-font-size:10.0pt; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:&quot;Times New Roman&quot;; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:Tahoma; 	mso-bidi-theme-font:minor-bidi;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:&quot;Table Normal&quot;; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:&quot;&quot;; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	mso-bidi-font-size:14.0pt; 	font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} &lt;/style&gt; &lt;![endif]--&gt;</content><link rel='replies' type='application/atom+xml' href='http://bangdew.blogspot.com/feeds/4887155451739893088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bangdew.blogspot.com/2009/11/pointer-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3055070353216963447/posts/default/4887155451739893088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3055070353216963447/posts/default/4887155451739893088'/><link rel='alternate' type='text/html' href='http://bangdew.blogspot.com/2009/11/pointer-c.html' title='มาทบทวน Pointer ในภาษา C กันเถอะ'/><author><name>Johnny Dew</name><uri>http://www.blogger.com/profile/06286585852660545697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqzwenXEDt1rNR92ZT5d9gFXNBHH5nll5blkazk5pCzmJZwRhYKOg-HSgtiDAmEthNoz0b-uECAN2xJmHtiIk9ILRkG2blCC7zLuqvAK9P_aefJGPJyqPKDhD3h-_Oc2Y/s220/Exception.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm1h_Zox6FE5HJVlFrmxFz4Gpnu_y9ulJa5l7FXUZeScxdu6zUMsaCmiJa6HqIcgyTG7YvSxO8umjpQKFM-bFp0DiYr5L4bM8R90FnKG_3BCZfIIJfOC1lG66vWQM7W8O239VlQv-c7FQ/s72-c/pointer.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3055070353216963447.post-7968794066973631643</id><published>2009-11-24T00:54:00.000+07:00</published><updated>2009-11-24T15:53:14.599+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android - Article"/><title type='text'>แอนดรอยจะช่วยกูเกิ้ลครองโลกโดยที่ท่านไม่รู้ตัว!</title><content type='html'>เ็ป็นบทความที่พี่มิ้วค์ (@kanatorn) บรรยายไว้ในงาน Droidsans Meeting ครั้งที่ 1 แล้วพี่มิ้วค์ก็ได้เขียนไว้ใน &lt;a href=&quot;http://droidsans.com/&quot;&gt;Droidsans&lt;/a&gt; ด้วย เป็นบทความที่น่าสนใจทีเดียว ลองอ่านกันดูนะครับ&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.droidsans.com/sites/default/files/google-is-evil-300x270.jpg&quot; alt=&quot;&quot; class=&quot;bb-image&quot; /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.droidsans.com/sites/default/files/google-god.jpg&quot; alt=&quot;&quot; class=&quot;bb-image&quot; /&gt;&lt;/div&gt;&lt;br /&gt;ชื่อบล๊อกนี้ผมได้แต่ใดมา....&lt;br /&gt;จริงๆแล้วผมไม่ได้คิดเอง แต่เอามาจากทวีตของ @nuuneoi เห็นมีคนรีทวีตกันพอสมควร แสดงว่าน่าจะมีคนแอบคิดแบบนี้อยู่หลายคนเหมือนกัน ตึ่ง! (ตอนหลัง พี่ @nuuneoi มาบอกว่าเอาประโยคนี้มาจากผม ตอน Meeting DroidSans ตึ่งๆๆๆ!!! จำไม่ได้แหะๆ)&lt;br /&gt;วันนี้จะมาเขียนเรื่องในจินตนาการล้วนๆ อย่ามาว่าผมเพ้อเจ้อนะ ออกตัวไว้แต่แรกแล้วนะจ๊ะ จริงๆก็คงจะคล้ายๆกับตอนพรีเซนต์เรื่อง อนาคตของแอนดรอย ในงาน DroidSans Meeting &lt;p&gt;เริ่มด้วย กูเกิ้ลทำธุรกิจที่หากำไรจากอะไร?&lt;br /&gt;ติ๊กต็อก ติ๊กต็อก......&lt;br /&gt;คำตอบคือ &quot;โฆษณา&quot; นั่นเอง&lt;br /&gt;ก็แค่ &quot;โฆษณา&quot; !!! (ตกใจทำไม)&lt;/p&gt; &lt;p&gt;การทำธุรกิจโฆษณา สิ่งที่สำคัญที่สุดก็คือการรู้ใจลูกค้าว่าลูกค้าต้องการอะไร ณ ช่วงเวลานั้นๆ แล้วก็ป้อนข้อมูลโฆษณาที่ตรงกับความต้องการให้ลูกค้าได้รับรู้ในช่วงเวลา นั้น รับประกันว่าได้ผล!! ต่อให้ไม่มีเงินก็อาจจะยืมเงินเพื่อนเพื่อซื้อสินค้าได้ (อิอิ เคยเป็น)&lt;/p&gt; &lt;p&gt;ตอนนี้กูเกิ้ลเริ่มจะรู้ถึงพฤติกรรมการใช้ชีวิตประจำวันของเรามากขึ้นจากบริการฟรีที่พวกเราใช้กันอยู่&lt;br /&gt;&lt;/p&gt;&lt;ul class=&quot;bb-list&quot; style=&quot;list-style-type: circle;&quot;&gt;&lt;li&gt;GMail กูเกิ้ลทำ Index ข้อความสนทนาเราไว้หมด และปล่อยโฆษณาที่ค่อนข้างเกี่ยวข้องกับเนื้อหาในเมลล์&lt;/li&gt;&lt;li&gt;Web History ถ้าใครล็อกอิน Google Account แน่นอนว่ากูเกิ้ลจะเก็บประวัติไว้หมดว่าในแต่ละวันเราเข้าเว็บอะไรกันบ้าง ข้อมูลตรงนี้เป็นประโยชน์มหาศาลในการโฆษณา เพราะเราสนใจอะไรก็มักจะเข้าเว็บที่มีเนื้อหาเกี่ยวกับเรื่องนั้นๆอยู่แล้ว&lt;/li&gt;&lt;/ul&gt; &lt;div style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://www.droidsans.com/sites/default/files/google-tools1.jpg&quot; alt=&quot;&quot; class=&quot;bb-image&quot; /&gt;&lt;/div&gt;&lt;br /&gt;สองข้อนี้เป็นข้อมูลพื้นฐานที่น่าจะเพียงพอต่อการโฆษณาแล้วใช่มั้ย?&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;แต่ยังมีอีก!!!&lt;/span&gt;&lt;/span&gt; &lt;ul class=&quot;bb-list&quot; style=&quot;list-style-type: circle;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Picasa Album&lt;/span&gt; ทำให้รู้ตำแหน่งของสถานที่ที่คนไปถ่ายรูปและเที่ยวกันมากๆ&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Picasa Face Detection&lt;/span&gt; ทำให้ทราบถึงความมีปฏิสัมพันธ์กันระหว่างบุคคล ว่าอย่างน้อยก็เคยทำกิจกรรมร่วมกันในรูปที่ถ่าย และก็ทราบตำแหน่งด้วยว่าไปที่ไหนกันมา เช่น รูปถ่ายในงาน DroidSans Meeting ทำให้กูเกิ้ลรู้ว่าอย่างน้อยคนที่มีหน้าอยู่ในรูปทั้งหมด 45 คนเคยมาพบปะสังสรรค์กันที่ Au Bon Pain สาขาสยาม เวลา 13.00-16.00 น.&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Google Contact&lt;/span&gt; ทำให้รู้ว่าใครรู้จักกันบ้าง มีที่อยู่อยู่ที่ไหน มีเว็บไซต์ของตัวเองชื่ออะไร อีเมลล์อะไร เบอร์โทรอะไร IM อะไรบ้าง ฯลฯ&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Google Docs&lt;/span&gt; ทำให้เห็นเนื้อหาข้อความที่เราใส่เข้าไป และยังรู้ด้วยว่าเนื้อหานี้มีใครใช้ร่วมกันอยู่บ้าง&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Google Calendar&lt;/span&gt; ทำให้รู้ว่าใครจะทำอะไร ที่ไหน เมื่อไหร่ คนเดียว หรือเป็นกลุ่ม กับใครบ้าง (รู้ล่วงหน้าด้วยซ้ำไป)&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Google Maps&lt;/span&gt; มีฟีเจอร์ให้เราบันทึกหรือบุ๊คมาร์คสถานที่ที่เราต้องการได้ แค่นี้ก็รู้แล้วว่าที่ไหนคนนิยมไปกัน&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Google Health&lt;/span&gt; มีการป้อนข้อมูลยาในการไปหาหมอครั้งหนึ่งๆ มีข้อมูลแพ้ยา จะเป็นอย่างไรถ้าคนใช้บริการเยอะๆ แล้วก็เอาข้อมูลการใช้ยาเหล่านี้ไปขายบริษัทขายยา (รวยเห็นๆ) หรือจะเอามาโฆษณายาก็ยังได้&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Google Wave&lt;/span&gt; กูเกิ้ลกำลังสร้างมาตรฐานการสื่อสารใหม่ ที่ทำให้ทุกคนรู้สึกว่าถ้าจะคุยปรึกษางานกัน ประชุมงานกัน ต้องมาคุยกันใน Wave เพราะข้อมูลจะไม่สูญหาย เรียกดูเมื่อไหร่ก็ได้ สามารถ playback ได้เหมือนมีเลขามาบันทึกการประชุมไว้ตลอดเวลา การสื่อสารก็ sync ข้อมูลกันเรียกว่าแทบจะเรียลไทม์ ถ้าคนจำนวนมากติดใจ Wave อย่างที่ว่าจริงๆ แสดงว่ากูเกิ้ลแทบจะรู้ทันทีทันใดเลยว่า Talk of the town ตอนนี้คือเรื่องอะไร(คล้ายๆกับทวิตเตอร์ แต่ลึกซึ้งกว่า) คนกลุ่มไหนบ้างที่กำลังสนใจเรื่องนั้นๆ แล้วโฆษณาแบบโดนใจไก่คั่วจะไปไหนเสีย!!!&lt;/li&gt;&lt;li&gt;อื่นๆ อีกเป็นกะตั๊ก ลองไปดูใน Google Labs สิครับ&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;ถ้ามาลองวิเคราะห์ดูจริงๆแล้วข้อมูลที่ได้มาจากบริการเหล่านี้มีเพียงไม่กี่รูปแบบ&lt;br /&gt;&lt;/p&gt;&lt;ol class=&quot;bb-list&quot; style=&quot;list-style-type: decimal;&quot;&gt;&lt;li&gt;ตำแหน่ง&lt;/li&gt;&lt;li&gt;ความสัมพันธ์ของกลุ่มบุคคล&lt;/li&gt;&lt;li&gt;เวลา&lt;/li&gt;&lt;li&gt;เนื้อหา&lt;/li&gt;&lt;/ol&gt; *อย่าลืมด้วยนะว่าข้อมูลทั้ง 4 อย่างนี้กูเกิ้ลรู้ว่าเป็นข้อมูลของใคร(ทุกอย่างต้อง login) &lt;p&gt;ชักจะยาวเกินไปแล้ว ยังไม่พูดถึงแอนดรอยสักนิด&lt;br /&gt;แล้วแอนดรอยมาเติมเต็มอะไรให้กับกูเกิ้ล?&lt;/p&gt; &lt;ol class=&quot;bb-list&quot; style=&quot;list-style-type: decimal;&quot;&gt;&lt;li&gt;เติมเต็มข้อมูลทางด้าน ตำแหน่งบนพื้นโลก เพราะแอนดรอยมี GPS ทุกรุ่น รู้หมดตอนนี้คุณอยู่ที่ไหนกันบ้าง&lt;/li&gt;&lt;li&gt;เติม เต็มการใช้บริการ Google Contact เพราะคนส่วนใหญ่น่าจะติดใจการ Sync Contact กับ Google (อย่างน้อยผมก็คนนึง) จากเมื่อก่อนผมไม่เคยสนใจ Google Contact เลย ตอนนี้แทบขาดไม่ได้&lt;/li&gt;&lt;li&gt;เติมเต็มบริการทุกอย่างที่มือ ถือสามารถทำได้ เพราะการใช้งานแอนดรอยทุกเครื่องต้องมีการล็อกอิน เป็นการบังคับให้เราทุกคนช่วยกันใช้บริการต่างๆที่ได้กล่าวมาแล้วอย่างเอา จริงเอาจังมากขึ้น เช่น YouTube Picasa Calendar Google Maps เป็นต้น (อยากเอาข้อมูลไรก็ทำแอพพลิเคชันมา ยังไงเราก็ใช้ เพราะฟรี!! :D)&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;แอนดรอยช่วยได้แค่นี้เองหรือ???&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;ใช่แล้ว &lt;span style=&quot;color:red;&quot;&gt;(ถ้าแอนดรอยเป็นเพียงแค่ระบบปฏิบัติการสำหรับมือถือ!!!)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;color:blue;&quot;&gt;!แต่....... แอนดรอยถูกออกแบบมาสำหรับ Embeded Device ที่ไม่ใช่เฉพาะมือถือเพียงอย่างเดียว!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;ตอนนี้ที่เห็นๆกันอยู่ก็จะมี&lt;br /&gt;&lt;/p&gt;&lt;ul class=&quot;bb-list&quot; style=&quot;list-style-type: circle;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;E-Reader&lt;/span&gt; -&gt; รู้นะว่าคุณชอบอ่านหนังสือแนวไหน&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Netbook&lt;/span&gt; -&gt; รู้นะว่าเล่นเว็บอะไรบ้าง&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Media Player&lt;/span&gt; -&gt; รู้นะชอบฟังเพลงแนวไหน ชอบหนังแนวไหน ใครเล่นเป็นนางเอก&lt;/li&gt;&lt;/ul&gt; *อย่าลืมนะว่าทุกอย่างมี Google Account ไม่มีทางพลาดว่าคุณเป็นใคร ฮ่าๆๆๆ &lt;p&gt;&lt;span style=&quot;color:blue;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;แล้วถ้าอุปกรณ์ต่อไปนี้รันด้วย &quot;แอนดรอย&quot; และมี &quot;Google Account&quot; กันทุกตัวละ!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul class=&quot;bb-list&quot; style=&quot;list-style-type: circle;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;ชักโครก&lt;/span&gt; -&gt; วัดปริมาณน้ำตาลในปัจสาวะ แล้วส่งข้อมูลเรียลไทม์เก็บไว้ใน Google Health (คนแรกที่รู้ว่าคุณเป็นเบาหวานไม่ใช่หมออีกต่อไป แต่เป็น Google)&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;เครื่องปิ้งขนมปัง&lt;/span&gt; -&gt; อย่างน้อยก็ทำให้รู้ว่าคุณชอบกินขนมปังบ่อยแค่ไหน&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;โทรทัศน์&lt;/span&gt; -&gt; คุณชอบดูรายการแบบไหน ละครแบบไหน รับรองกูเกิ้ลไม่พลาดแน่&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;ตู้เย็นอัจฉริยะ&lt;/span&gt; -&gt; ถ้าใข่ไก่ในถาดด้านข้างตู้หมด อาจจะมีโฆษณาไข่ไก่สดลดราคาของ CPF มาโผล่ที่ด้านล่างหน้าจอทีวี และหน้าจอมือถือแอนดรอยของคุณ&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;นาฬิกาปลุก&lt;/span&gt; -&gt; คุณไม่ต้องตั้งนาฬิกาปลุกอีกต่อไป เพราะมันจะ Sync กับ Google Calendar ทำให้คุณอยากใช้ Google Calendar มากขึ้นเพราะสะดวก และอาจจะมีโฆษณา โจ๊กกองปราบมาโผล่ที่หน้าจอนาฬิกาปลุกตอนเช้าๆ อิอิ (ตอนนี้ตารางชีวิตคุณโดนกำหนดโดย Google Calendar เรียบร้อยแล้ว อิอิ)&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;พริ้นเตอร์&lt;/span&gt; -&gt; พิมพ์รูปง่ายๆผ่าน Picasa ทำให้ไม่อยากเก็บรูปไว้ในที่อื่นอีกต่อไป เพราะไม่มีที่ใดสะดวกเท่าการเก็บไว้ใน Picasa ไม่ต้องกลัวหาย ฮาร์ดดิสก์เจ๊ง หรือแม้แต่หารูปไม่เจอ แถมยังพริ้นได้ทันทีที่ต้องการที่ไหนก็ได้&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;กรอบรูปดิจิตอล ประดับห้อง&lt;/span&gt; -&gt; Random รูปจาก Picasa และ YouTube Account ของคุณมาแสดงย้อนเวลาประทับใจ (ถ้ามันดีขนาดนี้แล้วจะมีเหตุผลใดที่จะไปอัพโหลดรูปไว้ที่เว็บอื่น)&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Car Multimedia Systems&lt;/span&gt; -&gt; ทำได้ทั้ง Navigator ดูหนัง ฟังเพลง วิทยุออนไลน์ อ่านเมลล์ให้ฟังตอนขับรถ สนทนาผ่าน Google Voice กับเพื่อนได้ทันที แต่ทั้งหมดมีโฆษณาแอบแฝงมาด้วย (แต่ทำไงได้ก็เราใช้บริการของ Google ทุกอย่างแล้วนี่ ไม่มีเหตุผลที่จะไม่ใช้ ก็แค่โฆษณานิดเดียวเอง:D)&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Car Maintenance System&lt;/span&gt; -&gt; ตรวจสอบสถานะรถของเรา เช่น ลมยางอ่อน ถ้าอ่อนก็โฆษณาว่าบีควิกมีลดราคา, เตือนว่าถึงเวลาเปลี่ยนน้ำมันเครื่อง พร้อมกับบอกว่า PTT Performa น่าจะเหมาะกับรถของคุณ ฯลฯ&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Travel System&lt;/span&gt; -&gt; แค่มีรถยนต์แอนดรอย กับมือถือแอนดรอย คุณก็ไปท่องเที่ยวได้โดยไม่ต้องกังวลอะไรอีกต่อไป จะพักที่ไหน กูเกิ้ลบอกได้ จะหาอะไรทานอร่อยๆกูเกิ้ลบอกได้ เพื่อนๆที่ไปกับคุณอยู่ตรงไหนบ้าง กูเกิ้ลบอกได้ (แต่โรงแรมที่กูเกิ้ลแนะนำให้คุณพัก เค้าต้องจ่ายค่าโฆษณาให้กูเกิ้ลนะรู้รึปล่าว อิอิ) นี่ยังไม่รวมถึงการใช้กล้องถ่ายรูปหรือมือถือแอนดรอย ถ่ายรูปแล้วอัพรูปเข้า Picasa อีกด้วยนะจ๊ะ&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;!!! อนาคตอันใกล้นี้ ในวันหนึ่งๆ จะมีสักกี่นาทีที่กูเกิ้ลไม่ได้มีอิทธิพลกับชีวิตคุณ&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style=&quot;color:blue;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;!!!!!ตื่น ตื่นๆๆๆๆ ที่แท้ก็ละเมอแล้วเขียนบล๊อก อิอิ&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;จริงๆแล้วมันก็ไม่ได้น่ากลัวขนาดน้าน ก็คงจะขึ้นอยู่กับกูเกิ้ลด้วยครับว่าจะทำตัวเป็นปิศาจร้าย หรือเทพบุตรต่างหาก แต่อย่างไรก็ตามทุกอย่างในโลกนี้ย่อมปรับตัวเข้าสู่สมดุลเสมอ ถ้าถึงวันนั้นจริงๆ ก็คงมีบริษัทอื่นมาคานอำนาจกูเกิ้ลอย่างแน่นอน อย่างที่ก่อนหน้านี้ก็คงมีไม่กี่คนที่จะคิดว่าไมโครซอฟต์ก็อ่อนแรงอย่างทุก วันนี้ได้เหมือนกัน แล้วคุณละคิดยยังไง สาธุดรอยชนทั้งหลาย ;D&lt;/p&gt; &lt;p&gt;ฉะเอิ่งเองเอย ชวึ้ง ปายละค้าบ&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Source&lt;/span&gt; &lt;a href=&quot;http://droidsans.com/node/1109&quot;&gt;Droidsans&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://bangdew.blogspot.com/feeds/7968794066973631643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bangdew.blogspot.com/2009/11/blog-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3055070353216963447/posts/default/7968794066973631643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3055070353216963447/posts/default/7968794066973631643'/><link rel='alternate' type='text/html' href='http://bangdew.blogspot.com/2009/11/blog-post.html' title='แอนดรอยจะช่วยกูเกิ้ลครองโลกโดยที่ท่านไม่รู้ตัว!'/><author><name>Johnny Dew</name><uri>http://www.blogger.com/profile/06286585852660545697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqzwenXEDt1rNR92ZT5d9gFXNBHH5nll5blkazk5pCzmJZwRhYKOg-HSgtiDAmEthNoz0b-uECAN2xJmHtiIk9ILRkG2blCC7zLuqvAK9P_aefJGPJyqPKDhD3h-_Oc2Y/s220/Exception.jpg'/></author><thr:total>0</thr:total></entry></feed>