<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6417719527615106074</id><updated>2012-02-01T17:34:59.966+07:00</updated><category term='ประกันบ้าน'/><category term='pojo mvn restlet xml'/><category term='ทดสอบ Google Blog'/><category term='UML'/><category term='Note'/><category term='nat stun turn ice'/><category term='netbean 6.9'/><category term='shipping'/><category term='ASCII Accent'/><title type='text'>pleX</title><subtitle type='html'>pleX 's Blogger. &lt;br&gt;
The place for knowledges sharing!!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default?start-index=101&amp;max-results=100'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>101</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-1339954602378183520</id><published>2011-12-15T22:46:00.008+07:00</published><updated>2012-02-01T17:34:59.974+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nat stun turn ice'/><title type='text'>NAT [STUN/TURN/ICE]</title><content type='html'>&lt;div&gt;มาขอจด note กันลืม เรื่อง NAT traversal หน่อย   [How to deal with final users / End-to-end tunnel ]&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Nat มี 4 ประเภท แบบ fix/no fix port, fix/no fix IP  ถ้าเป็นแบบที่ fix ทั้งหมด จะเรียกว่า symmetric nat ซึ่งจัดการยากที่สุด&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  1.1 Full cone =&amp;gt; เหมือนกับทำ dynamic port forward เวลาส่งออก iAddr:iPort จะ map กับ eAddr:ePort แล้วส่งไปหา hAddr:hPort จากนั้น hAny:hAny สามารถส่งเข้ามาได้ iAddr:iPort ได้ แม้ว่าจะไม่เคยได้รับการติดต่อมาก่อน&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  1.2 Restrict cone =&amp;gt; iAddr:iPort ส่ง packet ออกไปยังเครื่องใด ๆ ด้วย eAddr:ePort  เช่น ส่งไปหา  hAddr:hPort แล้ว hAddr:&lt;span&gt;hAny&lt;/span&gt; สามารถส่งเข้ามาได้ iAddr:iPort ได้ &lt;/div&gt;&lt;div&gt;( เวลา internal ส่งออก ไม่ว่าปลายทางเป็นเครื่องเครื่องไหน ใช้ eAddr:ePort แต่เครื่องนอก hAddr:&lt;span&gt;hAny&lt;/span&gt; สามารถส่งกลับมาได้ ก็ต่อเมื่อเคยได้รับ packet จาก internal ก่อน)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  1.3 Port Restrict cone =&amp;gt; iAddr:iPort ส่ง packet ออกไปยังเครื่องใด ๆ ด้วย eAddr:ePort เช่น ส่งไปหา hAddr:hPort แล้ว hAddr&lt;span&gt;:hPort&lt;/span&gt; สามารถส่งเข้ามาได้ iAddr:iPort ได้ &lt;/div&gt;&lt;div&gt;&lt;div&gt;( เวลา internal ส่งออก ไม่ว่าปลายทางเป็นเครื่องเครื่องไหน ใช้ eAddr:ePort แต่เครื่องนอก hAddr:&lt;span&gt;hPort&lt;/span&gt; สามารถส่งกลับมาได้ ก็ต่อเมื่อเคยได้รับ packet จาก internal ก่อน)&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  1.4 Symmetric cone =&amp;gt;  iAddr:iPort ส่ง packet ออกไปยังเครื่องนอก ด้วยการ map port ที่ต่างกัน ไม่เหมือน 3 อันที่กล่าวมา คือ ไม่ว่าปลายทางเครื่องไหน ใช้ eAddr:ePort เสมอ แต่แบบ Symmetric จะ map port ใหม่ สำหรับ เครื่องปลายใหม่   ส่วนเวลาตอบกลับ hAddr:hPort สามารถส่งกลับมาได้ ก็ต่อเมื่อเคยได้รับ packet จาก internal ก่อนเท่านั้น&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. ใช้ application layer gateway / session border controller มาช่วยจัดการ (อ่านแล้วยัง งง ๆ ว่าตกลงมันต่างกันยังไงวะ)  แต่ มัน deploy ยาก และ ไม่ scalability + more delays&lt;/div&gt;&lt;div&gt;(&lt;a href="http://www.voiptraversal.com/solving_nat_traversal.htm"&gt;http://www.voiptraversal.com/solving_nat_traversal.htm&lt;/a&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Stun เข้ามาแก้ปัญหาเรื่อง nat แบบที่ไม่ใช่ symmetric โดยการใช้ เทคนิค UDP hole punching (จะใช้ tcp ก็ได้ แต่ไม่ค่อยนิยม และ ทำโอกาสสำเร็จมีน้อยกว่า) คือ ให้ client หลัง nat คุยกับ stun server ก่อน เป็นการเจาะรู เพื่อให้ ผู้ติดต่ออีกฝ่าย สามารถเข้าถึง client คนนี้ ผ่านทาง รู ที่เจาะไว้  โดยอาศัยข้อมูลจาก stun server กรณีนี้ ถ้าเป็น full cone ก็ติดต่อได้เลย หลังจาก เจาะรูแล้ว แต่ถ้าเป็น แบบ (port) restrict cone พอเจารูเสร็จ ทั้งคู่ จะต้องติดต่ออีกฝ่าย คนที่รับข้อมูลก่อน NAT จะ drop packet ทิ้ง เพราะถือว่าไม่เคยได้รับการติดต่อ ส่วนอีกคนที่ได้รับข้อมูลทีหลัง NAT จะปล่อยผ่าน เพราะถือว่า เคยส่งไปหาก่อน ทีนี้ก็จะสามารถติดต่อกันได้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. กรณีที่อยู่หลัง nat ที่เป็น symmetric ทั้งคู่ ก็คล้าย ๆ กัน แต่ relay server จะต้อง forward packet ทุกอย่างไปให้ผู้ที่ติดต่อทั้ง 2 ฝ่าย (เพราะถ้าเปลี่ยน destination ตัว nat มันจะ map  port ใหม่ เราเลยต้องมี relay ไว้ส่งต่อ packet) เราเรียกว่า TURN นั่นเอง = Stun + Relay extentions &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5.  ICE = STUN + TURNS , ICE เป็น protocol ที่คอยมาตรวจสอบว่า จำเป็นต้องใช้ Turn ด้วยหรือเปล่า แล้วก็จัดตั้งการสื่อสารขึ้นมา&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;แต่สุดท้ายหลักการก็เหมือนกัน ก็คือเจาะรู เข้า nat ไว้ก่อน แล้วก็ส่ง หมายเลข port ที่ใช้ในการติดต่อ ถ้ามัน restrict ทั้ง IP และ port เมื่อส่งหากันครั้งแรก package จะโดน drop ที่ฝั่งผู้รับที่ได้รับข้อมูลก่อน (เพราะมัน restrict) แต่พอ ฟังผู้รับส่งมาให้ผู้ส่ง  คราวนี้จะไม่ drop ที่ฝ่ายส่งครั้งแรก เนื่องจาก ฝ่ายส่งได้เคยส่งข้อมูลหาไปแล้ว&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;อธิบายไว้ละเอียดที่นี่&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.brynosaurus.com/pub/net/p2pnat/"&gt;http://www.brynosaurus.com/pub/net/p2pnat/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.h-online.com/security/features/How-Skype-Co-get-round-firewalls-747197.html"&gt;http://www.h-online.com/security/features/How-Skype-Co-get-round-firewalls-747197.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-1339954602378183520?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/1339954602378183520/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=1339954602378183520' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1339954602378183520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1339954602378183520'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/12/nat-stunturnice.html' title='NAT [STUN/TURN/ICE]'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-8934238418661446908</id><published>2011-12-06T23:42:00.002+07:00</published><updated>2011-12-06T23:45:24.338+07:00</updated><title type='text'>Keystore for TLS/SSL #3</title><content type='html'>&lt;div&gt;&lt;b&gt;Create ca.pem/ca_pk.pem for HTTPS&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;openssl req -x509 -new -config openssl.cfg -days 365 -out ./new/ca.pem -keyout ./new/ca_pk.pem&lt;/div&gt;&lt;div&gt;Pass: 123456&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ca.pem    &lt;/div&gt;&lt;div&gt;ca_pk.pem&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;========&lt;/div&gt;&lt;div&gt;&lt;b&gt;create keystore:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;keytool -import -alias certificatekey -file ca.pem -keystore catruststore.jks&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;========&lt;/div&gt;&lt;div&gt;&lt;b&gt;Convert for Apache&lt;/b&gt;&lt;/div&gt;&lt;div&gt;openssl rsa -in ./new/ca_pk.pem -out ./new/ca_pk.key&lt;/div&gt;&lt;div&gt;Got ca_pk.key   (key file for apache)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;openssl x509 -x509toreq -days 365 -in ./new/ca.pem -signkey ./new/ca_pk.key -out ./new/ca.req&lt;/div&gt;&lt;div&gt;Got ca.req   (For sign certificate)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;openssl x509 -in ./new/ca.req -out ./new/ca.cert -req -signkey ./new/ca_pk.key -days 365&lt;/div&gt;&lt;div&gt;Got ca.cert (certificate for apache)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;================&lt;/div&gt;&lt;div&gt;&lt;b&gt;create keystore:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;keytool -import -alias certificatekey -file ca.cert -keystore catruststore-cert.jks&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;================&lt;/div&gt;&lt;div&gt;&lt;b&gt;Create cert for browser&lt;/b&gt;&lt;/div&gt;&lt;div&gt;There are 3 choices:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1.  Directly load from browser.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. openssl x509 -inform PEM -in ./new/ca.pem -outform DER -out ./new/ca.cer&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. openssl x509 -inform PEM -in ./new/ca.cert -outform DER -out ./new/ca1.cer&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-8934238418661446908?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/8934238418661446908/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=8934238418661446908' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8934238418661446908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8934238418661446908'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/12/keystore-for-tlsssl-3.html' title='Keystore for TLS/SSL #3'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-2724307298678137585</id><published>2011-12-01T23:13:00.003+07:00</published><updated>2011-12-15T23:07:23.900+07:00</updated><title type='text'>Birthday paradox</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial, Verdana, Helvetica, sans-serif; background-color: rgb(255, 255, 255); "&gt;หากคุณไปงานเลี้ยง แล้วเดินถามวันเกิด (เอาเฉพาะวันกับเดือน) ของคนที่คุณคุยด้วย คุณจะพบว่าใน 23 คนที่คุณถามวันเกิด จะมีโอกาสสูงที่คนที่เกิดวันเดียวกันอยู่ 1 คน&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Verdana, Helvetica, sans-serif; text-align: -webkit-auto; background-color: rgb(255, 255, 255); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Verdana, Helvetica, sans-serif; text-align: -webkit-auto; background-color: rgb(255, 255, 255); "&gt;ใน 1 ปีหนึ่งมีตั้ง 365 วัน &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Verdana, Helvetica, sans-serif; text-align: -webkit-auto; background-color: rgb(255, 255, 255); "&gt;แต่ถามแค่ 23 คน กลับเจอคนที่เกิดวันเดียวกันคนเดียว&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Verdana, Helvetica, sans-serif; text-align: -webkit-auto; background-color: rgb(255, 255, 255); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Verdana, Helvetica, sans-serif; text-align: -webkit-auto; background-color: rgb(255, 255, 255); "&gt;สรุปตามหลักสถิติ&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Verdana, Helvetica, sans-serif; text-align: -webkit-auto; background-color: rgb(255, 255, 255); "&gt;sample 2^n จะมีโอกาสเกิด collision ที่ 2^n/2&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Verdana, Helvetica, sans-serif; text-align: -webkit-auto; background-color: rgb(255, 255, 255); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Verdana, Helvetica, sans-serif; text-align: -webkit-auto; background-color: rgb(255, 255, 255); "&gt;365 = 2^8.51 =&amp;gt; collision ที่ &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Verdana, Helvetica, sans-serif; background-color: rgb(255, 255, 255); "&gt;2^8.51/2  = 19.104 ใกล้เคียงกับความจริงคือ 23 มากเลย&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Verdana, Helvetica, sans-serif; background-color: rgb(255, 255, 255); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Verdana, Helvetica, sans-serif; background-color: rgb(255, 255, 255); "&gt;เพื่อป้องการปัญหาการ collision ของ hash function ควรจะ hash ที่ 160 bits&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-2724307298678137585?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/2724307298678137585/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=2724307298678137585' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/2724307298678137585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/2724307298678137585'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/12/birthday-paradox.html' title='Birthday paradox'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-4178607621651445513</id><published>2011-12-01T22:28:00.004+07:00</published><updated>2011-12-01T23:28:47.439+07:00</updated><title type='text'>Why not Client Auth? on TLS/SSL</title><content type='html'>&lt;div&gt;- สร้าง TLS/SSL โดยใช้ JSSE ซึ่งใช้ public/private (keystore/truststore) ในการเข้ารหัส โดยกำหนดค่าผ่าน SSLContext &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- Server อ่านค่า private key ของตนเอง แล้ว เปิด port รอไว้ เมื่อ client จะติดต่อ ก็ไป load public key ของ server มา แล้วก็ connect server โดยใช้ TLS/SSL ไร้ปัญหา สำหรับ server เพราะเป็นตัวจริงแน่ ๆ ถ้า public key ของ server เป็นของจริง&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- ปัญหาคือ หาก server ต้องการ Authen Client ด้วย ถ้ามีแค่ 2 เครื่องแบบ client-server ก็ง่ายนิดเดียว ซึ่งเราสามารถสั่ง Client Auth ได้ผ่านคำสั่ง sslserversocket.setNeedClientAuth(true);  โดยการกำหนด public key ของ client และ private key ของ server ที่ server ก่อนที่จะเปิด port รอ และ client ก็ set ในแบบเดียวกัน&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- แต่ถ้าในระบบ P2P/DHT/Chord  Server ไม่สามารถทราบได้ว่า client มีใครจะมาติดต่อบ้าง และ server ต้องเปิด port รอ โดยที่ยังไม่ทราบ public key ของ client และ ปัญหาใหญ่คือ ทุก ๆ เครื่องเป็น ทั้ง client/server ในตัว&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- วิธีแก้ปัญหาในตอนนี้คือ ให้ verify เฉพาะ server อย่างเดียว เพราะ server เปิด port รอไว้ โดยใช้ private key ของตัวเอง client ก็ verify server โดยใช้ public key ของ server (อาจจะไป download จาก CA ที่ไหนสักแห่งที่ไว้ใจได้) ส่วนการ verify client ให้ใช้วิธีการ verify แบบอื่นที่ง่ายกว่า เช่น HTTP Digest เนื่องจาก วิธีนี้ มี overhead น้อย และ ปลอดภัย เนื่องจากมันถูกห่อหุ้มด้วย TLS/SSL อยู่ด้วย&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- แต่การใช้ HTTP Digest  มันก็ต้องมี pre-shared key ซึ่งส่งกันลำบาก ถ้ามองในแง่การส่งข้อมูล ที่ได้ทำการ implement แบบ stateless เวลา P1 -&amp;gt; P2, P2 ถูก verify แต่ P1 ไม่ถูก verify แต่เมื่อ P2 ตอบกลับ P1 ถูก verify แต่ P2 ไม่ถูก verify สุดท้ายแล้วก็ได้ verify ทั้ง 2 ฝ่ายอยู่ดี (เหลือปัญหาอยู่อย่างเดียวคือ คนที่เริ่ม connection อาจจะไม่ใช่คนนั้นจริง ๆ แต่ก็ตรวจสอบได้ภายหลัง)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-4178607621651445513?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/4178607621651445513/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=4178607621651445513' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4178607621651445513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4178607621651445513'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/12/why-not-client-auth-on-tlsssl.html' title='Why not Client Auth? on TLS/SSL'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-7659537488799967427</id><published>2011-12-01T22:09:00.006+07:00</published><updated>2011-12-01T22:27:23.389+07:00</updated><title type='text'>CA Keystore/Truststore</title><content type='html'>&lt;b&gt;Set up own Certificate Authority  &lt;/b&gt;&lt;i&gt;(need openssl for CA)&lt;/i&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;1.  download openSSL from http://www.slproweb.com/products/Win32OpenSSL.html&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. สร้าง private key/certificate โดยคำสั่ง&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;C:\OpenSSL-Win32\bin&amp;gt; openssl req -x509 -new -config openssl.cfg -days 365 -out ./new/ca.pem -keyout ./new/ca_pk.pem&lt;/div&gt;&lt;div&gt;Pass: 123456&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;จากคำสั่งนี้จะได้ certificate ca.pem กับ private key ca_pk.pem&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;3. นำ certificate มาสร้าง CA truststore โดยคำสั่ง&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;C:\OpenSSL-Win32\bin&amp;gt;  keytool -import -alias certificatekey -file ca.pem -keystore catruststore.jks&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Create Keystore and Truststore for a user&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. สร้าง keystore&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;C:\OpenSSL-Win32\bin\new&amp;gt; keytool -genkey -alias certificatekey -keypass 123456 -keystore CertName.jks -storepass 123456 -validity 365&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;หรือ ถ้าขี้เกียจพิมพ์ เอาแบบรวดเร็วก็ &lt;/div&gt;&lt;div&gt;C:\OpenSSL-Win32\bin\new&amp;gt; keytool -genkey -alias certificatekey -dname "cn=147.127.240.90, ou=IRIT, o=Sun, c=FR"  -keypass 123456 -keystore CertName.jks -storepass 123456 -validity 365&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;ต้องใส่ค่าต่าง ๆ ให้ตรงกับใน ca.pem ถ้าใส่ไม่ตรงต้องไปแก้ openssl.cfg ดังนี้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;dir&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;= ./PEM/demoCA&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;# Where everything is kept&lt;/div&gt;&lt;div&gt;policy&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;= policy_anything&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;# otherwise, has to put exactly the same information&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. สร้าง certificate ที่ request การ sign&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;C:\OpenSSL-Win32\bin\new&amp;gt; keytool -certreq -alias certificatekey  -file CertName_csr.pem -keypass 123456 -keystore CertName.jks -storepass 123456&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;จะได้ output คือ CertName_csr.pem&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. sign CSR (certificate)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;C:\OpenSSL-Win32\bin&amp;gt; openssl ca -config openssl.cfg -days 365 -in  ./new/CertName_csr.pem  -out ./new/CertName.pem -cert ./new/ca.pem -keyfile ./new/ca_pk.pem&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. แปลงไฟล์ในรูปแบบ PEM format&lt;/div&gt;&lt;div&gt;openssl x509 -in ./new/CertName.pem -out ./new/CertName.pem -outform PEM   &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. เอา certificate มาต่อกัน&lt;/div&gt;&lt;div&gt;copy CertName.pem + X509CA\ca\new_ca.pem CertName.chain&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6. update keystore (private key)&lt;/div&gt;&lt;div&gt;keytool -import -file CertName.chain -keypass 123456 -keystore CertName.jks -storepass 123456&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;7. สร้าง truststore (public key)&lt;/div&gt;&lt;div&gt;C:\OpenSSL-Win32\bin\new&amp;gt;keytool -import -alias certificatekey -file CertName.chain -keystore truststore.jks&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;8. ดูผล โดยการ &lt;/div&gt;&lt;div&gt;keytool -list -v -keystore CertName.jks  =&amp;gt;  จะมี Entry type: PrivateKeyEntry และ Entry type: trustedCertEntry&lt;/div&gt;&lt;div&gt;keytool -list -v -keystore truststore.jks  =&amp;gt;  จะมี Entry type: trustedCertEntry อย่างเดียว &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Reference links:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;==== CA ======&lt;/b&gt;&lt;/div&gt;&lt;div&gt;http://fusesource.com/docs/esb/4.3/amq_security/i305191.html&lt;/div&gt;&lt;div&gt;http://fusesource.com/docs/esb/4.3/amq_security/i382664.html&lt;/div&gt;&lt;div&gt;http://www.linuxquestions.org/questions/linux-networking-3/trouble-generating-ssl-certificates-116973/&lt;/div&gt;&lt;div&gt;http://www.g-loaded.eu/2005/11/10/be-your-own-ca/&lt;/div&gt;&lt;div&gt;http://www.tldp.org/HOWTO/SSL-Certificates-HOWTO/index.html&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;b&gt;Keytool: &lt;/b&gt;http://www.techbrainwave.com/?p=953&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Dynamic keystore:&lt;/b&gt; http://jcalcote.wordpress.com/2010/06/22/managing-a-dynamic-java-trust-store/&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-7659537488799967427?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/7659537488799967427/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=7659537488799967427' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7659537488799967427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7659537488799967427'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/12/ca-keystoretruststore.html' title='CA Keystore/Truststore'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-5355686793844114185</id><published>2011-11-30T21:06:00.007+07:00</published><updated>2011-11-30T21:37:23.918+07:00</updated><title type='text'>Java TLS/SSL #2</title><content type='html'>&lt;b&gt;ตัวอย่าง code JSSE&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://docs.oracle.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#CodeExamples"&gt;http://docs.oracle.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#CodeExamples&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;ตัวอย่างในการ Run&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;Server: &lt;/b&gt;&lt;/div&gt;&lt;div&gt;D:\java\TLS&amp;gt;java ClassFileServer 80 . TLS true&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Client: &lt;/b&gt;&lt;/div&gt;&lt;div&gt;D:\java\TLS&amp;gt;java SSLSocketClientWithClientAuth 147.127.xxx.90 80 /index.html&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Modify to support Client authentication:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;ClassFileServer:&lt;/b&gt; &lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;  &lt;/span&gt;&lt;span class="Apple-style-span"&gt;ks.load(new FileInputStream("&lt;span class="Apple-style-span"&gt;keystore-147.127.&lt;span class="Apple-style-span"&gt;xxx.90&lt;/span&gt;&lt;/span&gt;"), passphrase);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;kmf.init(ks, passphrase);&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;KeyStore ksTrust = KeyStore.getInstance("JKS");&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;  &lt;/span&gt;ksTrust.load(new FileInputStream("&lt;span class="Apple-style-span"&gt;truststore-147.127.&lt;span class="Apple-style-span"&gt;xxx.91&lt;/span&gt;"), null&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;  &lt;/span&gt;tmf.init(ksTrust);&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;  &lt;/span&gt;ctx.init(kmf.getKeyManagers(), &lt;span class="Apple-style-span"&gt;tmf.getTrustManagers()&lt;/span&gt;, null);&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;div&gt;===========================&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;SSLSocketClientWithClientAuth:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;  &lt;/span&gt;ks.load(new FileInputStream("&lt;span class="Apple-style-span"&gt;keystore-147.127.&lt;span class="Apple-style-span"&gt;xxx.91&lt;/span&gt;"), passphrase&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;  &lt;/span&gt;kmf.init(ks, passphrase);&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;i&gt; &lt;/i&gt;&lt;span class="Apple-style-span"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;KeyStore ksTrust = KeyStore.getInstance("JKS");&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;  &lt;/span&gt;ksTrust.load(new FileInputStream(&lt;span class="Apple-style-span"&gt;"truststore-147.127.&lt;span class="Apple-style-span"&gt;xxx.90&lt;/span&gt;"), &lt;span class="Apple-style-span"&gt;null&lt;/span&gt;&lt;/span&gt;);&lt;/span&gt;&lt;span class="Apple-style-span" style="white-space: pre; "&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;  &lt;/span&gt;TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;  &lt;/span&gt;tmf.init(ksTrust);&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;  &lt;/span&gt;ctx.init(kmf.getKeyManagers(), &lt;span class="Apple-style-span"&gt;tmf.getTrustManagers()&lt;/span&gt;, null);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;===========================&lt;/div&gt;&lt;div&gt;&lt;i&gt;Just swap truststore and keystore for each other.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;Trust store เหมือน public key แต่ทำไมจึงมี password?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Ans: &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;em style="font-family: Georgia, 'Times New Roman', Times, serif; line-height: 22px; background-color: rgb(242, 226, 193); font-size: medium; "&gt;NOTE: Trust stores often have passwords but for validation of credentials the password is not needed because public key certificates are publicly accessible in any key or trust store. If you supply a password, the &lt;code&gt;KeyStore.load&lt;/code&gt; method will use it when loading the store but only to validate the integrity of non-public information during the load – never during actual use of public key certificates in the store. Thus, you may always pass &lt;code&gt;null&lt;/code&gt; in the second argument to &lt;code&gt;KeyStore.load&lt;/code&gt;. If you do so, only public information will be loaded from the store.&lt;/em&gt;&lt;/div&gt;&lt;div&gt;&lt;em style="font-family: Georgia, 'Times New Roman', Times, serif; line-height: 22px; background-color: rgb(242, 226, 193); font-size: medium; "&gt;&lt;br /&gt;&lt;/em&gt;&lt;/div&gt;&lt;div&gt;&lt;em style="font-family: Georgia, 'Times New Roman', Times, serif; line-height: 22px; background-color: rgb(242, 226, 193); font-size: medium; "&gt;Ref: &lt;/em&gt;&lt;a href="http://jcalcote.wordpress.com/2010/06/22/managing-a-dynamic-java-trust-store/"&gt;http://jcalcote.wordpress.com/2010/06/22/managing-a-dynamic-java-trust-store/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-5355686793844114185?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/5355686793844114185/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=5355686793844114185' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/5355686793844114185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/5355686793844114185'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/11/java-tlsssl-2.html' title='Java TLS/SSL #2'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-8398709465508459028</id><published>2011-11-24T19:46:00.004+07:00</published><updated>2011-11-24T19:57:31.401+07:00</updated><title type='text'>P2PNS vs RELOAD</title><content type='html'>&lt;b&gt;Interested P2PSIP security solutions&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- &lt;b&gt;P2PNS:&lt;/b&gt;  เป็น p2p-sip overlay ที่ใช้ การ hash(public-key) ในการ create ID เพื่อป้องการพวก Sybil attack  สามารถ config DHT algorithm ใช้งานผ่าน OpenSER ที่ติดต่อกับ overlay network ที่ได้จาก OverSim (ที่ Run ผ่าน Omnet++ อีกที) &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;default DHT algorithm คือ Kademlia&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  P2PNS ออกแบบมาเพื่อให้ peer เก็บค่าของ SIP AoR ที่ Peer เอง และ retrieve ผ่าน DHT algorithm  แทนที่จะต้องไป Query ผ่าน Name Server (เลยตั้งชื่อว่า P2PNS) แต่ไม่ได้บอกรายละเอียดชัดเจน ของ security เกี่ยวกับ การรับส่งข้อมูล&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.p2pns.org/"&gt;http://www.p2pns.org/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- &lt;b&gt;RELOAD:&lt;/b&gt; คล้าย ๆ กับ P2PNS แต่ กำหนดเงื่อนไข รายละเอียดการส่งข้อมูลเยอะกว่า มี security layer บังคับใช้ TLS/SSL รวมกับ PKI, มี Certificate server ไว้ตรวจสอบ กำหนดทุกการส่งต้องผ่าน TLS/SSL&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;default DHT algorithm คือ chord&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://tools.ietf.org/html/draft-ietf-p2psip-base-19"&gt;http://tools.ietf.org/html/draft-ietf-p2psip-base-19&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://tools.ietf.org/html/draft-ietf-p2psip-sip-06"&gt;http://tools.ietf.org/html/draft-ietf-p2psip-sip-06&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-8398709465508459028?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/8398709465508459028/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=8398709465508459028' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8398709465508459028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8398709465508459028'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/11/p2pns-vs-reload.html' title='P2PNS vs RELOAD'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-2944586849002495951</id><published>2011-10-21T16:07:00.005+07:00</published><updated>2011-10-21T16:32:21.048+07:00</updated><title type='text'>SSLContext</title><content type='html'>วิธีการกำหนดให้ใช้ Java SSL/TLS ก่อนจะสร้าง SSLSocket ขึ้นมามีหลายวิธี&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1.  กำหนดผ่าน SystemProperty โดย ทาง commandline &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;   -Djavax.net.ssl.keyStore=keystoreSrv&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;หรือ set ใน program&lt;/div&gt;&lt;div&gt;     &lt;/div&gt;&lt;div&gt;        System.setProperty("javax.net.ssl.keyStore", "keystoreSrv");&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2.   กำหนดใน JAVA_HOME/lib/security/jssecacerts  หรือ JAVA_HOME/lib/security/cacerts  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;สร้าง SSLSocket ได้ดังนี้&lt;/div&gt;&lt;div&gt;SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;หากโชคดี connect ได้พอดีกับ ตอนที่ GetDefault ของ SSLContext ที่อ่านข้อมูลจาก SystemProperty ได้ทัน ก็ Run ได้ผ่านไม่มีปัญหา ซึ่งกรณีที่ทำ 1 connection จะไม่เจอปัญหานี้ (เหมือนกับตัวอย่าง code ที่เคยเขียนไว้) &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;แต่วิธีที่กล่าวมานั้น ไม่สามารถใช้ได้ในกรณีที่ทำ multiple TLS/SSL connections รวมกับ การ create Multi-Thread ไว้รอรับ connections เพราะเวลาสั่ง getDefault() ของ SSLContext เพื่อสร้าง SSLSocket หรือ SSLServerSocket แล้ว  มักจะเจอ error เช่น &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;หรืออาจจะเป็น error อื่น ๆ เช่น&lt;i&gt; certificate error&lt;/i&gt;, หา &lt;i&gt;certificate&lt;/i&gt; ไม่เจอ ฯลฯ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ทั้ง ๆ ที่เราก็ set ค่า keyStore กับ trustStore ผ่าน SystemProperty ไปแล้ว&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;วิธีแก้ไขคือ&lt;/b&gt; &lt;/div&gt;&lt;div&gt;ให้สร้าง SSLContext ขึ้นมาเอง ดังนี้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;   public SSLContext createSSLContext(int type) {&lt;/div&gt;&lt;div&gt;        //------------&lt;/div&gt;&lt;div&gt;        char[] password;&lt;/div&gt;&lt;div&gt;        SSLContext ctx = null;&lt;/div&gt;&lt;div&gt;        InputStream in = null;&lt;/div&gt;&lt;div&gt;        KeyStore ks = null;&lt;/div&gt;&lt;div&gt;        KeyManagerFactory kmf = null;&lt;/div&gt;&lt;div&gt;        TrustManagerFactory tmf = null;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        try {&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;            kmf = KeyManagerFactory.getInstance("SunX509", "SunJSSE");&lt;/div&gt;&lt;div&gt;            tmf = TrustManagerFactory.getInstance("PKIX", "SunJSSE");&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;            if (type == KEYSTORE) {  // for authen incoming connection&lt;/div&gt;&lt;div&gt;                ks = KeyStore.getInstance(KeyStore.getDefaultType());&lt;/div&gt;&lt;div&gt;                password = "123456".toCharArray();&lt;/div&gt;&lt;div&gt;                in = (new FileInputStream("keystoreSrv"));&lt;/div&gt;&lt;div&gt;                ks.load(in, password);&lt;/div&gt;&lt;div&gt;                kmf.init(ks, password);&lt;/div&gt;&lt;div&gt;            } else {                                 // for connect another to authen&lt;/div&gt;&lt;div&gt;                ks = KeyStore.getInstance(KeyStore.getDefaultType());&lt;/div&gt;&lt;div&gt;                //password = "123456".toCharArray();&lt;/div&gt;&lt;div&gt;                in = (new FileInputStream("truststoreCli"));&lt;/div&gt;&lt;div&gt;                ks.load(in, null);&lt;/div&gt;&lt;div&gt;                kmf.init(ks, null);&lt;/div&gt;&lt;div&gt;            }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;            in.close();&lt;/div&gt;&lt;div&gt;            tmf.init(ks);&lt;/div&gt;&lt;div&gt;            ctx = SSLContext.getInstance("TLS");&lt;/div&gt;&lt;div&gt;            ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);&lt;/div&gt;&lt;div&gt;        } catch (Exception e) {&lt;/div&gt;&lt;div&gt;            e.printStackTrace();&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;        return ctx;&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;จากนั้นเราก็นำ ctx นี่แหละไปสร้าง SSLSocket หรือ SSLServerSocket ดังนี้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;SSLServerSocketFactory sslserversocketfactory = ctx.getServerSocketFactory();&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;SSLSocketFactory sslsocketfactory = ctx.getSocketFactory();&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;เท่านี้ก็จะไม่เจอ Error ดังกล่าวแล้วครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-2944586849002495951?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/2944586849002495951/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=2944586849002495951' title='1 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/2944586849002495951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/2944586849002495951'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/10/sslcontext.html' title='SSLContext'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-7973396683840283634</id><published>2011-10-18T21:14:00.001+07:00</published><updated>2011-10-18T21:14:56.729+07:00</updated><title type='text'>Digital Home Networking Book</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 14px; background-color: rgb(255, 255, 255); "&gt;Some parts of my researches here are appeared in the book now.  :-)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); "&gt;&lt;a href="http://www.iste.co.uk/index.php?f=x&amp;amp;ACTION=View&amp;amp;id=442" target="_blank" style="color: rgb(51, 102, 51); "&gt;http://www.iste.co.uk/index.&lt;u&gt;&lt;/u&gt;ph&lt;wbr&gt;p?f=x&amp;amp;ACTION=View&amp;amp;id=442&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-7973396683840283634?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/7973396683840283634/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=7973396683840283634' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7973396683840283634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7973396683840283634'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/10/digital-home-networking-book.html' title='Digital Home Networking Book'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-1357096261225015281</id><published>2011-09-28T20:12:00.005+07:00</published><updated>2011-09-28T20:26:02.289+07:00</updated><title type='text'>HTTPS Java</title><content type='html'>&lt;div&gt;&lt;b&gt;HTTPS server on Windows&lt;/b&gt;&lt;/div&gt;1. download "&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-size: medium; "&gt;Win32 Binary including OpenSSL 0.9.8r"&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-size: medium; "&gt;2. create certificate =&amp;gt; &lt;/span&gt;&lt;a href="http://www.neilstuff.com/apache/apache2-ssl-windows.htm"&gt;http://www.neilstuff.com/apache/apache2-ssl-windows.htm&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;     (file.key = private key, file.cert = self signed certificate + public key)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;3. re-config https, restart apache and verify&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;HTTPS client by Java&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;1. Since java truststore does not use the same format, then we have to convert self-signed certificate from server using this command&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;    c:\&amp;gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px; background-color: rgb(238, 238, 238); "&gt;keytool -import -file file.cert -storepass $PASS -keystore server.keystore&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;2. Error:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;  Exception in thread "main" javax.net.ssl.SSLHandshakeException:        java.security.cert.CertificateException: No subject alternative names present&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;3. Add anonymous class :&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;    con.setHostnameVerifier(new HostnameVerifier() {&lt;/div&gt;&lt;div&gt;            @Override&lt;/div&gt;&lt;div&gt;            public boolean verify(String hostname, SSLSession session) {&lt;/div&gt;&lt;div&gt;                return true;&lt;/div&gt;&lt;div&gt;            }&lt;/div&gt;&lt;div&gt;        });&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;----- java code for https client -----&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;pre&gt;import java.net.*;&lt;br /&gt;import java.io.*;&lt;br /&gt;import javax.net.ssl.*;&lt;br /&gt;&lt;br /&gt;public class HttpsClient {&lt;br /&gt;&lt;br /&gt; public static void main(String[] args) throws Exception {&lt;br /&gt;     System.setProperty("javax.net.ssl.trustStore", "server.keystore");&lt;br /&gt;     String httpsURL = "https://147.127.xxx.xx/serverCertificate";&lt;br /&gt;     URL myurl = new URL(httpsURL);&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;     HttpsURLConnection con = (HttpsURLConnection) myurl.openConnection();    &lt;br /&gt;     con.setHostnameVerifier(new HostnameVerifier() {&lt;br /&gt;         @Override&lt;br /&gt;         public boolean verify(String hostname, SSLSession session) {&lt;br /&gt;             return true;&lt;br /&gt;         }&lt;br /&gt;     });    &lt;br /&gt;     con.connect();&lt;br /&gt;     InputStream ins = con.getInputStream();&lt;br /&gt;     InputStreamReader isr = new InputStreamReader(ins);&lt;br /&gt;     BufferedReader in = new BufferedReader(isr);&lt;br /&gt;     String inputLine;&lt;br /&gt;&lt;br /&gt;     while ((inputLine = in.readLine()) != null) {&lt;br /&gt;         System.out.println(inputLine);&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     in.close();&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;b&gt;Note:&lt;/b&gt; Just use for testing, it is not suitable for real deployment.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-1357096261225015281?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/1357096261225015281/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=1357096261225015281' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1357096261225015281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1357096261225015281'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/09/https-java.html' title='HTTPS Java'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-8022864325145938321</id><published>2011-09-27T15:32:00.002+07:00</published><updated>2011-09-27T15:35:03.616+07:00</updated><title type='text'>Event Java</title><content type='html'>&lt;span class="Apple-style-span" style="background-color: rgb(255, 255, 255); "&gt;&lt;br /&gt;&lt;pre&gt;My Simple example with 4 classes for understanding how event and eventListener work together.&lt;br /&gt;&lt;br /&gt;------------------------------&lt;br /&gt;package myevents;&lt;br /&gt;import java.util.EventObject;&lt;br /&gt;&lt;br /&gt;public class MyEvent extends EventObject {&lt;br /&gt;&lt;br /&gt;private static final long serialVersionUID = 5736098458773344230L;&lt;br /&gt;private Object data;&lt;br /&gt;&lt;br /&gt;public MyEvent(Object source, Object _data)    {&lt;br /&gt; super(source);&lt;br /&gt; data = _data;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public Object getData()    {&lt;br /&gt; return data;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;-------------------------------&lt;br /&gt;package myevents;&lt;br /&gt;import java.util.EventListener;&lt;br /&gt;&lt;br /&gt;public interface MyEventListener extends EventListener    {&lt;br /&gt;public void myEventHappend(MyEvent e);&lt;br /&gt;}&lt;br /&gt;------------------------------&lt;br /&gt;package myevents;&lt;br /&gt;public class PracticalInterface implements MyEventListener    {&lt;br /&gt;&lt;br /&gt;@Override&lt;br /&gt;public void myEventHappend(MyEvent e) {&lt;br /&gt;  System.out.println((String) e.getData());&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;------------------------------&lt;br /&gt;package myevents;&lt;br /&gt;&lt;br /&gt;import java.awt.FlowLayout;&lt;br /&gt;import java.awt.event.ActionEvent;&lt;br /&gt;import java.awt.event.ActionListener;&lt;br /&gt;import java.util.Vector;&lt;br /&gt;import javax.swing.JButton;&lt;br /&gt;import javax.swing.JFrame;&lt;br /&gt;import javax.swing.JTextArea;&lt;br /&gt;&lt;br /&gt;public class AppProgram extends JFrame {&lt;br /&gt;&lt;br /&gt;private Vector listeners = new Vector();&lt;br /&gt;private JTextArea _tar  = new JTextArea(22,40);&lt;br /&gt;private JButton _bt1    = new JButton("Yeah");&lt;br /&gt;private JButton _bt2    = new JButton("Yoo");&lt;br /&gt;&lt;br /&gt;public AppProgram()    {&lt;br /&gt;super("Application");&lt;br /&gt;setLayout(new FlowLayout());&lt;br /&gt;_bt1.addActionListener(new ActionListener() {&lt;br /&gt;public void actionPerformed(ActionEvent arg0) {&lt;br /&gt;shootEvent("Yeah !!");&lt;br /&gt;}&lt;br /&gt;});&lt;br /&gt;_bt2.addActionListener(new ActionListener() {&lt;br /&gt;public void actionPerformed(ActionEvent arg0) {&lt;br /&gt;shootEvent("Yoo !?");&lt;br /&gt;}&lt;br /&gt;});&lt;br /&gt;this.add(_tar);&lt;br /&gt;this.add(_bt1);&lt;br /&gt;this.add(_bt2);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void addListener(MyEventListener l)    {&lt;br /&gt;listeners.add(l);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void removeListener(MyEventListener l)    {&lt;br /&gt;listeners.remove(l);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void shootEvent(String text)    {&lt;br /&gt;MyEvent me = new MyEvent(this, text);&lt;br /&gt;if (listeners.size() &amp;gt; 0)    {&lt;br /&gt;((MyEventListener)listeners.firstElement()).myEventHappend(me);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static void main(String[] args) {&lt;br /&gt;AppProgram app = new AppProgram();&lt;br /&gt;PracticalInterface lis = new PracticalInterface();&lt;br /&gt;app.addListener(lis);&lt;br /&gt;app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;app.setSize(400,600);&lt;br /&gt;app.setVisible(true);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: rgb(255, 255, 255); "&gt;&lt;pre&gt;จาก &lt;/pre&gt;&lt;/span&gt;&lt;a href="http://windygallery.wordpress.com/2010/02/18/events-and-eventlistener/"&gt;http://windygallery.wordpress.com/2010/02/18/events-and-eventlistener/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-8022864325145938321?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/8022864325145938321/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=8022864325145938321' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8022864325145938321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8022864325145938321'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/09/event-java.html' title='Event Java'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-5794209709202039595</id><published>2011-09-14T19:37:00.002+07:00</published><updated>2011-09-14T19:45:09.107+07:00</updated><title type='text'>Keystore for TLS/SSL</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 12px; line-height: 13px; background-color: rgb(255, 255, 255); "&gt;&lt;b&gt;create keystore (public/private key):&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 12px; line-height: 13px; background-color: rgb(255, 255, 255); "&gt;&lt;code class="plain" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important; "&gt;keytool -genkeypair -alias certificatekey -keyalg RSA -validity &lt;/code&gt;&lt;code class="value" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 153, 0) !important; "&gt;7&lt;/code&gt; &lt;code class="plain" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important; "&gt;-keystore keystore.jks&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 12px; line-height: 13px; background-color: rgb(255, 255, 255); "&gt;&lt;code class="plain" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important; "&gt;&lt;br /&gt;&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 12px; line-height: 13px; background-color: rgb(255, 255, 255); "&gt;&lt;b&gt;verify keystore:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 12px; line-height: 13px; background-color: rgb(255, 255, 255); "&gt;keytool -list -v -keystore keystore.jks&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 12px; line-height: 13px; background-color: rgb(255, 255, 255); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 12px; line-height: 13px; background-color: rgb(255, 255, 255); "&gt;&lt;b&gt;create self signed certificate:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 12px; line-height: 13px; background-color: rgb(255, 255, 255); "&gt;keytool -export -alias certificatekey -keystore keystore.jks -rfc -file selfsignedcert.cer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 12px; line-height: 13px; background-color: rgb(255, 255, 255); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 12px; line-height: 13px; background-color: rgb(255, 255, 255); "&gt;&lt;b&gt;import certificate to trust store (public key):&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 13px;"&gt;keytool -import -alias certificatekey -file selfsignedcert.cer -keystore truststore.jks&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 13px;"&gt;&lt;b&gt;verify trust store: &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 12px; line-height: 13px; background-color: rgb(255, 255, 255); "&gt;keytool -list -v -keystore truststore.jks&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 12px; line-height: 13px; background-color: rgb(255, 255, 255); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 13px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 13px;"&gt;&lt;b&gt;ตัวอย่าง code TLS/SSL Java&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 13px;"&gt;&lt;a href="http://stilius.net/java/java_ssl.php"&gt;http://stilius.net/java/java_ssl.php&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; background-color: rgb(204, 204, 255); "&gt;java -Djavax.net.ssl.keyStore=mySrvKeystore -Djavax.net.ssl.keyStorePassword=123456 EchoServer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;เราสามารถใช้ option -Djavax.net.ssl.keyStore=... ใน netbeans ได้ โดยกำหนดที่ Run parameter และ ป้อนค่า options นี้ ลงไปใน VM options (ไม่ใช่ใน arguments อันนี้ สำหรับ args[] ของฟังก์ชัน main) จากนั้น ให้เก็บ file keyStore ใน project folder (parent ของ src)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; background-color: rgb(204, 204, 255); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: 14px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 12px; line-height: 13px; background-color: rgb(255, 255, 255); "&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102); "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-5794209709202039595?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/5794209709202039595/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=5794209709202039595' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/5794209709202039595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/5794209709202039595'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/09/keystore-for-tlsssl.html' title='Keystore for TLS/SSL'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-4225036836576791436</id><published>2011-07-26T20:16:00.001+07:00</published><updated>2011-07-26T20:18:30.165+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><category scheme='http://www.blogger.com/atom/ns#' term='netbean 6.9'/><title type='text'>UML on NB 6.9</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 13px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; color: rgb(78, 78, 78); "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 19px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; text-decoration: underline; "&gt;Download:&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; "&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 19px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; text-decoration: underline; "&gt;&lt;a href="http://naink.org/wp-content/plugins/download-monitor/download.php?id=6"&gt;UML plugin for NB6.9&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(78, 78, 78); font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 19px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; text-decoration: underline; "&gt;Installation Instructions:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 13px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; color: rgb(78, 78, 78); "&gt;&lt;ol style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 19px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "&gt;Extract the contents of the archive into your Netbeans installation directory.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "&gt;In your Netbeans directory you should now have a folder called UML.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "&gt;Restart or open Netbeans.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "&gt;To verify its working, try to create a new project. In the list of project types, there should be the option to create a UML project. If you have that option, then it is all working!&lt;/li&gt;&lt;/ol&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 19px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; text-decoration: underline; "&gt;Usage:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ol style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 19px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "&gt;Open an existing Netbeans project.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "&gt;In the projects pane, right click on the project your working on and click Reverse Engineer.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "&gt;You will be presented with a window on what to reverse engineer. Choose only the source files and tell it to create a new UML project for you.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "&gt;It will tick away for a little while, then you should now have a new UML project in the projects pane on the left.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "&gt;The UML project should now be full of all the components your using.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "&gt;Expand your UML project, then expand the Model.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "&gt;You should have folders for each package thats in the Netbeans project you generated from. Example, I had one package called assign2, so i had one folder called assign2 in the UML project. Plus several other files that arent important.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "&gt;Right click this folder and choose Create Diagram From Selected Elements.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "&gt;Choose to create a Class Diagram, and push Finish.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "&gt;You might be prompted with a message saying: The selected element has one or more scoped elements. Do you want to include the scope elements on the diagram in addition to the selected element?&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "&gt;Click Yes.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "&gt;You should now have a completed UML class diagram.&lt;/li&gt;&lt;/ol&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 19px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; text-decoration: underline; "&gt;Notes:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 19px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "&gt;The modeler does a good job of presenting the data, however it tends to push it to the right side of the window. Which wastes a lot of printing room. The only way i found to fix this, was to move every element manually to the middle. It seems the middle is the best place for printing.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "&gt;I also couldn’t find a way to save the UML diagram as an image or a pdf. So I used Cute PDF Writer to do the job!&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Ref:&lt;/b&gt;  &lt;a href="http://naink.org/?p=108"&gt;http://naink.org/?p=108&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-4225036836576791436?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/4225036836576791436/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=4225036836576791436' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4225036836576791436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4225036836576791436'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/07/uml-on-nb-69.html' title='UML on NB 6.9'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-1396834936318816639</id><published>2011-07-13T21:36:00.008+07:00</published><updated>2011-07-13T22:07:48.912+07:00</updated><title type='text'>IPSec Windows XP</title><content type='html'>&lt;div&gt;&lt;b&gt;การ Setup IPSec บน Windows XP &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;การทำงานก็คล้าย ๆ กับ &lt;a href="http://wwarodom.blogspot.com/2011/07/ipsec-windows7_13.html"&gt;Windows 7&lt;/a&gt; แค่สลับหมายเลข IP กัน และ ใส่ Security parameter ให้ตรงกัน เป็นอันใช้ได้ ตามรูปครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;เริ่มต้น เปิด Run -&amp;gt;  secpol.msc&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;แล้วทำตามรูปเลยครับ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/-7bUqmlfaGGE/Th2wd2lObrI/AAAAAAAAJZQ/MOsSn98h9nU/s1600/xp-1.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 245px;" src="http://1.bp.blogspot.com/-7bUqmlfaGGE/Th2wd2lObrI/AAAAAAAAJZQ/MOsSn98h9nU/s400/xp-1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628849136197332658" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-Z1Kv-14d0xk/Th2wdZ4IxeI/AAAAAAAAJZI/62WRXjmLr1w/s1600/xp-2.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 311px;" src="http://1.bp.blogspot.com/-Z1Kv-14d0xk/Th2wdZ4IxeI/AAAAAAAAJZI/62WRXjmLr1w/s400/xp-2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628849128492025314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-cKcfotG4qSk/Th2wOZ0K7LI/AAAAAAAAJZA/C0FYoXQB5gk/s1600/xp-3.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 311px;" src="http://3.bp.blogspot.com/-cKcfotG4qSk/Th2wOZ0K7LI/AAAAAAAAJZA/C0FYoXQB5gk/s400/xp-3.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628848870777351346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-UrMRm1np4t0/Th2wOL1PwKI/AAAAAAAAJY4/rUovmD5TeL4/s1600/xp-4.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 314px;" src="http://3.bp.blogspot.com/-UrMRm1np4t0/Th2wOL1PwKI/AAAAAAAAJY4/rUovmD5TeL4/s400/xp-4.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628848867023765666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-dpRmEEYB3Kw/Th2wN1iPuPI/AAAAAAAAJYw/pJ7xvJIdviY/s1600/xp-5.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 353px; height: 400px;" src="http://2.bp.blogspot.com/-dpRmEEYB3Kw/Th2wN1iPuPI/AAAAAAAAJYw/pJ7xvJIdviY/s400/xp-5.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628848861038491890" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-oUfwgJw2i60/Th2wNdOEgXI/AAAAAAAAJYo/76z_rg0n0ZY/s1600/xp-6.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 318px;" src="http://1.bp.blogspot.com/-oUfwgJw2i60/Th2wNdOEgXI/AAAAAAAAJYo/76z_rg0n0ZY/s400/xp-6.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628848854511419762" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-XgJyJxAdFQo/Th2wNQ7dkvI/AAAAAAAAJYg/KC6OrvuWB64/s1600/xp-7.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 316px;" src="http://2.bp.blogspot.com/-XgJyJxAdFQo/Th2wNQ7dkvI/AAAAAAAAJYg/KC6OrvuWB64/s400/xp-7.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628848851212145394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-qJwKWaBbGmc/Th2wGxkTv0I/AAAAAAAAJYY/eBuL0d4IMms/s1600/xp-8.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 315px;" src="http://2.bp.blogspot.com/-qJwKWaBbGmc/Th2wGxkTv0I/AAAAAAAAJYY/eBuL0d4IMms/s400/xp-8.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628848739714318146" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-d330W1oFXx4/Th2wGgZY3HI/AAAAAAAAJYQ/vP61PH3KTj8/s1600/xp-9.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 318px;" src="http://2.bp.blogspot.com/-d330W1oFXx4/Th2wGgZY3HI/AAAAAAAAJYQ/vP61PH3KTj8/s400/xp-9.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628848735105113202" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-RCZJd5m-2pM/Th2wGeKsY2I/AAAAAAAAJYI/whz6j8XamFY/s1600/xp-10.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 316px;" src="http://1.bp.blogspot.com/-RCZJd5m-2pM/Th2wGeKsY2I/AAAAAAAAJYI/whz6j8XamFY/s400/xp-10.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628848734506607458" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-rMB5732qjTs/Th2wGN1FFQI/AAAAAAAAJYA/eTBaVzItL3o/s1600/xp-11.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 323px;" src="http://1.bp.blogspot.com/-rMB5732qjTs/Th2wGN1FFQI/AAAAAAAAJYA/eTBaVzItL3o/s400/xp-11.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628848730120983810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-4mleIVeS-l8/Th2wF8R9vSI/AAAAAAAAJX4/XpDwJA3pJUo/s1600/xp-12.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 313px;" src="http://4.bp.blogspot.com/-4mleIVeS-l8/Th2wF8R9vSI/AAAAAAAAJX4/XpDwJA3pJUo/s400/xp-12.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628848725410299170" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-2P21VhKpKXA/Th2v9Bw1BnI/AAAAAAAAJXw/g_S3VXj6fCA/s1600/xp-13.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 313px;" src="http://1.bp.blogspot.com/-2P21VhKpKXA/Th2v9Bw1BnI/AAAAAAAAJXw/g_S3VXj6fCA/s400/xp-13.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628848572263106162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-4eGQI4LG7dc/Th2v9KY9C5I/AAAAAAAAJXo/QTtg0nvoWoE/s1600/xp-14.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 313px;" src="http://1.bp.blogspot.com/-4eGQI4LG7dc/Th2v9KY9C5I/AAAAAAAAJXo/QTtg0nvoWoE/s400/xp-14.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628848574578887570" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-cOmGw8R46o0/Th2v85JnnQI/AAAAAAAAJXg/suQvuLzeNdg/s1600/xp-15.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 311px;" src="http://2.bp.blogspot.com/-cOmGw8R46o0/Th2v85JnnQI/AAAAAAAAJXg/suQvuLzeNdg/s400/xp-15.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628848569951165698" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-DcwazTP-Ddk/Th2v8gRrqjI/AAAAAAAAJXY/aotfbASkVeE/s1600/xp-16.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 318px;" src="http://1.bp.blogspot.com/-DcwazTP-Ddk/Th2v8gRrqjI/AAAAAAAAJXY/aotfbASkVeE/s400/xp-16.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628848563274099250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-E1Dvx1N8QgA/Th2v8YMLh2I/AAAAAAAAJXQ/8WYMIGPKUlo/s1600/xp-17.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 318px;" src="http://4.bp.blogspot.com/-E1Dvx1N8QgA/Th2v8YMLh2I/AAAAAAAAJXQ/8WYMIGPKUlo/s400/xp-17.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628848561103538018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-ZTBXfaeZdCw/Th2vzz5NIsI/AAAAAAAAJXI/LBQ1Q48e-e0/s1600/xp-18.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 391px;" src="http://4.bp.blogspot.com/-ZTBXfaeZdCw/Th2vzz5NIsI/AAAAAAAAJXI/LBQ1Q48e-e0/s400/xp-18.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628848413921321666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-Cd8m1JglSyA/Th2vzvcBGNI/AAAAAAAAJXA/iIBMK-DE89s/s1600/xp-19.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 318px;" src="http://3.bp.blogspot.com/-Cd8m1JglSyA/Th2vzvcBGNI/AAAAAAAAJXA/iIBMK-DE89s/s400/xp-19.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628848412725156050" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-lLm4Rr5ctuo/Th2vzYLuZ8I/AAAAAAAAJW4/_FVDa5EWEZY/s1600/xp-20.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 221px;" src="http://3.bp.blogspot.com/-lLm4Rr5ctuo/Th2vzYLuZ8I/AAAAAAAAJW4/_FVDa5EWEZY/s400/xp-20.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628848406482806722" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-C4XiEIPlCPs/Th2vy67T6AI/AAAAAAAAJWw/36qwItpi_9Y/s1600/xp-21.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 357px; height: 400px;" src="http://2.bp.blogspot.com/-C4XiEIPlCPs/Th2vy67T6AI/AAAAAAAAJWw/36qwItpi_9Y/s400/xp-21.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628848398629332994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-tsKnDVCpR0s/Th2vy1_n7wI/AAAAAAAAJWo/y0LX0j58fBU/s1600/xp-22.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 291px;" src="http://2.bp.blogspot.com/-tsKnDVCpR0s/Th2vy1_n7wI/AAAAAAAAJWo/y0LX0j58fBU/s400/xp-22.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628848397305245442" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-1396834936318816639?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/1396834936318816639/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=1396834936318816639' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1396834936318816639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1396834936318816639'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/07/ipsec-windows-xp.html' title='IPSec Windows XP'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-7bUqmlfaGGE/Th2wd2lObrI/AAAAAAAAJZQ/MOsSn98h9nU/s72-c/xp-1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-4308558381117427806</id><published>2011-07-13T21:28:00.025+07:00</published><updated>2011-07-13T22:07:12.202+07:00</updated><title type='text'>IPSec Windows7</title><content type='html'>&lt;div&gt;&lt;b&gt;Setup IPSec on Windows 7&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;วิธีการใช้งาน IPSec ระหว่าง Windows 7 และ &lt;a href="http://wwarodom.blogspot.com/2011/07/ipsec-windows-xp.html"&gt;Windows XP&lt;/a&gt; แบบ ง่าย ๆ&lt;/div&gt;&lt;div&gt;โดย กำหนด ให้ IP 147.127.240.90 (Windows7) และ 147.127.240.91 (Windows XP) โดยใช้ preshared-key ในการเข้ารหัส ทั้งส่วนของ AH และ ESP&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;เข้าไปที่ Local security policy โดย  -&amp;gt; Run (Windows+R) -&amp;gt;  secpol.msc&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;เริ่มสร้าง security policy ก่อน&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/-c3eHgIDyFnA/Th2tLJkIX9I/AAAAAAAAJWc/S9nZthkC-u4/s1600/w7-1.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 262px;" src="http://4.bp.blogspot.com/-c3eHgIDyFnA/Th2tLJkIX9I/AAAAAAAAJWc/S9nZthkC-u4/s400/w7-1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628845516340617170" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-NXSi4boo34I/Th2tKjdwSsI/AAAAAAAAJWU/LEeAJVDgIn8/s1600/w7-2.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 325px;" src="http://2.bp.blogspot.com/-NXSi4boo34I/Th2tKjdwSsI/AAAAAAAAJWU/LEeAJVDgIn8/s400/w7-2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628845506113325762" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-PCL7Fkv2O_o/Th2tKVCSJMI/AAAAAAAAJWM/kM_JFF7APYg/s1600/w7-3.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 324px;" src="http://3.bp.blogspot.com/-PCL7Fkv2O_o/Th2tKVCSJMI/AAAAAAAAJWM/kM_JFF7APYg/s400/w7-3.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628845502240007362" /&gt;&lt;/a&gt;ไม่ต้อง activate default response&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-mKfddV3HARE/Th2tEHloR7I/AAAAAAAAJWE/ZrbohKdnR54/s1600/w7-4.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 321px;" src="http://4.bp.blogspot.com/-mKfddV3HARE/Th2tEHloR7I/AAAAAAAAJWE/ZrbohKdnR54/s400/w7-4.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628845395550947250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-z7VvsA435S8/Th2tDyGwiiI/AAAAAAAAJV8/oikPQSYw0u0/s1600/w7-5.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 360px; height: 400px;" src="http://3.bp.blogspot.com/-z7VvsA435S8/Th2tDyGwiiI/AAAAAAAAJV8/oikPQSYw0u0/s400/w7-5.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628845389784320546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-DBNAUPVTFsQ/Th2tDVhOyzI/AAAAAAAAJV0/U9048_cawkU/s1600/w7-6.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 323px;" src="http://3.bp.blogspot.com/-DBNAUPVTFsQ/Th2tDVhOyzI/AAAAAAAAJV0/U9048_cawkU/s400/w7-6.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628845382110726962" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-XGiAvdw33y4/Th2tDKpefyI/AAAAAAAAJVs/SnjTiL8uwlg/s1600/w7-7.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 324px;" src="http://2.bp.blogspot.com/-XGiAvdw33y4/Th2tDKpefyI/AAAAAAAAJVs/SnjTiL8uwlg/s400/w7-7.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628845379192520482" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;IP Tunnel ใช้ในกรณีที่ ติดต่อระหว่าง IP Private กับ IP Public&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-AP7NnA6mv4w/Th2tC2m_PnI/AAAAAAAAJVk/HXrIXhtsHdw/s1600/w7-8.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 321px;" src="http://2.bp.blogspot.com/-AP7NnA6mv4w/Th2tC2m_PnI/AAAAAAAAJVk/HXrIXhtsHdw/s400/w7-8.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628845373813374578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-d8-2iCC2UlQ/Th2s4tacT6I/AAAAAAAAJVc/V53jrwAHdms/s1600/w7-9.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 324px;" src="http://2.bp.blogspot.com/-d8-2iCC2UlQ/Th2s4tacT6I/AAAAAAAAJVc/V53jrwAHdms/s400/w7-9.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628845199546142626" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-6GH3Igk5zbA/Th2s2KwDZMI/AAAAAAAAJVU/a4KKMwA8rfM/s1600/w7-10.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 321px;" src="http://3.bp.blogspot.com/-6GH3Igk5zbA/Th2s2KwDZMI/AAAAAAAAJVU/a4KKMwA8rfM/s400/w7-10.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628845155881804994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-VjzpT92yw8c/Th2syaP_NXI/AAAAAAAAJVM/p-5VG7sgOI8/s1600/w7-11.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 314px;" src="http://4.bp.blogspot.com/-VjzpT92yw8c/Th2syaP_NXI/AAAAAAAAJVM/p-5VG7sgOI8/s400/w7-11.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628845091322803570" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-mQH13yGEIGw/Th2svoXnYEI/AAAAAAAAJVE/kwcG3wgooas/s1600/w7-12.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 315px;" src="http://1.bp.blogspot.com/-mQH13yGEIGw/Th2svoXnYEI/AAAAAAAAJVE/kwcG3wgooas/s400/w7-12.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628845043573284930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-TJ9I-sjcte0/Th2ssSkgnXI/AAAAAAAAJU8/wJ3OpqmhY6I/s1600/w7-13.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 316px;" src="http://1.bp.blogspot.com/-TJ9I-sjcte0/Th2ssSkgnXI/AAAAAAAAJU8/wJ3OpqmhY6I/s400/w7-13.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628844986182180210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-BvidFM6KDPU/Th2spG4XJRI/AAAAAAAAJU0/lc-YesCv8kc/s1600/w7-14.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 316px;" src="http://3.bp.blogspot.com/-BvidFM6KDPU/Th2spG4XJRI/AAAAAAAAJU0/lc-YesCv8kc/s400/w7-14.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628844931504612626" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/---gxiY9xKSA/Th2slvfRRqI/AAAAAAAAJUs/uMRsGhewki8/s1600/w7-15.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 315px;" src="http://3.bp.blogspot.com/---gxiY9xKSA/Th2slvfRRqI/AAAAAAAAJUs/uMRsGhewki8/s400/w7-15.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628844873685747362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-yYRM6axdNtA/Th2siaYpl1I/AAAAAAAAJUk/g5Umade6fUU/s1600/w7-16.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 358px; height: 400px;" src="http://2.bp.blogspot.com/-yYRM6axdNtA/Th2siaYpl1I/AAAAAAAAJUk/g5Umade6fUU/s400/w7-16.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628844816481228626" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;กำหนด Mirrored สำหรับ การส่ง packet กลับมา&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-8MgdmrtjxmA/Th2sdqT98VI/AAAAAAAAJUc/XkKduK7qVoI/s1600/w7-17.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 323px;" src="http://3.bp.blogspot.com/-8MgdmrtjxmA/Th2sdqT98VI/AAAAAAAAJUc/XkKduK7qVoI/s400/w7-17.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628844734857212242" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-N1yDU_5-ApY/Th2sZZzb3mI/AAAAAAAAJUU/FFhT3FHpsWo/s1600/w7-18.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 323px;" src="http://4.bp.blogspot.com/-N1yDU_5-ApY/Th2sZZzb3mI/AAAAAAAAJUU/FFhT3FHpsWo/s400/w7-18.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628844661706317410" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-KuOmOTkcjvE/Th2sRQRbPfI/AAAAAAAAJUM/Sf5EpnWn4IE/s1600/w7-19.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 323px;" src="http://4.bp.blogspot.com/-KuOmOTkcjvE/Th2sRQRbPfI/AAAAAAAAJUM/Sf5EpnWn4IE/s400/w7-19.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628844521708797426" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-SXxvF2kyNi8/Th2sM8tqg3I/AAAAAAAAJUE/rvR1bjn_-_o/s1600/w7-20.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 357px; height: 400px;" src="http://1.bp.blogspot.com/-SXxvF2kyNi8/Th2sM8tqg3I/AAAAAAAAJUE/rvR1bjn_-_o/s400/w7-20.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628844447739052914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-9wNyD5OKYzw/Th2sE3WjPmI/AAAAAAAAJT8/DNCW4nlCCKc/s1600/w7-21.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 359px; height: 400px;" src="http://2.bp.blogspot.com/-9wNyD5OKYzw/Th2sE3WjPmI/AAAAAAAAJT8/DNCW4nlCCKc/s400/w7-21.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628844308860976738" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-u06QDh24z70/Th2r_q9NKzI/AAAAAAAAJT0/QQmAIFzIg3A/s1600/w7-22.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 393px; height: 391px;" src="http://3.bp.blogspot.com/-u06QDh24z70/Th2r_q9NKzI/AAAAAAAAJT0/QQmAIFzIg3A/s400/w7-22.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628844219634101042" /&gt;&lt;/a&gt;ตรงนี้สำคัญต้อง กำหนดให้เหมือนกัน ทั้ง 2 ฝั่ง&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-JyNn_mZZWK8/Th2r8Bwn2MI/AAAAAAAAJTs/CsulcHCXHog/s1600/w7-23.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 323px;" src="http://3.bp.blogspot.com/-JyNn_mZZWK8/Th2r8Bwn2MI/AAAAAAAAJTs/CsulcHCXHog/s400/w7-23.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628844157035862210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; แบบ ง่ายที่สุด กำหนด preshared key &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-fzj6qgQqJNY/Th2r3sgRdiI/AAAAAAAAJTk/v3YGc19EWXI/s1600/w7-24.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 361px; height: 400px;" src="http://3.bp.blogspot.com/-fzj6qgQqJNY/Th2r3sgRdiI/AAAAAAAAJTk/v3YGc19EWXI/s400/w7-24.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628844082610664994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-CI7fY4hPTAE/Th2rxightLI/AAAAAAAAJTc/wBzE5xMf7PU/s1600/w7-25.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 272px;" src="http://3.bp.blogspot.com/-CI7fY4hPTAE/Th2rxightLI/AAAAAAAAJTc/wBzE5xMf7PU/s400/w7-25.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628843976848159922" /&gt;&lt;/a&gt;&lt;div&gt;สั่ง enable IPSec&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/-8ow7aHbsgJ0/Th2rpRDilfI/AAAAAAAAJTU/t1m2_5t3pkI/s1600/w7-26.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 359px;" src="http://3.bp.blogspot.com/-8ow7aHbsgJ0/Th2rpRDilfI/AAAAAAAAJTU/t1m2_5t3pkI/s400/w7-26.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5628843834724226546" /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;เห็น message IPSec วิ่งแล้ว เย้  :-)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-4308558381117427806?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/4308558381117427806/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=4308558381117427806' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4308558381117427806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4308558381117427806'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/07/ipsec-windows7_13.html' title='IPSec Windows7'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-c3eHgIDyFnA/Th2tLJkIX9I/AAAAAAAAJWc/S9nZthkC-u4/s72-c/w7-1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-2591299075145158120</id><published>2011-06-16T19:47:00.010+07:00</published><updated>2011-06-16T22:41:07.790+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pojo mvn restlet xml'/><title type='text'>POJO Cooker</title><content type='html'>&lt;span class="Apple-style-span"&gt;&lt;a href="http://www.pojocooker.net/"&gt;Pojo Cooker&lt;/a&gt; เป็น Data oriented framework ที่ใช้สำหรับสร้าง share data กันหลาย ๆ platform หลาย ๆ ภาษา โดยใช้ concept ของ Object XML mapping ซึ่งมีเป้าหมายหลัก ๆ ดังนี้ &lt;span class="Apple-style-span" style="font-family: Verdana, Helvetica, Arial, sans-serif; "&gt;&lt;ul&gt;&lt;li style="font-family: Verdana, Helvetica, Arial, sans-serif; "&gt;Cross-platform exchanges&lt;/li&gt;&lt;li style="font-family: Verdana, Helvetica, Arial, sans-serif; "&gt;Multi-languages&lt;/li&gt;&lt;li style="font-family: Verdana, Helvetica, Arial, sans-serif; "&gt;Multi-devices&lt;/li&gt;&lt;li style="font-family: Verdana, Helvetica, Arial, sans-serif; "&gt;Persistency layer&lt;/li&gt;&lt;li style="font-family: Verdana, Helvetica, Arial, sans-serif; "&gt;Full text search&lt;/li&gt;&lt;li style="font-family: Verdana, Helvetica, Arial, sans-serif; "&gt;Zero-conf&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;โครงการนี้ มีส่วนประกอบ ส่วนสำคัญ ๆ คือ  Pojo, Fridge โดยที่ Pojo คือตัว โครงสร้าง XML (key/value) แล้วเราสามารถป้อน data เข้าไปเอง และ สามารถเก็บลงใน Fridge (หรือ มองว่าเก็บข้อมูลลง disk ผ่านการ persistence) นั่นเอง&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Phase แรก จะเริ่มใช้งานกับ Java เป็นหลัก จากนั้น ก็จะมีส่วนที่พัฒนาของ Php, Flex, iPhone รวมไปถึง Android ด้วย ซึ่งเราสามารถ generate และ share data ผ่าน &lt;a href="http://www.restlet.org/"&gt;RESTlet &lt;/a&gt;Web framework&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;ส่วนสุดท้ายของโครงงานนี้คือ เราสามารถค้นหา ข้อมูลใน object (Pojo) ที่เราเก็บไว้ใน fridge ได้ ผ่านการทำงานของ &lt;a href="http://www.oracle.com/technetwork/database/berkeleydb/overview/index-093405.html"&gt;Berkeley DB&lt;/a&gt; ซึ่งมีขนาดเล็ก และ ทำงานได้อย่างรวดเร็ว&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;เนื่องจากโครงการนี้ ถูก implement โดยใช้ Maven เราจึงต้องมาเริ่มติดตั้ง Maven กันก่อน ดังนี้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;การติดตั้ง Maven (3 นาที)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;1) ติดตั้ง maven โดย download จาก &lt;a href="http://maven.apache.org/download.html"&gt;http://maven.apache.org/download.html&lt;/a&gt; แล้วก็ unzip ออกมา&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;2) กำหนด PATH ของตัวแปร ให้เรียบร้อย ตามนี้ &lt;a href="http://maven.apache.org/download.html#Installation"&gt;http://maven.apache.org/download.html#Installation&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;3) ทดสอบดู โดยสั่ง mvn --version ถ้าเป็น version ตรงตามที่เรา download มา แสดงว่า OK. เสร็จ&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;อ้างอิง Maven: &lt;a href="http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html"&gt;http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;หลังจากติดตั้ง Maven เรียบร้อยแล้ว ก็มาติดตั้งตัวโครงงาน &lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;การติดตั้ง PojoCooker (1 นาที)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;เพิ่ม config ตาม &lt;a href="http://www.pojocooker.net/install.html"&gt;http://www.pojocooker.net/install.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;ใน  MAVEN_HOME/conf/settings.xml&lt;/div&gt;&lt;div&gt;&lt;pre style="font-family: Verdana, Helvetica, Arial, sans-serif; font-weight: bold; font-size: 13px; "&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 16px; font-weight: normal; white-space: normal; "&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="Apple-style-span" style="white-space: normal; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;การใช้งาน PojoCooker&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; white-space: normal; font-family: Verdana, Helvetica, Arial, sans-serif; "&gt;- mvn pojocooker:version&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Helvetica, Arial, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Helvetica, Arial, sans-serif; white-space: normal; "&gt;- &lt;/span&gt;&lt;span class="Apple-style-span" style="white-space: normal; "&gt;&lt;pre style="display: inline !important; "&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Helvetica, Arial, sans-serif; white-space: normal; "&gt;mvn pojocooker:kitchen&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Helvetica, Arial, sans-serif; white-space: normal; "&gt;- cd kitchen  (จะมี file pom.xml)&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Helvetica, Arial, sans-serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;pre style="display: inline !important; "&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Helvetica, Arial, sans-serif; "&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;- &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="white-space: normal; "&gt;mvn pojocooker:java&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Helvetica, Arial, sans-serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;- &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="white-space: normal; "&gt;&lt;span class="Apple-style-span"&gt;mvn pojocooker:server&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Helvetica, Arial, sans-serif; white-space: normal; "&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;เปิด web browser เข้าไปที่ http://locahost:8080/  เป็นอันเสร็จพิธี&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="font-family: Verdana, Helvetica, Arial, sans-serif; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="white-space: normal; "&gt;(อ้างอิง &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; white-space: normal; "&gt;&lt;a href="http://www.pojocooker.net/start.html"&gt;http://www.pojocooker.net/start.html&lt;/a&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="font-family: Verdana, Helvetica, Arial, sans-serif; "&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="font-family: Verdana, Helvetica, Arial, sans-serif; "&gt;&lt;span class="Apple-style-span" style="white-space: normal; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;การเพิ่ม Own POJO:&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="white-space: normal; "&gt;เข้าไปที่  .\&lt;/span&gt;&lt;span class="Apple-style-span" style="white-space: normal; "&gt;PojoKitchen\src\main\java\org\pojocooker\demo\pojokitchen\pojos&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="font-family: Verdana, Helvetica, Arial, sans-serif; "&gt;&lt;span class="Apple-style-span" style="white-space: normal; "&gt;จะมี file ที่ชื่อว่า GeoPlace.java เป็นตัวอย่างของ Pojo เราสามารถสร้าง Pojo ขึ้นใหม่ได้ โดยเลียนแบบจาก GeoPlace.java  ข้อควรระวังคือ ห้ามใช้ build-in variable type ต้องใช้ Wrapper type เท่านั้น หลังจากที่ เข้าไป define Pojo แล้ว  ให้ทำการ compile ใหม่ โดยสั่ง mvn pojocooker:java , mvn pojocooker:java ตามลำดับ&lt;/span&gt;&lt;/pre&gt;&lt;pre style="font-family: Verdana, Helvetica, Arial, sans-serif; "&gt;&lt;span class="Apple-style-span" style="white-space: normal; "&gt;เข้าไปที่ http://localhost:8080/pojo เราจะ เห็น file POJO ที่เรา add ไว้ กดที่ 1 ใต้ XML Sample ก็จะได้ ตัวอย่าง XML เราสามารถแก้ไขข้อมูล แล้วกด save ลงใน server ได้ จากนั้น เราสามารถ search ข้อมูลที่เรา add ไว้ (ได้ผลลัพธ์เป็น XML) และ สามารถใช้ ID ของ object จะส่ง output เป็น XML มาให้ ตาม ID ของ object ที่เราต้องการหา&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;pre&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;&lt;b&gt;วิธีลบ Own Pojo&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre; font-weight: normal; "&gt;mvn pojocooker:clear  (เพื่อทำการลบ java source files ออก)  &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre; font-weight: normal; "&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;mvn clear  (เพื่อลบ class file ออก)  &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt; แล้วจึงสั่ง recompile ใหม่ ด้วย mvn pojocooker:java &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="font-family: Verdana, Helvetica, Arial, sans-serif; "&gt;&lt;span class="Apple-style-span" style="white-space: normal; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;สรุป&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;คิดว่า framework นี้ ออกแบบมาให้ share XML data ผ่าน &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="white-space: normal; "&gt;RESTlet web framework (XML output)&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-2591299075145158120?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/2591299075145158120/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=2591299075145158120' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/2591299075145158120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/2591299075145158120'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/06/pojo-cooker.html' title='POJO Cooker'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-3645013697542484857</id><published>2011-06-10T23:00:00.005+07:00</published><updated>2011-06-10T23:09:29.591+07:00</updated><title type='text'>SIP Security Solutions</title><content type='html'>&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;HTTP Digest&lt;/b&gt; - Use pre-shared key to create message digest&lt;/li&gt;&lt;li&gt;&lt;b&gt;sips URIs&lt;/b&gt; - Send clear sip messages inside TLS&lt;/li&gt;&lt;li&gt;&lt;b&gt;S/MIME&lt;/b&gt; - Encrypt hole sip message and re-create SIP header for intermediate nodes&lt;/li&gt;&lt;li&gt;&lt;b&gt;AIB &lt;/b&gt;- Similar to S/MIME, but select some header to encrypt&lt;/li&gt;&lt;li&gt;&lt;b&gt;RELOAD&lt;/b&gt; - Application framework for P2P-SIP (DHT), using TLS&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-3645013697542484857?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/3645013697542484857/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=3645013697542484857' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/3645013697542484857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/3645013697542484857'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/06/sip-security-solutions.html' title='SIP Security Solutions'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-3019408176037810279</id><published>2011-05-27T21:51:00.004+07:00</published><updated>2011-05-27T22:01:57.926+07:00</updated><title type='text'>Cheque@France</title><content type='html'>&lt;div&gt;อยู่ฝรั่งเศสมาตั้งนานเพิ่งมีโอกาสได้เอาเช็คไปขึ้นเงิน พบว่า&lt;/div&gt;&lt;div&gt;1) ถ้าไม่มีบัญชีธนาคาร ไม่สามารถเอาเช็คไปขึ้นเงินได้&lt;/div&gt;&lt;div&gt;2) ต้องไปขึ้นเงิน ที่ธนาคารที่เรามีบัญชีอยู่ เอาเช็คไปขึ้นเงินที่ธนาคารเจ้าของเช็ค เค้าไม่รับ แปลกดีมั้ย?&lt;/div&gt;&lt;div&gt;3) ใช้เวลาอย่างน้อย 2 วัน เงินจึงจะเข้าบัญชี&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ปล. เวลาไปขึ้นเงินที่ธนาคาร  มันจะมีแบบฟอร์ม ให้เรากรอก+เราก็กรอก ใส่ซอง แล้วก็หยอดลงในตู้รับเช็ค เจ้าหน้าที่ อธิบายแบบขอไปที เธอยังคงรักษาระดับความห่วยของการบริการของธนาคารฝรั่งเศสได้เป็นอย่างดี!!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-3019408176037810279?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/3019408176037810279/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=3019408176037810279' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/3019408176037810279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/3019408176037810279'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/05/chaquefrance.html' title='Cheque@France'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-3252008545710994150</id><published>2011-05-07T00:35:00.003+07:00</published><updated>2011-05-07T00:56:35.171+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ประกันบ้าน'/><title type='text'>ประกันบ้าน</title><content type='html'>&lt;div&gt;หลังจากตัดสินใจย้ายบ้าน โดยเช่าผ่าน Agence เลยถูกบังคับต้องทำประกันบ้าน (บ้านเก่า เจ้าของบ้านใจดี ไม่ได้บังคับให้ทำประกันบ้าน)  ผมก็เลย สำรวจ หาว่าประกันบ้านอันไหน ราคาถูกที่สุด เพราะคิดว่ายังไงก็คงไม่น่าจะเกิดอุบัติเหตุอยู่แล้ว รายละเอียดการประกัน ก็แตกต่างกันไปบ้าง แต่สิ่งที่ผมต้องการ คือกระดาษไปโชว์ Agence เท่านั้น ไม่ได้สนใจรายละเอียดอื่น ๆ เท่าไรอยู่แล้ว เน้นถูกที่สุด+ใช้งานได้เป็นพอ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;อันแรก แนะนำ โดย อ. นพพน =&amp;gt;  &lt;span class="Apple-style-span" style="color: rgb(41, 48, 59); font-family: Georgia, 'Times New Roman', sans-serif; font-size: 13px; "&gt;http://www.assurances-etudiants.com/  &lt;/span&gt;ราคาถูกมาก ประมาณ 13 ยูโร ถ้าเป็น ห้อง T2 ก็ราว ๆ 24 ยูโร เป็นราคาสำหรับนักเรียน แต่บีและลูกไม่ได้เป็นนักเรียน ผมเลยทำประกันอันนี้ไม่ได้ :-(&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;วันนี้เลย เดินตระเวณ หาประกันบ้าน ไปที่แรกคือ Groupama กว่าจะถามรายละเอียดกรอกเสร็จ ก็กินเวลานานพอสมควร ได้ราคา 108.50 ยูโร/ปี&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ต่อมาไปที่ ธนาคาร CA ได้ราคา 123.16 ยูโร/ปี&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ไปที่ LMDE เจ้าหน้าที่ก็บอกให้ไปที่ MatMut ปรากฎว่าราคาแพงกว่าชาวบ้าน คือ 129.30 ยูโร/ปี โดยเค้าให้เหตุผลว่า MatMut คิดอัตราบุคคลธรรมดา สำหรับ นศ. ที่อายุน้อยกว่า 28 + ยังไม่มีลูก จึงจะได้ราคาถูกกว่านี้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;จากนั้นไป ธนาคาร LCL ตัวแสบ ที่ผมเปิดบัญชีไว้ ปรกติ เวลาจะคุยกับ manager ต้องนัดล่วงหน้าเป็นอาทิตย์ แต่พอบอกว่า จะคุยเรื่องประกันบ้าน คราวนี้ ให้เจอตัวได้เลยแฮะ ต้อนรับอย่างดี ราคาก็ 123.16 ยูโร เท่ากับ CA เป๊ะ ๆ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ก่อนกลับผ่านธนาคาร CIC เลย ลองไปถามราคาดู เจ้าหน้าที่หน้าตาสวยกว่าทุกคนแฮะ ฮา  ๆ ๆ ปรากฎว่าได้ราคาถูกที่สุด คือ 97.98 ยูโร แต่โดน มัดมือชกให้ เซ็นสัญญาเลย ไม่งั้นจะไม่ได้ราคานี้ ผมก็ขี้เกียจมาหลายรอบ ไหน ๆ ก็จะเอาที่นี้แล้ว ก็เลย จัดการทำสัญญาเลย 1 ปี &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;หมดไปอีกครึ่งวัน กับประกันบ้าน อันแสนเหนื่อย &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-3252008545710994150?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/3252008545710994150/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=3252008545710994150' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/3252008545710994150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/3252008545710994150'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/05/blog-post.html' title='ประกันบ้าน'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-4430386371428175474</id><published>2011-04-07T15:26:00.000+07:00</published><updated>2011-04-07T15:27:00.939+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shipping'/><title type='text'>Shipping TLS -&gt; THAI</title><content type='html'>&lt;div&gt;web ส่งของจาก Toulouse กลับไทย&lt;/div&gt;&lt;a href="http://www.pyretransit.fr/"&gt;http://www.pyretransit.fr/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-4430386371428175474?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/4430386371428175474/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=4430386371428175474' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4430386371428175474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4430386371428175474'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/04/shipping-tls-thai.html' title='Shipping TLS -&gt; THAI'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-3454168643479843460</id><published>2011-01-07T21:10:00.004+07:00</published><updated>2011-01-07T21:17:16.669+07:00</updated><title type='text'>Jailbreak iOS</title><content type='html'>&lt;div&gt;&lt;b&gt;List of updated iOS&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: sans-serif; font-size: 13px; line-height: 19px; "&gt;&lt;table class="wikitable sortable" id="sortable_table_id_3" style="font-size: 13px; color: black; background-color: rgb(249, 249, 249); margin-top: 1em; margin-right: 1em; margin-bottom: 1em; margin-left: 0px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-collapse: collapse; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(242, 242, 242); text-align: center; background-position: initial initial; background-repeat: initial initial; "&gt;Software Name&lt;a href="http://en.wikipedia.org/wiki/IOS_jailbreaking#" class="sortheader" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; margin-top: 0px; margin-right: 0.3em; margin-bottom: 0px; margin-left: 0.3em; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="sortarrow"&gt;&lt;img src="http://bits.wikimedia.org/skins-1.5/common/images/sort_none.gif" alt="↓" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; vertical-align: middle; " /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/th&gt;&lt;th style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(242, 242, 242); text-align: center; background-position: initial initial; background-repeat: initial initial; "&gt;Release Date&lt;a href="http://en.wikipedia.org/wiki/IOS_jailbreaking#" class="sortheader" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; margin-top: 0px; margin-right: 0.3em; margin-bottom: 0px; margin-left: 0.3em; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="sortarrow"&gt;&lt;img src="http://bits.wikimedia.org/skins-1.5/common/images/sort_none.gif" alt="↓" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; vertical-align: middle; " /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/th&gt;&lt;th style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(242, 242, 242); text-align: center; background-position: initial initial; background-repeat: initial initial; "&gt;Platform&lt;a href="http://en.wikipedia.org/wiki/IOS_jailbreaking#" class="sortheader" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; margin-top: 0px; margin-right: 0.3em; margin-bottom: 0px; margin-left: 0.3em; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="sortarrow"&gt;&lt;img src="http://bits.wikimedia.org/skins-1.5/common/images/sort_none.gif" alt="↓" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; vertical-align: middle; " /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/th&gt;&lt;th style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(242, 242, 242); text-align: center; background-position: initial initial; background-repeat: initial initial; "&gt;Hardware&lt;a href="http://en.wikipedia.org/wiki/IOS_jailbreaking#" class="sortheader" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; margin-top: 0px; margin-right: 0.3em; margin-bottom: 0px; margin-left: 0.3em; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="sortarrow"&gt;&lt;img src="http://bits.wikimedia.org/skins-1.5/common/images/sort_none.gif" alt="↓" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; vertical-align: middle; " /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/th&gt;&lt;th style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(242, 242, 242); text-align: center; background-position: initial initial; background-repeat: initial initial; "&gt;Firmware&lt;a href="http://en.wikipedia.org/wiki/IOS_jailbreaking#" class="sortheader" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; margin-top: 0px; margin-right: 0.3em; margin-bottom: 0px; margin-left: 0.3em; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="sortarrow"&gt;&lt;img src="http://bits.wikimedia.org/skins-1.5/common/images/sort_none.gif" alt="↓" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; vertical-align: middle; " /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/th&gt;&lt;th style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(242, 242, 242); text-align: center; background-position: initial initial; background-repeat: initial initial; "&gt;Publisher&lt;a href="http://en.wikipedia.org/wiki/IOS_jailbreaking#" class="sortheader" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; margin-top: 0px; margin-right: 0.3em; margin-bottom: 0px; margin-left: 0.3em; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="sortarrow"&gt;&lt;img src="http://bits.wikimedia.org/skins-1.5/common/images/sort_none.gif" alt="↓" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; vertical-align: middle; " /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;Sn0wbreeze 2.1 &lt;sup id="cite_ref-58" class="reference" style="line-height: 1em; font-weight: normal; font-style: normal; "&gt;&lt;a href="http://en.wikipedia.org/wiki/IOS_jailbreaking#cite_note-58" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; white-space: nowrap; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span&gt;[&lt;/span&gt;56&lt;span&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;November 13, 2010&lt;sup id="cite_ref-59" class="reference" style="line-height: 1em; font-weight: normal; font-style: normal; "&gt;&lt;a href="http://en.wikipedia.org/wiki/IOS_jailbreaking#cite_note-59" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; white-space: nowrap; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span&gt;[&lt;/span&gt;57&lt;span&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;a href="http://en.wikipedia.org/wiki/Windows" title="Windows" class="mw-redirect" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;Windows&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;a href="http://en.wikipedia.org/wiki/IPhone_3G" title="IPhone 3G" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPhone 3G&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/IPhone_3GS" title="IPhone 3GS" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPhone 3GS&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/IPhone_4" title="IPhone 4" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPhone 4&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/IPod_Touch" title="IPod Touch" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPod Touch&lt;/a&gt; 2G, 3G &amp;amp; 4G, &lt;a href="http://en.wikipedia.org/wiki/IPad" title="IPad" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPad&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Apple_TV" title="Apple TV" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;Apple TV&lt;/a&gt; 2G&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;3.2.2 &amp;amp; 4.1 (Untethered)&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;ih8sn0w&lt;sup id="cite_ref-60" class="reference" style="line-height: 1em; font-weight: normal; font-style: normal; "&gt;&lt;a href="http://en.wikipedia.org/wiki/IOS_jailbreaking#cite_note-60" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; white-space: nowrap; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span&gt;[&lt;/span&gt;58&lt;span&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;Limera1n RC1b &lt;sup id="cite_ref-61" class="reference" style="line-height: 1em; font-weight: normal; font-style: normal; "&gt;&lt;a href="http://en.wikipedia.org/wiki/IOS_jailbreaking#cite_note-61" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; white-space: nowrap; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span&gt;[&lt;/span&gt;59&lt;span&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;October 9, 2010&lt;sup id="cite_ref-limera1n1_62-0" class="reference" style="line-height: 1em; font-weight: normal; font-style: normal; "&gt;&lt;a href="http://en.wikipedia.org/wiki/IOS_jailbreaking#cite_note-limera1n1-62" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; white-space: nowrap; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span&gt;[&lt;/span&gt;60&lt;span&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;a href="http://en.wikipedia.org/wiki/Windows" title="Windows" class="mw-redirect" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;Windows&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Mac_OS_X" title="Mac OS X" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;Mac OS X&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;a href="http://en.wikipedia.org/wiki/IPhone_3GS" title="IPhone 3GS" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPhone 3GS&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/IPhone_4" title="IPhone 4" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPhone 4&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/IPod_Touch" title="IPod Touch" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPod Touch&lt;/a&gt; 3G &amp;amp; 4G, &lt;a href="http://en.wikipedia.org/wiki/IPad" title="IPad" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPad&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Apple_TV" title="Apple TV" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;Apple TV&lt;/a&gt; 2G&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;3.2.2, 4.0, 4.0.1, 4.0.2, 4.1 (Untethered)&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;a href="http://en.wikipedia.org/wiki/Geohot" title="Geohot" class="mw-redirect" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;Geohot&lt;/a&gt;&lt;sup id="cite_ref-limera1n1_62-1" class="reference" style="line-height: 1em; font-weight: normal; font-style: normal; "&gt;&lt;a href="http://en.wikipedia.org/wiki/IOS_jailbreaking#cite_note-limera1n1-62" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; white-space: nowrap; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span&gt;[&lt;/span&gt;60&lt;span&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;Greenpois0n RC4 &lt;sup id="cite_ref-iphoneblogr1_0-2" class="reference" style="line-height: 1em; font-weight: normal; font-style: normal; "&gt;&lt;a href="http://en.wikipedia.org/wiki/IOS_jailbreaking#cite_note-iphoneblogr1-0" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; white-space: nowrap; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span&gt;[&lt;/span&gt;1&lt;span&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;October 12, 2010&lt;sup id="cite_ref-63" class="reference" style="line-height: 1em; font-weight: normal; font-style: normal; "&gt;&lt;a href="http://en.wikipedia.org/wiki/IOS_jailbreaking#cite_note-63" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; white-space: nowrap; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span&gt;[&lt;/span&gt;61&lt;span&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;a href="http://en.wikipedia.org/wiki/Windows" title="Windows" class="mw-redirect" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;Windows&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Mac_OS_X" title="Mac OS X" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;Mac OS X&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Linux" title="Linux" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;Linux&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;a href="http://en.wikipedia.org/wiki/IPhone_3GS" title="IPhone 3GS" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPhone 3GS&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/IPhone_4" title="IPhone 4" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPhone 4&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/IPod_Touch" title="IPod Touch" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPod Touch&lt;/a&gt; 2G, 3G &amp;amp; 4G, &lt;a href="http://en.wikipedia.org/wiki/IPad" title="IPad" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPad&lt;/a&gt;, Apple TV 2G&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;3.2.2, 4.1 (Untethered)&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;Chronic Dev Team&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;a href="http://en.wikipedia.org/wiki/PwnageTool" title="PwnageTool" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;PwnageTool&lt;/a&gt; 4.1.3 &lt;sup id="cite_ref-iphoneblogr1_0-3" class="reference" style="line-height: 1em; font-weight: normal; font-style: normal; "&gt;&lt;a href="http://en.wikipedia.org/wiki/IOS_jailbreaking#cite_note-iphoneblogr1-0" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; white-space: nowrap; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span&gt;[&lt;/span&gt;1&lt;span&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;November 28, 2010&lt;sup id="cite_ref-64" class="reference" style="line-height: 1em; font-weight: normal; font-style: normal; "&gt;&lt;a href="http://en.wikipedia.org/wiki/IOS_jailbreaking#cite_note-64" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; white-space: nowrap; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span&gt;[&lt;/span&gt;62&lt;span&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;a href="http://en.wikipedia.org/wiki/Mac_OS_X" title="Mac OS X" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;Mac OS X&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;a href="http://en.wikipedia.org/wiki/IPhone_3G" title="IPhone 3G" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPhone 3G&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/IPhone_3GS" title="IPhone 3GS" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPhone 3GS&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/IPhone_4" title="IPhone 4" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPhone 4&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/IPod_Touch" title="IPod Touch" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPod Touch&lt;/a&gt; 3G &amp;amp; 4G, &lt;a href="http://en.wikipedia.org/wiki/IPad" title="IPad" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPad&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Apple_TV" title="Apple TV" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;Apple TV&lt;/a&gt; 2G&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;3.2.2, 4.1 (Untethered)&lt;br /&gt;4.2.1 (Tethered)&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;a href="http://en.wikipedia.org/wiki/IPhone_Dev_Team" title="IPhone Dev Team" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPhone Dev Team&lt;/a&gt;&lt;sup id="cite_ref-65" class="reference" style="line-height: 1em; font-weight: normal; font-style: normal; "&gt;&lt;a href="http://en.wikipedia.org/wiki/IOS_jailbreaking#cite_note-65" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; white-space: nowrap; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span&gt;[&lt;/span&gt;63&lt;span&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;a href="http://en.wikipedia.org/wiki/Redsn0w" title="Redsn0w" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;redsn0w&lt;/a&gt; 0.9.7b4&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;December 31, 2010&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;a href="http://en.wikipedia.org/wiki/Mac_OS_X" title="Mac OS X" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;Mac OS X&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;a href="http://en.wikipedia.org/wiki/IPhone_4" title="IPhone 4" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPhone 4&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/IPod_touch" title="IPod touch" class="mw-redirect" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPod touch&lt;/a&gt; 4G, &lt;a href="http://en.wikipedia.org/wiki/IPad" title="IPad" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPad&lt;/a&gt;&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;4.0, 4.1,&lt;br /&gt;4.2 GM, 4.2.1 (Untethered)&lt;/td&gt;&lt;td style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(170, 170, 170); border-right-color: rgb(170, 170, 170); border-bottom-color: rgb(170, 170, 170); border-left-color: rgb(170, 170, 170); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "&gt;&lt;a href="http://en.wikipedia.org/wiki/IPhone_Dev_Team" title="IPhone Dev Team" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; "&gt;iPhone Dev Team&lt;/a&gt;&lt;sup id="cite_ref-66" class="reference" style="line-height: 1em; font-weight: normal; font-style: normal; "&gt;&lt;a href="http://en.wikipedia.org/wiki/IOS_jailbreaking#cite_note-66" style="text-decoration: none; color: rgb(6, 69, 173); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; white-space: nowrap; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span&gt;[&lt;/span&gt;64&lt;span&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://en.wikipedia.org/wiki/IOS_jailbreaking"&gt;http://en.wikipedia.org/wiki/IOS_jailbreaking&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;How to JailBreak&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.applej4ck.com/jailbreak-tools/guide-jailbreak-unlock-ios-devices/ipod-touch/ipod-touch-4g/"&gt;http://www.applej4ck.com/jailbreak-tools/guide-jailbreak-unlock-ios-devices/ipod-touch/ipod-touch-4g/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Recommend:&lt;b&gt; &lt;/b&gt;limera1n&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.applej4ck.com/2010/10/09/jailbreak-ios-4-13-2-2-with-limera1n/"&gt;http://www.applej4ck.com/2010/10/09/jailbreak-ios-4-13-2-2-with-limera1n/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Serial (Updated BootRom)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 10px; margin-bottom: 10px; text-align: justify; font-family: Verdana, Arial, sans-serif; font-size: small; color: rgb(51, 51, 51); line-height: 19px; "&gt;Example: xx050xxxxxx - the 0 means 2010, and the 50 is the week of 2010 that it was manufactured.&lt;/p&gt;&lt;p style="margin-top: 10px; margin-bottom: 10px; text-align: justify; font-family: Verdana, Arial, sans-serif; font-size: small; color: rgb(51, 51, 51); line-height: 19px; "&gt;So according to the speculations, new iPhone, iPod Touch and iPad manufactured from the 50th week of 2010 might come with updated bootrom.&lt;/p&gt;&lt;p style="margin-top: 10px; margin-bottom: 10px; text-align: justify; font-family: Verdana, Arial, sans-serif; font-size: small; color: rgb(51, 51, 51); line-height: 19px; "&gt;&lt;a href="http://www.iphonehacks.com/2010/12/apple-may-have-patched-limera1n-bootrom-exploit-in-newer-iphone-ipad-and-ipod-touch-to-prevent-jailbreaking.html#more-3287"&gt;http://www.iphonehacks.com/2010/12/apple-may-have-patched-limera1n-bootrom-exploit-in-newer-iphone-ipad-and-ipod-touch-to-prevent-jailbreaking.html#more-3287&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 10px; margin-bottom: 10px; text-align: justify; font-family: Verdana, Arial, sans-serif; font-size: small; line-height: 19px; "&gt;&lt;br /&gt;&lt;b style="color: rgb(51, 51, 51); "&gt;Change root password&lt;br /&gt;&lt;/b&gt;&lt;span class="Apple-style-span" &gt;openssl passwd -crypt -salt /s alpine&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.iphonehacks.com/2008/10/security-tips.html" style="color: rgb(51, 51, 51); "&gt;http://www.iphonehacks.com/2008/10/security-tips.html&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); "&gt;&lt;a href="http://www.ipodtouchfans.com/forums/showthread.php?t=46254"&gt;http://www.ipodtouchfans.com/forums/showthread.php?t=46254&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 10px; margin-bottom: 10px; text-align: justify; font-family: Verdana, Arial, sans-serif; font-size: small; color: rgb(51, 51, 51); line-height: 19px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-3454168643479843460?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/3454168643479843460/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=3454168643479843460' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/3454168643479843460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/3454168643479843460'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2011/01/jailbreak-ios.html' title='Jailbreak iOS'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-1857537186187855423</id><published>2010-12-29T05:22:00.002+07:00</published><updated>2010-12-29T05:38:37.583+07:00</updated><title type='text'>Maternités de Toulouse</title><content type='html'>&lt;div&gt;ไม่ได้ update blog นาน ขอบ่นหน่อยเหอะ  ก่อนหน้านี้ ไปหาหมอที่คลินิค  CLINIQUE SARRUS-TEINTURIERS เวลาตรวจกับหมอ Gynécologues obstétricien จะเสียค่าธรรมเนียมที่เรียกว่า Depannement d'honaire แต่ละครั้งก็หลายยูโรอยู่  ทั้ง ๆ ที่ควรจะเบิกได้ 100%  กว่าจะรู้ว่ามีค่าธรรมเนียมนี้ ก็ผ่านไปหลายเดือน เพราะต้องออกเงินไปก่อนแล้วเบิกคืนทีหลัง ซึ่งก็ต้องรอ รอ รอ ๆ ๆ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ก่อนหน้านี้เคยถามหมอเกี่ยวกับเรื่องเบิกเงิน หมอบอกว่าไม่รู้เรื่อง ให้ไปถามที่ฝ่ายการเงินเอง  ก็เลยเข้าใจว่าหมอคงไม่รู้เรื่องเกี่ยวกับระเบียบพวกนี้  พอไปถามฝ่ายคิดเงิน เค้าก็ชี้แจงมาเป็นกรณีให้ฟังว่า มีค่าธรรมเนียมเท่าไรบ้าง เราก็ถามเน้นเจาะจงไปที่ค่า "Depannement d'honaire" เค้าก็ชี้แจงรายละเอียดแต่ละอย่างให้ฟัง แต่พนักงานก็ไม่ได้ปริปากเลยว่า ค่าธรรมเนียมนี้ สามารถ waive ได้ เหมือนกับค่าธรรมเนียมบัตรเครดิต (แล้วกรูจะรู้มั้ยวะเนี่ย!! ใครมันจะคิดว่ามัน waive ได้!!) &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ผมก็คิด solution เกี่ยวกับเรื่องนี้โดยคิดว่าจะย้ายไปที่โรงพยาบาลอีกที่หนึ่ง ชื่อว่า Maternité de l' Hôpital Joseph Ducuing เพราะนอกจากจะไม่มีค่าธรรมเนียมที่ว่านี้แล้ว เท่าที่อ่าน review ก็พบว่าได้คะแนนดีกว่าที่ Sarrus พอสมควร จากที่ได้ลองเปรียบเทียบมาราว ๆ 2-3 web แถมค่าห้องพักก็ยังถูกกว่า และสภาพห้องก็ไม่ได้แย่กว่าด้วย โรงพยาบาลนี้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ความจริงมาปรากฎ วันนี้ก็เลยตัดสินใจบอกหมอว่าจะย้ายโรงพยาบาล Joseph Ducuing ตั้งแต่ 21 ม.ค. 2554  เนื่องจากไม่มีเงินจ่ายค่าธรรมเนียม แล้วหมอก็มาบอกว่าไม่ต้องจ่ายค่าธรรมเนียมก็ได้ (แถมยังถามกลับว่าทำไม ไม่บอกแต่แรก!!  (ก็เจ้าหน้าที่มันไม่ได้บอกกรูเลย กรูจะรู้ได้ยังไงวะ?)  วันนี้เลยรักษาฟรี ไม่ต้องจ่ายค่าธรรมเนียม แต่เอาเหอะ ไหน ๆ ก็อยากจะย้ายโรงพยาบาลอยู่แล้ว  หมอที่ Sarrus ก็ไม่ค่อย friendly เท่าไร มีหลาย ๆ เหตุการณ์ที่ทำให้ไม่ค่อยประทับใจ ไปวัดดวงที่ใหม่น่าจะดีกว่า&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ข้อมูลโรงพยาบาลเพิ่มเติม&lt;/div&gt;&lt;div&gt;&lt;b&gt;Les maternités de Toulouse: &lt;/b&gt;&lt;a href="http://maternites.doctissimo.fr/maternites-ville-Toulouse.htm"&gt;http://maternites.doctissimo.fr/maternites-ville-Toulouse.htm&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-1857537186187855423?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/1857537186187855423/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=1857537186187855423' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1857537186187855423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1857537186187855423'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2010/12/maternites-de-toulouse.html' title='Maternités de Toulouse'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-2213867081206616394</id><published>2010-12-14T16:55:00.001+07:00</published><updated>2010-12-14T16:55:38.442+07:00</updated><title type='text'>ทบทวนสถิติ</title><content type='html'>&lt;div&gt;&lt;b&gt;ทบทวนสถิติ&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;Standard deviation&lt;/b&gt; สามารถใช้บอกช่วงคะแนนส่วนใหญ่กลุ่มของตัวอย่าง&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;Variance&lt;/b&gt; คือ ความแปรปวนของกลุ่มตัวอย่างทั้งหมด&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Confidence interval &lt;/b&gt;สามารถใช้บอก % (ที่กำหนด) ของกลุ่มตัวอย่างทั้งหมด เช่น 95% ของกลุ่มตัวอย่างทั้งหมด อยู่ในช่วง mean +- confidence interval&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-2213867081206616394?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/2213867081206616394/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=2213867081206616394' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/2213867081206616394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/2213867081206616394'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2010/12/%E0%B8%97%E0%B8%9A%E0%B8%97%E0%B8%A7%E0%B8%99%E0%B8%AA%E0%B8%96%E0%B8%95.html' title='ทบทวนสถิติ'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-6659459109543295434</id><published>2010-11-30T17:05:00.004+07:00</published><updated>2010-12-14T16:56:17.506+07:00</updated><title type='text'>Anomalie Traitement</title><content type='html'>ใครที่เปิดบัญชีไว้กับธนาคาร LCL แล้วเงินในบัญชีติดลบจะสามารถติดลบได้ไม่เกินค่าเงินที่ตั้งไว้ อาจจะกำหนดไว้ 200 หรือ 400 ยูโร (เรียกว่า security couverture) หากเงินในบัญชีติดลบ เกินกว่าค่านี้  ก็จะโดนค่าปรับ (เรียกว่า "Anomalie Traitement") โดยธนาคารคิดค่าปรับไว้ที่ 8 ยูโร ต่อวัน ต่อ รายการใช้จ่าย หมายความว่า ในวันนั้น หากบัญชีติดลบ และ มีการใช้จ่ายในบัญชี ก็คิดเงิน 8 ยูโร ต่อรายการ &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ในกรณีของบัญชีของผมนั้น ผมโดนค่าปรับนี้ ไปด้วยกัน 3 รอบ&lt;/div&gt;&lt;div&gt;&lt;b&gt;รอบที่ 1&lt;/b&gt; โดน เพราะ ใส่เงินในบัญชีน้อยไปหน่อย ค่าบ้าน ค่าไฟ ค่าอินเตอร์เน็ตพร้อมใจมาตัดบัญชีใกล้ ๆ กัน ก็เลยไปเจรจา กับผู้จัดการ (ชื่อ Alexandre ที่เคยบ่นไปใน entry ก่อนหน้านี้) เค้าก็บอกว่าจะคืนเงินให้ ซึ่งก็รอประมาณ 1 เดือน ก็ได้คืนมา &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;รอบที่ 2&lt;/b&gt; โดน เพราะจองตั่วเครื่องบิน+โรงแรมไปเที่ยว เชค-เยอรมัน-ฮังการี-ออสเตรีย สำหรับ 4 คน จ่ายไปหลายยูโร ตอนแรกก็คิดว่าไม่น่าจะพลาด เพราะเราโอนเงินเข้าบัญชีก่อนที่จะจองอีก (คือโอนเงินเข้าบัญชี ทางอินเตอร์เน็ต วันเดียวกันกับวันที่จองตั๋ว) แต่ ธนาคาร LCL มันจะไม่เข้าบัญชีให้เลย ต้องรอสัก 2-3 วัน แล้วโชคซวยคือ บัตรเครดิตมันดันตัดบัญชีก่อน เงินก็เลยติดลบ แล้วโดนไป 4 รายการ กว่าจะรู้ว่าเงินติดลบ ก็สิ้นเดือน (ซวยซ้ำสองที่มาเห็นช้า) พอไปคุยกับผู้จัดการ มันก็บอกว่าว่าจะคืนให้ แต่ต้องรอนานหน่อย&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ก็ไปหาหลายผู้จัดการ รอบ กว่าจะไปหาผู้จัดการ ก็ลำบาก เพราะว่าต้องทำนัดก่อน ซึ่งเวลาทำนัด ผมก็ต้องอ้างเหตุผลอื่น ๆ ในการเจอผู้จัดการ เพราะถ้าอ้างว่า Anomalie Traitement ไอพวกพนักงานหน้า Counter มันจะไม่นัดให้ เพราะ มันมองว่าเป็นความผิดของลูกค้าเอง ซึ่งเราก็เถียงไม่ได้ และผมก็ไม่อยากพูดตรง ๆ กับพนักงานว่าผู้จัดการ จะคืนเงินให้ ก็เลยอ้างเหตุผลอื่น ๆ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;จำได้ว่าไปหาผู้จัดการประมาณ 5 รอบ จนไม่รู้จะเอาเหตุผลอะไร ไปอ้าง  สรุปก็คือ รอจนผ่านไปเกือบปี จนเปลี่ยนผู้จัดการเป็นคนใหม่ (ชื่อว่า Chore) ผมก็คิดว่าคงไม่ได้เงินคืนแล้วละ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;รอบที่ 3&lt;/b&gt;  คราวนี้ โดนตัดเงินไป เพราะ Chore บอกให้ผมเปิดบัญชีฝากประจำ (Livret A) อีกอันใหม่ เพราะได้ดอกเบี้ยเยอะกว่าอันเก่า โดยที่เงื่อนไข เหมือนเดิม แต่เรื่องมาเกิด เพราะว่า Chore โอนเงินจากบัญชีออมทรัพย์ไปบัญชีใหม่ก่อน แล้วจึงโอนจากบัญชีฝากประจำเก่า มายังบัญชีออมทรัพย์ ทำให้เงินในบัญชีผมติดลบ โดน Anomalie traitement คราวนี้ ผมมีเหตุผลไปอ้างกับพนักงานหน้า Counter  ผมก็เลยไปบอกให้ Chore จัดการให้ด้วย (เพราะมันไม่ใช่ความผิดผม) แล้วก็เลยทวง Anomalie traitement ก่อนหน้านี้ด้วย และในที่สุดก็ได้เงินคืน (นึกว่าจะไม่ได้แล้ว -_-" ) &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;สรุป&lt;/b&gt;&lt;/div&gt;&lt;div&gt;1. ต้องตรวจสอบบัญชีอยู่เสมอ ระวังอย่าให้บัญชีติดลบ และ อาจจะมีค่าใช้จ่ายแปลกปลอมโผล่มา พึงระวัง&lt;/div&gt;&lt;div&gt;2. Anomalie traitement ของธนาคาร LCL สามารถขอเงินคืนได้ (Remboursement) แต่ กว่าจะได้ก็เล่นเอาเหนื่อยเหมือนกัน เพราะการขอเจอผู้จัดการต้องนัดทุกครั้ง&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-6659459109543295434?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/6659459109543295434/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=6659459109543295434' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/6659459109543295434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/6659459109543295434'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2010/11/anomalie-traitement.html' title='Anomalie Traitement'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-4131437857522147255</id><published>2010-10-18T21:49:00.003+07:00</published><updated>2010-10-22T01:53:54.446+07:00</updated><title type='text'>Dragonball Z</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: arial; font-size: 15px; color: rgb(102, 34, 34); "&gt;&lt;div&gt;&lt;b&gt;Dragonball Z&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;&lt;b&gt;Accords :   &lt;span class="Apple-style-span" style="font-weight: normal; "&gt;(C - F - G - C) x 2 Refrain &lt;/span&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;C - F - G - C&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;Dragon ball Z, le gentil Sangohan,&lt;br /&gt;Dragon ball Z, combat tous les méchants&lt;br /&gt;Dragon ball Z, il a tous les pouvoirs&lt;br /&gt;Dragon ball Z, la force et le savoir&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: 15px; color: rgb(102, 34, 34); "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Arial, Helvetica, sans-serif; font-size: 12px; "&gt;E - Am - D - G &lt;/span&gt;&lt;br /&gt;Son père était un héros,&lt;br /&gt;Le grand, le vaillan Sangoku&lt;br /&gt;Le monde saura bientôt&lt;br /&gt;Que son esprit reste avec nous&lt;br /&gt;&lt;br /&gt;Dragon ball Z, notre héros au grand coeur&lt;br /&gt;Dragon ball Z, sera toujours vainqueur0&lt;br /&gt;Dragon ball Z, il fera triompher&lt;br /&gt;Dragon ball Z, l'amour et l'amitié&lt;br /&gt;&lt;br /&gt;Il n'a jamais peur de rien&lt;br /&gt;Il ne craint aucun adversaire&lt;br /&gt;Il est rusé et malin&lt;br /&gt;C'est l'homme le plus fort de la terre&lt;br /&gt;&lt;br /&gt;Dragon ball Z, héros au coeur vaillant&lt;br /&gt;Dragon ball Z, valeureux combattant&lt;br /&gt;Dragon ball Z, le gentil Sangohan&lt;br /&gt;Dragon ball Z, combat tous les méchants.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: 15px; color: rgb(102, 34, 34); "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"   &gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;b&gt;Song: &lt;/b&gt; http://www.youtube.com/watch?v=dZ1NcxAZUYk &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-4131437857522147255?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/4131437857522147255/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=4131437857522147255' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4131437857522147255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4131437857522147255'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2010/10/dragonball-z.html' title='Dragonball Z'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-9067483427267931334</id><published>2010-10-13T19:35:00.002+07:00</published><updated>2010-10-13T19:36:05.578+07:00</updated><title type='text'>ทำประกันบ้าน</title><content type='html'>&lt;div&gt;ทำประกันบ้านที่ฝรั่งเศส ปีละ 13 ยูโร อันนี้น่าจะถูกที่สุด  &lt;/div&gt;&lt;div&gt;http://www.assurances-etudiants.com/&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;แต่ของผมโชคดีที่เจ้าของบ้านไม่ได้บังคับให้ทำ ;-)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-9067483427267931334?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/9067483427267931334/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=9067483427267931334' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/9067483427267931334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/9067483427267931334'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2010/10/blog-post.html' title='ทำประกันบ้าน'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-3362498744706797956</id><published>2010-10-05T04:51:00.006+07:00</published><updated>2010-10-05T05:04:19.736+07:00</updated><title type='text'>Android #1</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_PbSZogL4PjI/TKpO4H3rsRI/AAAAAAAAJJo/nlHpyC3MlLo/s1600/droid1.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 283px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5524314619015573778" border="0" alt="" src="http://4.bp.blogspot.com/_PbSZogL4PjI/TKpO4H3rsRI/AAAAAAAAJJo/nlHpyC3MlLo/s400/droid1.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;เห็นมานานแล้ว กับเจ้า "Android" แต่เพิ่งมีโอกาสได้ทดลองเขียนโปรแกรม มาเริ่มเลยดีกว่า &lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_PbSZogL4PjI/TKpOMs4dygI/AAAAAAAAJJY/nJ5z11eujE4/s1600/droid1.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;1) Load 3 ตัวนี้มา&lt;br /&gt;- JavaSDK: &lt;a href="http://java.sun.com/javase/downloads/index.jsp"&gt;http://java.sun.com/javase/downloads/index.jsp&lt;/a&gt; (เลือก JDK5 หรือ 6)&lt;br /&gt;- Eclipse: &lt;a href="http://www.eclipse.org/downloads"&gt;http://www.eclipse.org/downloads&lt;/a&gt; (เลือก Eclipse Classic 3.6+ )&lt;br /&gt;- AndroidSDK: &lt;a href="http://developer.android.com/sdk/index.html"&gt;http://developer.android.com/sdk/index.html&lt;/a&gt;&lt;br /&gt;แล้ว unzip ไว้ใน C:\Android\&lt;br /&gt;&lt;br /&gt;2) Run SDK Manager.exe เพื่อติดตั้ง Android SDK ก็เลือก Accept SDK ที่เราต้องการจะติดตั้ง (ผมเลือกเฉพาะ SDK Platform 2.2, Sample, Usb driver, Market licensing และ Documentation เพราะไม่อยากรอ load นาน) จากนั้น Run eclipse.exe&lt;br /&gt;&lt;br /&gt;3) ติดตั้ง Eclipse Plugin สำหรับเชื่อมกับ Android SDK&lt;br /&gt;ไปที่ Help &gt; Install New Software ในช่อง Work with ให้ใส่ https://dl-ssl.google.com/android/eclipse/ เมื่อติดตั้งเรียบร้อย สั่ง restart Eclipse&lt;br /&gt;&lt;br /&gt;4) เลือก Windows -&gt; Preferences -&gt; Android แล้ว Browse ตำแหน่ง SDK Location C:\AndroidIDE\android-sdk-windows\&lt;br /&gt;&lt;br /&gt;5) เลือก File -&gt; New -&gt; Other (หรือกด Ctrl + N) เลือก Android Project&lt;br /&gt;Project name: HelloWorld&lt;br /&gt;Application name: HelloWorld&lt;br /&gt;Package name: pleX.test.HelloWorld&lt;br /&gt;CreateActivity: HelloWorld&lt;br /&gt;Min SDK Version: 8 (อันนี้หมายถึง version ของ API Level)&lt;br /&gt;กด Next แล้วกด Finish&lt;br /&gt;&lt;br /&gt;6) กด Run Project ถ้าเครื่อง Set Region เป็น ไทย ใช้ พ.ศ. จะเจอ "Error generating final archive: Debug certificate expired on dd/MM/yyyy" ใจเย็น ๆ ทำตามข้อต่อไป&lt;br /&gt;&lt;br /&gt;7) ลบ file C:\Users\pleX\.android\debug.keystore (สำหรับ Windows7)&lt;br /&gt;&lt;br /&gt;8) สร้างขึ้นมาใหม่ด้วย คำสั่ง %JAVA_HOME%\bin\keytool -genkey -keypass android -keystore debug.keystore -alias androiddebugkey -storepass android -validity 100000 -dname "CN=Android Debug,O=Android,C=US"&lt;br /&gt;&lt;br /&gt;9) สั่ง Clean และ Build &amp;amp; Run Project ใหม่อีกรอบ&lt;br /&gt;&lt;br /&gt;10) ถ้ายังไม่ได้ Add Android Virtual Device ก็ให้สร้างใหม่ โดยแค่ตั้งชื่อ แล้วก็สร้าง Target ของ Android ว่าใช้ SDK ตัวไหน ที่เหลือ เว้นว่างไว้ เป็นอันใช้งานได้ในตอนนี้&lt;br /&gt;&lt;br /&gt;11) สั่ง Run อีกรอบ Android Emulator เริ่มต้นทำงาน ตรงนี้ ต้องรอสักหน่อย (ขึ้นกับความแรงของเรื่อง)&lt;br /&gt;&lt;br /&gt;12) ที่หน้าต่างของ Android ลอง Lunch Application ที่เราเขียนก็จะได้ Hello World ดังนี้&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_PbSZogL4PjI/TKpOZx9aAfI/AAAAAAAAJJg/4mMGJv8XtBk/s1600/droid2.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 226px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5524314097737925106" border="0" alt="" src="http://2.bp.blogspot.com/_PbSZogL4PjI/TKpOZx9aAfI/AAAAAAAAJJg/4mMGJv8XtBk/s320/droid2.jpg" /&gt;&lt;/a&gt; &lt;strong&gt;References:&lt;/strong&gt; http://developer.android.com/resources/tutorials/hello-world.html &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-3362498744706797956?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/3362498744706797956/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=3362498744706797956' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/3362498744706797956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/3362498744706797956'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2010/10/android-1.html' title='Android #1'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_PbSZogL4PjI/TKpO4H3rsRI/AAAAAAAAJJo/nlHpyC3MlLo/s72-c/droid1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-3512754155127121757</id><published>2010-10-04T20:50:00.002+07:00</published><updated>2010-10-04T20:59:57.605+07:00</updated><title type='text'>Jar file by NB 6.x</title><content type='html'>&lt;div&gt;Create Jar file by NB 6.x&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;0  Run -&gt; Clean and Build Main Project (Shift-F11)&lt;div&gt;&lt;br /&gt;&lt;div&gt;0  เข้าไปที่ PROJECT_ROOT/dist  จะเห็น jar file ของ project เรา&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;o  ถ้าสั่ง Run jar file จะเกิด error แจ้งว่าหา main class ไม่เจอ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;วิธีแก้ไข&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;o  เข้าไปแก้ PROJECT_ROOT/manifest.mf  (ถ้าไม่มี ก็สร้างใหม่เลย) ดังตัวอย่าง&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: decimal; list-style-position: initial; list-style-image: initial; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; border-collapse: collapse; line-height: 18px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;pre class="prettyprint" style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(238, 238, 238); font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; overflow-x: auto; overflow-y: auto; width: auto; max-height: 600px; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(238, 238, 238); font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;Manifest&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;-&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;Version&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;:&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="lit" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; "&gt;1.0&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;Ant&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;-&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;Version&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;:&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;Apache&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;Ant&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="lit" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; "&gt;1.8&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="lit" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; "&gt;0&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;Created&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;-&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;By&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;:&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="lit" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: maroon; background-position: initial initial; background-repeat: initial initial; "&gt;1.0&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;-&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;b01 &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;(&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; "&gt;&lt;span class="Apple-style-span" &gt;Warodom WERAPUN&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;)&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;Main&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;-&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;Class&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;:&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt; exam&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;ple&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;MainClass&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;Class&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;-&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;Path&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;:&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt; lib&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;/&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;lib1&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;jar lib&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;/&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;lib2&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: black; background-position: initial initial; background-repeat: initial initial; "&gt;jar&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; border-collapse: collapse; line-height: 18px; "&gt;o  จากนั้นเข้าไปแก้ &lt;span class="Apple-style-span" style="border-collapse: separate; font-family: Georgia, serif; line-height: normal; font-size: 16px; "&gt;PROJECT_ROOT/&lt;/span&gt;nbproject/project.properties โดยเพิ่มบรรทัด manifest.file=manifest.mf &lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; border-collapse: collapse; line-height: 18px; "&gt;o  กด Shift + F11 เพื่อ Clean and Build อีกรอบ เพียงเท่านี้ file.jar ก็จะเป็น executable file &lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; border-collapse: collapse; line-height: 18px; "&gt;o  อย่าลืม copy Lib ที่ใช้อื่น ๆ มาใส่ไว้ใน directory dist และ path จะต้องเหมือนกับที่กำหนดใน nbproject/project.properties ด้วย&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; border-collapse: collapse; line-height: 18px; "&gt;o Run:   java -jar yourJarFile.jar&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-3512754155127121757?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/3512754155127121757/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=3512754155127121757' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/3512754155127121757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/3512754155127121757'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2010/10/jar-file-by-nb-6x.html' title='Jar file by NB 6.x'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-7031362610709361784</id><published>2010-07-01T19:23:00.005+07:00</published><updated>2010-07-01T19:37:39.973+07:00</updated><title type='text'>Setup Printer Windows Vista / 7</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_PbSZogL4PjI/TCyL23NFtvI/AAAAAAAAJHg/xj04AhpiPFk/s1600/cups.jpg"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 252px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5488915820505839346" border="0" alt="" src="http://3.bp.blogspot.com/_PbSZogL4PjI/TCyL23NFtvI/AAAAAAAAJHg/xj04AhpiPFk/s400/cups.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_PbSZogL4PjI/TCyJGXewpGI/AAAAAAAAJHU/NxnJ8mW1H30/s1600/cups.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;วิธี setup Printer ของ Window XP นั้น ให้ใช้ URL จาก http://dirit.enseeiht.fr:631/printers/laseri4eme-windows ได้เลย (ช่องที่ 3 - print จาก internet) แล้วก็ next ไปเรื่อย ๆ ก็เป็นอันเรียบร้อย แต่ใน กรณีของ Vista หรือ 7 นั้น ใช้การเพิ่ม Printer คนละแบบ หลังจากที่เสียเวลางมอยู่นาน กว่าจะรู้วิธีเพิ่ม Printer ว่าต้องใช้ Device URI: จาก lpd://laseri4eme.enseeiht.fr/ นำไปกรอกแทน เอาเฉพาะชื่อ หรือ IP ของมัน ไม่ต้องเอาคำว่า lpd  ขอ note ไว้แก้ลืมหน่อย เพราะเจ้าหน้าที่ ที่นี่ หาตัวยากมาก....ก&lt;br /&gt;&lt;br /&gt;เวลาเพิ่ม printer จาก cups server ใน windows จะระบุ printer port&lt;br /&gt;&lt;strong&gt;XP:&lt;/strong&gt; ใช้คำว่า Internet port&lt;br /&gt;&lt;strong&gt;Vista / 7:&lt;/strong&gt; ใช้คำว่า TCP/IP port&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; ใน win7 ถ้า printer รัน print job ค้างอยู่ (ไม่ว่าจะ error หรือ ไม่ก็ตาม) เราจะไม่สามารถลบ printer ตัวนั้นได้ ต้องไปลบ print job ให้หมดก่อนจึงจะ printer ได้ครับ&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-7031362610709361784?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/7031362610709361784/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=7031362610709361784' title='2 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7031362610709361784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7031362610709361784'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2010/07/setup-printer-windows-vista-7.html' title='Setup Printer Windows Vista / 7'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_PbSZogL4PjI/TCyL23NFtvI/AAAAAAAAJHg/xj04AhpiPFk/s72-c/cups.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-1047693287965302411</id><published>2010-06-08T20:12:00.003+07:00</published><updated>2010-06-08T20:16:10.664+07:00</updated><title type='text'>Link Enseeiht Ph.D.</title><content type='html'>&lt;div&gt;แต่ละ URL จำยากนัก เอามารวมไว้ตรงนี้แทนแล้วกัน&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Module:&lt;/b&gt; &lt;a href="http://docteur-metier.inp-toulouse.fr/"&gt;http://docteur-metier.inp-toulouse.fr/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Module Condition:&lt;/b&gt; &lt;a href="http://www.edmitt.ups-tlse.fr/article.php?rubrique=158"&gt;http://www.edmitt.ups-tlse.fr/article.php?rubrique=158&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Soutenance de la thèse:&lt;/b&gt; &lt;a href="http://www.inp-toulouse.fr/formations/soutenance/soutenance.shtml"&gt;http://www.inp-toulouse.fr/formations/soutenance/soutenance.shtml&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-1047693287965302411?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/1047693287965302411/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=1047693287965302411' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1047693287965302411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1047693287965302411'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2010/06/link-enseeiht-phd.html' title='Link Enseeiht Ph.D.'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-7095141251054363152</id><published>2010-04-29T18:43:00.004+07:00</published><updated>2010-04-30T19:41:44.239+07:00</updated><title type='text'>JXTA Rendezvous &amp; Edge</title><content type='html'>&lt;b&gt;Step การสร้าง Rendezvous Node&lt;/b&gt;&lt;br /&gt;1) create Network Manager กำหนด Network mode ให้เป็น RENDEZVOUS&lt;br /&gt;2) กำหนด Network Configuration (Tcp  port, enabled...,  PeerID)&lt;br /&gt;3) start JXTA network&lt;br /&gt;4) รอการ connect จาก Edge Node&lt;br /&gt;5) แสดงผลการ connect&lt;br /&gt;6) stop JXTA network&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step การสร้าง Edge Node&lt;/b&gt;&lt;br /&gt;1) create Network Manager กำหนด Network mode ให้เป็น EDGE&lt;br /&gt;2) กำหนด Rendezvous Seed (e.g. tcp://147.127.240.90:9710) แล้ว add เข้าไปใน Network Config&lt;br /&gt;3) กำหนด Network Configuration (Tcp  port, enabled...,  PeerID)&lt;br /&gt;4) start JXTA network&lt;br /&gt;5) disable rendezvous autostart&lt;br /&gt;6) รอ 20-30 วินาที ให้ edge เชื่อมต่อกับ rendezvous&lt;br /&gt;7) stop JXTA network&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;จากหนังสือ: Practical JXTA (Cracking the P2P Puzzle โดย Jérôme Verstrynge)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-7095141251054363152?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/7095141251054363152/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=7095141251054363152' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7095141251054363152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7095141251054363152'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2010/04/jxta-rendezvous-edge.html' title='JXTA Rendezvous &amp; Edge'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-257616322167508108</id><published>2010-04-28T16:01:00.002+07:00</published><updated>2010-04-28T16:13:25.826+07:00</updated><title type='text'>HelloWorld (JXTA)</title><content type='html'>เอาตัวอย่าง HelloWorld ของ JXTA Tutorial มาศึกษา &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ผลการทำงาน ที่คาดหวังน่าจะเป็น &lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 13px; "&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 13px; "&gt;&lt;b&gt;Intended output&lt;/b&gt;&lt;br /&gt;Starting JXTA&lt;br /&gt;JXTA Started&lt;br /&gt;Waiting for a rendezvous connection&lt;br /&gt;Connected : true&lt;br /&gt;Stopping JXTA&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 13px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 13px; "&gt;&lt;b&gt;แต่ดันมาเจอ Output เนื่องจากเกิด Exception&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 13px; "&gt;&lt;div&gt;28 เม.ย. 2553 11:02:59 net.jxta.platform.NetworkManager configure&lt;/div&gt;&lt;div&gt;INFO: Loading existing configuration. mode = ADHOC&lt;/div&gt;&lt;div&gt;28 เม.ย. 2553 11:02:59 net.jxta.platform.NetworkManager startNetwork&lt;/div&gt;&lt;div&gt;INFO: Starting JXTA Network! MODE = ADHOC,  HOME = file:/E:/java/nb/jxtaTest/.cache/HelloWorld/&lt;/div&gt;&lt;div&gt;28 เม.ย. 2553 11:02:59 net.jxta.impl.protocol.RelayConfigAdv &lt;init&gt;&lt;/div&gt;&lt;div&gt;WARNING: Unhandled Element: net.jxta.impl.document.LiteXMLElement@1a125f0 / isOff = &lt;&lt;null&gt;&gt;&lt;/div&gt;&lt;div&gt;28 เม.ย. 2553 11:02:59 net.jxta.impl.loader.RefJxtaLoader findModuleImplAdvertisement&lt;/div&gt;&lt;div&gt;WARNING: Failed to find class for urn:jxta:uuid-DEADBEEFDEAFBABAFEEDBABE0000000C0206&lt;/div&gt;&lt;div&gt;java.lang.ClassNotFoundException: No matching class for : urn:jxta:uuid-DEADBEEFDEAFBABAFEEDBABE0000000C0206&lt;/div&gt;&lt;div&gt;        at net.jxta.impl.loader.RefJxtaLoader.findClass(RefJxtaLoader.java:240)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;เนื่องจาก jxta 2.5 ทำงานกับ debugger และ load advertisements สำหรับ shell (ซึ่งมันไม่ได้กำหนดไว้) เมื่อหาไม่เจอ มันก็จะสร้าง Warning ซึ่ง java ก็สร้าง exception file not found  ทำให้ไม่เห็นผลการทำงาน&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ใน jxta 2.5 jxta ย้ายจาก log4j ไปเป็น java.util.loggin  ซึ่ง logging level ถูกกำหนดไว้  ดังนั้น INFO และ log ที่ถูกกำหนด จะพิมพ์ออกมาผ่าน System.err.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;เราสามารถ reset logging level ดังนี้&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;import java.util.logging.LogManager;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;และใส่คำสั่ง&lt;br /&gt;&lt;div&gt;    public static void main(String args[]) {&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        // Add to remove warning&lt;/div&gt;&lt;div&gt;       LogManager.getLogManager().reset();&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ก็จะไม่เห็น Warning มาแสดงให้กวนใจครับ&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-257616322167508108?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/257616322167508108/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=257616322167508108' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/257616322167508108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/257616322167508108'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2010/04/helloworld-jxta.html' title='HelloWorld (JXTA)'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-7237638157120653395</id><published>2010-01-27T01:37:00.001+07:00</published><updated>2010-01-27T01:37:32.715+07:00</updated><title type='text'>CROUS</title><content type='html'>เกี่ยวกับทุน CROUS&lt;br /&gt;&lt;br /&gt;&lt;a href="https://dse.orion.education.fr/depot/"&gt;https://dse.orion.education.fr/depot/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-7237638157120653395?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/7237638157120653395/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=7237638157120653395' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7237638157120653395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7237638157120653395'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2010/01/crous.html' title='CROUS'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-3167562144946445658</id><published>2010-01-26T22:28:00.003+07:00</published><updated>2010-01-26T23:08:50.103+07:00</updated><title type='text'>Packet Length: Wireshark</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_PbSZogL4PjI/S18Tbc76z1I/AAAAAAAAJDE/2gaL-rjLPKM/s1600-h/sip.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 190px;" src="http://1.bp.blogspot.com/_PbSZogL4PjI/S18Tbc76z1I/AAAAAAAAJDE/2gaL-rjLPKM/s400/sip.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5431081037977014098" /&gt;&lt;/a&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="color:#551A8B;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;วันนี้มานั่งงง กับการรวมค่าขนาดของ packet ของ wireshark ก็เลยกลับไปทบทวนความรู้ใหม่ &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Ethernet (MAC) :&lt;/b&gt;  12 preamble + 8 field delimiter + 6 Src mac +  6 Des mac + 2 paylod type + ....payload... + 4 CkSum&lt;/div&gt;&lt;div&gt;&lt;b&gt;IP Header:  &lt;/b&gt; 20 Byte&lt;/div&gt;&lt;div&gt;&lt;b&gt;UDP Header:&lt;/b&gt; 2 sp + 2 dp + 2 len + CkSum = 8&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;จากภาพนั้น UDP len = 323 byte คือ ขนาด header ของ UDP (8) + data (SIP)&lt;/div&gt;&lt;div&gt;ส่วน IP len = 343 คือ ขนาด header ของ IP (20) + data&lt;/div&gt;&lt;div&gt;ขนาด Ethernet (Frame) = 357 คือขนาดของ ethernet (14) + ขนาดของ IP packet&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Note:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;ส่วนที่เป็น preamble, field delimiter, CheckSum ของ frame นั้น ไม่ได้ถูก capture มาด้วย เนื่องจาก libpcap  มันจับได้เฉพาะ  กลไกการจับข้อมูลของ OS ไม่ได้จับข้อมูลพวกนี้  (เลยไม่ได้เอามารวมใน length) ครับ  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;อ้างอิงจาก:&lt;/b&gt; &lt;a href="http://www.wireshark.org/faq.html#q7.10"&gt;http://www.wireshark.org/faq.html#q7.10&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Protocol Overhead:&lt;/b&gt; &lt;a href="http://sd.wareonearth.com/~phil/net/overhead/"&gt;http://sd.wareonearth.com/~phil/net/overhead/&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-3167562144946445658?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/3167562144946445658/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=3167562144946445658' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/3167562144946445658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/3167562144946445658'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2010/01/packet-length-wireshark.html' title='Packet Length: Wireshark'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_PbSZogL4PjI/S18Tbc76z1I/AAAAAAAAJDE/2gaL-rjLPKM/s72-c/sip.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-6591418358701962917</id><published>2010-01-18T17:45:00.002+07:00</published><updated>2010-01-18T17:46:39.659+07:00</updated><title type='text'>Research Definition</title><content type='html'>&lt;p&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;นิยามสั้น ๆ ของการทำวิจัย&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;การทำวิจัยนอกจากเก็บข้อมูลแล้ว ส่วนหนึ่งก็คือการวิเคราะห์ข้อมูล&lt;br /&gt;การวิเคราะห์คือการจำแนกประเภท จัดกลุ่ม กล่าวถึงข้อดี ข้อเสีย ของแต่ละแบบ และอันไหนเหมาะสมสำหรับสภาพแวดล้อมไหน พยายามมองหาตัวแปร (เพื่อที่จะนำตัวแปรนั้นมาวาดกราฟได้) &lt;/p&gt;&lt;p&gt;... ไปคิดต่อดีกว่า .....&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-6591418358701962917?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/6591418358701962917/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=6591418358701962917' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/6591418358701962917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/6591418358701962917'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2010/01/research-definition.html' title='Research Definition'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-4310185448460928131</id><published>2010-01-18T17:40:00.002+07:00</published><updated>2010-01-18T17:44:58.092+07:00</updated><title type='text'>Star UML</title><content type='html'>&lt;strong&gt;วิธีสร้าง Sequence diagram&lt;/strong&gt;&lt;br /&gt;1. เลือกที่ Model Explorer ที่ Dock ทางขวามือ&lt;br /&gt;2. Click ขวาที่ Model อะไรก็ได้แล้วเลือก Add Diagram&lt;br /&gt;ถ้าไม่มา เลือก model ใน Model Explorer ก่อน เราจะไม่สามารถสร้าง Diagram ได้&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-4310185448460928131?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/4310185448460928131/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=4310185448460928131' title='2 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4310185448460928131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4310185448460928131'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2010/01/star-uml.html' title='Star UML'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-5719843580309068495</id><published>2009-12-10T22:17:00.000+07:00</published><updated>2009-12-10T22:18:07.385+07:00</updated><title type='text'>Java Swing Example</title><content type='html'>เก็บไว้หน่อย link นี้มีตัวอย่างการเขียน Java GUI ที่ใช้ดูเข้าใจง่ายดี  :-)&lt;br /&gt;&lt;br /&gt;http://academicjava.com/Java_help/Tutorial_Examples_Swing_0.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-5719843580309068495?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/5719843580309068495/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=5719843580309068495' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/5719843580309068495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/5719843580309068495'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/12/java-swing-example.html' title='Java Swing Example'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-1327651658368910506</id><published>2009-12-10T16:09:00.005+07:00</published><updated>2009-12-10T16:30:31.213+07:00</updated><title type='text'>ธนาคาร LCL #2</title><content type='html'>วันนี้ก็ได้ไปเจอผู้จัดการที่ดูแลบัญชีเราของธนาคาร LCL (ชื่อว่าคุณ Alexandra) ตามเวลานัด 9.30 น. ตอนเช้า วันพฤหัส ที่ 10 ธ.ค.  53 ไปถึงก็เห็น พี่แกนั่งทำงานอยู่ พี่แกให้เรารอก่อน ทุกครั้งที่มีนัดเจอ ไปถึงก็ต้องรอทุกทีเลย ไม่รู้ว่ามันจะจัดการ statement อะไรนักหนาวะ  หลังจากที่รอ ประมาณ 5-10 นาที ก็ถึงเวลาได้ชี้แจงปัญหา&lt;br /&gt;&lt;br /&gt;เริ่มต้นพี่แกก็อธิบายสาเหตุ ซึ่งเราก็รู้ตั้งแต่ไอพนักงาน(เวร)นั่นบอกเราแล้ว ซึ่งดูเหมือนพี่แกจะเข้าใจเราแฮะ หาวิธีแก้ปัญหาให้เราได้เงินคืน โดยการไปแอบเปลี่ยน profile เรา ให้เป็นลูกค้าแบบนักเรียน ที่อายุ &lt; 26 ปี ทำให้เราได้เงินคืนเยอะกว่าเดิมด้วย  แล้วมันก็บอกว่า "Normalement, on ne fait pas..."  (แปลว่าปรกติเราไม่ทำแบบนี้ให้นะ)&lt;br /&gt;&lt;br /&gt;เออ... แบบนี้ค่อยคุยกันได้หน่อย เริ่มยิ้มได้  :-)  ไม่ใช่  rien fait (แปลว่าทำอะไรไม่ได้) !!&lt;br /&gt;&lt;br /&gt;พูดถึงประโยคนี้ก็นึกไปถึงอีกเรื่องตอนที่ยืมบัตร fnac ของแฟนพี่เจี๊ยบไปซื้อกล้อง Nikon D90 ซึ่งบัตรมันลดได้ 10% แต่ไอเงิน 10% นั้นมันดันไปอยู่ในบัตร ไม่ได้เป็น เชคเิงินสด เราก็เลยต้องใช้บัตรนั้นไปซื้อของ พอจะจ่ายเงิน ไอคนขายมันก็บอกว่า ต้องเป็นเจ้าของบัตรเท่านั้นจึงจะใช้เงินนี้ได้ เวร... ทั้ง ๆ ที่ก่อนหน้านี้เราก็ถามพนักงานแล้ว พนักกงานก็บอกว่าไม่มีปัญหาอะไร  เราก็บอกมันว่า ก็พนักงานบอกว่าได้นี่หว่า มันก็ยังยืนยันว่าไม่ได้....      fu..k!!   ก็เลยบอกมันไปแบบโกรธ ๆ ว่า "แม่ง.. (คำนี้พูดในใจนะ)  ถ้ามึงไม่ให้ใช้เงินในบัตร กูก็ไม่ซื้อ เพราะกูไม่มีเงินจ่าย และบอกอีกว่า เจ้าของบัตรอนุญาตแน่นอน มึงลองคุยโทรศัพท์ดูมั้ยละ"  ในที่สุดมันก็ตกลง และ มันก็พูดว่า  "Normalement, on ne fait pas..."  เราก็รีบขอบคุณมัน merci beaucoup, c'est gentil (ขอบคุณมาก ๆ , คุณใจดีจัง)  แต่ก่อนหน้านี้ ด่าแม่ มันในใจไปแล้วละ&lt;br /&gt;&lt;br /&gt;ฝรั่งเศสมันก็มีอะไรแปลก ๆ เยอะเหมือนกันแฮะ  ถ้าไม่โวยวายเนี่ย โดนเอาเปรียบตลอดแน่ ๆ  ใครอยู่ที่นี่ ก็มั่นตรวจสอบ + หมั่นโวยวายกันหน่อยนะครับ กับฝรั่งเนี่่ย จะมาใช้นิสัยขี้เกรงใจแบบคนไทย คงโดนเอาเปรียบหลายอย่าง (แต่ก็ไม่ทั้งหมด)&lt;br /&gt;&lt;br /&gt;กลับมาเรื่องธนาคารต่อ ก็เลยถามมันต่อเรื่องการคิดดอกเบี้ย ได้ข้อมูลมาว่าดอกเบี้ยของบัญชีฝากประจำ ( Compt Livret)  ซึ่งถอนได้ตลอด คิดดอกเบี้ยแค่ 1%  โดยคิดดอกเบี้ยให้ ปีละ 1 ครั้ง เราก็ไม่แน่ใจว่า ไอยอดเิิงินที่เราถอน ๆ ไปใส่บัญชีออมทรัพย์ (Compt Epargne) มันไม่ครบ 1 ปี ไม่รู้มันคำนวนอย่างไรเหมือนกัน&lt;br /&gt;&lt;br /&gt;แต่สุดท้ายได้ข้อสรุปว่า มีบัญชื่อแบบอื่น ๆ ที่ได้ดอกเบี้ยถึง 5-6%  ซึ่งยังไง เราก็ยังอยู่ที่นี่อีก 3 ปี เงินจมอยู่เกือบ ๆ  ล้านบาท ยังไงก็คุ้ม ก็เลยนัดเปิดบัญชีใหม่อีกที วันอังคารที่ 5 ม.ค. 53 เวลา 14.00  แล้วจะมา update ให้ฟังอีกรอบนะจ๊ะ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-1327651658368910506?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/1327651658368910506/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=1327651658368910506' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1327651658368910506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1327651658368910506'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/12/lcl-2.html' title='ธนาคาร LCL #2'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-5974864991451228446</id><published>2009-12-07T16:51:00.002+07:00</published><updated>2009-12-07T17:03:08.667+07:00</updated><title type='text'>ธนาคาร LCL !!</title><content type='html'>วันนี้ อารมณ์เสียแต่เช้า เพราะ เข้าไปที่ธนาคาร เพื่อไปสอบถามว่า ทำไมเดือน ธ.ค. 09 จึงคิดค่าบริการ 7.35 ยูโร ทั้ง ๆ ที่ปรกติแล้วมัน 4 ยูโร ก็ได้คำตอบว่า เพราะบัตร นร. หมดอายุ ก็เลยเอาบัตร นร. ไปให้มัน มันก็ถ่ายเอกสารเก็บไว้แล้วบอกว่า จะเริ่มราคา นร. เดือนหน้านะ ผมก็เลยถามมันว่า แล้วเดือน ธค. นี้จะได้ เงินส่วนต่างคืน ใช่มั้ย มันก็บอกว่า ไม่ได้ เพราะ เราเอาบัตรไปให้มันช้าเกินไป ระบบ มันตัดไปแล้ว ผมก็เลยบอกมันว่า ตัดแล้ว ก็คืนได้ ก่อนหน้านี้ก็เคยทำ มันก็บอกว่า เพราะผมไม่ได้เอาบัตรนร. มาให้มันก่อนเดือน ธค. และ มันก็พูดว่า &lt;span style="font-weight: bold;"&gt;Je rien faire!!....  &lt;/span&gt;สาด...ด แม่ง ของขึ้นเลยกู  ก็เลยเสียงดังใส่มันเลย ทำหน้าโกรธเต็มพิกัด ลูกค้าคนอื่นก็ยืนรอคิวอยู่&lt;br /&gt;&lt;br /&gt; จนสรุปความได้ว่า วันพฤหัส นี้ จะไปคุยกับกับผู้จัดการบัญชี ของผม อีกที  เนี่ย ถ้าเป็นคนที่ไม่ค่อยรู้ระบบของที่นี่ ส่วนใหญ่เวลาเจอมันบอกว่า Rien faire แบบนี้ ก็โดนแดกค่าส่วนต่าง ไปแน่ ๆ  ไอคนบริการก็แม่ง ไม่คิดจะแนะนำอะัไรเลย  เดี๋ยววันพฤหัสนี้ แม่ง ถ้าไม่คืนเงินให้กรู  กูจะปิดบัญชีกับธนาคารมึงไปเลย สาด.......ด ให้มันรู้มั่ง&lt;br /&gt;&lt;br /&gt;blog นี้เขียนไว้ให้คนไทยที่อยู่ในฝรั่งเศสได้รู้ว่า ถ้าได้รับ service ที่เฮงซวยจากประเทศนี้ ก็ด่าแม่(ง) มันไปเลย อย่าไปยอมมันมาก ไอพวกห่านี้ยิ่งยอมยิ่งได้ใจ นี่ขนาดกูพูดฝรั่งเศสไม่ค่อยได้นะ เวลาด่าก็มีติด ๆ ขัด ๆ มั่ง แต่มันก็คงรู้แหละ ว่าด่ามันอยู่ อย่าไปยอมมัน&lt;br /&gt;&lt;br /&gt;ปล.&lt;br /&gt;1.  บริการดี ๆ ของฝรั่งเศสดี ๆ ก็พอมี แต่มีน้อยกว่าบริการแบบเฮงซวย!!&lt;br /&gt;2.  อ้าว เฮ้ย ขนาดเขียน blog ยังของขึ้นเลย พระ!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-5974864991451228446?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/5974864991451228446/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=5974864991451228446' title='3 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/5974864991451228446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/5974864991451228446'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/12/lcl.html' title='ธนาคาร LCL !!'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-1075048798013222284</id><published>2009-12-01T22:11:00.002+07:00</published><updated>2009-12-01T22:12:31.315+07:00</updated><title type='text'>Copy Binary File Java</title><content type='html'>&lt;pre&gt;&lt;br /&gt;import java.io.*;&lt;br /&gt;&lt;br /&gt;public class CopyFile{&lt;br /&gt;  private static void copyfile(String srFile, String dtFile){&lt;br /&gt;    try{&lt;br /&gt;      File f1 = new File(srFile);&lt;br /&gt;      File f2 = new File(dtFile);&lt;br /&gt;      InputStream in = new FileInputStream(f1);&lt;br /&gt;      &lt;br /&gt;      //For Append the file.&lt;br /&gt;//      OutputStream out = new FileOutputStream(f2,true);&lt;br /&gt;&lt;br /&gt;      //For Overwrite the file.&lt;br /&gt;      OutputStream out = new FileOutputStream(f2);&lt;br /&gt;&lt;br /&gt;      byte[] buf = new byte[1024];&lt;br /&gt;      int len;&lt;br /&gt;      while ((len = in.read(buf)) &gt; 0){&lt;br /&gt;        out.write(buf, 0, len);&lt;br /&gt;      }&lt;br /&gt;      in.close();&lt;br /&gt;      out.close();&lt;br /&gt;      System.out.println("File copied.");&lt;br /&gt;    }&lt;br /&gt;    catch(FileNotFoundException ex){&lt;br /&gt;      System.out.println(ex.getMessage() + " in the specified directory.");&lt;br /&gt;      System.exit(0);&lt;br /&gt;    }&lt;br /&gt;    catch(IOException e){&lt;br /&gt;      System.out.println(e.getMessage());      &lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;  public static void main(String[] args){&lt;br /&gt;    switch(args.length){&lt;br /&gt;      case 0: System.out.println("File has not mentioned.");&lt;br /&gt;          System.exit(0);&lt;br /&gt;      case 1: System.out.println("Destination file has not mentioned.");&lt;br /&gt;          System.exit(0);&lt;br /&gt;      case 2: copyfile(args[0],args[1]);&lt;br /&gt;          System.exit(0);&lt;br /&gt;      default : System.out.println("Multiple files are not allow.");&lt;br /&gt;            System.exit(0);&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;} &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Ref: http://www.roseindia.net/java/beginners/CopyFile.shtml&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-1075048798013222284?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/1075048798013222284/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=1075048798013222284' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1075048798013222284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1075048798013222284'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/12/copy-binary-file-java.html' title='Copy Binary File Java'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-8952487005668704667</id><published>2009-12-01T20:45:00.001+07:00</published><updated>2009-12-01T20:45:38.092+07:00</updated><title type='text'>UDP Socket Client</title><content type='html'>&lt;pre&gt;&lt;br /&gt;package file;&lt;br /&gt;&lt;br /&gt;import java.net.*;&lt;br /&gt;//import java.util.StringTokenizer;&lt;br /&gt;&lt;br /&gt;class TestList {&lt;br /&gt;&lt;br /&gt;    public static void main(String argv[]) {&lt;br /&gt;&lt;br /&gt;        A a = new A();&lt;br /&gt;        a.start();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class A extends Thread {&lt;br /&gt;&lt;br /&gt;    final static int port = 8532;&lt;br /&gt;    final static int taille = 1024;&lt;br /&gt;    final static byte buffer[] = new byte[taille];&lt;br /&gt;&lt;br /&gt;    public void run() {&lt;br /&gt;        try {&lt;br /&gt;            InetAddress serveur = InetAddress.getByName("147.127.240.91");&lt;br /&gt;&lt;br /&gt;            //------------ send request ------------------&lt;br /&gt;            String s = "Song Request";&lt;br /&gt;            int length = s.length();&lt;br /&gt;            byte buffer[] = s.getBytes();&lt;br /&gt;            DatagramPacket dataSent = new DatagramPacket(buffer, length, serveur, 8532);&lt;br /&gt;            DatagramSocket socket = new DatagramSocket();&lt;br /&gt;            socket.send(dataSent);&lt;br /&gt;&lt;br /&gt;            //---------- received response ---------------&lt;br /&gt;            DatagramPacket dataReceived = new DatagramPacket(new byte[taille], taille);&lt;br /&gt;            socket.receive(dataReceived);&lt;br /&gt;            String songListRecieved = new String(dataReceived.getData(), 0, dataReceived.getLength());            &lt;br /&gt;   &lt;br /&gt;&lt;br /&gt;            String songName[] = songListRecieved.split("\\|");&lt;br /&gt;&lt;br /&gt;            for  ( String  tmpStr : songName  )&lt;br /&gt;                System.out.println("Data received : " + tmpStr.trim() );&lt;br /&gt;&lt;br /&gt;            &lt;br /&gt;            // --------- choose song ---------------------&lt;br /&gt;            length = songName[1].length();&lt;br /&gt;            buffer = songName[1].getBytes();&lt;br /&gt;            dataSent = new DatagramPacket(buffer, length, serveur, 8532);&lt;br /&gt;            socket.send(dataSent);&lt;br /&gt;            &lt;br /&gt;            &lt;br /&gt;        } catch (Exception e) {&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-8952487005668704667?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/8952487005668704667/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=8952487005668704667' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8952487005668704667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8952487005668704667'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/12/udp-socket-client.html' title='UDP Socket Client'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-4330571670848378574</id><published>2009-12-01T20:42:00.002+07:00</published><updated>2009-12-01T20:43:53.964+07:00</updated><title type='text'>UDP Socket Server</title><content type='html'>&lt;pre&gt;package catalog;&lt;br /&gt;&lt;br /&gt;import java.net.*;&lt;br /&gt;&lt;br /&gt;public class CatalogServer extends Thread {&lt;br /&gt;&lt;br /&gt;    final static int port = 8532;&lt;br /&gt;    final static int taille = 1024;&lt;br /&gt;    final static byte buffer[] = new byte[taille];&lt;br /&gt;    private String queryStr;&lt;br /&gt;    String songList = new String("Black or White.mp3Love Piano.mp3La Fleur.mp3Le Bapteme.mp3Amour Mathematique.mp3");&lt;br /&gt;    int length;&lt;br /&gt;    byte buffer1[];&lt;br /&gt;    String selectedSong;&lt;br /&gt;&lt;br /&gt;    public String getSelectedSong() {&lt;br /&gt;        return selectedSong;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void setSelectedSong(String selectedSong) {&lt;br /&gt;        this.selectedSong = selectedSong;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    public static void main(String argv[]) {&lt;br /&gt;&lt;br /&gt;        CatalogServer cs = new CatalogServer();&lt;br /&gt;        cs.start();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void run() {&lt;br /&gt;        try {&lt;br /&gt;            DatagramSocket socket = new DatagramSocket(port);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            while (true) {&lt;br /&gt;                //---------- serv recv ---------------&lt;br /&gt;                DatagramPacket data = new DatagramPacket(buffer, buffer.length);&lt;br /&gt;                socket.receive(data);&lt;br /&gt;                queryStr = new String(data.getData(), 0, data.getLength());&lt;br /&gt;                System.out.println(queryStr);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                // --------serv send ------------&lt;br /&gt;                if (queryStr.equals("Song Request")) {&lt;br /&gt;                    length = songList.length();&lt;br /&gt;                    buffer1 = songList.getBytes();&lt;br /&gt;                    DatagramPacket dataSent = new DatagramPacket(buffer1, length,&lt;br /&gt;                            data.getAddress(), data.getPort());&lt;br /&gt;                    socket.send(dataSent);&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                //---------- recv song -------------&lt;br /&gt;                else {&lt;br /&gt;                 //   socket.receive(data);&lt;br /&gt;                 //   queryStr = new String(data.getData(), 0, data.getLength());&lt;br /&gt;                    setSelectedSong(queryStr);                   &lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                //System.out.println(data.getAddress());&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        } catch (Exception ex) {&lt;br /&gt;            ex.printStackTrace();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-4330571670848378574?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/4330571670848378574/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=4330571670848378574' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4330571670848378574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4330571670848378574'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/12/udp-socket-server.html' title='UDP Socket Server'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-4554475023164409289</id><published>2009-12-01T17:38:00.003+07:00</published><updated>2010-03-10T19:00:05.883+07:00</updated><title type='text'>Java XML Parser</title><content type='html'>ตัวอย่างการเขียน Java กับ XML แบบ Dom กับ SAX&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;- SAX&lt;/span&gt; ใช้ง่ายกว่า ทำงานได้เร็วกว่า เพราะอ่านอย่างเดียว&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;- DOM&lt;/span&gt; ทำงานได้ยืดหยุ่นกว่า อ่านกลับไป กลับมาได้&lt;br /&gt;&lt;br /&gt;แต่ผมเลือก SAX เพราะว่า ผมอ่าน xml element ไปเก็บใน bean  แล้วเอาไปฝังใน collection อย่างพวก array list หรือ hash map ก่อน จากนั้น ไปดึงข้อมูลจากพวกนี้ จะง่ายกว่าใช้ dom มา walk เอา (เหนื่อยนะเนี่ย)&lt;br /&gt;&lt;br /&gt;(ความเดิมตอนที่แล้ว:  &lt;span class="Apple-style-span" style="font-family: Tahoma; font-size: medium; "&gt;3. Java-XML &lt;/span&gt;)&lt;br /&gt;&lt;div&gt;=&gt;  &lt;a href="http://plex.coe.psu.ac.th/java/"&gt;http://plex.coe.psu.ac.th/java/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;=&gt; http://www.totheriver.com/learn/xml/xmltutorial.html&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-4554475023164409289?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/4554475023164409289/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=4554475023164409289' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4554475023164409289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4554475023164409289'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/12/java-xml-parser.html' title='Java XML Parser'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-4631784457845466353</id><published>2009-11-30T07:03:00.003+07:00</published><updated>2009-11-30T07:05:45.277+07:00</updated><title type='text'>Photoshop JS Exif</title><content type='html'>การเรียกใช้ java script จาก photoshop CS 4&lt;br /&gt;&lt;br /&gt;//**********************************************************************&lt;br /&gt;// Java Script For Photoshop  Modify By Svrnuke&lt;br /&gt;// Author   Nattapong  Roadmuang&lt;br /&gt;// Date      2008 June 14&lt;br /&gt;// Note     Microsoft Windows Vista&lt;br /&gt;// Note     Adobe Photoshop CS3&lt;br /&gt;// http://svrnuke.multiply.com&lt;br /&gt;//**********************************************************************&lt;br /&gt;&lt;br /&gt;var docRef = activeDocument;&lt;br /&gt;var strExifTitle = new Array("Model,","Exposure Time,","F-Stop,","ISO Speed Ratings,","Date Time Original,","Focal Length,");&lt;br /&gt;var strExifData = new Array("","","","","","","");&lt;br /&gt;var strCurrent = new String();&lt;br /&gt;var TextLayer = docRef.artLayers.add();&lt;br /&gt;TextLayer.kind = LayerKind.TEXT;&lt;br /&gt;var txtRef = TextLayer.textItem;&lt;br /&gt;&lt;br /&gt;var j = 0;&lt;br /&gt;var i = 0;&lt;br /&gt;for (i=0; i &lt; docRef.info.exif.length; i++)&lt;br /&gt;{&lt;br /&gt;   strCurrent = docRef.info.exif[i].toString();&lt;br /&gt;   for (j=0; j &lt; 6; j++)  &lt;br /&gt;   {&lt;br /&gt;       if ((strExifData[j] == "") &amp;amp;&amp;amp; (strCurrent.indexOf(strExifTitle[j]) &gt;= 0))  &lt;br /&gt;       {&lt;br /&gt;           strCurrent = strCurrent.substring(strExifTitle[j].length,strCurrent.length);&lt;br /&gt;           strExifData[j] = strCurrent;  &lt;br /&gt;           break;      &lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;if (strExifData[4] != "")&lt;br /&gt;{&lt;br /&gt;   strExifData[6] = strExifData[4].substring(11, 16);&lt;br /&gt;strExifData[4] = strExifData[4].substring(8, 10) + "-" + strExifData[4].substring(5, 7) + "-" + strExifData[4].substring(0, 4);&lt;br /&gt; &lt;br /&gt;}&lt;br /&gt;for(i=0;i&lt;6;i++)&lt;br /&gt;{&lt;br /&gt;   strCurrent = "";&lt;br /&gt;   for (j=0;j&lt;br /&gt;   {&lt;br /&gt;       if (strExifData[i].substring(j,j+1)== ",")&lt;br /&gt;       {&lt;br /&gt;           break;&lt;br /&gt;       }&lt;br /&gt;       strCurrent += strExifData[i].substring(j,j+1);&lt;br /&gt;   }&lt;br /&gt;   strExifData[i] = strCurrent;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// You can change yourname here&lt;br /&gt;//var textStr = "http://wwarodom.multiply.com\u000D";&lt;br /&gt;var textStr = "";&lt;br /&gt;textStr += strExifData[0];&lt;br /&gt;textStr += "  ISO "+ strExifData[3] +" " + strExifData[1];&lt;br /&gt;textStr += " "+strExifData[2]+" "+ strExifData[5];&lt;br /&gt;&lt;br /&gt;txtRef.contents = textStr;&lt;br /&gt;txtRef.size = "6";&lt;br /&gt;&lt;br /&gt;-----------------&lt;br /&gt;&lt;strexifdata[i].length;j++) if="" strcurrent="" you="" can="" change="" yourname="" here="" var="" textstr="http://wwarodom.multiply.com\u000D" contents="textStr;" size="6"&gt;&lt;br /&gt;&lt;br /&gt;=&gt; copy ลงใน C:\Program Files\Adobe\Adobe Photoshop CS4\App\Photoshop\Presets\Scripts&lt;br /&gt;=&gt; เรียกใช้จาก file -&gt; Scripts -&gt; browse -&gt; เปลี่ยน file type เป็น .js&lt;br /&gt;=&gt; เลือก Text Tool เปลี่ยน ขนาด และ สี ตามใจชอบ&lt;br /&gt;&lt;/strexifdata[i].length;j++)&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-4631784457845466353?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/4631784457845466353/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=4631784457845466353' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4631784457845466353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4631784457845466353'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/11/photoshop-js-exif.html' title='Photoshop JS Exif'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-3567684701782086981</id><published>2009-11-26T23:22:00.001+07:00</published><updated>2009-11-26T23:23:42.675+07:00</updated><title type='text'>Add AS to IMS</title><content type='html'>&lt;a href="http://cmorismael.blogspot.com/2009/03/open-source-ims-service-delivery.html"&gt;An open source IMS Service Delivery Platform: MobiCents &amp;amp; Open IMS&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;=&gt; &lt;a href="http://cmorismael.blogspot.com/2009/03/open-source-ims-service-delivery.html"&gt;http://cmorismael.blogspot.com/2009/03/open-source-ims-service-delivery.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;by:&lt;/strong&gt; IsmaeL Camara&lt;br /&gt;Lyon, Rhône, France&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-3567684701782086981?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/3567684701782086981/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=3567684701782086981' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/3567684701782086981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/3567684701782086981'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/11/add-as-to-ims.html' title='Add AS to IMS'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-8167143932648292639</id><published>2009-11-18T23:14:00.000+07:00</published><updated>2009-11-18T23:15:03.144+07:00</updated><title type='text'>การทำ Script ย่อรูป</title><content type='html'>&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: tahoma; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102); font-family: tahoma,verdana,'ms sans serif'; font-size: 13px;"&gt;&lt;table class="frame" style="border: 1px solid rgb(204, 204, 204); font-family: tahoma,verdana,'ms sans serif'; font-size: 13px; color: rgb(102, 102, 102);" cellpadding="12"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;h1 style="font-size: 18px; font-weight: bold;"&gt;การย่อรูปลงเว็บ&lt;/h1&gt;รูปที่เราถ่ายมาโดยทั่วไปนั้นมักจะมีขนาดใหญ่ ก่อนเอามาโพสต์ลงเว็บจึงต้องทำการย่อขนาดให้เหมาะสมเสียก่อน ผมจึงทำตัวอย่างการย่อรูปมาให้ดูกัน 2 แบบก่อนน่ะ&lt;br /&gt;แบบที่ 1 คือการย่อรูปตามปกติโดยการใช้คำสั่ง Image Size&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;หลังจากที่เปิดรูปที่จะย่อขึ้นมาก็ไปที่ Menu Bar เลือก Image &gt; Image Size&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;แล้วเปลี่ยนพารามิเตอร์ Width เป็น 850px(สำหรับ Section Webboard อนุญาตให้กว้างไม่เกิน 850px) แล้วก็คลิ๊ก OK เท่านี้ก็เรียบร้อยครับ&lt;br /&gt;&lt;br /&gt;&lt;img src="/img_quest/0906101753042.jpg" width="406" height="340" /&gt;&lt;br /&gt;&lt;br /&gt;by&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;b&gt;Webmaster&lt;/b&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;span style="color:#999999;"&gt;[on 10-06-2009, 17:53]&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="frame" style="border: 1px solid rgb(204, 204, 204); font-family: tahoma,verdana,'ms sans serif'; font-size: 13px; color: rgb(102, 102, 102);" cellpadding="12"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Re : การย่อรูปลงเว็บ #1&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;ผลลัพธ์ที่ได้จากการย่อด้วยการใช้คำสั่ง Image Size&lt;br /&gt;&lt;br /&gt;&lt;img src="/img_ans/0906101756332.jpg" width="850" height="569" /&gt;&lt;br /&gt;&lt;br /&gt;by&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;b&gt;Webmaster&lt;/b&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;span style="color:#999999;"&gt;[on 10-06-2009, 17:56]&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="frame" style="border: 1px solid rgb(204, 204, 204); font-family: tahoma,verdana,'ms sans serif'; font-size: 13px; color: rgb(102, 102, 102);" cellpadding="12"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Re : การย่อรูปลงเว็บ #2&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;หลังจากนั้นก็ Save ด้วยคำสั่ง Save for Web โดยการไปที่ Menu Bar เลือก File &gt; Save for Web&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;- เลือกชนิดไฟล์เป็น "JPEG"&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;- เลือกค่า Quality ของรูป ซึ่งค่านี้ไม่ควรเลือกเกิน 60 เพราะไฟล์ยังมีขนาดค่อนข้างใหญ่ เมื่อเลือกค่า Quality แล้วให้สังเกตวงสีแดงด้านล่างซ้ายที่มีเครื่องหมาย "*" ค่าดังกล่าวจะเปลี่ยนแปลงไปตามค่า Quality และค่าดังกล่างไม่ควรเกิน 200k ครับ หากค่าดังกล่าวมากกว่า 200k ก็ลด Quality ลงเป็น 50, 40 แล้วแต่ความเหมาะสมครับ หลังจากนั้นก็คลิ๊ก Save เป็นอันเสร็จสิ้นการ Save for Web&lt;br /&gt;&lt;br /&gt;&lt;img src="/img_ans/0906101757262.jpg" width="850" height="684" /&gt;&lt;br /&gt;&lt;br /&gt;by&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;b&gt;Webmaster&lt;/b&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;span style="color:#999999;"&gt;[on 10-06-2009, 17:57]&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="frame" style="border: 1px solid rgb(204, 204, 204); font-family: tahoma,verdana,'ms sans serif'; font-size: 13px; color: rgb(102, 102, 102);" cellpadding="12"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Re : การย่อรูปลงเว็บ #3&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;แบบที่ 2 เป็นการย่อรูปด้วยการใช้คำสั่ง Image Size ร่วมกับคำสั่ง Unsharp Mask&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;การย่อด้วยวิธีนี้มีหลายขั้นตอน ผมจึงอธิบายพร้อมกับการทำ Action ไปในตัวด้วยเพราะเมื่อทำเสร็จแล้วก็สามารถเรียกคำสั่ง Action มาย่อรูปได้ด้วยการคลิ๊กเพียงครั้งเดียว ว่าแล้วก็เริ่มกันเลย&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;- ไปที่ Menu Bar เลือก Window &gt; Action&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;- คลื๊ก Create New Set(ที่เป็นรูปโฟลเดอร์)&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;- ตั้งชื่อ New Set(ในที่นี้ผมตั้งชื้อว่า Image size) แล้วคลิ๊ก OK&lt;br /&gt;&lt;br /&gt;&lt;img src="/img_ans/0906101758222.jpg" width="850" height="569" /&gt;&lt;br /&gt;&lt;br /&gt;by&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;b&gt;Webmaster&lt;/b&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;span style="color:#999999;"&gt;[on 10-06-2009, 17:58]&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="frame" style="border: 1px solid rgb(204, 204, 204); font-family: tahoma,verdana,'ms sans serif'; font-size: 13px; color: rgb(102, 102, 102);" cellpadding="12"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Re : การย่อรูปลงเว็บ #4&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;- คลิ๊ก Create New Action&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;- ตั้งชื่อ New Action(ในที่นี้ผมตั้งชื้อว่า 850px เพราะจะย่อให้เหลือขนาด 850px)&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;- คลิ๊ก Record&lt;br /&gt;&lt;br /&gt;&lt;img src="/img_ans/0906101759102.jpg" width="850" height="569" /&gt;&lt;br /&gt;&lt;br /&gt;by&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;b&gt;Webmaster&lt;/b&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;span style="color:#999999;"&gt;[on 10-06-2009, 17:59]&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="frame" style="border: 1px solid rgb(204, 204, 204); font-family: tahoma,verdana,'ms sans serif'; font-size: 13px; color: rgb(102, 102, 102);" cellpadding="12"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Re : การย่อรูปลงเว็บ #5&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;มาถึงขั้นตอนนี้จะเห็นว่าปุ่ม Begin Recording จะเป็นสีแดง หมายถึงกำลังบันทึกการทำ Action ในช่วงนี้ต้องทำขั้นตอนที่เกี่ยวกับการย่อรูปเท่านั้น อย่าคลิ๊กอย่างอื่น เพราะทุกคำสั่งที่เราทำจะถูกบันทึกทั้งหมด&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;รูปในตัวอย่างนี้มี ความกว้าง ยาวคือ 3872x2592px ผมจะทำการย่อลงให้เหลือด้านกว้าง 2500px ก่อน&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;- ไปที่ Menu Bar เลือกคำสั่ง Image &gt; Image Size&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;- เปลี่ยนค่า Width เป็น 2500px แล้วคลิ๊ก OK&lt;br /&gt;&lt;br /&gt;&lt;img src="/img_ans/0906101800032.jpg" width="850" height="569" /&gt;&lt;br /&gt;&lt;br /&gt;by&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;b&gt;Webmaster&lt;/b&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;span style="color:#999999;"&gt;[on 10-06-2009, 18:00]&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="frame" style="border: 1px solid rgb(204, 204, 204); font-family: tahoma,verdana,'ms sans serif'; font-size: 13px; color: rgb(102, 102, 102);" cellpadding="12"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Re : การย่อรูปลงเว็บ #6&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;หลังจากนั้นเราจะทำให้รูปมีความคมชัดขึ้นด้วยการใช้คำสั่ง Unsharp Mask&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;- ไปที่ Menu Bar เลือก Filter &gt; Sharpen &gt; Unsharp Mask&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;- ใส่ค่า Amount = 200%&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;- ใส่ค่า Radius = 0.2 pixels&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;- ใส่ค่า Threshold = 0 Levels&lt;br /&gt;&lt;br /&gt;&lt;img src="/img_ans/0906101801032.jpg" width="850" height="569" /&gt;&lt;br /&gt;&lt;br /&gt;by&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;b&gt;Webmaster&lt;/b&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;span style="color:#999999;"&gt;[on 10-06-2009, 18:01]&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="frame" style="border: 1px solid rgb(204, 204, 204); font-family: tahoma,verdana,'ms sans serif'; font-size: 13px; color: rgb(102, 102, 102);" cellpadding="12"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Re : การย่อรูปลงเว็บ #7&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;ย่อด้วย Image Size แล้วทำให้รูปคมชัดขึ้นด้วย Unsharp Mask สลับกันไปด้วยค่าดังนี้&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;รอบที่ 1 / Image Size ---&gt; 2500 Pixels / Unsharp Mask ---&gt; amount = 200, Radius = 0.2, Threshold = 0 /&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;รอบที่ 2 / Image Size ---&gt; 1500 Pixels / Unsharp Mask ---&gt; amount = 200, Radius = 0.2, Threshold = 0 /&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;รอบที่ 3 / Image Size ---&gt; 850 Pixels / Unsharp Mask ---&gt; amount = 200, Radius = 0.2, Threshold = 0 /&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;เมื่อทำครบขั้นตอนดังกล่าว ก็คลิ๊กที่ Stop Recording เป็นอันเสร็จการทำ Action&lt;br /&gt;&lt;br /&gt;&lt;img src="/img_ans/0906101801502.jpg" width="850" height="569" /&gt;&lt;br /&gt;&lt;br /&gt;by&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;b&gt;Webmaster&lt;/b&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;span style="color:#999999;"&gt;[on 10-06-2009, 18:01]&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="frame" style="border: 1px solid rgb(204, 204, 204); font-family: tahoma,verdana,'ms sans serif'; font-size: 13px; color: rgb(102, 102, 102);" cellpadding="12"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Re : การย่อรูปลงเว็บ #8&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;เมื่อเรามี Action แล้วทีนี้การย่อรูปก็สามารถทำได้อย่างรวดเร็วด้วยการ&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;- เปิดรูปที่ต้องการย่อขึ้นมา&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;- ไปที่ Menu Bar เลือก Window &gt; Action&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;- เลือก New Action ที่ต้องการทำ(ในที่นี้ชื่อ 850px)&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;- แล้วคลิ๊ก Play Selection(เป็นรูปสามเหลี่ยมเหมือนปุ่ม Play ทั่วๆ ไป)&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;- แล้วก็ Save for Web(ตามตัวอย่างใน คห.2)&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ที่นี้เรามาดูผลลัพธ์กันบ้าง&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;รูป A เป็นผลลัพธ์จากการ Image Size จากด้านกว้าง 3872px ลงมาเหลือ 850px ในครั้งเดียว&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;ส่วนรูป B เป็นผลลัพธ์จากการ Image Size และ Unsharp Mask&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;br /&gt;จะเห็นว่ารูปที่ค่อยๆ ย่อลงและทำ Unsharp Mask ไปพร้อมๆ กันจะมีความคมชัดมากกว่า&lt;br /&gt;&lt;br /&gt;&lt;img src="/img_ans/0906101802562.jpg" width="850" height="569" /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference:&lt;/span&gt; &lt;a href="http://www.chalaom.com/forum/?id=6"&gt;http://www.chalaom.com/forum/?id=6&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-8167143932648292639?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/8167143932648292639/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=8167143932648292639' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8167143932648292639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8167143932648292639'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/11/script.html' title='การทำ Script ย่อรูป'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-5764025623968487255</id><published>2009-11-04T04:12:00.002+07:00</published><updated>2009-11-04T04:24:56.259+07:00</updated><title type='text'>Mac on PC</title><content type='html'>&lt;div&gt;หลังจากที่เคยพยายามติดตั้ง Mac บน PC จริง ๆ โดยที่ไม่ผ่าน Virtual Machine ก็เจอปัญหาเกี่ยวกับ Driver หลายอย่าง รวมไปถึง Boot loader ด้วย วันนี้มีโอกาสได้ทดลองไฟล์ image ของ Mac บน VMWare 6.5 ก็สามารถใช้งาน Mac บน PC ได้แล้ว เป็น OSX Leopard version 10.5.5&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 800px; CURSOR: hand; HEIGHT: 512px; TEXT-ALIGN: center" alt="" src="http://lh5.ggpht.com/_PbSZogL4PjI/SvCe4XcXOsI/AAAAAAAAI8k/I_I4rJ-8zLU/s800/mac.jpg" border="0" /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;แต่รู้สึกว่ามันอืดกว่า Windows 7 อีกแฮะ -_-"&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-5764025623968487255?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/5764025623968487255/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=5764025623968487255' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/5764025623968487255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/5764025623968487255'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/11/mac-on-pc.html' title='Mac on PC'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_PbSZogL4PjI/SvCe4XcXOsI/AAAAAAAAI8k/I_I4rJ-8zLU/s72-c/mac.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-8629585015049314802</id><published>2009-11-03T23:08:00.003+07:00</published><updated>2009-11-04T16:12:25.664+07:00</updated><title type='text'>Ubuntu 9.10 on Virtual Box</title><content type='html'>หลังจากห่างหายจากการใช้ Linux ไประยะหนึ่ง วันนี้ ก็เลย load virtual Box บน Windows XP มาติดตั้ง Ubuntu 9.10 บ้าง หน้าจอการติดตั้งก็ดูสวยงามขึ้น ติดตั้งก็ไม่ยากอะไร แป๊บเดียวเสร็จ แต่หลังจากนั้น พอจะเริ่มใช้งาน ปรากฎว่าเจ้า Ubuntu ตัวนี้ มันดันหา Driver ของ การ์ดจอ Nvidia ไม่เจอ เลยกำหนดขนาดจอได้แค่ 800x600 ใช้งานขัดใจมาก&lt;br /&gt;&lt;br /&gt;ก็เลยแก้ปัญหาโดยการติดตั้งพวก Nvidia driver ต่าง ๆ ไม่ว่าจะเป็นพวก nvidia-glx-185, nvidia-xconfig, nvidia-setting และพวก dependency ของมัน แต่ก็ไม่สามารถจะใช้งานได้ ก็เลย ซ้ำร้ายไปกว่านั้นพอ restart เครื่องใหม่ จอกระพริบ ใช้งานไม่ได้เลย&lt;br /&gt;&lt;br /&gt;ผมก็เลยหาข้อมูลเพิ่มใน internet ได้ความว่าต้องติดตั้ง VBoxGuestAdditions แต่ก็ยัง งงอยู่พักหนึ่งว่าไอเจ้า VBoxGuestAdditions เนี่ย มันอยู่ตรงไหน เพราะใน web ที่ให้ download virtual box ก็ไม่มีเจ้านี่ให้ download แต่จริง ๆ แล้วนั้น VBoxGuestAdditions มันติดมาอยู่แล้ว&lt;br /&gt;&lt;br /&gt;วิธีการคือ ไปที่หน้าต่าง Virtualbox ที่เราลง Ubuntu (หลังจากที่เรา Boot เข้า Ubuntu ของเราเรียบร้อยแล้ว) จากนั้นเลือก menu  Device -&gt; Install Guest Additions (หรือกด Ctrl+D) มันก็จะ Mount CD-Rom ให้เราเรียบร้อย&lt;br /&gt;&lt;br /&gt;จากนั้นสั่ง sudo    /media/cdrom/VBoxLinuxAdditions.run&lt;br /&gt;&lt;br /&gt;แล้วก็ restart เครื่องเป็นอันเสร็จครับ ได้ display ที่ resolution สูงแล้ว :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-8629585015049314802?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/8629585015049314802/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=8629585015049314802' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8629585015049314802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8629585015049314802'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/11/ubuntu-910-on-virtual-box.html' title='Ubuntu 9.10 on Virtual Box'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-6273323352832766889</id><published>2009-10-30T17:06:00.002+07:00</published><updated>2009-10-30T17:10:36.010+07:00</updated><title type='text'>J2EE EJB OSGi</title><content type='html'>J2EE, EJB, OSGi อ่านมาตั้งนาน กว่าจะสรุปได้แบบนี้ -_-"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;J2EE&lt;/span&gt; - Application Server Specification ที่สนับสนุนการทำ Load balancing, Transaction, Resource Polling และ Message Oriented Service&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;EJB&lt;/span&gt; - Component Architecture ที่ทำงานบน Application Server (ที่กล่าวข้างบน)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;OSGi&lt;/span&gt; - Dynamic Modules (คิดง่าย ๆ ว่าเป็น jar ที่สามารถ deploy แบบ dynamic คือ start, stop ได้โดยที่ไม่กระทบกับ module อื่น ๆ )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-6273323352832766889?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/6273323352832766889/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=6273323352832766889' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/6273323352832766889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/6273323352832766889'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/10/j2ee-ejb-osgi.html' title='J2EE EJB OSGi'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-4942294039594418548</id><published>2009-10-29T17:05:00.006+07:00</published><updated>2010-01-06T17:13:06.891+07:00</updated><title type='text'>ENSEEIHT Links</title><content type='html'>&lt;span style="COLOR: rgb(0,0,153); FONT-WEIGHT: bold"&gt;ENSEEIHT Links&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,0,0); FONT-WEIGHT: bold"&gt;VPN&lt;/span&gt;&lt;span style="FONT-WEIGHT: bold"&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="COLOR: rgb(102,0,0)"&gt;:&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;a href="http://intranet.enseeiht.fr/CRI/main.shtml"&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;http://intranet.enseeiht.fr/CRI/main.shtml&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,0); FONT-WEIGHT: bold"&gt;&lt;span style="COLOR: rgb(102,0,0)"&gt;WiFi:&lt;/span&gt; &lt;/span&gt;&lt;a href="http://intranet.irit.enseeiht.fr/intranet-irit/Acces-reseau-wifi-invites-i.html"&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;http://intranet.irit.enseeiht.fr/intranet-irit/Acces-reseau-wifi-invites-i.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,0); FONT-WEIGHT: bold"&gt;&lt;span style="COLOR: rgb(102,0,0)"&gt;Printer&amp;amp;Driver:&lt;/span&gt; &lt;/span&gt;&lt;a href="http://intranet.irit.enseeiht.fr/intranet-irit/Installation_imprimante_windows_AA.html"&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;http://intranet.irit.enseeiht.fr/intranet-irit/Installation_imprimante_windows_AA.html&lt;/span&gt;&lt;/a&gt;&lt;span style="COLOR: rgb(0,0,0); FONT-WEIGHT: bold"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,0,0)"&gt;MSDN Inscription:&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt; &lt;a href="http://intranet.enseeiht.fr/CRI/msdnaa/msdnaan7.html"&gt;http://intranet.enseeiht.fr/CRI/msdnaa/msdnaan7.html&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,0,0); FONT-WEIGHT: bold"&gt;Download:&lt;/span&gt; &lt;a href="http://msdn20.e-academy.com/elms/Storefront/Home.aspx?campus=ie_enseeiht"&gt;http://msdn20.e-academy.com/elms/Storefront/Home.aspx?campus=ie_enseeiht&lt;/a&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0); FONT-WEIGHT: bold"&gt;user:&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt; warodom.werapun @ enseeiht.fr&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0); FONT-WEIGHT: bold"&gt;pass:&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt; my-weak-pass&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,0,0); FONT-WEIGHT: bold"&gt;Timetable:&lt;/span&gt; &lt;a href="http://edt.enseeiht.fr/"&gt;http://edt.enseeiht.fr/&lt;/a&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;user:&lt;/span&gt; edtn7&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;pass:&lt;/span&gt; edtn7&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,0,0); FONT-WEIGHT: bold"&gt;Contact&lt;/span&gt;&lt;span style="COLOR: rgb(102,0,0); FONT-WEIGHT: bold"&gt;:&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt; &lt;a href="https://crisvp.enseeiht.fr/front/central.php"&gt;https://crisvp.enseeiht.fr/front/central.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ใช้ Windows Server: &lt;br /&gt;# rdesktop -g 1200x900 -k fr -d CRI tsirit&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-4942294039594418548?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/4942294039594418548/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=4942294039594418548' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4942294039594418548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4942294039594418548'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/10/enseeiht-links.html' title='ENSEEIHT Links'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-7947443845647191747</id><published>2009-08-26T05:42:00.001+07:00</published><updated>2009-08-26T05:44:12.453+07:00</updated><title type='text'>Java Tutorial</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px; white-space: pre; "&gt;&lt;b&gt;Java Tutorial&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Netbeans Tutorial:  &lt;a href="http://www.netbeans.org/kb/docs/java/quickstart.html"&gt;http://www.netbeans.org/kb/docs/java/quickstart.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Java passion:  &lt;a href="http://www.javapassion.com/"&gt;http://www.javapassion.com/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Narisa Webboard: &lt;a href="http://www.narisa.com/forums/"&gt;http://www.narisa.com/forums/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-7947443845647191747?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/7947443845647191747/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=7947443845647191747' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7947443845647191747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7947443845647191747'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/08/java-tutorial.html' title='Java Tutorial'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-7938201734743983481</id><published>2009-07-27T21:49:00.003+07:00</published><updated>2009-07-27T21:55:35.750+07:00</updated><title type='text'>คุยเรื่อง MPLS</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.mpls-experts.com/images/MPLS2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 428px; height: 247px;" src="http://www.mpls-experts.com/images/MPLS2.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;MPLS (MultiProtocol Label Switching)&lt;/span&gt; ส่วนใหญ่ใช้ใน Service Provider จุดประสงค์หลัก ๆ ของตัวนี้คือ การทำ Routing ที่รวดเร็ว โดยการทำ forwarding machanism ซึ่งได้จากติด Label ให้กับ packet ทำให้มีการ forward packet ได้เร็วกว่า แบบ traditional IP ซึ่งต้องมาเทียบกับตาราง routing table (จะทำงานช้า ถ้า routing table มีขนาดใหญ่)  ส่วนการทำ QoS นั้นเป็นผลพลอยได้ หรือเป็นส่วนหนึ่ง ของ MPLS เท่านั้น (ไม่ใช่จุดประสงค์หลัก) MPLS ทำ ลูกเล่น ท่าต่างๆ ได้เยอะ&lt;br /&gt;&lt;br /&gt;ปกติแล้ว เดิมเวลา ip routing ทำงาน  มันต้อง lookup ใน routing table ซึ่ง เรียงเป็นหลายร้อยแถว  ทำให้ต้องดู ไล่ตั้งแต่ 1 - บรรทัดที่ match แต่ พอเอาเข้ามาใน โลก MPLS มันเป็น label  เหมือน ทำ index ให้มัน  มันก็จะเร็วขึ้น ซึ่ง พวก forwarding ตอนใช้ label แล้ว มันจะทำ โดย Hardware แล้วมันจะเร็วกว่า&lt;br /&gt;&lt;br /&gt;ถ้าใน service provider ที่มี internet routing เยอะๆ มาก ๆ แต่ถ้า routing น้อยๆ ไม่กี่สิบบรรทัด ก็ไม่จำเป็นเท่าไหร่ เพราะแทนที่จะเร็วขึ้น กลับต้องไปเสีย overhead เพิ่มในการแปะ label แทนมากกว่า&lt;br /&gt;&lt;br /&gt;ท่าแปลกๆ ที่ทำงานได้อีก ก็เช่น MPLS VPN เช่น เรา เป็น provider  แต่มี ลูกค้า A มีหลาย ๆ สาขา แล้วต้องการ Route ข้าม สาขา  ให้แต่ละสาขา link ถึงกันได้ เมื่อก่อน อาจจะ ใช้ lease line แต่ MPLS มันเอา route proprogate ไปให้ได้&lt;br /&gt;&lt;br /&gt;Traffic Engineering ก็ทำได้ ปกติ เวลา ip route best path มันจะคือ hop ที่สั้น  แล้ว ถ้า routing วิ่ง มันก็จะวิ่งขาเดียว แต่ MPLS TE สามารถ utilize ได้ ให้บาง traffic วิ่งเส้นนึง ให้อีก traffic วิ่งอีกเส้น ทำได้&lt;br /&gt;&lt;br /&gt;มีหลายท่า มันจะไม่เลือก best path อย่างเดียว เหมือน ip routing&lt;br /&gt;&lt;br /&gt;พอทำ TE ก็มี Fast Reroute อีก ท่า Fast Reroute นี้ downtime 50ms  ซึ่งต่ำมาก&lt;br /&gt;&lt;br /&gt;MPLS เอามาตอบโจทย์ หลายๆ อย่างที่ traditional IP ทำไม่ได้ แต่จริงๆ พื้นฐาน อยู่บน ip routing เดิมทั้งนั้น&lt;br /&gt;&lt;br /&gt;ท่ายากสุด ก็ MPLS TE + Fast Re route แล้วล่ะ เรื่องการ configure ควรจะมีพื้นฐานเกี่ยวกับ BGP มาก่อน&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Credit: &lt;/span&gt;เม้ง&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;เรียบเรียง: &lt;/span&gt;pleX&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-7938201734743983481?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/7938201734743983481/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=7938201734743983481' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7938201734743983481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7938201734743983481'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/07/mpls.html' title='คุยเรื่อง MPLS'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-4830311724475107582</id><published>2009-06-29T20:42:00.002+07:00</published><updated>2009-06-29T20:49:07.293+07:00</updated><title type='text'>Dell XPS M1330</title><content type='html'>เมื่ออาทิตย์ที่แล้ว Notebook Dell XPS ผมเจ๊ง หน้าจอแสดงเป็นแถบเส้น ๆ บางทีก็มืดไปเลย หลังจากหาข้อมูลในเน็ตอยู่นาน จึงทราบว่าเป็นปัญหาจาก Graphic Card โชคดีของผมที่ยังเหลือประกันอีก 1 เดือน แต่โชคร้ายคือ ผมอยู่ที่ฝรั่งเศส กว่าจะโทรไปเรียกช่างมาซ่อมได้ ผมเพิ่งทราบว่าผมจะต้องทำการ Transfer Services Tag จาก เมืองไทย ไปที่ฝรั่งเศสก่อน ซึ่งใช้เวลาประมาณ 1 สัปดาห์ หลังจากนั้นได้ Services Tag ใหม่แล้วจึงค่อยติดต่อไป &lt;br /&gt;&lt;br /&gt;เฮ้อ... อุตส่าห์เลือก Dell ที่มีประกัน World Wide แล้ว แต่ต้องรอเปลี่ยน Service Tag อีก (โทรไปถามที่เมืองไทย ได้คำตอบว่า ถ้าซื้อ Dell ที่ประเทศอื่นแล้ว เข้ามาประเทศไทย ช่างจะไป Service ได้เลย แต่ที่นี่ต้องเปลี่ยน :( อดใช้ Notebook ไปหลายวันเลย  )&lt;br /&gt;&lt;br /&gt;ดังนั้น ใครที่ซื้อ Dell จากไทย และจะหิ้วมาใช้ที่ฝรั่งเศสนาน ๆ ผมแนะนำให้เปลี่ยน Service Tag ไว้ตั้งแต่เนิ่น ๆ จะได้ไม่ต้องรอซ่อมนะครับ&lt;br /&gt;&lt;br /&gt;เปลี่ยนได้ที่ Link นี้ครับ =&gt;&lt;br /&gt;&lt;a href="http://www.dell.com/content/topics/reftopic.aspx/pub/ccare/transfer_intl?c=us&amp;amp;cs=19&amp;amp;l=en&amp;amp;s=biz" target="_blank"&gt;http://www.dell.com/content/&lt;wbr&gt;topics/reftopic.aspx/pub/&lt;wbr&gt;ccare/transfer_intl?c=us&amp;amp;cs=&lt;wbr&gt;19&amp;amp;l=en&amp;amp;s=biz&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ยังดี ที่ประกันยังไม่หมด&lt;br /&gt;&lt;br /&gt;เบอร์โทรติดต่อ Dell ฝรั่งเศส: 08 25 38 71 29 (ไม่โทรฟรีด้วย)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-4830311724475107582?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/4830311724475107582/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=4830311724475107582' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4830311724475107582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4830311724475107582'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/06/dell-xps-m1330.html' title='Dell XPS M1330'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-1238613831304631671</id><published>2009-06-24T22:43:00.000+07:00</published><updated>2009-06-24T22:44:19.646+07:00</updated><title type='text'>ความแตกต่าง that กับ which</title><content type='html'>&lt;p&gt;&lt;strong&gt;That&lt;/strong&gt; - "That" is used  with restrictive phrases. Restrictive            phrases are phrases that are essential to the sentence. &lt;/p&gt;         &lt;p&gt;&lt;strong&gt;Which&lt;/strong&gt; - "Which" is used with nonrestrictive phrases. Nonrestrictive            phrases are phrases that states non essential information. A phase is  nonrestrictive            phase if the phase can be from the sentence.&lt;/p&gt;         &lt;p style="font-weight: bold;"&gt;Examples:&lt;/p&gt;         &lt;ul&gt;&lt;li&gt;The shirt  that you lent me is in my bag.&lt;/li&gt;&lt;li&gt;The shirt, which is red, is in my bag.&lt;/li&gt;&lt;li&gt;The house that I wanted to buy has been sold.&lt;/li&gt;&lt;li&gt;The house, which I didn't want to buy, has been sold.&lt;/li&gt;&lt;li&gt;The food store that I go to all the time is closed today.&lt;/li&gt;&lt;li&gt;The store, which is near my house, is not open today. &lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Ref:&lt;/span&gt; http://www.english-the-easy-way.com/Determiners/That_Which.htm&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-1238613831304631671?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/1238613831304631671/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=1238613831304631671' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1238613831304631671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1238613831304631671'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/06/that-which.html' title='ความแตกต่าง that กับ which'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-8831212300765422521</id><published>2009-06-24T20:40:00.003+07:00</published><updated>2009-06-24T20:52:08.921+07:00</updated><title type='text'>IPSec on Linux</title><content type='html'>&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;How to use IPSec on Linux&lt;/span&gt;&lt;/span&gt; (in the same machine)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Create IPSec configuration file&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;root@vosges:/home/wwerapun/Desktop# cat ipsec.conf.esp.1&lt;br /&gt;flush;&lt;br /&gt;spdflush;&lt;br /&gt;add 147.127.240.91 127.0.0.1 esp 2000 -E 3des-cbc "12341234abcdabcd12341234" -A hmac-sha1 "kamekamekamekamekame";&lt;br /&gt;add 127.0.0.1 147.127.240.91 esp 2001 -E 3des-cbc "12341234abcdabcd12341234" -A hmac-sha1 "kamekamekamekamekame";&lt;br /&gt;spdadd 147.127.240.91 127.0.0.1  any -P in ipsec esp/transport//require;&lt;br /&gt;spdadd 127.0.0.1 147.127.240.91 any -P out ipsec esp/transport//require;&lt;br /&gt;&lt;br /&gt;root@vosges:/home/wwerapun/Desktop# cat ipsec.conf.esp.2&lt;br /&gt;flush;&lt;br /&gt;spdflush;&lt;br /&gt;add 147.127.240.91 127.0.0.1 esp 2000 -E 3des-cbc "12341234abcdabcd12341234" -A hmac-sha1 "kamekamekamekamekame";&lt;br /&gt;add 127.0.0.1 147.127.240.91 esp 2001 -E 3des-cbc "12341234abcdabcd12341234" -A hmac-sha1 "kamekamekamekamekame";&lt;br /&gt;spdadd 147.127.240.91 127.0.0.1  any -P out ipsec esp/transport//require;&lt;br /&gt;spdadd 127.0.0.1 147.127.240.91 any -P in ipsec esp/transport//require;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;--------------- Description ---------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;flush = &lt;/span&gt; delete previous SAs&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;spdflush  = &lt;/span&gt;delete previous SPD&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;add =&lt;/span&gt; add SA, SA is uni-directional, then you have to add 2 ways.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2000 =&lt;/span&gt; SPI (actually, it's any number, you have to specific in the same number from 2 machines)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;spdadd =&lt;/span&gt; add SPD , any = encrypt any protocol,&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;notice that&lt;/span&gt; =&gt;&lt;br /&gt; "out"  = packet out from 147.127.240.91 to 127.0.0.1&lt;br /&gt; "in" = packet in (enter) from 147.127.240.91 to 127.0.0.1&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Ask linux to use IPSec using setkey command:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;root@vosges:/home/wwerapun/Desktop# setkey -f ipsec.conf.esp.1&lt;br /&gt;&lt;br /&gt;root@vosges:/home/wwerapun/Desktop# setkey -f ipsec.conf.esp.2&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. Check the result&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;root@vosges:/home/wwerapun/Desktop# setkey -D&lt;br /&gt;127.0.0.1 147.127.240.91&lt;br /&gt;    esp mode=transport spi=2001(0x000007d1) reqid=0(0x00000000)&lt;br /&gt;    E: 3des-cbc  31323334 31323334 61626364 61626364 31323334 31323334&lt;br /&gt;    A: hmac-sha1  6b616d65 6b616d65 6b616d65 6b616d65 6b616d65&lt;br /&gt;   &lt;br /&gt;        ....&lt;br /&gt;&lt;br /&gt;root@vosges:/home/wwerapun/Desktop# setkey -PD&lt;br /&gt;127.0.0.1[any] 147.127.240.91[any] any&lt;br /&gt;    in ipsec&lt;br /&gt;    esp/transport//require&lt;br /&gt;    created: Jun 24 14:53:38 2009  lastused:                    &lt;br /&gt;    lifetime: 0(s) validtime: 0(s)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4. Test by using&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;root@vosges:/home/wwerapun/Desktop# tcpdump src 147.127.240.91&lt;br /&gt;tcpdump: verbose output suppressed, use -v or -vv for full protocol decode&lt;br /&gt;listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;wwerapun@vosges:~$ ping -I eth0 127.0.0.1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The result should be =&gt;&lt;br /&gt;&lt;br /&gt;root@vosges:/home/wwerapun/Desktop# tcpdump src 147.127.240.91&lt;br /&gt;tcpdump: verbose output suppressed, use -v or -vv for full protocol decode&lt;br /&gt;listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes&lt;br /&gt;15:46:01.811793 IP vosges.enseeiht.fr &gt; localhost: ESP(spi=0x000007d0,seq=0xe), length 100&lt;br /&gt;15:46:01.812070 IP vosges.enseeiht.fr.38577 &gt; aquitaine.enseeiht.fr.domain: 27037+ PTR? 91.240.127.147.in-addr.arpa. (45)&lt;br /&gt;15:46:01.813388 IP vosges.enseeiht.fr.60957 &gt; aquitaine.enseeiht.fr.domain: 21218+ PTR? 123.80.127.147.in-addr.arpa. (45)&lt;br /&gt;15:46:02.812633 IP vosges.enseeiht.fr &gt; localhost: ESP(spi=0x000007d0,seq=0xf), length 100&lt;br /&gt;15:46:03.823621 IP vosges.enseeiht.fr &gt; localhost: ESP(spi=0x000007d0,seq=0x10), length 100&lt;br /&gt;15:46:06.810131 arp reply vosges.enseeiht.fr is-at 00:22:19:12:0a:4b (oui Unknown)&lt;br /&gt;&lt;br /&gt;...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-8831212300765422521?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/8831212300765422521/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=8831212300765422521' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8831212300765422521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8831212300765422521'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/06/ipsec-on-linux.html' title='IPSec on Linux'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-1220189219276587063</id><published>2009-06-24T20:37:00.002+07:00</published><updated>2009-06-24T20:39:56.637+07:00</updated><title type='text'>IKE</title><content type='html'>There are 2 phases in IKE:&lt;br /&gt;&lt;br /&gt;Phase 1: Create key that used in IPSec&lt;br /&gt;- Diffie Hellman&lt;br /&gt;- Pre shared key to encrypt session key&lt;br /&gt;- Asymetric key&lt;br /&gt;&lt;br /&gt;Phase 2: Use the key that previous created to encrypt SA for IPSec&lt;br /&gt;- Note: SA is uni-directional, then it needs to create SA in 2 ways.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-1220189219276587063?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/1220189219276587063/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=1220189219276587063' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1220189219276587063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1220189219276587063'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/06/ike.html' title='IKE'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-7333201129652562669</id><published>2009-06-24T20:29:00.003+07:00</published><updated>2009-06-24T20:37:10.957+07:00</updated><title type='text'>Diffie-Hellman Key Exchange</title><content type='html'>(a)^b^c = (a)^c^b  = (a)^bc&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A puts a session key in side the box, encrypt with Ka and sends to B&lt;br /&gt;&lt;br /&gt; A                    ------------------  B&lt;br /&gt;&lt;br /&gt;[]Ka ------------&gt;&lt;br /&gt;[]                        ----------------&gt;&lt;br /&gt;&lt;br /&gt;B gets the box, encrypts with Kb and sends to A&lt;br /&gt;&lt;br /&gt; &lt;------------[]Ka                       &lt;br /&gt; &lt;------------[]Kb &lt;br /&gt;&lt;br /&gt;A gets the box, decrypts with Ka and sends to B&lt;br /&gt;&lt;br /&gt;[]   -------------&gt;&lt;br /&gt;[]Kb---------&gt;&lt;br /&gt;&lt;br /&gt;B gets the box, descrypts with Kb and get the session key.&lt;br /&gt;&lt;br /&gt;----------------[]&lt;br /&gt;----------------[]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-7333201129652562669?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/7333201129652562669/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=7333201129652562669' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7333201129652562669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7333201129652562669'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/06/diffie-hellman-key-exchange.html' title='Diffie-Hellman Key Exchange'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-8668380697538383334</id><published>2009-06-22T23:28:00.002+07:00</published><updated>2009-06-22T23:30:43.321+07:00</updated><title type='text'>Video Capture บน Unbuntu 8</title><content type='html'>ใช้ xvidcap ในการ configure&lt;br /&gt;ถ้ากด run แล้วมัน segmentation fault ให้ลอง disable audio ออกไป&lt;br /&gt;&lt;br /&gt;เวลาจะ capture หน้าจอคอมพิวเตอร์ ให้ใช้ อีกโปรแกรมช่วย&lt;br /&gt;คือ # recordmydesktop /tmp/myComputer.mpeg&lt;br /&gt;เวลาอัดเสร็จแล้ว ก็กด Control + C (กดครั้งเดียว แล้วมันจะ encoding video ให้)&lt;br /&gt;ถ้าเผลอไปกด 2 ครั้ง ที่อัดมาก็หายไปเลย ระวังด้วยละ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-8668380697538383334?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/8668380697538383334/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=8668380697538383334' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8668380697538383334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8668380697538383334'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/06/video-capture-unbuntu-8.html' title='Video Capture บน Unbuntu 8'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-6753226255718893166</id><published>2009-06-22T21:09:00.002+07:00</published><updated>2009-06-22T21:14:35.439+07:00</updated><title type='text'>Although / in spite of / despite</title><content type='html'>Although แปลว่า แม้ว่า ใช้เชื่อมประโยคที่ มีความหมายขัดแย้งกัน&lt;br /&gt;&lt;br /&gt;ส่วนคำว่า In spite of มีความหมายเหมือนกับ Although ต่างกันที่ว่า In spite of ตามด้วย Noun ส่วน Although ตามด้วยประโยค&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ตัวอย่าง&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="datetext"&gt;&lt;span style="font-size: 12pt; color: blue;" lang="EN-US"&gt;&lt;b&gt;&lt;b&gt;We went out &lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;b&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; color: green;" lang="EN-US"&gt;although&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; color: blue;" lang="EN-US"&gt; it was raining.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;ส่วนคำว่า In spite of มีความหมายเหมือนกับ Although ต่างกันที่ว่า In spite of ตามด้วย Noun ส่วน Although ตามด้วยประโยค&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ตัวอย่าง&lt;/span&gt;&lt;b&gt;&lt;span class="datetext"&gt;&lt;b&gt;&lt;b&gt;&lt;span style="font-size: 12pt; color: blue;" lang="EN-US"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span class="datetext"&gt;&lt;b&gt;&lt;b&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; color: green;" lang="EN-US"&gt;&lt;br /&gt;In spite of&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; color: blue;" lang="EN-US"&gt; &lt;/span&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; color: green;" lang="EN-US"&gt;the rain&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; color: blue;" lang="EN-US"&gt;, we enjoyed our holiday.&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;สุดท้าย Despite เหมือนกับ In spite of คือ ตามด้วย Noun แต่ต่างกันตรงที่ต้องมี of เข้ามาด้วย เขียนสั้นกว่า &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ตัวอย่าง&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="datetext"&gt;&lt;span style="font-size: 12pt; color: blue;" lang="EN-US"&gt;&lt;b&gt;&lt;b&gt;She wasn't well, but &lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;b&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; color: green;" lang="EN-US"&gt;despite&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; color: blue;" lang="EN-US"&gt; &lt;/span&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; color: green;" lang="EN-US"&gt;this&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; color: blue;" lang="EN-US"&gt; she went to work, (&lt;/span&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; color: red;" lang="EN-US"&gt;not&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; color: blue;" lang="EN-US"&gt; 'despite of this')&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;คล้าย ๆ กับ  Because /  Because of นะแหละ&lt;br /&gt;Because + ประโยค , Because of + คำนาม&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-6753226255718893166?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/6753226255718893166/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=6753226255718893166' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/6753226255718893166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/6753226255718893166'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/06/although-in-spite-of-despite.html' title='Although / in spite of / despite'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-7502780146480850664</id><published>2009-06-22T21:04:00.002+07:00</published><updated>2009-06-22T21:09:21.669+07:00</updated><title type='text'>Not only ... but also</title><content type='html'>การใช้ not only... but also นั้น มีความหมายว่า ไม่เพียงแต่.... แต่ยัง.... อีกด้วย&lt;br /&gt;&lt;br /&gt;ซึ่งใช้สำหรับสร้าง คำนาม หรือ สรรพนาม ที่เชื่อมกัน (หรือถ้าเป็นประโยค ก็ต้องเป็นประโยค ทั้งคู่)&lt;br /&gt;ซึ่งหลาย ๆ  คนยังใช้ผิด กันอยู่  ลองดูตัวอย่างประกอบ&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Wrong: &lt;/strong&gt;He not only painted the "Annunciation" but also [painted] the "Mona Lisa."&lt;br /&gt;&lt;strong&gt;Right:&lt;/strong&gt; He painted not only the "Annunciation" but also the "Mona Lisa."&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Wrong:&lt;/strong&gt; He not only played for Washington but also for Detroit and Pittsburgh.&lt;br /&gt;&lt;strong&gt;Right:&lt;/strong&gt; He played not only for Washington but also for Detroit and Pittsburgh.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Wrong:&lt;/strong&gt; He not only coached soccer but also tennis.&lt;br /&gt;&lt;strong&gt;Right:&lt;/strong&gt; He coached not only soccer but also tennis.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Right:&lt;/strong&gt; He taught not only physics and chemistry but also algebra and geometry.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Right:&lt;/strong&gt; He not only taught five periods a day but also coached three sports.&lt;br /&gt;&lt;br /&gt;อย่าใช้ให้ผิดละ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-7502780146480850664?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/7502780146480850664/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=7502780146480850664' title='1 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7502780146480850664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7502780146480850664'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/06/not-only-but-also.html' title='Not only ... but also'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-8890636559095830816</id><published>2009-05-28T17:00:00.002+07:00</published><updated>2009-05-28T17:03:06.419+07:00</updated><title type='text'>QoS + PDP</title><content type='html'>&lt;span style="font-weight: bold;"&gt;QoS &lt;/span&gt;&lt;br /&gt;-&gt; Mobile Node in UMTS -&gt; SGSN + GGSN&lt;br /&gt;-&gt; WLAN -&gt; IEEE 802.11e&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PDP = Packet Data Protocol &lt;/span&gt;&lt;br /&gt;PDP = Packet Data Protocol หรือพูดง่าย ๆ ก็คือ โครงสร้าง packet ข้อมูล เช่นพวก IP, X.25 และ Frame Relay เป็นต้น ที่อยู่ที่ Serving GPRS Support Node (SGSN) และ Gateway GPRS Support Node (GGSN) ซึ่งจะเก็บ ข้อมูล session ของผู้ใช้งาน เมื่อผู้ใช้งานได้เข้ามาใช้งานในระบบ ก่อนที่ผู้ใช้ (mobile node) ต้องการที่จะใช้งาน GPRS ผู้ใช้จะต้อง เชื่อมต่อ เข้ากับระบบเครือข่าย และ ทำการ active PDP context ซึ่งการ activate PDP context ก็คือ การสร้าง โครงสร้าง packet ข้อมูล ใน SGSN ที่ผู้ใช้ กำลังใช้งานอยู่ในขณะนั้น และ GGSN จะคอยเก็บจุดที่ผู้ใช้ได้ทำการเชื่อมต่อกับระบบ&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;สรุปง่าย ๆ&lt;/span&gt;&lt;br /&gt;PDP Context = IP Address ของ Mobile Node + QoS Profile ( e.g., maximum delay, jitter etc..)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-8890636559095830816?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/8890636559095830816/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=8890636559095830816' title='1 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8890636559095830816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8890636559095830816'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/05/qos-pdp.html' title='QoS + PDP'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-4120922550313283549</id><published>2009-05-19T22:12:00.003+07:00</published><updated>2009-05-19T22:17:36.146+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASCII Accent'/><title type='text'>Charmap + Ascii</title><content type='html'>ปรกติแล้วผมเป็นคนที่พิมพ์ได้รวดเร็ว แต่พอมาอยู่ที่ฝรั่งเศส เจอ Layout Keyboard แบบฝรั่งเศสทำให้พิมพ์ช้าลงไปมาก แทบจะเรียกว่าจิ้มเลยก็ว่าได้ แต่ถ้าจะ switch กับมาใช้ Layout แบบ US. ก็จะติดปัญหาที่พิมพ์อักขระ บางตัว ของภาษาฝรั่งเศสไม่ได้ ก็เลยใช้วิธีพิมพ์จาก Ascii code ของมันซะเลย หมดเรื่อง&lt;br /&gt;วิธีพิมพ์ตัวอักษร โดยใช้ Ascii code นั้นก็ง่ายนิดเีดียว เพียงแค่ กดปุ่ม Alt ค้างไว้ แล้วก็ตามด้วยรหัส Ascii&lt;br /&gt;&lt;br /&gt;ดังตัวอย่าง ข้างล่าง =&gt;&lt;br /&gt;&lt;br /&gt;backquote = Alt + 96&lt;br /&gt;a\ = Alt + 0224&lt;br /&gt;a/ = Alt + 0225&lt;br /&gt;c   = Alt + 0231&lt;br /&gt;e\ = Alt + 0232&lt;br /&gt;e/ = Alt + 0233&lt;br /&gt;&lt;br /&gt;หากอยากรู้เพิ่มเติมว่า Ascii ของอักขระพิเศษตัวอื่น ๆ คืออะไร สามารถดูได้จาก&lt;br /&gt;โปรแกรม charmap  ใน windows ได้เลยครับ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-4120922550313283549?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/4120922550313283549/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=4120922550313283549' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4120922550313283549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4120922550313283549'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/05/charmap-ascii.html' title='Charmap + Ascii'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-4303474325796628910</id><published>2009-02-23T22:38:00.003+07:00</published><updated>2009-02-23T22:46:22.084+07:00</updated><title type='text'>The Future Tenses</title><content type='html'>เริ่มจากภาษาอังกฤษก่อน คำว่า "จะ" มี 2 คำ คือ will กับ be going to&lt;br /&gt;แตกต่างกันดังนี้&lt;br /&gt;&lt;br /&gt;เราใช้ will เมื่อตัดสินใจว่ากำลังจะทำบางอย่างในขณะที่กำลังพูดอยู่ แต่การใช้ be going to เป็นการใช้เมื่อมีการเตรียมการล่วงหน้า&lt;br /&gt;เปรียบเทียบการใช้&lt;br /&gt;-  &lt;span style="font-style: italic;"&gt;  " George phoned while you were out "  " OK. I'll phone him back "&lt;/span&gt;&lt;br /&gt;แต่ &lt;span style="font-style: italic;"&gt; " George phoned while you were out " " Yes, I know. I'm going to phone him back "&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;หากเปรียบเทียบกับภาษาฝรั่งเศส&lt;/span&gt;&lt;br /&gt;Will -&gt; Futur Simple&lt;br /&gt;Be going to -&gt; Futur proche (Aller + Infinitif)  วิธีจำง่าย ๆ ก็คือ aller แปลว่าไป ก็คือ going to ^_^&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;สรุปอีกครั้ง&lt;/span&gt;&lt;br /&gt;Will -&gt; ไม่คิดไว้ก่อน,  คาดการไม่มีหลักฐาน  =&gt;  futur sim -&gt; เกิดไกล ออกไป, สั่ง, ใช้กับภาษาเขียนมากกว่าพูด&lt;br /&gt;going to -&gt; วางแผนไว้ก่อน, คาดการมีหลักฐาน  =&gt; futur proche -&gt; เกิดเร็ว ๆ นี้, ตั้งใจจะทำ, ใช้กับภาษาพูดมากกว่าเขียน&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ตัวอย่างเช่น&lt;/span&gt;&lt;br /&gt;I will have a baby.  -&gt; J'aurai un enfant.  (อาจจะมีลูกวันพรุ่ง หรือ วันอื่น ๆ อีกนาน ในอนาคต ไม่ได้วางแผนคาดคิดไว้ คือ มีลูกแน่ ๆ แต่ยังไม่รู้ว่าวันไหน อีกนานแค่ไหน)&lt;br /&gt;I'm going to have a baby. -&gt; Je vais avoir un enfant.   (จะมีลูกเร็ว ๆ นี้แน่ ๆ วางแผนไว้แล้ว ไม่ได้  อาจมีหลักฐาน เช่นหลังจากไปพบแพทย์เสร็จ ก็พูดประโยคนี้ โดยใช้ Futur Proche ได้เลย )&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ทิ้งท้าย&lt;/span&gt;&lt;br /&gt;Futur proche -&gt; aller -&gt; be going to -&gt; วางแผนไว้แล้ว เกิดเร็วนี้ ๆ&lt;br /&gt;Futur simple -&gt; will -&gt; ไม่ได้วางแผนไว้ ระยะเวลาที่ จะทำ นานกว่า futur proche&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-4303474325796628910?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/4303474325796628910/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=4303474325796628910' title='2 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4303474325796628910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4303474325796628910'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/02/blog-post.html' title='The Future Tenses'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-2321889951212924853</id><published>2009-01-22T17:21:00.002+07:00</published><updated>2009-01-22T17:26:06.365+07:00</updated><title type='text'>Packet Data Protocol (PDP)</title><content type='html'>&lt;span&gt;&lt;b&gt;Packet Data Protocol (PDP)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;PDP ก็คือ protocol ที่ใช้ในการแลกเปลี่ยนข้อมูลระหว่าง User Equipment (UE) กับ Network เช่น P-CSCF ใน IMS โดยมีวัตถุประสงค์หลัก 2 อย่างคือ&lt;br /&gt;1. กำหนด IPv4 / IPv6 Address ให้กับ Mobile terminal คล้าย ๆ กับ DHCP&lt;br /&gt;2. กำหนด logical connection กับ QoS profile และกำหนดค่า parameter ต่าง ๆ เพื่อใช้ใน PDP Context  ของ Mobile terminal ในเครือข่าย UMTS&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-2321889951212924853?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/2321889951212924853/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=2321889951212924853' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/2321889951212924853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/2321889951212924853'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/01/packet-data-protocol-pdp.html' title='Packet Data Protocol (PDP)'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-355987938493638159</id><published>2009-01-21T23:57:00.002+07:00</published><updated>2009-01-22T00:05:44.785+07:00</updated><title type='text'>Quality of Services #2</title><content type='html'>มีบทความทางวิชาการเกีึ่ยวกับ QoS ออกมามากมาย โดยเฉพาะ IntServ กับ Diffserv แต่ ผมก็เพิ่งรู้ไม่นานมานี้เองว่า&lt;br /&gt;&lt;ul&gt;&lt;li&gt;IntServ ใช้วิธีการจองเส้นทางก่อนที่จะทำ QoS ซึ่งมีความยุ่งยากซับซ้อนมาก ซึ่งจะเอามา deployment ใช้งานจริง ๆ แบบ multi-domain ไม่ได้ พูดง่าย ๆ ก็คือ Intserv เป็น idea อย่างหนึ่งในการทำ QoS มีการ implementation จริง ๆ ที่สามารถนำไปใช้ได้ แต่ในโลกของ internet ปัจจุบันนี้ ไม่ได้มีการนำ Intserv ไปใช้งานแต่อย่างใด (นอกจากจะมีใครเอาไปใช้ส่วนตัว)  หรือพูดง่าย ๆ ว่ามีเฉพาะ idea + implementation แต่ไม่มีการนำไป deployment&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;DiffServ ใช้วิธีการให้คะแนน โดยติด Tag (รวมถึงการ Mark ที่ ToS ของ IP header ด้วย) วิธีการนี้ไม่ซับซ้อนมาก มีการ deployment ไปใช้งานจริง แต่ก็เฉพาะ ระหว่าง ISP บางแห่งเท่านั้น user ตามบ้าน ๆ อย่างเรา ไม่สามารถกำหนดเองได้ โดยมีการ กำหนด policy ระหว่าง border router ด้วยกัน&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;ปิดท้าย:  &lt;/span&gt;&lt;br /&gt;อ่าน QoS มาได้ระยะหนึ่ง นึกว่า จะมีใช้งานจริงกันเยอะ แต่จริง ๆ QoS นั้นเป็นเพียงแค่ทฤษฎีเป็นส่วนใหญ่ ส่วนที่ใช้งานจริง  ยกตัวอย่างเช่น Skype ที่ว่าเสียงชัด ๆ ตอนแรกผมก็เข้าใจว่ามีการทำ QoS ด้วย แต่จริง ๆ แล้ว ที่ประสิทธิภาพของมันดีนั้น เกิดจากการที่ตัว Application ของมันเอง ใช้ bandwidth ที่น้อย (เพราะมีการ compression ที่ดี) รวมถึง การใช้ สถาปัตยกรรมแบบ P2P ด้วย ทำให้เสียงดังฟังชัด &lt;br /&gt;&lt;br /&gt;แต่ถ้าพูดในเรื่องของการทำ QoS กันจริง ๆ ก็ยังไปได้ไม่ไกล ก็หวังว่าสักวันหนึ่งเราคงจะมี QoS ดี ๆ ใช้กันนะครับ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-355987938493638159?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/355987938493638159/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=355987938493638159' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/355987938493638159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/355987938493638159'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/01/quality-of-services-2.html' title='Quality of Services #2'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-2870784004693618164</id><published>2009-01-19T20:26:00.007+07:00</published><updated>2009-01-19T20:36:14.832+07:00</updated><title type='text'>Policy-based Admission Control</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Policy-based Admission Control&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PEP&lt;/span&gt; - Policy Enforcement Point เป็นจุดตรวจสอบข้อมูล ซึ่งจะรับ RSVP request มาจาก router (จากผู้ใช้ที่ขอบริการ QoS) โดยใน request นั้นจะระบุข้อมูลต่าง ๆ สำหรับ flow ข้อมูล เช่น ต้องการ bandwidth เท่าไร จากนั้นก็จะส่งต่อไปให้ PDP ตัดสินใจ โดยส่ง Policy request ไปให้&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PDP&lt;/span&gt; - Policy Decision Point จะตรวจสอบ request กับ resource ที่มีอยู่ในปัจจุบัน รวมถึง policy ของ user คนนั้น ๆ ว่าจะยอมให้ใช้หรือไม่ โดยส่ง Policy response ตอบกลับมาหา PEP&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_PbSZogL4PjI/SXSBfj5zO-I/AAAAAAAAGEA/HoGn4caR-jQ/s1600-h/pdp.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 279px;" src="http://4.bp.blogspot.com/_PbSZogL4PjI/SXSBfj5zO-I/AAAAAAAAGEA/HoGn4caR-jQ/s320/pdp.jpg" alt="" id="BLOGGER_PHOTO_ID_5292997841280777186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;COPS&lt;/span&gt; เป็น protocol การเชื่อมต่อระหว่าง PDP และ PEP โดยใช้ใน IMS R7 แต่ปัจจุบันได้ถูกยกเลิกและใช้ Diameter (RFC 3588) แทนแล้ว&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-2870784004693618164?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/2870784004693618164/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=2870784004693618164' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/2870784004693618164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/2870784004693618164'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/01/policy-based-admission-control.html' title='Policy-based Admission Control'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_PbSZogL4PjI/SXSBfj5zO-I/AAAAAAAAGEA/HoGn4caR-jQ/s72-c/pdp.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-8016868815813320982</id><published>2009-01-19T19:46:00.003+07:00</published><updated>2009-01-19T20:03:47.748+07:00</updated><title type='text'>JAIN-SIP #1</title><content type='html'>&lt;span style="font-weight: bold;"&gt;JAIN-SIP คืออะไร?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Jain sip คือ Java api integrated network หรือ เรียกง่าย ๆ ว่า เป็น API ของ java ที่ใช้ในการเีขียนโปรแกรมในระดับ low-level ที่ใช้จัดการ signaling multimedia ที่ใช้งาน SIP protocol นั่นเอง&lt;br /&gt;&lt;br /&gt;Jain sip แตกย่อยออกมา มากมาย เช่น jain sip servlet, jslee ไว้ มีโอกาสได้ทดลองจะเอามาเขียนไว้นะครับ&lt;br /&gt;&lt;br /&gt;เรามาทดลองเล่น jain-sip เลยดีกว่า&lt;br /&gt;1.  load jain-sip จาก https://jain-sip.dev.java.net/ จากนั้นก็ upzip ออกมา&lt;br /&gt;&lt;br /&gt;2.  load apache ant มาจาก http://ant.apache.org/ จากนั้นก็ unzip ออกมา แล้วก็ทำการ set environment ดังนี้&lt;br /&gt;=&gt; ANT_HOME=C:\Program Files\Java\apache-ant-1.7.1&lt;br /&gt;PATH= path เก่าแล้วก็เพิ่ม C:\Program Files\Java\apache-ant-1.7.1\bin เข้าไป&lt;br /&gt;&lt;br /&gt;3. เข้าไปใน folder E:\java\sip\jain-sip\ (ที่ได้ unzip jain-sip ไว้) แล้ว ant (make) มันซะเลย&lt;br /&gt;&lt;br /&gt;4.  ทดลอง run IMS application เข้าไปที่ folder E:\java\sip\jain-sip\src\examples\ims&lt;br /&gt;แล้วก็สั่ง ant shootme&lt;br /&gt;&lt;br /&gt;5.  จะเจอ error ดังนี้ =&gt;&lt;br /&gt;&lt;blockquote&gt;       [java] javax.sip.PeerUnavailableException: The Peer SIP Stack: gov.nist.javax.sip.SipStackImpl could not be instantiated. Ensure the Path Name has been set&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;6.  หลังจากที่ผมใช้เวลาอยู่หลายชั่วโมง ในการ หา error นี้ ก็ได้ความรู้ใหม่ โดยการทำดังนี้&lt;br /&gt; สั่ง ant shootme -debug  จะพบว่ามันหา lib ไม่เจอ ดังนั้นจึงต้องแก้ lib path ให้มันใหม่ โดยการ แก้ file E:\java\sip\jain-sip\src\examples\ims\build.xml&lt;br /&gt;&lt;br /&gt;จากเดิม&lt;br /&gt;&amp;lt property name="log4j_jar" value="${root}/lib/${log4j}" &amp;gt&lt;br /&gt;&amp;lt property name="junit_jar" value="${root}/lib/${junit}" &amp;gt&lt;br /&gt;&lt;br /&gt;เป็น&lt;br /&gt;&amp;lt property name="log4j_jar" value="${root}/${log4j}" &amp;gt&lt;br /&gt;&amp;lt  property name="junit_jar" value="${root}/${junit}" &amp;gt&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;7.  คราวนี้ก็ สั่ง  ant shootme  แล้วก็เปิด console อีกหน้าต่างสั่ง ant shootist&lt;br /&gt;เราก็จะเห็น IMS message วิ่งวนไป ๆ มา ๆ หน้า console แล้ว&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_PbSZogL4PjI/SXR5VP0Ym_I/AAAAAAAAGD4/aY7E6Ix4V9s/s1600-h/jain1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 221px; height: 320px;" src="http://3.bp.blogspot.com/_PbSZogL4PjI/SXR5VP0Ym_I/AAAAAAAAGD4/aY7E6Ix4V9s/s320/jain1.jpg" alt="" id="BLOGGER_PHOTO_ID_5292988867997637618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ส่วนเรื่องความหมายของ message ขอแยกไว้เป็นบทความหน้าแล้วกันนะครับ  :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-8016868815813320982?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/8016868815813320982/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=8016868815813320982' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8016868815813320982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8016868815813320982'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/01/jain-sip-1.html' title='JAIN-SIP #1'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_PbSZogL4PjI/SXR5VP0Ym_I/AAAAAAAAGD4/aY7E6Ix4V9s/s72-c/jain1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-9109209888143249442</id><published>2009-01-19T17:11:00.006+07:00</published><updated>2009-01-21T23:57:20.083+07:00</updated><title type='text'>Quality of Services #1</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Quality of Services (QoS)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ความหมายในมุมมองความคิดผม ก็คือ การจัดการ IP packet ให้ทันกับเวลาตามข้อจำกัดของโปรแกรมนั้น ๆ และ มีการรับประกันว่าจะสามารถทำตามที่ขอได้&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Mechanisms for QoS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;มี 2 กระบวนการด้วยกันคือ&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Integrated Services (Intserv)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   ใช้หลักการทำ QoS โดย จัดการกับ packet flow ซึ่ง router จะต้องสนับสนุนการทำงาน&lt;br /&gt;2 ฟังก์ชันนี้คือ (คล้าย ๆ ใน ns2 เลย)&lt;br /&gt; - the classifier: เป็นตัว mark IP packet เพื่อที่จะให้ router จัดการแยกประเภทของ packet&lt;br /&gt; - the scheduler: เป็นตัวแยก packet ออกจากกัน ตามที่ classifier ทำการ mark ไว้&lt;br /&gt;&lt;br /&gt;ในกระบวนการของ Intserv นั้น แบ่ง services ออกเป็น controlled load service [RFC 2211] กับ guaranteed service [RFC 2212]  ก่อนจะเริ่มทำ Intserv จะต้องมีการจองเส้นทางก่อน เรียกว่า Resource Reservation Protocol (RSVP) เพื่อที่จะมั่นใจว่า ได้รับการให้บริการที่ดีพอ  ซึ่งก็คล้าย ๆ กับแบบ Best-effort (ไม่มีการจัดการ QoS) แต่รับประกัน delay ตราบใดที่เส้นทางยังไม่เปลี่ยน และ อีกอย่างก็คือ router จะต้องมีความสามารถในการสร้าง RSVP ใหม่ หรือ Reject ทิ้ง โดยพิจารณาจาก ความสามารถในการจัดการ packet รวมถึง bandwidth ที่มีอยู่ เราเรียกว่า Admission control&lt;br /&gt;&lt;br /&gt;เนื่องจากต้องมีการจองเส้นทางในการทำ RSVP ดังนั้น การส่ง ข้อมูลจะวิ่งเส้นทางนั้นตลอด  การทำ RSVP จะเป็นแบบ uni นั้นก็คือ ต้องกำหนดทั้งขาไปและขากลับ โดย ผู้ส่งสามารถกำหนด RSVP request ไปยัง ปลายทาง และ ผู้รับก็จองเส้นทางกลับมาด้วย RESV&lt;br /&gt;&lt;br /&gt;ปัญหาใหญ่ของ IntServ คือ scalability เพราะเครือข่ายต้องแบ่งทรัพยากรบางส่วนไปใช้กับ QoS routing โดยเฉพาะ ถ้าใช้งาน QoS routing กันมาก ๆ ทรัพยากรก็จะหมดไป นอกนี้ การจองทรัพยากรด้วย RSVP ไม่ได้กระทำอย่างถาวร จึงต้องมีการส่งแพคเก็ตของ RSVP ไปยังเราท์เตอร์เพื่อรีเฟรชการจองทรัพยากรตลอดเวลา จึงมี processing overhead สูง ปกติแล้ว IntServ จึงจำกัดให้ใช้งานเฉพาะใน Autonomous System (AS) เดียวกันเท่านั้น&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Differentiated Services (Diffserv)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Diffserv ทำงานต่างกับ Intserv คือ แทนที่จะ คอยจัดการ flow ที่มีการจองเส้นทางเฉพาะ สำหรับ packet แต่ Diffserv นั้นจะจัดการในส่วนของ border router เท่านั้น โดย packet ที่วิ่งเข้าใน border router จะถูกติด tag เรียกว่า Differentiated Service Code Point (DSCP) จาก นั้น router ที่ได้รับ packet ที่ถูกส่งมา ก็จะดูเฉพาะใน DSCP packet ซึ่งถูก configuration ไว้ใน router ก่อนที่จะมีการใช้งาน Diffserv อยู่แล้ว โดยระบุคาพารามิเตอรตัวหนึ่ง คือ PHB (Per-Hop Behavior) สําหรับแพ็กเกตนั้น ๆ ทั้งนี้แพ็กเกตที่มี PHB เดียวกันจะถือวาอยูในกลุมเดียวกันและมีอัตราการสงผานแพ็กเกตไปตามโนดคอมพิวเตอรตาง ๆ เทากัน ดัง นั้นPHB จะเกี่ยวของกับการจัดการบัฟเฟอรรวมถึงกลไกในการใหลําดับของแพ็กเกตนั่นเอง&lt;br /&gt;&lt;br /&gt;ชื่อก็บอกอยู่แล้วว่า เป็น Code Point (จาก DSCP) ดังนั้น เวลาพิจารณา มันก็จะใส่คะแนน ให้กับ packet แล้วเปรียบเทียบกับ rule ที่ตั้งไว้ใน router เหมือนกับเป็นการจัดการ priority&lt;br /&gt;&lt;br /&gt;ซึ่งสามารถ กำหนดใน Type of Services (ToS) ของ IP header&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-9109209888143249442?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/9109209888143249442/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=9109209888143249442' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/9109209888143249442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/9109209888143249442'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/01/quality-of-services.html' title='Quality of Services #1'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-5055429693125384310</id><published>2009-01-04T23:14:00.007+07:00</published><updated>2009-01-04T23:36:52.442+07:00</updated><title type='text'>CAF Remboursement</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_PbSZogL4PjI/SWDinsfAJmI/AAAAAAAAGDA/7Jgcg4PXKb8/s1600-h/Logo.gif"&gt;&lt;img style="cursor: pointer; width: 87px; height: 88px;" src="http://1.bp.blogspot.com/_PbSZogL4PjI/SWDinsfAJmI/AAAAAAAAGDA/7Jgcg4PXKb8/s400/Logo.gif" alt="" id="BLOGGER_PHOTO_ID_5287475134116931170" border="0" /&gt;&lt;/a&gt;  &lt;span style="font-weight: bold;"&gt;CAF Remboursement&lt;/span&gt; &lt;span style="font-style: italic;"&gt;(แปลว่าเงินที่ CAF จะคืนให้เรา)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;วันนี้รู้สึกว่าอยู่บ้านแล้วมันแคบลงเรื่อย ๆ อันเนื่องมาจากของใช้ภายในบ้านมันเยอะขึ้นตามกาลเวลา ก็เลยอยากอยู่บ้านที่มันกว้างกว่านี้ ยิ่งได้ข่าวว่า ถ้ามีลูกมาอยู่ด้วยเนี่ย (ก็คืออยู่บ้าน &gt; 3 คน ) พื้นที่ในบ้านจะต้อง &gt; 27 ตร.ม.  ปัจจุบันมี 22 ตร.ม. ก็เลยอยากรู้ว่า CAF จะคืนเงินมาให้เราเท่าไร?&lt;br /&gt;&lt;br /&gt;ก็เลยลองไปคำนวนใน &lt;a href="http://www.caf.fr/%20"&gt;http://www.caf.fr/ &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;กรณีอยู่ 2 คน  โดยที่ ผมเป็นนักเรียน และ ผู้ติดตามไม่ได้ทำงาน&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;ค่าเช่าสูงสุดจะได้ไม่เกิน 440 ยูโร และ CAF จะคืนเงินมาให้เรา 304 ยูโร โดยประมาณ&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;กรณีอยู่ 3 คน  โดยที่ ผมเป็นนักเรียน และ ผู้ติดตามไม่ได้ทำงาน + ลูก&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;ค่าเช่าสูงสุดจะได้ไม่เกิน 490 ยูโร และ CAF จะคืนเงินมาให้เรา 350 ยูโร โดยประมาณ&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ถ้าเช่าบ้านที่แพงกว่านี้ ส่วนต่างที่เกิน 440 ยูโร (หรือ 490 ยูโร) นั้น&lt;br /&gt;CAF จะไม่ช่วย เราต้องออกเงินเอง...แป่ว!!....&lt;br /&gt;&lt;br /&gt;โอ้ว.. ฝันสลายเลย ตอนแรกผมอยู่บ้าน 413 ยูโร ได้คืนมา 292 ยูโร ก็ประมาณ 70% ถ้าอยู่บ้าน 700 ยูโร ก็จะได้คืนมาประมาณ 490 ยูโร แบบนี้ ย้ายดีกว่าแฮะ แต่พอไปคำนวนดูจริง ๆ โอ้ว... บ้าน 700 ยูโร ก็ได้คืนแค่ 350 ยูโร (ถ้ามีลูก) หรือถ้าอยู่ 2 คนก็ได้คืน 304 ยูโรเองครับ ไม่ไหว ประมาณเดือนละ เกือบ 2 หมื่นบาท รวมค่าไฟกับค่า internet ก็เกินพอดี อยู่แคบ ๆ แบบเก่าดีกว่า -_-"&lt;br /&gt;&lt;br /&gt;ในความเป็นจริงนั้น CAF ต้องการช่วยเหลือ นักเรียนที่ยังไม่ได้ทำงาน ให้สามารถเรียนหนังสือได้ แต่ก็ไม่ได้จะให้อยู่อย่างหรูหรา อลังการ ก็เลยกำหนดกฎเกณฑ์การช่วยไว้แบบนี้  ซึ่งจริง ๆ แล้ว ช่วยขนาดนี้ ถือว่าดีมากแล้วครับ ถ้าเป็นประเทศอื่น ไม่มีนะเนี่ย จะบอกให้&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-5055429693125384310?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/5055429693125384310/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=5055429693125384310' title='2 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/5055429693125384310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/5055429693125384310'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/01/caf-remboursement.html' title='CAF Remboursement'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_PbSZogL4PjI/SWDinsfAJmI/AAAAAAAAGDA/7Jgcg4PXKb8/s72-c/Logo.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-6037914559759137561</id><published>2009-01-04T16:34:00.010+07:00</published><updated>2009-01-04T16:53:03.464+07:00</updated><title type='text'>Chocolate!!</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_PbSZogL4PjI/SWCFkyLISeI/AAAAAAAAGC4/mF2vMvRHPTk/s1600-h/DSC00764.JPG"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_PbSZogL4PjI/SWCFkyLISeI/AAAAAAAAGC4/mF2vMvRHPTk/s320/DSC00764.JPG" alt="" id="BLOGGER_PHOTO_ID_5287372829523200482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;นาน ๆ จะได้มีโอกาสกิน chocolate Hi-so ราคาบ้านเราเม็ดละ 15 บาท อย่างเต็มคราบเสียที ก็เลยคว้า Ferrero และ Lindt รวมทุก ๆ แบบมากินให้สะใจไปเลย พอดีว่า ที่ Carefour สาขา Portet มันลดราคา 50% ก็เลยซื้อมาเต็มที่ ซึ่งเฉลี่ยแล้วราคาเม็ดละ 5 บาท หมดเงินไป 1500+ บาท จาก ราคาเต็มประมาณ 3000+ บาท&lt;br /&gt;&lt;table border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="center"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_PbSZogL4PjI/SWCEPFjDWbI/AAAAAAAAGCw/Ip268OsCbjU/s1600-h/DSC00768.JPG"&gt;&lt;img style="cursor: pointer; width: 150px; height: 200px;" src="http://2.bp.blogspot.com/_PbSZogL4PjI/SWCEPFjDWbI/AAAAAAAAGCw/Ip268OsCbjU/s200/DSC00768.JPG" alt="" id="BLOGGER_PHOTO_ID_5287371357255063986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;br /&gt;&lt;br /&gt;แล้วก็ได้ความรู้ใหม่ ภาษาฝรั่งเศส คำว่า "Remise" แปลว่า "ลดราคา"&lt;br /&gt;&lt;br /&gt;ราคา chocolate ที่ซื้อทั้งหมดในรูปก็เท่ากับราคาที่ลดนะแหละ เพราะว่ามันลด 50%  บางคนซื้อ Lindt กล่องใหญ่ ใส่เต็มตระกล้าเลย เป็นครั้งแรกที่ซื้อ chocolate เยอะขนาดนี้นะเนี่ย เพราะราคาถูกกว่าที่เมืองไทยมาก&lt;br /&gt;&lt;br /&gt;แต่หลังจากได้กินแล้ว ผมชอบ Ferrero มากกว่า Lindt แฮะ :b อร่อย ๆ ๆ&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-6037914559759137561?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/6037914559759137561/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=6037914559759137561' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/6037914559759137561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/6037914559759137561'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/01/chocolate.html' title='Chocolate!!'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_PbSZogL4PjI/SWCFkyLISeI/AAAAAAAAGC4/mF2vMvRHPTk/s72-c/DSC00764.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-5156241981356254946</id><published>2009-01-02T06:23:00.004+07:00</published><updated>2009-01-02T06:31:47.050+07:00</updated><title type='text'>VoIP Programs</title><content type='html'>&lt;span style="font-weight: bold;"&gt;โปรแกรมที่ใช้ในการโทรศัพท์ต่างประเทศราคาประหยัด&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Skype:  &lt;a href="http://www.skype.com/prices/"&gt;http://www.skype.com/prices/&lt;/a&gt;&lt;br /&gt;VoIP Discount: &lt;a href="http://www.voipdiscount.com/en/calling-rates.html"&gt;http://www.voipdiscount.com/en/calling-rates.html&lt;/a&gt;&lt;br /&gt;VoIP Buster: &lt;a href="http://www.voipbuster.com/en/calling-rates.html"&gt;http://www.voipbuster.com/en/calling-rates.html&lt;/a&gt;&lt;br /&gt;VoIP Zoom: &lt;a href="http://www.voipzoom.com/en/calling-rates.html"&gt;http://www.voipzoom.com/en/calling-rates.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;หมายเหตุ:&lt;/span&gt; โปรแกรม VoIP ทั้งหมด เป็นโปรแกรมเดียวกัน แต่จัด promotion ต่างกัน&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-5156241981356254946?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/5156241981356254946/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=5156241981356254946' title='2 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/5156241981356254946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/5156241981356254946'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/01/voip-programs.html' title='VoIP Programs'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-7216938209200405927</id><published>2009-01-01T19:50:00.005+07:00</published><updated>2009-07-22T21:54:17.074+07:00</updated><title type='text'>Guitar Clip Videos</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Electric Guitar:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Enter Sand Man (Metallica)&lt;br /&gt;&lt;a href="http://plex.coe.psu.ac.th/mp3/video/EnterSandMan.wmv"&gt;http://plex.coe.psu.ac.th/mp3/video/EnterSandMan.wmv&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Two Love (Zeal)&lt;br /&gt;&lt;a href="http://rattana.org/coe9/mambo/webboard/index.php?act=Attach&amp;amp;type=post&amp;amp;id=7476"&gt;http://rattana.org/coe9/mambo/webboard/index.php?act=Attach&amp;amp;type=post&amp;amp;id=7476&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;----------------------------&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Classical Guitar&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Song: Merriy We Roll Along&lt;br /&gt;&lt;a href="http://rattana.org/coe9/mambo/webboard/index.php?act=Attach&amp;amp;type=post&amp;amp;id=4838"&gt;http://rattana.org/coe9/mambo/webboard/index.php?act=Attach&amp;amp;type=post&amp;amp;id=4838&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Song: HM Blues (King Thai song)&lt;br /&gt;&lt;a href="http://rattana.org/coe9/mambo/webboard/index.php?act=Attach&amp;amp;type=post&amp;amp;id=4294"&gt;http://rattana.org/coe9/mambo/webboard/index.php?act=Attach&amp;amp;type=post&amp;amp;id=4294&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;-----------------------------&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Acoustic Finger Style Guitar&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Song: Stay (Thai song)&lt;br /&gt;&lt;a href="http://plex.coe.psu.ac.th/mp3/video/Fon1.wmv"&gt;http://plex.coe.psu.ac.th/mp3/video/Fon1.wmv&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Song: Wijaidaika (Thai song)&lt;br /&gt;&lt;a href="http://plex.coe.psu.ac.th/mp3/video/Fon1.wmv"&gt;http://plex.coe.psu.ac.th/mp3/video/Ong1.wmv&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Song: Finger Dance&lt;br /&gt;&lt;a href="http://rattana.org/coe9/mambo/webboard/index.php?act=Attach&amp;amp;type=post&amp;amp;id=9135"&gt;http://rattana.org/coe9/mambo/webboard/index.php?act=Attach&amp;amp;type=post&amp;amp;id=9135&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Song: Yesterday - Beatle&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=BIHH3lQhuE0"&gt;http://www.youtube.com/watch?v=BIHH3lQhuE0 &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Song: The God Father&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=0TnXkQkx5Ds"&gt;http://www.youtube.com/watch?v=0TnXkQkx5Ds&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Song: Borsalino (Testing camera version)&lt;br /&gt;&lt;a href="http://plex.coe.psu.ac.th/mp3/video/bosalino.wmv"&gt;http://plex.coe.psu.ac.th/mp3/video/bosalino.wmv&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-7216938209200405927?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/7216938209200405927/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=7216938209200405927' title='2 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7216938209200405927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7216938209200405927'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2009/01/guitar-clip-videos.html' title='Guitar Clip Videos'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-7922865701153667795</id><published>2008-12-18T15:06:00.002+07:00</published><updated>2008-12-18T15:12:57.225+07:00</updated><title type='text'>Renew Récépissé</title><content type='html'>ในวันศุกร์นี้ Récépissé ของบีที่ได้มา มันใกล้จะหมดอายุแล้ว ทาง prefecture ก็ไม่ยอมส่งจดหมายมาให้สักกะที ไม่รู้ว่าช้าที่อะไร ก็เลยลองไป prefecture เองเลย เพื่อไปขอ Renew Récépissé ซึ่งใช้เอกสาร 3 อย่างคือ&lt;br /&gt;1. Récépissé ตัวจริง&lt;br /&gt;2. Passport ตัวจริง&lt;br /&gt;3. รูปถ่าย ขนาดเกือบ 2 นิ้ว&lt;br /&gt;&lt;br /&gt;ก็ต่อแถวประมาณเกือบ ๆ 1 ชม. (ซึ่งถือว่าเร็วแล้ว) ก็ถึงคิวเรา เค้าก็ได้ทำ Récépissé ให้ใหม่ โดยแจ้งว่าที่ยังไม่ได้รับ จม. ให้ไปรับ Carte de sejour ก็เพราะว่า ผมไม่ได้เอา จม. จาก prefecture ที่ต้องติดแสตมป์ 5 ดวง (275 ยูโร) ให้ Prefecture  อ้าว?? แล้วกรูจะให้มรึงได้ตอนไหนวะเนี่ย? ก็หลังจากไปตรวจร่างกายที่ ANAEM เค้าก็บอกว่าให้รอ จม. เลย แล้วทาง ANAEM ก็ไม่ได้เก็บจม. นี้ไปด้วย ไม่เหมือนตอนของผมเอง ที่ได้ carte de sejour ที่ ANAEM เลย&lt;br /&gt;&lt;br /&gt;เอาวะ ก็ไม่เป็นไร เพราะจะถามเค้าว่ายื่นเอกสารนี้ตอนไหนก็ลำบาก ก็ได้ข้อสรุปมาว่า เค้าบอกให้รออีกไม่น่าจะเกิน 1-2 เดือน ทาง prefecture จะส่ง จม. ให้ไปรับ carte de sejour ตัวจริง และก็ ออก Récépissé ให้ใหม่ ก็ O.K. ไว้ได้จม. จากทาง prefecture ค่อยมารับ carte de sejour อีกรอบครับ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-7922865701153667795?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/7922865701153667795/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=7922865701153667795' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7922865701153667795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7922865701153667795'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2008/12/renew-rcpiss.html' title='Renew Récépissé'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-4648698678080836597</id><published>2008-12-18T14:57:00.003+07:00</published><updated>2008-12-18T15:06:39.932+07:00</updated><title type='text'>ตากุ้งยิง</title><content type='html'>เมื่อสัปดาห์ที่ผ่านมา บีเป็นตากุ้งยิง ผมก็ให้กิน Amoxyciline + ยาหยอดตา ที่พกมาจากเมืองไทย + เอาน้ำอุ่นประคบ ผ่านไปประมาณ 4-5 วัน ก็หายเป็นปรกติ ก็นึกว่าไม่เป็นไรแล้ว สักพัก กลับมาเป็นใหม่ ผมก็เลยตัดสินใจพาบีไปหาหมอ&lt;br /&gt;&lt;br /&gt; ช่วงนั้นโชคดี ที่เราจัดการ LMDE เสร็จเรียบร้อยพอดี ทำให้เราสามารถเบิกค่าใช้จ่ายได้ทั้งหมด เมื่อไปหา กว่าจะได้ตรวจก็รอคิวประมาณเกือบ ชม. การพูดคุยก็ค่อนข้างลำบาก เพราะ คิดว่าหมอพูดภาษาอังกฤษได้ ปรากฎว่า หมอดันพูดภาษาอังกฤษไม่ได้ ต้องไปหาล่าม คือ คนไข้ คนอื่น มาช่วยพูดให้แทน (อะไรวะ อุตส่าห์เรียนจบหมอ พูดอังกฤษไม่ได้)&lt;br /&gt;&lt;br /&gt;เมื่อตรวจเสร็จหมอก็จ่ายยาหยอดตา กับ ยาทาตามาให้ ก่อนที่จะมาหาหมอ ผมได้สอบถามเพื่อนที่เป็นหมอ และ เภสัช มาได้ คำแนะนำว่าให้กินยา Diclociline ซึ่งจัดเป็นยา Anti-Biotic (ยาฆ่าเชื้อ) ที่มีผลกับโรคตาแดงโดยตรง ส่วน Amoxy นั้น ช่วยเพียงแค่ประมาณ 20% เท่านั้น แต่หมอ ไม่ยอมจ่ายยาตัวนี้ให้ เหมือนกับที่เพื่อนบอกว่าไว้เลย ว่าหมอที่นี่ แม่ง จ่ายยาฆ่าเชื้อยาก ต้องให้เราเป็นหนัก ๆ ก่อน คือ ลองให้ร่างการรักษาตัวเอง ก่อน  ถ้าไม่ไหวจริง ๆ จึงจะจ่าย&lt;br /&gt;&lt;br /&gt;เมื่อตรวจเสร็จแล้วก็จ่ายค่าตรวจไป 22 ยูโร  โดยผมออกเงินไปก่อน แล้วค่อยไปเบิกกับ LMDE คืนทีหลัง ก็ได้ไบสั่งยา จากนั้นก็นำไปซื้อยาที่ร้านขายยาทั่วไป ก็ได้ยามาฟรีเลย ร้านเคยยา พอเห็นประกันที่ทำกับ LMDE เค้าก็ไม่เก็บเงินเลย คนในร้านขายยาก็ยังพูดภาษาอังกฤษได้บ้างดีจังเลย ค่ายาหยอดตา กับ ยาทา ประมาณ 10 ยูโร นี่ ถ้าเทียบกับบ้านเราเนี่ย ไม่น่าจะเกิน 100 บาทนะ&lt;br /&gt;&lt;br /&gt;หลังจากทาไปได้สักพัก อาการก็ดีขึ้นเหมือนจะหายแล้ว แต่ก็ยังไม่หายสักกะที เดี๋ยววันพรุ่งนี้จะลองไปหาหมออีกรอบครับ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-4648698678080836597?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/4648698678080836597/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=4648698678080836597' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4648698678080836597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/4648698678080836597'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2008/12/blog-post.html' title='ตากุ้งยิง'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-8622322234879462200</id><published>2008-11-01T16:31:00.003+07:00</published><updated>2008-11-01T16:39:17.313+07:00</updated><title type='text'>STOP Work!</title><content type='html'>บีหยุดทำงานประจำที่ร้านตั้งแต่เมื่อวานแล้ว สาเหตุเนื่องเพราะว่า วีซ่าบี เป็นวีซ่าที่เป็นแบบผู้ติดตาม ซึ่งในแบบฟอร์มการขอ Carte de sejour เขียนไว้ชัดเจนเลยว่า ห้ามทำงาน (นอกจากแอบทำ) แต่ทางเจ้าของร้านเค้าก็กลัวว่าจะถูกรัฐบาลจำได้ ซึ่งโทษหนักถึงขั้นปิดร้าน + ยึดใบกิจการเลยทีเดียว บีก็เลยไม่ได้ทำงานที่นั่นประจำ แต่ก็รับงานมาทำที่บ้าน เช่น ห่อเกี้ยว เป็นต้น ก็ยัง O.K. มีรายได้นิดหน่อย &lt;br /&gt;&lt;br /&gt;ถ้ามาในฐานะ นักศึกษาจะ สามารถทำงานได้ (ผมสามารถทำงานได้แต่จำกัดชั่วโมง) แต่ผมก็ลองคิด ๆ ดู ถึงแม้มาในฐานะ นักศึกษา ก็ลำบากอยู่ดี (ยิ่งถ้านับตั๋วเครื่องบินกลับไปยิ่งไม่คุ้มใหญ่) ปรกติแล้ว วีซ่าจะไม่สามารถเปลี่ยนประเภทได้ นอกจากจะกลับไปขอใหม่ที่เมืองไทย ซึ่งขั้นตอนนี้แค่คิดก็ไม่คุ้มแล้ว และถ้ามาแบบนักเรียน ก็คงต้องไปสมัครเรียนที่ มิไค (โรงเรียนสอนภาษาฝรั่งเศสในตูลูส) เพราะว่าค่าลงทะเบียนจะถูกกว่าที่อื่น ประมาณ 300 ยูโร ต่อปี  แต่ก็ไม่ใช่ว่าเข้าได้ง่าย ๆ อย่างน้อยก็ต้องพูดภาษาฝรั่งเศสได้พอควร และ หากสถานะนักศึกษาหมดหมดเมื่อไหร่ก็ต้องถูกส่งกลับประเทศอยู่ดี และ การขอเงินคืนค่าบ้านจาก CAF บีมาในสถานะผู้ติดตาม ผมสามารถขอเงินจาก CAF ได้เยอะพอสมควร เท่าที่คำนวนดูใน web ของ CAF ก็เกิน 50% เลยทีเดียว แต่ต้องรอดูอีกที ว่า CAF จะให้เท่ากับที่คำนวนใน web หรือเปล่า ดังนั้นเมื่อคำนวนดูแล้ว ถ้ามาในสถานะผู้ติดตามได้ ก็มาในสถานะนี้ จะดีกว่าครับ หางานมาทำที่บ้านเล็ก ๆ น้อย ๆ + ใช้จ่ายประหยัด ๆ ตามเศรษฐกิจพอเพียง ของในหลวงของเรา ก็อยู่ได้ครับ :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-8622322234879462200?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/8622322234879462200/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=8622322234879462200' title='2 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8622322234879462200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8622322234879462200'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2008/11/stop-work.html' title='STOP Work!'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-8913967598803949794</id><published>2008-11-01T16:09:00.002+07:00</published><updated>2008-11-01T16:18:34.258+07:00</updated><title type='text'>Titre de sejour</title><content type='html'>วันที่ 31 ตุลาคม 2551 ผมมีนัดกับ ANAEM ให้ไปตรวจสุขภาพเพื่อขอ Carte de sejour ( หรือ Titre de sejour นั่นแหละ อันเดียวกัน) เหมือนกับครั้งที่ผมพาบี เราเดินทางกันไปตั้งแต่ 8.30 น. ไปถึงที่ ANAEM ที่สถานี La Vache (Ligne B) เวลา 8.55 น. ผมก็ตรวจสุขเหมือนกับที่บีได้ตรวจ คราวนี้เวลาคุยกับเจ้าหน้าที่ก็สบาย ๆ เลย เพราะรู้แล้ว ว่าจะได้อะไรบ้าง ไม่มีปัญหาอะไร เมื่อให้ข้อมูลเรียบร้อย ผมก็ไป X-Rays ปอด แล้วก็รอรับฟิล์ม X-rays จากนั้น เค้าก็บอกว่าให้รอรับเจ้าตัวใบรับรองสุขภาพ ผมก็รออยู่สักพักหนึ่งเข้าก็เรียกเข้าไปรับในห้อง และแล้วสิ่งที่ไม่คาดฝันก็เกิดขึ้น ปรากฎว่าผมได้รับ Titre de sejour วันนั้นเลยครับ งง แฮะ ไม่ต้องไปต่อแถวรอที่ Prefecture อีก ซึ่ง Titre de sejour มีอายุ 1 ปี เมื่อหมดอายุเมื่อไหร่ ก็ต้องไปติดต่อ Prefecture เพื่อขอเจ้า Titre de sejour ใหม่อีกรอบ คราวนี้ผมก็เตรียมนำเจ้าเอกสารตัวนี้ไปยื่นให้ CAF เพื่อขอเงินค่าบ้านคืน  ก็หลายยูโรอยู่ทีเดียว&lt;br /&gt;&lt;br /&gt;   ANAEM เนี่ย ก็จัดเป็นที่หนึ่งที่ให้บริการดีเลยทีเดียวครับ ขอชมเชย :-)&lt;br /&gt;&lt;br /&gt;  จากน้ันก็ไป LMDE ต่อ เพราะค่าประกันสุขภาพของบี ยังไม่เรียบร้อย เมื่อไปที่ LMDE เค้าก็บอกว่าต้องให้ CROUS ทำจดหมายรับรองให้บี มาอีกครั้งหนึ่ง ถึงจะได้ ผมก็เลยต้องไปที่ CROUS ใหม่ ก็คุยกันลำบากพอสมควร เนื่องจากฟังไม่ค่อยรู้เรื่อง แต่ก็สรุปใจความได้ว่า CROUS จะทำจดหมายไปให้ LMDE แล้วให้ผมรออีก 2 สัปดาห์จึงไปติดต่อ LMDE อีกที ซึ่งคิดว่าคราวนี้คงจะได้ประกันสุขภาพของบีแล้ว และจะมี update ใหม่นะครับ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-8913967598803949794?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/8913967598803949794/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=8913967598803949794' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8913967598803949794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8913967598803949794'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2008/11/titre-de-sejour.html' title='Titre de sejour'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-6087556523562180664</id><published>2008-10-22T00:35:00.004+07:00</published><updated>2008-10-22T00:42:54.741+07:00</updated><title type='text'>New Job!!</title><content type='html'>วันนี้ก็เป็นวันแรกที่  ผมได้พาบีไปลองงานที่ร้าน สุโขทัย ณ ตูลูส ซึ่งงานหลักของบีก็คือช่วยแม่ครัวเตรียมอาหาร + ล้างจาน (แต่จะเน้นล้างจานมากกว่า) ส่วนผมก็ไปช่วย ๆ เค้าเพื่อตีสนิทไว้ก่อน และยังได้ดูลาดราว เพื่อจะรับ job เล่นดนตรี ซึ่งหลังจากที่คุยกับเจ้าของร้าน (ชื่อพี่ Ed) เค้าก็ O.K. ครับ ผมต้องกลับมาเตรียมเพลงไว้ก่อนจะไป audition จริง ๆ  คงได้แกะเพลงฝรั่งเศสเล่นกันมั่งละวะ งานนี้&lt;br /&gt;&lt;br /&gt;ในร้านบรรยากาศตกแต่งสวยงาม ในแบบไทย ๆ พนักงานในร้านมี กันประมาณ 3-4 คน ตอนเที่ยง ๆ วันนี้ คนก็ยังมาไม่เยอะมากนัก ทยอยกันมาเรื่อย ๆ  ประมาณ 9 คน ก็สั่งอาหารแบบเป็นชุด เป็นส่วนมาก แขกส่วนมากเป็นคนฝรั่งเศส หลังจากที่เค้าทานอาหารไทย เท่าที่สังเกตส่วนใหญ่ก็ชอบนะ  ทานกันหมดเกลี้ยงเกือบทุกคน ทานเหลือบางคนเท่านั้น แสดงว่าร้านนี้ อนาคต น่าจะ O.K.  ผมก็เลยเชียร์ให้บีตกลงทำงาน ก็เข้างาน 11.30 น. เลิกก็ประมาณ บ่าย 3 โมง  วันนี้หลังจากเลิกงาน ก็ได้รับเงินค่าจ้าง 10 ยูโร + แขกให้ทิป อีก 1 ยูโร ก็ดีนะ ดีกว่าอยู่เปล่า ๆ ได้เงิน ได้งาน ได้รู้จักคน ได้ประสบการณ์ด้วย หลังจากนี้ไป บี ก็มีงานทำแล้ว เย้..  :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-6087556523562180664?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/6087556523562180664/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=6087556523562180664' title='3 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/6087556523562180664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/6087556523562180664'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2008/10/new-job.html' title='New Job!!'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-1026432981175276579</id><published>2008-10-21T01:08:00.003+07:00</published><updated>2008-10-21T01:31:21.476+07:00</updated><title type='text'>VACCINE</title><content type='html'>ช่วงเช้า ผมก็เอา LMDE ที่ได้รับจดหมายเมื่อวันศุกร์ ไปให้หมอกรอกเอกสาร คล้าย ๆ กับว่า เราเลือกหมอไว้ก่อน หากเป็นอะไร ก็มาหาหมอคนนี้ได้ ก็เลยหาคลีนิคหมอที่ใกล้ ๆ กับ มหาวิทยาลัย เข้าไปปุ๊บก็ต้องนั่งรอ ร้อ รอ......รอ รอประมาณเกือบ 1 ชม. เข้าไปหาหมอก็กรอกเอกสาร ใช้เวลาประมาณ 5 นาที เสร็จ (แม่ง กรูต้องรอนานตั้ง 1 ชม.) เพราะว่าที่นี่ ค่าแรงมันแพงมาก หมอก็เลยไม่ได้จ้างใครเลย เค้าทำเองทุกอย่าง ตั้งแต่ นัดคนไข้ ตรวจคนไข้ เขียนใบสั่งยา จ่ายยา ทุกอย่าง ยิ่งหมอฟัน ยิ่งมือโปร ใหญ่ sucker สำหรับดูดน้ำลายพี่แกยังถือเองเลยน่ะ หมอฟันบ้านเราสู้ได้ป่าว หึ ๆ ๆ&lt;br /&gt;&lt;br /&gt;ช่วงบ่าย หลังจากที่ไปจัดการธุระที่ ANAEM เสร็จเมื่อวันศุกร์ ผมก็พาบีไปฉีดยาป้องกันโรค ที่ Centre de Vaccination International ณ. Service Communal D'Hygiene et de sante เพื่อขอ Certificat de vaccinations จริง ๆ แล้วก็ไม่ได้อยากฉีดมากนักหรอก แต่เพื่อความชัวร์ในการขอ Carte de sejour เพราะ ในจดหมายมันบอกว่า ต้องเอาใบรับรองวัคซีนมาแสดงด้วย ก็เลย ฉีดซะเลยไหน ๆ ก็ฉีดฟรี  ก่อนที่จะฉีดก็นั่งรอประมาณเกือบ ๆ ชม. ซึ่งไม่ถือว่านานมาก (เพราะไม่ได้นัดมาก่อนด้วย) สำหรับการมาติดต่อหน่วยงานราชการของฝรั่งเศส ผมคิดว่าพอรับได้ครับ (ไอที่รอนาน บริการห่วยที่สุดก็เป็น Prefecture นี่แหละครับ)  หมอที่ฉีดยา ก็ใจดี คุยดี แล้วก็มือเบามาก ก่อนฉีด บี กลัวเข็มมาก แต่พอฉีด ไม่เจ็บเลย สบายหายห่วงครับ เนื่องจากห่างหายจากการฉีดยามานานเกิน 10 ปี จึงโดนไป 2 เข็ม และต้องเว้นช่วง 1 เดือน วันนี้เลยฉีดแค่เข็มเดียวก่อน แล้ว วันที่ 20 พย. 51 หรือหลังจากวันนั้น ค่อยมาต่ออีกเข็ม  ฮา ๆ&lt;br /&gt;&lt;br /&gt;ระหว่างเดินหาร้านก็ผ่านร้านขายกีต้าร์ด้วย ไว้ว่าง ๆ จะเอารูปมา upload ให้ดู (ติดตามได้ใน &lt;a href="http://guitarist.vze.com/"&gt;http://guitarist.vze.com/&lt;/a&gt; ) &lt;br /&gt;&lt;br /&gt;ช่วงเย็น รุ่นพี่มาบอกว่า ร้านอาหารไทย "&lt;strong&gt;สุโขทัย&lt;/strong&gt;" เข้ากำลังหาคนทำงาน ผมก็เลย พาบี ไปสมัครงานซะเลย วันพรุ่งนี้จะเป็นวันทดลองงาน ไม่รู้ว่าจะผ่านหรือเปล่า ไว้ได้ผลยังไง จะมาเล่าให้ฟังอีกทีนะครับ วันนี้ไว้แค่นี้ก่อนละกัน&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-1026432981175276579?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/1026432981175276579/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=1026432981175276579' title='1 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1026432981175276579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1026432981175276579'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2008/10/blog-post.html' title='VACCINE'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-1333004854294651953</id><published>2008-10-18T15:07:00.005+07:00</published><updated>2008-10-22T00:34:54.123+07:00</updated><title type='text'>ANAEM</title><content type='html'>เมื่อวาน เมื่อถึงกำหนดต้องไปเอาไปรับรองการตรวจร่างกายที่ ANAEM ผมก็ทำการหาเส้นทางจาก &lt;a href="http://maps.google.com/"&gt;http://maps.google.com&lt;/a&gt;  ก็พบว่า ต้องนั่งรถไฟฟ้าสาย B ไปลงที่ สถานี La Vache&lt;br /&gt;&lt;br /&gt;ผมและ บี ออกเดินทางตอน บ่ายกว่า ๆ โชคดี วันนั้นเป็นวันที่ จดหมาย LMDE มาถึงพอดี และก็ได้ใช้ด้วย&lt;br /&gt;&lt;br /&gt;ผมนั่งรถไฟฟ้าไปที่สถานี La Vache ตามที่ Google บอกไว้ จากนั้นก็เดินต่อไปที่ ANAEM ดูจากในแผนที่ก็ค่อนข้างไกล แต่พอไปถามคนแถวนั้น ก็พบว่า ไม่ไกลมาก เดินไป 5 นาทีก็ถึงแล้ว สถานที่กว้างใหญ่สบาย เข้าไปปุ๊บ เข้าก็ให้นั่งรอแป๊บนึง แล้วก็เดินเข้าไปคุยกับพนักงาน เค้าก็พูดภาษาอังกฤษได้นิดหน่อย ผมก็เดาออกบ้างไม่ออกบ้าง แต่เค้าก็ใจดี ไปนำเพื่อนที่พูดภาษาอังกฤษได้ดี (แถมน่ารักด้วย) จึงสื่อสารกันเข้าใจ :-)&lt;br /&gt;&lt;br /&gt;ก่อนที่จะไป ANEAM ผมก็ซื้ออากรแสตมป์ (timbre) 275 ยูโร คนขาย ก็งง ทำไม ซื้อตั้ง 5 ดวง (ดวงละ 55 ยูโร) ปรกติ ซื้อกันดวงเดียว สำหรับ 1 ดวงใช้กรณีของนักเรียนครับ ถ้าเป็นบุคคลทั่วไป ทำครั้งแรกใช้ 5 ดวง ซึ่ง แสตมป์นี้ เราจะใช้ตอนที่ไปรับ Carte de sejour ครับ ไม่ได้ใช้ตอนที่ไป ANEAM&lt;br /&gt;&lt;br /&gt;สรุปใจความได้ว่า บี จะได้รับการ X-rays  (เอ๊กซเรย์) ปอด แล้วก็ได้ใบรับรองสุขภาพ ซึ่งเอาใบนี้แหละ ในการไปยื่นขอ Carte de sejour ที่ Prefecture ต้องรอจดหมายจาก Prefecture อีกประมาณ 2-3 สัปดาห์ แล้วก็ให้ไปฉีดวัคซีนป้องกันโรคต่าง ๆ (เป็นนโยบายของประเทศนี้ เค้าจะมีกำหนดไว้เลย ว่าอายุเท่าไร ฉีดอะไรบ้าง) แต่ก็ไม่ได้บังคับ ว่าจะไปฉีดหรือไม่ฉีดก็ได้ ยังไงก็ได้ Carte de sejour แต่เพื่อความปลอดภัย ทั้งของร่างกายเรา และ ความปลอดภัยในการขอ Carte de sejour ผมก็เลย แนะนำให้ไปฉีดดีกว่า ยังไงก็ฟรี ทุกอย่าง (รวมทั้งค่า X-rays ด้วย)&lt;br /&gt;&lt;br /&gt;ตอนนี้ก็แค่เตรียมตัว ไปรับ Carte de sejour แล้ว จะมาแจ้งให้ทราบอีกครั้งครับ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-1333004854294651953?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/1333004854294651953/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=1333004854294651953' title='2 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1333004854294651953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/1333004854294651953'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2008/10/anaem.html' title='ANAEM'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-8342703138937909834</id><published>2008-10-13T18:55:00.004+07:00</published><updated>2008-10-13T19:03:22.314+07:00</updated><title type='text'>CAF ขอเงินค่าบ้าน</title><content type='html'>หลังจากที่ลองคำนวนดูคร่าว ๆ ค่าเช่าบ้านเดือนละ 413 ยูโร  ผมลองไปที่ &lt;a href="http://www.caf.fr/"&gt;http://www.caf.fr/&lt;/a&gt;  เพื่อคำนวนเงินที่จะได้รับการสนับสนุนจากรัฐบาลฝรั่งเศส คำนวนได้ประมาณ 304 ยูโร เยอะใช้ได้เลย  วันนี้ผมเตรียมเอกสารพร้อมแล้ว และ จะไปยื่นที่ CAF มีจุดให้บริการ 2 จุด หลังจากที่ได้สอบถาม ก็ทราบว่า ในส่วนที่เข้าแถวต่อคิว นั้นเป็นของ พวกที่มีรายได้น้อยและไม่ได้เป็นนักเรียนที่จะขอช่วยจาก CAF&lt;br /&gt;&lt;br /&gt;ในส่วนของผม (จัดเป็นพวกไม่มีรายได้) ก็ไปอีกจุดหนึ่ง ซึ่งวันนี้ไม่มีคนเลยแฮะ ทางโล่งสะดวก ไปถึง เค้าก็พูดคุยดี ฟังไม่ยาก (โชคดีเจอคนใจดี) เค้าก็ตรวจเอกสาร แล้วก็บอกว่า Carte de sejour หลังจากที่ได้ตัวจริงแล้ว ให้เอามายื่นให้ด้วยนะ  พอตรวจเสร็จหมดแล้ว ก็เก็บเข้าแฟ้ม แล้วก็บอกว่าเสร็จแล้ว เดือนหน้า รอรับเงินในบัญชีได้เลย &lt;br /&gt;            &lt;br /&gt;เฮ้ย!! ทำไมมันง่ายอย่างงี้วะ!!  ตั้งแต่ติดต่อหน่วยงานของฝรั่งเศส ไม่มีที่ไหนแล้ว ที่สะดวกที่สุดเท่า CAF @ Toulouse หลักฐานจากเจ้าของบ้านก็ไม่ต้องใช้ แค่ให้เจ้าของบ้านกรอก Attestation (แปลว่าใบรับรอง) ที่เรา Print ไปเท่านั้นเอง สะดวกโคตร ๆ ^_^&lt;br /&gt;&lt;br /&gt;แต่ตอนที่ไปกรอกใน web ของ CAF เนี่ย เหนื่อยเอาเรื่อง เพราะมีแตคำศัพท์ และ คำย่อ หลายอย่างที่เราไม่เข้าใจตรึมเลย เดา ๆ ไป ตรงไหนเป็นรายรับกรอก 0 หมด แล้วก็เน้นว่าเป็นนักเรียนทุน CROUS จะได้ ได้เงินคืนมาเยอะ ๆ หึ ๆ ๆ&lt;br /&gt;&lt;br /&gt;ตอนนี้ใบนัดตรวจสุขภาพเพื่อทำ Carte de sejour ของ บี ก็ส่งคืนมาให้แล้ว (ทำไม ทำหลังได้ก่อนวะ) นัดเจอกันศุกร์นี้ ต้องติดแสตมป์ 275 ยูโรแหนะ ( ประมาณ 14,xxx บาท ) เอาวะ เพื่อให้ได้อยู่ในประเทศเค้าก็ต้องยอมจ่าย&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-8342703138937909834?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/8342703138937909834/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=8342703138937909834' title='2 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8342703138937909834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8342703138937909834'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2008/10/caf.html' title='CAF ขอเงินค่าบ้าน'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-8685276702737047881</id><published>2008-09-23T21:39:00.003+07:00</published><updated>2008-09-23T21:52:23.151+07:00</updated><title type='text'>Prefecture #2</title><content type='html'>วันนี้เป็นวันอังคาร หลังจากยุ่งยากกับการเตรียมเอกสารสำหรับทำ Carte de sejour ให้ แฟน และไปเที่ยว Montpellier ที่พี่ชาย เรียนอยู่ เสร็จแล้ว  ก็เตรียมตัวจะไปส่งเอกสาร เพราะคิดว่าวันนี้คนคงจะไม่เยอะเหมือนวันจันทร์ พอไปถึงที่นั่นเวลา 9.30 น. คนแถวก็ประมาณสัก 15 คนเห็นจะได้ เออคิดว่าไม่น่าจะยืนรอนาน แต่ไป ๆ มา ๆ ผ่านไป 1 ชม.  แถวเพิ่งขยับไปนิดหน่อยเอง แล้วคนก็มารอต่ออีกพรึบ ผมก็เลยลองจับเวลาดู ก็ได้ค่าเฉลี่ย ของการ Service 1 คน ใช้เวลาประมาณ 10 - 15 นาที โอ้ แบบนี้ มีคนก่อนหน้าผมประมาณ 15 คนก็ รอประมาณ 3 ชม. สิครับเนี่ย -_-"&lt;br /&gt;&lt;br /&gt;แล้วผมก็ลองมองย้อนไปข้างหลัง โอ้ เดี๋ยว 12.0o น. ก็พักเที่ยงแล้ว เปิดให้บริการอีกทีก็ 14.00 แล้วก็ปิดทำการ 15.00 แล้วไอคนที่อยู่ข้างหลังมันจะได้ทำทันได้ยังไงกันเนี่ย?&lt;br /&gt;&lt;br /&gt;และแล้ว โชคก็เข้าข้าง มีเจ้าหน้าที่ผู้หญิงคนหนึ่งเดินมาตรวจสอบว่าใครเอกสารครบแล้วบ้าง ก็ให้บัตรคิว (แซงคิวนั่นเอง) ไปนั่งข้างในเพื่อรอทำ Carte de sejour ได้เลย ปรากฎว่า ผมได้บัตรคิวด้วยแฮะ ลัดคิวไปได้ประมาณ 5 คน (ก็หลาย ชม. อยู่นะ) เสร็จแล้วก็ส่งเอกสาร เจ้าหน้าที่ขอดูเอกสารตัวจริงด้วย แต่ผมเอาไปแค่บางอย่าง เค้าก็ O.K. ไม่ถึงกับ serious มาก (แต่เอาไปหมดปลอดภัยกว่านะ) จากนั้นก็ Print บัตร Carte de sejour ชั่วคราวให้ เย้... ในที่สุดก็ได้แล้ว เดินออกมาจาก Prefecture &lt;br /&gt;&lt;br /&gt;ก่อนออก มองดูแถวที่ยาว ๆ  แล้วน่าสงสารคนที่ไปยืนเข้าแถวจัง ไอองค์กรห่วย ๆ แบบนี้ เมื่อไหร่มันจะปรับปรุงสักทีนะ  แต่คนที่บริการข้างใน ที่เป็นคนทำ Carte de sejour เค้าคุยดีนะ แต่ไอการบริหารจัดการขององค์กรเนี่ยแหละ ห่วยแตกมาก ๆ ให้คนมายืนรอเสียเวลา &gt; 3 ชม. เพื่อส่งเอกสาร  บ้าไปแล้ว ของผมโชคดี รอแค่ ชม. กว่า ๆ ถึงจะอ้างว่าไม่อยากให้คนเข้าประเทศฝรั่งเศสเยอะ ๆ ก็เหอะ ก็น่าจะใช้วิธีการบริหารจัดการวิธีอื่น ไม่ใช่ ใช้วิธีมาให้รอคิวยาว ๆ เสียเวลาทำการทำงานหมด เก็บเงินค่าทำ carte de sejour ก็ 275 ยูโร ( หมื่นกว่าบาท) ไม่ใช่ถูก ๆ นะเนี่ย  เอาไปจ้างคนตรวจเอกสารให้มันเยอะกว่านี้หน่อยไม่ได้ (หรือไงวะ?)   :(&lt;br /&gt;&lt;br /&gt;และก็ผ่านไปด้วยประการเช่นนี้ครับ ขอบ่นหน่อย ยังแหลงฝรั่งเศสไม่ชัด บ่นใน blog แทนไปก่อน ฮ่า ๆ ๆ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-8685276702737047881?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/8685276702737047881/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=8685276702737047881' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8685276702737047881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/8685276702737047881'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2008/09/prefecture-2.html' title='Prefecture #2'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-914573372109007108</id><published>2008-09-18T19:26:00.004+07:00</published><updated>2009-10-28T22:39:00.398+07:00</updated><title type='text'>เหตุผลสำหรับแฟน (French Language)</title><content type='html'>เวลาเขียนขอ VISA ให้แฟน เพื่อที่จะไปอยู่ประเทศฝรั่งเศสด้วยกัน มันช่างคิดประโยคที่สวยหรู ที่เป็นภาษาฝรั่งเศส ยากจริง ๆ ผมก็เลยไปถามเพื่อนที่อยู่ใน LAB ด้วยกัน ได้ความว่าดังนี้ครับ&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Renseignements concernant le séjour en France&lt;br /&gt;Pour quelles raisons demandez-vous un titre de séjour en France:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;=&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;Pour des raisons de regroupement familliale, mon&lt;span style="color: rgb(153, 0, 0);"&gt; époux M. Warodom WERAPUN&lt;/span&gt; fait ses études en France et poursuivre son doctorat ici.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;คำแปล ลองไปใส่ใน translation.google.com ก็จะทราบเองครับ&lt;br /&gt;&lt;br /&gt;นอกจากใช้ขอ VISA แล้ว ยังต้องใช้ เวลาไปขอ Carte de sejour ด้วยครับ&lt;br /&gt;(อย่าลืมเปลี่ยนชื่อผมด้วยละ) ^_^&lt;br /&gt;&lt;br /&gt;[ เข้าประเทศฝรั่งเศสเมื่้อ 06/09/2008   - 06 sep 2009 ]&lt;br /&gt;ขอบันทึกไว้หน่อย เพราะกรอกทีไร ลืมวันเข้าประเทศต้องไปหาจากตั๋วเครื่องบินทุกที&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-914573372109007108?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/914573372109007108/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=914573372109007108' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/914573372109007108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/914573372109007108'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2008/09/french-language.html' title='เหตุผลสำหรับแฟน (French Language)'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-7135812034866807803</id><published>2008-09-17T21:31:00.002+07:00</published><updated>2008-09-17T21:36:12.372+07:00</updated><title type='text'>คำถามจาก อ.โก้ เกี่ยวกับเอกสารไปฝรั่งเศส</title><content type='html'>&lt;p&gt; &lt;/p&gt;&lt;p&gt;       วันนี้ผมไปจัดการเอกสารที่ CROUS ที่ว่าต้องแก้จาก doctorat เป็น master 2 recherche  เสร็จพอดี เหนื่อยเหมือนกันเสร็จแล้วก็แวะไปซื้อผ้าห่มแบบนวม ราคา 55 ยูโร แก้หนาวต่อ พอดีมัน sale จาก 80 ยูโร แหนะครับบางยี่ห้อ ขายตั้ง 419 ยูโร ผ้าบ้าอะไรวะ 2 หมื่นกว่าบาท  -_-"  จากนั้นก็มาอ่าน email ก็เจอคำถามที่คิดว่าน่าจะมีประโยชน์กับคนอื่น ๆ  ที่อาจสงสัยคล้าย ๆ กัน เลยขอ มา post ไว้ที่นี่ละกันนะครับ&lt;br /&gt;&lt;br /&gt;2008/9/17 Chakkrit P &lt;&lt;a href="mailto:pchakkrit@%20gmail.com" target="_blank"&gt;pchakkrit at gmail.com&lt;/a&gt;&gt;&lt;br /&gt;สวัสดี..เปิ้ลพอดีวุ่นๆ อยู่หลายอย่าง วันนี้เริ่มเตรียมเรื่องเอกสารที่จะต้องนำไป เลยนึกขึ้นได้อยากถามเกี่ยวกับเอกสารที่ต้องนำไปหน่อยน่ะ&lt;/p&gt;&lt;p&gt;1. เอกสารที่แปลเป็นภาษาฝรั่งเศสนั้นจะต้องมีการประทับตราจากสถาทูตรับรองอีกหรือไม่?ผมให้ทางคณะอักษรศาสตร์จุฬาเป็นคนแปล และตอนนี้มีการปั๊มตรารับรองจากจุฬาแล้ว&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000066;"&gt;        ถ้าที่อักษรจุฬา เค้าผ่านการรับรอง จากสถานฑูต ในการแปลเอกสารแล้ว   ก็คงไม่น่าจะมีปัญหานะครับ ลองถามที่ จุฬาดูอีกทีครับ แต่ผมคิดว่าคงได้ เพราะถ้าเค้าไม่ผ่าน การรับรอง เค้าคงไม่รับแปลให้ครับ อีกอย่างถ้าไม่ได้แปลจากสมาคมฝรั่งเศสที่นี่   เค้าก็ไม่ปั้มตราให้อยู่แล้วครับ นอกจากว่าจะแปลใหม่กับเค้า และก็จ่ายเงินใหม่ครับ &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;2. การไปยื่นเอกสารต่างๆ ไม่ว่าจะเป็นที่ CROUS,มหาวิทยาลัย ฯลฯ ต้องใช้ตัวจริงทั้งหมดมั้ย?ถ้าถ่ายเอกสารไปได้หรือไม่?&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000066;"&gt;      เผื่อความปลอดภัยควรนำตัวจริงมาด้วยครับ ผมก็เอาตัวจริงมาทั้งหมดครับ   แต่ก็นั่นแหละ เวลายื่นเอกสาร ยังไม่เห็นที่ไหนใช้ตัวเอกสารตัวจริงเลย (นอกจาก passport)   และ เอกสารตัวจริง ของเราส่วนมากเป็นภาษาไทย ให้เค้าดูไปเค้าก็ดูไม่รู้เรื่องหรอก  ขนาดภาษาอังกฤษยังจะพูดกันไม่ค่อยจะได้ ไม่ต้องนึกถึงภาษาไทยเลยครับแบบนี้&lt;/span&gt;  &lt;/p&gt;&lt;p&gt;&lt;br /&gt;3. ปกติที่โน้นเขาต้องมีการเซ็นต์สำเนาถูกต้องเหมือนบ้านเรามั้ย ?&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000066;"&gt;      มีครับ ใช้คำว่า "lu et apprové" แต่เอกสารที่เราส่งไปส่วนมากก็ไม่ต้องรับรองทั้งหมดครับ   เวลาเขียนประโยคนี้ ส่วนมากใช้ในกรณี เปิดบัญชี ธนาคาร กับทำ carte de sejour    ซึ่งเราเขียนในเอกสารที่เค้าจะส่งมาให้เรากรอก ไม่ใช่เอกสารที่เราเตรียมไปครับ&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt;4. บัตรประชาชน, บัตรข้าราชการ (ตัวจริง) จำเป็นต้องนำไปด้วยหรือไม่?&lt;br /&gt;&lt;br /&gt;   &lt;span style="color:#000066;"&gt;     ไม่ใช้เลยครับ (เพราะว่าเป็นภาษาไทย) แต่ผมว่า นำติดตัวมาดีกว่า   มันก็ไม่ได้หนักมาก เผื่ออาจจะใช้ในอนาคต ครับ&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt;5. transcript ที่เป็นภาษาอังกฤษ จำเป็นต้องนำตัวจริงไปด้วยหรือไม่?&lt;br /&gt;   &lt;br /&gt;&lt;span style="color:#000066;"&gt;    ใช้ครับ ทั้ง transcript + ใบรับรองปริญญาที่เป็นภาษาอังกฤษ    (อย่าลืม เอาของ ป. ตรี มาด้วยนะครับ)   ใกล้จะมาเต็มที่แล้ว ตื่นเต้นมั้ยครับ ช่วงนี้มีคำถามอะไรก็ถามมาได้เลยนะครับ  ผมมีห้องใช้ internet ส่วนตัวแล้ว&lt;/span&gt;     &lt;/p&gt;&lt;p&gt;&lt;span style="color:#009900;"&gt;    ช่วงนี้ อากาศเริ่มหนาวแล้วนะครับ (แต่ฝนไม่ค่อยตก) อย่าลืมเสื้อหนาว ถุงมือ ถุงเท้า ซักชุดพกติดตัวมาก่อนแล้วค่อยไปหาของดี ๆ ที่นี่เวลามัน sale ถ้าซื้อราคาเต็มแพงเอาเรื่องเหมือนกันนะครับพวก brand name ดี ๆ ราคาเป็นหมื่นกว่าบาท แต่เวลา sale เหลือประมาณ 1-2 พันบาทเองผมเลยแนะนำว่าเตรียมมาสักชุด ระหว่างรอซื้อของ sale ครับ&lt;/span&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6417719527615106074-7135812034866807803?l=wwarodom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wwarodom.blogspot.com/feeds/7135812034866807803/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6417719527615106074&amp;postID=7135812034866807803' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7135812034866807803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6417719527615106074/posts/default/7135812034866807803'/><link rel='alternate' type='text/html' href='http://wwarodom.blogspot.com/2008/09/blog-post_17.html' title='คำถามจาก อ.โก้ เกี่ยวกับเอกสารไปฝรั่งเศส'/><author><name>pleX</name><uri>http://www.blogger.com/profile/14459777304266749774</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_PbSZogL4PjI/SI0_ylvEuII/AAAAAAAABhQ/Kg3F7hjuVmE/S220/b.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6417719527615106074.post-4574116504081764408</id><published>2008-09-16T03:25:00.003+07:00</published><updated>2008-09-16T03:49:52.307+07:00</updated><title type='text'>Prefecture #1 + EDF</title><content type='html'>วันนี้ ผมได้ไปทำ carte de sejour หลังจากได้เอกสารบางส่วนมาเพิ่มเติม ไปที่ prefecture โอ้ คนเยอะ สมคำล่ำลือจริง ๆ คิวยาวมาก แม่ง คนรับเอกสารมีอยู่คนเดียว แต่เนื่องจากผมเป็นนักเรียนทุนของ CROUS ผมก็เลยต้องไปทำ carte de sejour ที่ CROUS แทน โดยนัดทาง internet แล้วก็ไปทำ ก็รอไม่นานมาก เพราะนัดแล้ว ยังดีนะที่เจ้าหน้าที่พอ parle anglais ได้บ้าง ไม่งั้นก็ลำบาก คุยไม่ค่อยรู้เรื่องอีก&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;&lt;strong&gt;หลักฐานที่ผมใช้ตอนทำ carte de sejour ของ นร. ทุน CROUS มีดังนี้&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#6600cc;"&gt;- รูปถ่าย 2 นิ้ว 3 รูป&lt;br /&gt;- ใบแปลสูติบัตร&lt;br /&gt;- ใบทุนของ CROUS&lt;br /&gt;- ใบตอบรับจากมหาวิทยาลัย หรือ บัตร นร.&lt;br /&gt;- ใบแปลแต่งงาน&lt;br /&gt;- สำเนาวีซ่า&lt;br /&gt;- สำเนาพาสปอร์ต&lt;br /&gt;- อากรแสตมป์ (เค้าเรียกว่า timbre) ซึ่งไปซื้อที่ได้ที่ร้าน tabac อยู่ใกล้ ๆ กัน ราคา 55 ยูโร&lt;br /&gt;- ใบเสร็จค่าไฟฟ้า (หรือ EDF ที่ผมเคยเล่าก่อนหน้านี้นี่เอง) เพิ่งมาอยู่มันจะมี บิลนี้ ได้ยังไงว่ะ? แต่อันนี้เค้าอนุโลมให้ แค่เอาหลักฐาน สัญญาเช่า ไปแทนก่อนได้&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;เมื่อทำเสร็จแล้ว ผมก็ได้ carte de sejour แบบชั่วคราว (จำชื่อเรียกไม่ได้แฮะ) ซึ่งจะมีอายุประมาณ 3 เดือน จากนั้น ภายใน 3 เดือนนี้แหละ เค้าจะ นัดผมอีกครั้ง เพื่อให้ไปตรวจสุขภาพ และ รับ carte de sejour ตัวจริง ๆ แทน ตอนนี้ก็รอไปก่อน&lt;br /&gt;&lt;br /&gt;วันพรุ่งนี้ ผมคงต้องไป Prefecture ที่ไม่ได้อยู่ใน CROUS ที่คนรอเยอะ ๆ โดยต้องไปรับเอกสารมากรอกก่อน แล้วค่อยไปส่งอีกที ได้ข่าวว่าต้องรอกันเป็น 10 ชั่วโมงเลย คงได้นอนหน้า prefecture แน่ มันก็ไม่ได้คิดจะปรับปรุงนะ คงเป็นเพราะไม่อยากให้คนเข้าประเทศมันเยอะ ๆ มั้ง? :-(&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;หลังจากนั้นก็ได้ไปที่ EDF เพื่อไปเปลี่ยนบัญชีค่าไฟฟ้า &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;โดยให้มันตัดที่บัญชีธนาคารของผมเอง แทนที่จะไปตัดบัญชี ของ
