tag:blogger.com,1999:blog-41694932530301874842024-03-14T04:02:20.860-07:00J2008 Review แนวเสียง headphone , mobile , PDA , mp3 player and etcแบ่งปันประสบการณ์ชีวิต สิ่งที่พบเจอ J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.comBlogger102125tag:blogger.com,1999:blog-4169493253030187484.post-70336061637516705322017-11-10T23:57:00.001-08:002017-11-11T00:49:38.408-08:00รีวิวหูฟังที่กำลังเป็นกระแสในตอนนี้ KZ ( ZST , ZS3 , ZS5 , ES3 , ED12 ) , Ostry kc06a , Aidisibe dual driver , w1 pro เริ่มกันที่ KZ ก่อน<br />
<br />
<b>KZ-ZST</b> : เป็น driver แบบ dynamic ผสม BA จะมีอยู่ 2-3 lot ที่เสียงไม่เหมือนกัน<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivCU9c4a9rnZi-4lEDRU6DR-lBICErFCcuRbqSJmow6iW3wYXZEHXXJoh67Ag3kwzA4pkhXZveC9zYnYYlyMmABYSDDis5Mh4MnnHdBvsC0oNm-K4bZoX-FNqi-jRiOD4k4YLUmkrs9h8/s1600/20170915_011016.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivCU9c4a9rnZi-4lEDRU6DR-lBICErFCcuRbqSJmow6iW3wYXZEHXXJoh67Ag3kwzA4pkhXZveC9zYnYYlyMmABYSDDis5Mh4MnnHdBvsC0oNm-K4bZoX-FNqi-jRiOD4k4YLUmkrs9h8/s640/20170915_011016.jpg" width="640" /></a></div>
<br />
> lot1 มีแต่สีดำ ตั้งแต่ออกใหม่ปี 2016 - ต้นปี 2017 ราคาสมัยนั้นค่อนข้างแพง 600+<br />
เสียงเบสหนักที่สุดใน KZ ทั้งหมด ทั้งลึกและแน่น ลูกใหญ่มาก คุณภาพเบสดี กลางแหลมพอดีๆ<br />
ไม่จัด ไม่บาดหู แยกเสียงและรายละเอียดดีแต่ไม่ถึงกับสุด มิติค่อนข้างกว้าง ใช้ BA เบอร์ 1203<br />
> lot2 ปัจจุบันผมไม่มีแล้ว ไม่แน่ใจว่าเป็น defect หรือเปล่า เบสจะลึกแต่ไม่หนักเท่าล็อตอื่น<br />
แหลมไปได้ไกลมากมีแสบแก้วหูเล็กน้อย อันนี้สีดำเหมือนกันได้มากลางปี 2017 หลังกล่องเป็นรูปหู<br />
> lot3 หลังกลางปี 2017 จะเป็นล็อตนี้หมด กล่องข้างหลังใช้รูปเครื่องดนตรีเป่า ราคา 400-500<br />
เสียงจะค่อนข้างสมดุล เบสหนักแต่ความลึกน้อยลง แหลมปลายๆลดลง เสียงกลางหนาขึ้นเล็กน้อย<br />
มิติกว้างที่สุดใน 3 ล็อต รายละเอียดแยกเสียงค่อนข้างขาดเลยทีเดียว ใช้ BA 30095<br />
<br />
<b>KZ-ZS5</b> : เป็นหูฟัง 4 driver มีทั้ง dynamic ขนาด 10mm และ 6.4mm และก็ BA อีก2ตัว<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://scontent.fbkk2-5.fna.fbcdn.net/v/t31.0-8/22769794_10209014183065660_7970468244836604822_o.jpg?_nc_eui2=v1%3AAeG8JkYRw6VgesfpghtUZ0SJhdTfdLzXAw6qYweLmXaZPjvjt6ruvRvIOc2gPSSqqConi0GZ3ZQCjjtbPjgsEEHO_6tmJUbvFclxSYYBCjLinQ&oh=a7750a3166dbd242f83af91e0f54682b&oe=5AAA8956" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="600" data-original-width="800" height="480" src="https://scontent.fbkk2-5.fna.fbcdn.net/v/t31.0-8/22769794_10209014183065660_7970468244836604822_o.jpg?_nc_eui2=v1%3AAeG8JkYRw6VgesfpghtUZ0SJhdTfdLzXAw6qYweLmXaZPjvjt6ruvRvIOc2gPSSqqConi0GZ3ZQCjjtbPjgsEEHO_6tmJUbvFclxSYYBCjLinQ&oh=a7750a3166dbd242f83af91e0f54682b&oe=5AAA8956" width="640" /></a></div>
<br />
มีมาทั้งหมด 2 lot ข้อแตกต่างคือชนิด driver และการจัดวาง<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://scontent.fbkk2-5.fna.fbcdn.net/v/t1.0-9/22728783_10209014182465645_3394249563355708764_n.jpg?_nc_eui2=v1%3AAeF8mF0135HuBbem3nJ4j8HB1FCXFHZ5TX0BZtnQMEgoK7gVutYLVbuh947kGixVNtaaa6Mu1XWb2eGiLOJI5Lj10HVX0VCu3m7_du-NhfVD1w&oh=b41b8a26d14776350f9398436a4a3551&oe=5A97725C" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="394" data-original-width="700" height="360" src="https://scontent.fbkk2-5.fna.fbcdn.net/v/t1.0-9/22728783_10209014182465645_3394249563355708764_n.jpg?_nc_eui2=v1%3AAeF8mF0135HuBbem3nJ4j8HB1FCXFHZ5TX0BZtnQMEgoK7gVutYLVbuh947kGixVNtaaa6Mu1XWb2eGiLOJI5Lj10HVX0VCu3m7_du-NhfVD1w&oh=b41b8a26d14776350f9398436a4a3551&oe=5A97725C" width="640" /></a></div>
<br />
> lot1 ตั้งแต่ต้นปี 2017 - 8/2017 กล่องดำ ราคา 700-1000<br />
มี BA อยู่ที่ข้างในกับข้างหน้าตะแกรง ใช้ BA เบอร์ 1205 กับ 30095<br />
เสียงส่วนตัวผมว่าดีที่สุดใน KZ ถ้านับจากทุกย่านเสียง เพราะให้ balance ที่ดี stage และมิติ<br />
กว้างที่สุด แยกเสียงและมีรายละเอียดดีที่สุดด้วยเช่นกัน เบสลูกใหญ่กว่า zst lot2-3 แต่ impact<br />
น้อยกว่าพอสมควร เบสลงได้ลึกกว่า zst หน่อยนึง คุณภาพของเบสดีกว่า zst แต่ปริมาณแพ้<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://scontent.fbkk2-5.fna.fbcdn.net/v/t31.0-8/22791783_10209014182705651_3122390115931322810_o.jpg?_nc_eui2=v1%3AAeHrWvBa-nLKG1uPFfwp-yZ0bVI6fS-_84qR9DBe-zSPsv24fhUXytulSeMCKeLczjCyhFBvRGzhE80xN1tYAR6xua_OosF3hQ7R6zAuPjbi4Q&oh=e54cf2a72727226abfaacff0d6a448f2&oe=5AA552EC" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="416" data-original-width="800" height="331" src="https://scontent.fbkk2-5.fna.fbcdn.net/v/t31.0-8/22791783_10209014182705651_3122390115931322810_o.jpg?_nc_eui2=v1%3AAeHrWvBa-nLKG1uPFfwp-yZ0bVI6fS-_84qR9DBe-zSPsv24fhUXytulSeMCKeLczjCyhFBvRGzhE80xN1tYAR6xua_OosF3hQ7R6zAuPjbi4Q&oh=e54cf2a72727226abfaacff0d6a448f2&oe=5AA552EC" width="640" /></a></div>
<br />
> lot2 หลัง 8/2017 เสียงจัดขึ้นมาก โดยเฉพาะเสียงแหลม ราคาพอกันกับ lot1<br />
เพราะเอา BA มาไว้หน้าตะแกรงทั้ง2ตัว ใช้เบอร์ 30095 ทั้งคู่ และเปลี่ยน dynamic 6.4mm ใหม่<br />
เสียงโดยรวมจะ color มากๆ ฟังพวก EDM เหมาะเลย เบสก็หนักกว่าล็อตแรกนิดหน่อย แต่เสียงบาง<br />
กว่าล็อตแรกในภาพรวมเพราะกลางตัวนี้ถอยลงครับ เพราะเบสกับแหลมเด่นขึ้นมา ตัวนี้ขับง่ายกว่า<br />
lot1 เยอะครับปรับนิดเดียวดัง แหลมมากกว่าแต่ผมว่าไม่ละเอียดเหมือน lot1<br />
<br />
<b>KZ-ZS3</b> : driver dynamic ตัวเดียว แต่เสียงนี้คือว่าไม่ได้แพ้ 2 ตัวบนเท่าไหร่ ราคา 300-400<br />
มีล็อตเดียว แนวเสียงเบสหนักรองจาก zst lot1 ลงไม่ลึกเท่า zs5,zst แต่ได้ impact ที่แรงกว่าชัดเจน<br />
กลางแหลมถือว่าดีทีเดียว พอแยกรายละเอียดเสียงได้ แต่แพ้ zs5,zst อยู่ดี แหลมปลายๆมีหายบ้าง<br />
<br />
<b>KZ-ES3</b> : เหมือน zst lot3 ทุกประการ ต่างแค่ body ใช้ dynamic , ba เหมือนกัน ผมฟังเสียงแล้ว<br />
ก็แยกไม่ออก เอามาสลับข้างฟังก็ฟังด้วยกันได้ยังกับรุ่นเดียวกันซะงั้น ราคา 400-500<br />
<br />
ต่อมา <b>Ostry kc06a</b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<b><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhieGSuU2BVbv2xZkshJ9bcB858ie2lvZ7XXYbnXhIn_JLK7uWk7OZqC_Sv6GP_Q0wBLg6yaDFK7rdajGAu4YFARdC3CHsnIeiJRASP_lcv50MKRp3AzoIwdU-RYbELTHWZi8xMMqRbus0/s1600/20171110_230240.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhieGSuU2BVbv2xZkshJ9bcB858ie2lvZ7XXYbnXhIn_JLK7uWk7OZqC_Sv6GP_Q0wBLg6yaDFK7rdajGAu4YFARdC3CHsnIeiJRASP_lcv50MKRp3AzoIwdU-RYbELTHWZi8xMMqRbus0/s640/20171110_230240.jpg" width="640" /></a></b></div>
<br />
เสียงต้องบอกว่านิ่งและ balance ดีกว่า kz มากครับด้วยราคาที่แพงกว่าหลายเท่า 1500-2500<br />
เบสหนักกว่าดีกว่าทั้งปริมาณและคุณภาพ กลางแหลมดีให้เสียงที่ธรรมชาติกว่า kz <br />
และจินตนาการถึงเนื้อหนังได้ดีกว่า แต่มิติและทิศทางเสียงการแยกแยะสูสีกับ ZS5<br />
ตัวนี้ถึง driver dynamic ตัวเดียวแต่มีขดลวด 2 ชั้น ทำให้เสียงชนะ BA ของ KZ ได้<br />
<br />
<b>Aidisible 2 dynamic driver</b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<b><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQFsVNwQfDsS3JdXZQO2riR1OupYswTphNImbbO_J2Mtn2eYi4FRKZaF47ozK-fxBX4H0pI4MArrebw6G-Je4X5K740ujMwL3T33AiTvjBHVO1_frGJO8F_LBfHyVXbtx7uli_FrFEiJY/s1600/20171110_003904.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQFsVNwQfDsS3JdXZQO2riR1OupYswTphNImbbO_J2Mtn2eYi4FRKZaF47ozK-fxBX4H0pI4MArrebw6G-Je4X5K740ujMwL3T33AiTvjBHVO1_frGJO8F_LBfHyVXbtx7uli_FrFEiJY/s640/20171110_003904.jpg" width="640" /></a></b></div>
<br />
เสียงมาทีแรกกลางนำมาค่อนข้างเยอะ นึกว่าเสียงจะไม่ดี พอปรับเบสกับแหลมขึ้น กดกลางลง<br />
เท่านั้นแหละ โอ้โห เสียงสะอาดชัดใสมากๆ กับราคาร้อยสองร้อย สุดๆไปเลย มิติกว้างมากอีกด้วย<br />
แต่เบสตัวนี้พึ่งไม่ได้ เพราะปริมาณน้อยแถมลงไม่ลึก ยังดีที่เบสยังนุ่มไม่แข็งเหมือนตีกระป๋อง<b><br /><br />W1 pro<br /></b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkrESv8sUVf0R7EhcAYGYIpdFXc_kjvW5vkgzuzAFBHwzrc54YAIVmeypZ1xII20t0P2Tgj-rB2Wb1SjeYWtZPTiP58aW3C_b0c78ajLC7yNi0_WW8gpxU7Q0IuSTM4hWtmILR6ruRW4o/s1600/20171110_222553.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkrESv8sUVf0R7EhcAYGYIpdFXc_kjvW5vkgzuzAFBHwzrc54YAIVmeypZ1xII20t0P2Tgj-rB2Wb1SjeYWtZPTiP58aW3C_b0c78ajLC7yNi0_WW8gpxU7Q0IuSTM4hWtmILR6ruRW4o/s640/20171110_222553.jpg" width="640" /></a></div>
<br />
ราคาสองร้อยกว่าบาท เสียงดีกว่าตัวบน 2 driver อีกทั้งๆที่มี driver เดียว การแยกเสียง<br />
มิติดีกว่าตัวบนนิดหน่อย กลางไม่เด่นจนเกินไปแบบตัวบน แล้วก็เบสมากกว่านิดหน่อย<br />
แต่ก็น้อยอยู่ดี โดยรวมลักษณะเสียงคล้ายๆกันเพียงแต่ตัวนี้ไม่ต้องพึ่ง eq แบบตัวบน J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-51257072012907776412015-12-27T02:40:00.003-08:002016-01-03T08:24:32.950-08:00Calibrate proximity sensor in android แก้ปัญหาจอดับหลังโทร<pre class="alt2 " dir="ltr" style="border: 1px inset; height: 144px; margin: 0px; overflow: auto; padding: 5px; text-align: left; width: 100%;">$ su
# echo 0 > /sys/devices/virtual/sensors/proximity_sensor/prox_cal
# echo 1 > /sys/devices/virtual/sensors/proximity_sensor/prox_cal
# chown system:system /efs/prox_cal
# chmod 644 /efs/prox_cal
# sync
# reboot </pre>
<br />
พิมพ์คำสั่งด้านบนที่ Android Terminal (ต้องไป download terminal ที่ playstore ก่อน)<br />
และ root เครื่องให้เรียบร้อย ไม่งั้นจะใช้คำสั่ง su ไม่ได้<br />
<br />
ไม่ต้องพิมพ์ $,# หน้าบรรทัดนะครับ มันคือสัญลักษณ์บอกว่า $ = ทั่วไป # = root access<br />
พิมพ์จบแต่ล่ะบรรทัดเสร็จกด enter ให้ทำงานด้วยนะครับ ไม่ใช่พิมพ์หมดนี้ทีเดียว<br />
<br />J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-47592133595329479292015-10-17T03:03:00.000-07:002016-08-30T11:02:24.084-07:00Tip5 : Linux , Git , Nginx command ที่ใช้บ่อยๆ<span style="font-size: x-small;"> ======Linux=========</span><br />
<span style="font-size: x-small;">ls -all ดูรายชื่อโฟลเดอร์และไฟล์ทั้งหมด ณ ตำแหน่งที่เราอยู่</span><br />
<span style="font-size: x-small;">cd .. ย้อนกลับโฟล์เดอร์ไป 1 ขั้น</span><br />
<span style="font-size: x-small;">cd [folder_name] เข้าโฟล์เดอร์นั้น</span><br />
<span style="font-size: x-small;">top ดู service ทั้งหมดที่กำลังรันอยู่ และกินเมมโมรี่ไปเท่าไหร่ เมมที่เหลือมีเท่าไหร่</span><br />
<span style="font-size: x-small;">df -h ดูว่าพื้นที่ Storage เหลือเท่าไหร่ ****ถ้าพื้นที่ไม่พอ database ที่อยู่บนเซิฟนั้นจะ error****</span><br />
<span style="font-size: x-small;">du -h --max-depth=1 ดูพื้นที่ของแต่ล่ะไฟล์ โฟลเดอร์</span><br />
<span style="font-size: x-small;">sar ดู IO activity ใน 24ชม ที่ผ่านมา</span><br />
<span style="font-size: x-small;">tail -n 100 [log_name] ดูไฟล์ log 100บรรทัดสุดท้าย</span><br />
<span style="font-size: x-small;">grep -n [find_keyword] [log_name] ดูไฟล์ log ตัดมาเฉพาะบรรทัดที่มีคำ find_keyword อยู่</span><br />
<span style="font-size: x-small;">tail -n 100 [log_name] | grep [keyword] ดูไฟล์ log 100 บรรทัดสุดท้ายที่มี keyword อยู่</span><br />
<span style="font-size: x-small;">sudo chmod 777 [file_name] เปลี่ยน permission file </span><br />
<span style="font-size: x-small;">rm -rf [folder_name] ลบโฟลเดอร์แบบหมดจดแม้จะไม่ใช่โฟลเดอร์ว่าง</span><br />
<span style="font-size: x-small;">iftop -n ดูกิจกรรม network bandwidth (ต้องติดตั้งตัวคำสั่งก่อนถึงใช้ได้) </span><br />
<br />
<span style="font-size: x-small;">======My SQL======<br />mysqld --console เริ่มระบบ<br />Ctrl+c ออกจากระบบ<br />mysql -u root -p เข้าสู่ระบบด้วย username = root<br />mysql -h localhost -u root เข้า localhost ด้วย username = root<br />show databases แสดงลิตต์ database<br /><br />======NGINX======<br />nginx -c C:\nginx\conf\nginx.conf เริ่มระบบ สามารถเข้า localhost ได้หลังใช้</span><br />
<span style="font-size: x-small;">service nginx restart</span><br />
<span style="font-size: x-small;">service php-fpm restart</span><br />
<span style="font-size: x-small;">service memcached restart </span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;"></span><br />
<span style="font-size: x-small;">======GIT======<br />git branch เช็คว่าอยู่ brach ไหน<br />sudo git pull origin <branch_name> ดึง brach <br />sudo git checkout <branch_name> ย้าย brach<br />sudo git commit -a -m 'commit_name' comit git</branch_name></branch_name></span><br />
<span style="font-size: x-small;">$ git checkout -b [name_of_your_new_branch]</span><br />
<span style="font-size: x-small;">$ git push origin [name_of_your_new_branch]</span><br />
<span style="font-size: x-small;">$ git remote add [name_of_your_remote] </span><br />
<span style="font-size: x-small;">$ git push origin [name_of_your_remote]</span><br />
<span style="font-size: x-small;">$ git fetch [name_of_your_remote]</span><br />
<span style="font-size: x-small;">$ git merge [name_of_your_remote]/develop</span><br />
<span style="font-size: x-small;">$ git branch -d [name_of_your_branch] ลบ local branch</span><br />
<span style="font-size: x-small;">$ git branch -D [name_of_your_branch] </span><span style="font-size: x-small;">ลบ local branch แบบบังคับ</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">==========PHPMYADMIN remote database=========</span><br />
<span style="font-size: x-small;">ทำให้ phpmyadmin สามารถ access เข้า database จากที่อื่น server อื่นได้ (ปกติลงแล้วมันจะเข้าใช้ localhost)<br /><br />The settings are stored in config.inc.php at the root of phpMyAdmin's installation directory; e.g. /usr/share/webapps/phpMyAdmin/config.inc.php. Do not dig deeper than that.<br />(It's the same place where you can find files config.sample.inc.php, ChangeLog, favicon.ico, and such.)<br /><br />$i++;<br />$cfg['Servers'][$i]['host'] = 'yourhost.com:3306'; //provide hostname and port if other than default<br />$cfg['Servers'][$i]['user'] = 'root'; //user name for your remote server<br />$cfg['Servers'][$i]['password'] = '123456'; //password<br />$cfg['Servers'][$i]['auth_type'] = 'config'; // keep it as config</span>J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-19321991662965948942015-10-17T01:43:00.003-07:002015-10-17T03:46:19.594-07:00Tip4 : Yii and Php จากประสบการณ์<span style="font-size: x-small;">**************PHP***************<br />1.ทำให้อัพโหลดไฟล์ได้มากกว่า 5mb <br />http://www.sutenm.com/%E0%B9%81%E0%B8%81%E0%B9%89%E0%B9%84%E0%B8%82%E0%B9%83%E0%B8%AB%E0%B9%89-wordpress-upload-file/<br /><br />2.ส่ง post data ไปหน้า page ที่ต้องการ พร้อมรับผลลัพท์ด้วย file_get_content<br />http://stackoverflow.com/questions/2445276/how-to-post-data-in-php-using-file-get-contents<br /><br />3.ระบบแจ้งเตือน<br />http://www.thaicreate.com/community/php-mysql-alert-notify-new-message-notification.html<br /><br />4.add element to array list<br />$list = array();<br />array_push($list, $objWillAdd);<br /><br />5.การ lmport excel ไฟล์ csv เข้า php<br />< form enctype="multipart/form-data" method="POST" ><br /> < input name="userfile" type="file" ><br /> < input type="submit" value="Upload" ><br /> < /form ></span><br />
<span style="font-size: x-small;"></span><br />
<span style="font-size: x-small;"><br /> สำหรับตัวรับไฟล์ก็จะเป็น ภาษา php ดังนี้</span><br />
<span style="font-size: x-small;">if ( isset( $_FILES['userfile'] ) )<br />{<br /> $csv_file = $_FILES['userfile']['tmp_name'];<br /><br /> if ( ! is_file( $csv_file ) )<br /> exit('File not found.');<br /><br /> if (($handle = fopen( $csv_file, "r")) !== FALSE)<br /> {<br /> while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)<br /> {<br /> echo $data[0];<br /> echo $data[1];<br /> echo $data[2];<br /> }<br /> fclose($handle);<br /> }<br /> exit( "Complete!" );<br />}<br /><br />6.แก้ปัญหาเปิดไฟล์ภาษาไทยแล้วเพี้ยน ครอบด้วย iconv() ด้วยการแปลงจาก TIS-620 เป็น UTF-8 ได้ดังนี้<br />fopen( iconv('TIS-620',"UTF-8",$file_or_string), "r"))<br /><br />7.หา sting "are" ใน string $a <br />strpos($a,'are') !== false //ถ้าเจอคืน true <br />substr_count($a, 'are') > 0 //ถ้าเจอคืนตำแหน่ง</span><br />
<span style="font-size: x-small;"></span><br />
<span style="font-size: x-small;"><br /></span>
<div dir="ltr" id="docs-internal-guid-398052a0-7542-3c3d-94a1-b6851b489397" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">8.microtime(true) is current time in micro second.</span></span></div>
<span style="font-size: x-small;"><br /></span>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">9.class ใดๆก็ตามที่มีการสร้าง Object ด้วยการ .getInstance() </span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">จะเรียก class เหล่านั้นว่ามีการเขียนแบบ Singleton </span></span></div>
<div dir="ltr" style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">(</span><a href="http://en.wikipedia.org/wiki/Singleton_pattern" style="text-decoration: none;"><span style="background-color: transparent; color: #0f72da; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline;">http://en.wikipedia....ngleton_pattern</span></a><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">)</span></span></div>
<div dir="ltr" style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">ซึ่งการเขียนลักษณะนี้จะเป็นการสร้าง instance ของ object นั้นขึ้นมาเพียงครั้งเดียวตอนเริ่มโปรแกรม</span></span></div>
<div dir="ltr" style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">และให้ class อื่นๆที่ต้องการเรียกใช้ instance ของมันเองเรียกผ่านทาง .getInstance() ครับ</span></span></div>
<div dir="ltr" style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">เหตุผลที่ต้องมี singleton เพราะในบางสถานการณ์ การสร้าง object เพียง</span></span></div>
<div dir="ltr" style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">ตัวเดียวแล้วให้โปรแกรมทั้งหมดมาใช้ Object ตัวนั้นเพียงตัวเดียวจะมีประโยชน์มากกว่าครับ</span></span></div>
<div dir="ltr" style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">เช่น การสร้าง Object ของการเชื่อมต่อฐานข้อมูลที่ต้องใช้พลังงานมากในตอนสร้าง</span></span></div>
<div dir="ltr" style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">พอสร้างเสร็จแล้วก็ทำเป็น singleton ไว้ให้ Class อื่นๆ มาเรียกใช้ได้อีกเรื่อยๆครับ</span></span></div>
<span style="font-size: x-small;"><br /></span>
<div dir="ltr" style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">แต่ singleton ก็มีข้อเสียที่เห็นได้ชัดคือ object life time ครับ เพราะ</span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Object ที่ถูกสร้างขึ้นโดยวิธีนี้จะไม่ถูกทำลายจนกว่าโปรแกรมจะหยุดทำงาน</span></span><br />
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">(ข้อ9อันนี้ไม่ได้เขียนเองครับ นำมาจาก <a href="http://www.narisa.com/forums/index.php?showtopic=34733">http://www.narisa.com/forums/index.php?showtopic=34733</a> )</span></span></div>
<span style="font-size: x-small;"><br /></span>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">10.public function __construct(...) เป็น constructure ของ class ใน php</span></span></div>
<span style="font-size: x-small;"><br /></span>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">11.Redis คือ key-value database เหมือนกับ Memcache แต่ต่างกันตรงที่ Redis <br />นั้นจะทำการบันทึกข้อมูลต่างๆ ลง storage ส่วน memcache จะอยู่ใน ram</span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><a href="http://www.narisa.com/forums/index.php?app=blog&blogid=9&showentry=2611" style="text-decoration: none;"><span style="background-color: white; color: #1155cc; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline;">http://www.narisa.com/forums/index.php?app=blog&blogid=9&showentry=2611</span></a></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><a href="http://www.tutorialspoint.com/redis/redis_php.htm" style="text-decoration: none;"><span style="background-color: white; color: #1155cc; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline;">http://www.tutorialspoint.com/redis/redis_php.htm</span></a></span></div>
<span style="font-size: x-small;"><br /></span>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">12.How to use regular expression for </span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">preg_match('/^(?=.*([0-9]))(?=.*([A-z]))[A-z0-9]{6,12}$/' , $password)</span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><a href="http://www.nextproject.net/contents/default.aspx?00103" style="text-decoration: none;"><span style="background-color: white; color: #1155cc; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline;">http://www.nextproject.net/contents/default.aspx?00103</span></a></span></div>
<span style="font-size: x-small;"><br /></span>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">13.เราสามารถเรียกใช้ function ใน class ที่เรา extend เข้ามาได้</span><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"><br class="kix-line-break" /></span><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">โดยการเรียกใช้นั้นเสมือนเราเรียกใช้ function ในคลาสที่เรียก นั้นคือ</span><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"><br class="kix-line-break" /></span><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">function ใน class ที่ extend มานั้น สามารถเรียกใช้ function ใน class ของเราที่เป็นคนเรียกใช้ได้</span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline;">เช่น </span><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">SerialCodeAbstract ที่ extends TableMapper </span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">ใน SerialCodeAbstract เรียกใช้ static::find() ซึ่งเป็น function ใน TableMapper </span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">จะเสมือนนำ function find() นั้นมารันที่ SerialCodeAbstract นั้นเอง </span><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline;">ซึ่งทั้ง 2 คลาส</span><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">นี้เวลา</span><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"><br class="kix-line-break" /></span><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">เรียกใช้ fuction นั้น จะทำการค้นหา function ในคลาสของผู้ที่เรียก extends ก่อน ในที่นี้คือ</span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">SerialCodeAbstract นั้นเอง ซึ่งหากไม่มีก็จะไปทำใน fuction ของ TableMapper แทน</span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-size: x-small;"><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">(ในตัวอย่าง static:find() นั้นไม่มีใน SerialCodeAbstract แต่มีใน TableMapper </span><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"><br class="kix-line-break" /></span><span style="background-color: white; color: #282828; font-family: Arial; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">แต่ถ้ามีทั้งคู่ มันจะใช้ในคลาสผู้ที่ extend คือ SerialCodeAbstract นั้นเอง)</span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<span style="font-size: x-small;"><br />*************YII*****************<br />1.นับจำนวน tuple ที่ค้นได้ใน db<br /> $count = Notification::model()->countByAttributes(array(<br /> 'user_id'=> Yii::app()->user->uid<br /> ));<br /><br />2.การเพิ่ม FK ใน model<br /> public function relations()<br /> {<br /> return array( <br /> 'memberIdMember' => array(self::BELONGS_TO, 'Member', 'member_id_member'),<br /> // 'ชื่อที่ใช้เรียกFK' => array(self::BELONGS_TO, 'Modelของปลายทาง', 'ค่าAtrributeที่ชี้ไปFK'),<br /> );<br /> }<br /> ตัวอย่างเรียกใช้โดย เช่น $advisor->memberIdMember->username<br /><br />3.get ค่าเป็น array ตามเงื่อนไข<br />Advisor::model()->findAllByAttributes(array('curriculum_id_curriculum'=>$value));<br /><br /><br />*************OTHER*************<br />ปลดล็อค gmail ให้ส่งเมลล์ผ่าน smtp ได้ https://support.google.com/mail/answer/14257</span>J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-46136233370937916482015-10-17T01:39:00.004-07:002015-10-17T01:40:47.078-07:00Tip3 : HTML , CSS , Javascript<span style="font-size: x-small;">**************HTML***************<br />DROP/DOWN MENU http://www.w3schools.com/tags/att_option_value.asp<br />ROOT URL ใส่ ../ หน้าลิงค์ เช่น "../images/ajax-loader.gif"<br />Form ถ้าไม่มี action เมื่อ Submit มันจะเรียกตัวมันเองซ้ำ<br /><br />ทำให้ Input form รองรับเฉพาะไฟล์นามสกุลที่กำหนด<br />< input type="file" name="file[]" id="filename" accept="image/gif, image/jpeg, image/png, application/pdf, .xlsx, .xls, .doc, .docx" multiple ></span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;"></span><br />
<span style="font-size: x-small;"></span><br />
<span style="font-size: x-small;"><br />************CSS****************<br />FADEIN/FADEOUT for div http://stackoverflow.com/questions/11679567/using-css-for-fade-in-effect-on-page-load <br /><br />ทำให้ใส (where 1 is not transparant at all, 0.5 is 50% see-through, and 0 is completely transparent.)<br />div {<br /> opacity: 0.5;<br />} </span><br />
<br />
<br />
<span style="font-size: x-small;"> *************JAVA SCRIPT**************<br />ปัญหาการพัฒนาเว็บส่วนมาก คือ การไม่สามารถโหลดไฟล์ JQuery หรือ .js ได้<br />(Failed to load resource: the server responded with a status of 404)<br /><br />ปกติจะเรียกกันแบบ<br />< script src="js/jquery.min.js" >< /script ><br /><br />ให้เราเปลี่ยนมาใช้<br />< script src="<%=ResolveClientUrl("~/js/")%>jquery.min.js" type="text/javascript" >< /script ><br /><br /><br />1.FADEIN/FADEOUT for id element http://stackoverflow.com/questions/6121203/how-to-do-fade-in-and-fade-out-with-javascript-and-css<br />2.CHECK FORM VALIDATE(ajax) http://jqueryfordesigners.com/index.html%3Fp=6.html<br />3.Upload multiple file http://stackoverflow.com/questions/19295746/how-to-upload-multiple-files-using-php-jquery-and-ajax<br />4.Upload multiple file with interface https://github.com/blueimp/jQuery-File-Upload/wiki<br /><br />5.Detect when select file in upload buttom<br />$("#file").change(function(){<br /> //submit the form here<br /> });<br /><br />6.Auto click buttom<br />$('#cancel').trigger('click'); <br /><br />7.Click button to do function <br />< button onclick="myFunction()" >Click me< /button > <br /><br />8.ส่งค่า POST จาก jquery ให้ไฟล์ php <br /> $('#send').click(function(){<br /> // var clickBtnValue = $(this).val();<br /> var ajaxurl = 'http://mis.cp.eng.chula.ac.th/u54isi/indexTest.php', //ปลายทางรับ post<br /> data = {'action': 'clickBtnValue','fromName':'poo'}; //ข้อมูลที่จะส่งไป post<br /> $.post(ajaxurl, data, function (response) {<br /> // Response div goes here.<br /> alert(response);<br /> });<br /> })<br /><br />9. เรียกใช้ function ตลอดเวลา ทุกๆ 10000ms หรือ 10วิ<br />setInterval(functionName, 10000); <br /><br />10.get ค่าใน html ของ id ต่างๆ<br /> var bar = $('#idname').html();<br /><br />11.ส่งค่าด้วย post ไปเรียก method ใน url (php) ที่กำหนด ตัวอย่างเรียก get_info แล้วอ่านคืนมาเป็น info<br /> $.ajax({<br /> url: 'ajax',<br /> data: 'action=get_info&value=' + $('#curriculum').val() ,<br /> dataType: 'json',<br /> type: 'post',<br /> success: function (info) {<br /> depart.value = info.depart;<br /> degree.value = info.degree;<br /> fu.value = info.fu;<br /> }<br /> });<br />12.Foreach ใน javascript<br />http://blog.levelup.in.th/2010/06/30/javascripts-foreach-foreach-%E0%B9%83%E0%B8%99-javascript/<br /><br />13.จับว่าเลิก focus element นี้แล้ว<br />$('#newPassword,#confirmPassword').focusout(function () {<br /> alert('kuy');<br /> if($('#newPassword').val() != $('#confirmPassword').val()) {<br /> // $('#saveChange').disabled = true;<br /> }<br /> });<br /><br />14.การ disabled ปุ่ม<br /> $("#saveChange").prop('disabled',true);<br /><br />15.ทำให้ค่าภายใน element เป็น html ที่ต้องการ<br />$('#sa').html(str_html); <br /><br />16.<br />$(document).ready(function () {<br /> //function ที่ต้องการ<br />});<br /><br />17.การทำปุ่มอัพไฟล์แบบสวยๆ โดย boostrap<br /> < div class="col-md-2" ><br /> < form enctype="multipart/form-data" method="POST" ><br /> < span class="btn btn-default fileinput-button" style="width: 100%" ><br /> < i class="glyphicon glyphicon-cloud-upload" aria-hidden="true" >< /i><br /> < span>Import data< /span ><br /> < input type="file" name="studentfile" id="studentfile"/ ><br /> < /span> <br /> < /form><br />< /div><br /><br />< style><br />.fileinput-button {<br /> position: relative;<br /> overflow: hidden;<br />}<br />.fileinput-button input {<br /> position: absolute;<br /> top: 0;<br /> right: 0;<br /> margin: 0;<br /> opacity: 0;<br /> -ms-filter: 'alpha(opacity=0)';<br /> font-size: 200px;<br /> direction: ltr;<br /> cursor: pointer;<br />}<br /><br />/* Fixes for IE < 8 */<br />@media screen\9 {<br /> .fileinput-button input {<br /> filter: alpha(opacity=0);<br /> font-size: 100%;<br /> height: 100%;<br /> }<br />}<br />< /style><br /><br />18.เรียกใช้ฟังก์ชั่นเมื่อเวลาผ่านไป 3000ms<br />setTimeout(function(){ alert("Hello"); }, 3000);<br /><br />19.ไม่ให้ form จำรหัส ใส่นี้ในส่วน <script> .. </script><br /> < ?php <br /> echo '$("#password").attr("autocomplete", "off");';<br /> echo 'setTimeout('."'".'$("#password").val("");'."'".', 500);';<br /> ? ><br /><br />19. reload<br />< script type="text/javascript" ><br />location.reload();<br />< /script ></span>J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-78910830031127627522015-10-17T01:26:00.001-07:002015-10-17T01:29:57.843-07:00Tip2 : Android รวมคำสั่ง และปัญหาที่พบบ่อยๆ จากประสบการณ์<span style="font-size: x-small;">============ ERROR ที่พบบ่อย ===============<br />1 . Gradle DSL method not found: 'runProguard()'<br />ที่ไฟล์ build.gradle เปลี่ยนดังนี้<br />runProguard false >> minifyEnabled false<br />..........................................................................................................................<br />2.SecurityException: Permission denied (missing INTERNET permission?)<br />เพิ่มบรรทัดนี้ลงไปที่ AndroidManifest.xml<br /><uses-permission android:name="android.permission.INTERNET"><br />..........................................................................................................................<br />3.FATAL EXCEPTION: main android.os.NetworkOnMainThreadException at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork<br />1) Don't write network call in Main UI Thread, Use Async Task for that.<br />2) Write below code into your MainActivity file after setContentView(R.layout.activity_main);<br /><br />if (android.os.Build.VERSION.SDK_INT > 9) {<br /> StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();<br /> StrictMode.setThreadPolicy(policy);<br />}<br />..........................................................................................................................<br />4. Error:(10, 8) error: class MyPageAdapter is public, should be declared in a file named MyPageAdapter.java<br />ตั้งชื่อไฟล์ java ไม่ตรงกับชื่อ class ให้แก้ให้ตรงกันซะ (ตรง </uses-permission></span><span style="font-size: x-small;"><span style="font-size: x-small;">MyPageAdapter ของท่านจะปรากฏไม่เหมือนกัน แล้วแต่ชื่อ)</span></span><br />
<span style="font-size: x-small;"><span style="font-size: x-small;"> </span>..........................................................................................................................<br />5.no such table : message หรือขึ้นว่าไม่มี table <br />-ให้ตรวจสอบว่าสร้างแล้วยัง ถ้าคำสั่งถูกหมดให้ลองเปลี่ยนชื่อ table ใหม่<br />-ลองเปลี่ยนเวอร์ชั่น database sqllite ใหม่<br />..........................................................................................................................<br /><br /><br /><br /><br />===========TIP ใช้ประจำ=============<br />1.ส่งตัวแปรข้ามหน้า<br /><br />ใน MainActivity.java<br />Intent in = new Intent(MainActivity.this,SecondActivity.class); //มี class ปัจจุบันเป็น MainActivity.java และ class ปลายทาง SecondActivity.java<br />in.putExtra("key",value); //ส่งตัวแปรพร้อมค่า<br />startActivity(in); //เปลี่ยนหน้าไปปลายทาง<br /><br />ใน SecondActivity.java<br />Intent in = getIntent();<br />String var = in.getStringExtra("key"); //รับตัวแปร<br />..........................................................................................................................<br />2.วันเวลา<br />DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");<br /> long today = (new Date()).getTime(); //เวลาขณะนี้<br /> long bday = 0;<br /> String birthday = dpBirthday.getYear() + "-" + (dpBirthday.getMonth()+1) + "-" + dpBirthday.getDayOfMonth();<br /> try {<br /> bday = formatter.parse(birthday).getTime();<br /> } catch (ParseException e) {<br /> e.printStackTrace();<br /> }<br /> long age = (today-bday)/(1000*60*60*24);<br />..........................................................................................................................<br />3.JSON<br />อ่านจากสตริงเดียว<br />String json = "{\"sName\":\"Sawatdee : Weerachai Nukitram\",\"sEmail\":\"Sawatdee : is_php@hotmail.com\"}";<br />JSONObject c = new JSONObject(json);<br />String strResultName = c.getString("sName");<br />String strResultEmail = c.getString("sEmail");<br /><br />อ่านจาก array 2d<br />String strJSON = "[{\"MemberID\":\"1\",\"Name\":\"Weerachai\",\"Tel\":\"0819876107\"}" +<br /> ",{\"MemberID\":\"2\",\"Name\":\"Win\",\"Tel\":\"021978032\"}" +<br /> ",{\"MemberID\":\"3\",\"Name\":\"Eak\",\"Tel\":\"0876543210\"}]";<br /><br /> JSONArray data = new JSONArray(strJSON);<br /> <br /> ArrayList<hashmap string="" tring="">> MyArrList = new ArrayList<hashmap string="" tring="">>();<br /> HashMap<string string=""> map;<br /> <br /> for(int i = 0; i < data.length(); i++){<br /> JSONObject c = data.getJSONObject(i);<br /> <br /> map = new HashMap<string string="">();<br /> map.put("MemberID", c.getString("MemberID"));<br /> map.put("Name", c.getString("Name"));<br /> map.put("Tel", c.getString("Tel"));<br /> MyArrList.add(map);<br /> <br /> }<br /><br />อ่านจากหลายมิติ<br />try<br /> { <br /> String jsonString="";//your json string here<br /> JSONObject jObject= new JSONObject(jsonString).getJSONObject("categories");<br /> Iterator<string> keys = jObject.keys();<br /> while( keys.hasNext() )<br /> {<br /> String key = keys.next();<br /> Log.v("**********", "**********");<br /> Log.v("category key", key);<br /> JSONObject innerJObject = jObject.getJSONObject(key);<br /> Iterator<string> innerKeys = innerJObject.keys();<br /> while( innerKeys.hasNext() )<br /> {<br /> String innerKkey = keys.next();<br /> String value = innerJObject.getString(innerKkey);<br /> Log.v("key = "+key, "value = "+value);<br /> }<br /> }<br /> }<br /> catch (JSONException e)<br /> { e.printStackTrace(); }<br />..........................................................................................................................<br />4.ใส่เส้นคั่นหน้า<br /> <view br=""> android:layout_height="1dip"<br /> android:background="#CCCCCC" /><br />..........................................................................................................................<br />5.Layout ต่างๆ<br />1. Linear Layout เรียงเป็นเส้นตรง แนวนอน หรือ แนวตั้ง โดยใช้คำสั่ง<br />android:orientation = "horizontal"<br />android:orientation = "vertical"<br /><br />2. Relative Layout เรียงตามตำแหน่งอ้างอิงกับ element อื่นๆ ในเลย์เอาต์ หรือ อ้างอิงกับเลย์เอาต์ที่ตัว element นั้นอยู่ โดยใช้คำสั่ง<br />android:layout_below = "@android:id/text1"<br />android:layout_toRightOf = "@android:id/checkbox"<br /><br />3. Frame Layout เป็นการเรียงแบบ stack คือตัวที่สร้างทีหลังจะวางอยู่บนสุด<br /><br />4. Absolute Layout เป็นการเรียงแบบที่เรากำหนดตำแหน่ง โดยใช้คำสั่ง<br />android:layout_x="100dp"<br />android:layout_y="50dp"<br /><br />5. Table Layout เป็นการเรียงแบบตาราง โดยที่ control แต่ละตัวจะถือเป็น 1 คอลัมน์<br />โดยจะใช้ .. ครอบแต่ละแถวของตาราง<br /><br />..........................................................................................................................<br />6.ใส่ background<br />android:background="@drawable/bg"<br />..........................................................................................................................<br />7.Full Screen app<br /><br />เปลี่ยน extends เป็น Activity (ห้ามเป็น actionbarActivity) , เพิ่ม 3 บรรทัดนั้นก่อน setContent<br /><br />public class FullScreen extends Activity {<br /> @Override<br /> public void onCreate(Bundle savedInstanceState) {<br /> super.onCreate(savedInstanceState);<br /><br /> requestWindowFeature(Window.FEATURE_NO_TITLE);<br /> getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, <br /> WindowManager.LayoutParams.FLAG_FULLSCREEN);<br /><br /> setContentView(R.layout.main);<br /> }<br />}<br /><br />หรือใช้วิธี<br />Alternatively you can add<br />android:theme="@android:style/Theme.NoTitleBar.Fullscreen"<br />to AndroidManifest.xml under<br />..........................................................................................................................<br />8.ทำให้ element ภายในพอดี<br /> android:scaleType="centerCrop"<br />..........................................................................................................................<br />9.ทำให้ปุ่มกระพริบเป็นอีกภาพเมื่อคลิก<br /><br /> <selector xmlns:android="http://schemas.android.com/apk/res/android"><br /> <item android:state_pressed="true" br=""> android:drawable="@drawable/button_pressed" /> <!-- pressed --><br /> <item android:state_focused="true" br=""> android:drawable="@drawable/button_focused" /> <!-- focused --><br /> <item android:drawable="@drawable/button_normal"> <!-- default --><br /> </item></item></item></selector><br />แล้ว save ไว้ใน drawable folder เช่น button.xml<br />ส่วนใน button activity เพิ่ม android:src="@drawable/button"<br />..........................................................................................................................<br />10.รับรู้เมื่อปุ่มถูกกด<br /> final Button button = (Button) findViewById(R.id.button_id);<br /> button.setOnClickListener(new View.OnClickListener() {<br /> public void onClick(View v) {<br /> // Perform action on click<br /> }<br /> });<br />หรือ<br />android:onClick="selfDestruct"<br />แล้วเพิ่ม<br /> public void selfDestruct(View view) {<br /> // Kabloey<br /> }<br />..........................................................................................................................<br />11. เรียกใช้ JSON<br />JSONArray arr = new JSONArray(result);<br />JSONObject jObj = arr.getJSONObject(0);<br />String date = jObj.getString("NeededString");<br />..........................................................................................................................<br />12. ทำให้มีหลายแท็ป <br />http://www.thaicreate.com/mobile/android-tabhost.html<br />http://devahoy.com/2014/09/android-tab-with-tabhost-and-actionbar-tab/<br />http://www.akexorcist.com/2014/11/lets-fragment-view-pager-1.html<br />ใส่รูปใน tab ด้วย view<br />http://stackoverflow.com/questions/14535085/add-image-or-style-to-each-tab<br />..........................................................................................................................<br />13.การนำภาพมาใช้ เช่น button.jpg จากโฟลเดอร์ Drawable<br />getResources().getDrawable(R.drawable.button)<br />..........................................................................................................................<br />14.เพิ่มสี<br />Then declare gray in your res\values\strings.xml<br /><color name="gray">#808080</color><br />แล้วเรียกใช้ผ่าน @color/grey ได้เลย<br />..........................................................................................................................<br />15.การเปลี่ยน string เป็น string[]<br />String[] ary = "abc".split("");<br />ary จะเป็น {"a","b","c"}<br />..........................................................................................................................<br />16.SQLLITE การลบ<br />// Delete Data<br /> public long DeleteData() {<br /> // TODO Auto-generated method stub<br /> try {<br /> SQLiteDatabase db;<br /> db = this.getWritableDatabase(); // Write Data<br /> db.delete(TABLE_MEMBER, null, null);<br /> return 0;<br /> } catch (Exception e) {<br /> return -1;<br /> }<br /> }<br />..........................................................................................................................<br />17.refresh activity ใหม่<br />finish();<br />startActivity(getIntent());<br />..........................................................................................................................<br />18.android life cycle<br />http://startandroid.ru/en/lessons/complete-list/232-lesson-24-activity-lifecycle-example-about-changing-states-with-two-activities.html<br />..........................................................................................................................<br />19.kill thread<br />myService.getThread().interrupt();<br />..........................................................................................................................<br />20.Custom list view<br />http://www.akexorcist.com/2012/09/android-code-custom-list-view.html<br />..........................................................................................................................<br />21.การอัพเดท listview<br />เอาโค้ดนี้ไว้ที่ไหนก็ได้ เช่น เมท็อตรีเฟชร ให้ Thread เรี่ยกใช้ หรือ onResume() <br />adapter.getData().clear(); //เข้าไปลบ data ใน adapter (ต้องทำ method getData() ไว้ที่ adapter ด้วย)<br />adapter.setData(m.SelectAllData()); //เข้าไปเพิ่ม data ใน adapter เป็นตัวใหม่ ต้องมีเมท็อตเหมือนกัน<br />adapter.notifyDataSetChanged(); <br />listView.invalidateViews();<br />listView.refreshDrawableState();<br />..........................................................................................................................<br />22.ทำให้ Thread สามารถเรียกเมท็อดได้ ให้ครอบด้วย handler<br /> handler.post(new Runnable() {<br /> public void run() {<br /> f.refresh1(); //เมท็อดที่จะเรียก<br /> }<br /> });<br />..........................................................................................................................<br />23. Print to console<br />Log.d("array", a.size() + "");<br />..........................................................................................................................<br />24.สร้างตัวแจ้งเตือน<br />Toast.makeText(getApplicationContext(),<br /> "Sorry", Toast.LENGTH_SHORT).show();<br />..........................................................................................................................<br />25.ทำ popup แบบมีหลายตัวเลือก<br />http://devahoy.com/2014/04/android-dialog-and-custom-dialog-example/#multi-choice-dialog<br />..........................................................................................................................<br /><br /><br />=====================hot-key=====================<br />[[android : pc]]<br />Home = Home<br />Back = esc<br />Power = F7<br />Menu = F2<br />VolUp = Ctrl-F5<br />VolDown = Ctrl-F6<br />Press ALT+spacebar together, then release and press m. You are now in Move mode. press Enter to exit Move mode.<br /><br />ออโต้อิมพอต<br />http://stackoverflow.com/questions/16615038/what-is-the-shortcut-to-auto-import-all-in-android-studio</view></string></string></string></string></hashmap></hashmap></span>J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-48772188438800391912015-10-11T02:47:00.000-07:002015-10-17T01:27:10.066-07:00Tip1 : Basic javascript animation PART2 <span style="font-size: x-small;">สำหรับตอนที่2 นี้เราก็จะมาดูการประยุกต์ใช้งานจริงด้วยคำสั่งต่างๆนะครับ โดยจากตอนที่แล้ว<br />ผมได้ทำการอธิบายโค้ดที่เป็นตัวหลักในการควบคุมอนิเมชั่นไปแล้ว วันนี้จะมาอธิบายพวก<br />คำสั่งที่ใช้งานบ่อยๆ สำหรับใช้ในจาวาสคริปอนิเมชั่นกันนะครับ </span><br />
<span style="font-size: x-small;"><br /><b><span style="font-size: large;"><u>1.คำสั่งที่ใช้ควบคุม javascript ที่จำเป็น</u></span></b></span><br />
<span style="font-size: x-small;">var t = setInterval(framerate,500); เป็นการสั่งให้เรียกฟังค์ชั่น (ในที่นี้ชื่อ framerate) ทุกๆ 500ms ไปตลอด<br />จะหยุดได้ต้องใช้ clearInterval(t); และนี้คือเหตุผลที่ต้องมี var t มารับค่า เพราะจะได้นำมาใช้หยุดคำสั่งได้<br />note : คำสั่งจะเริ่มทำงานครั้งแรกเมื่อผ่านไป 500ms นับจากคำสั่งถูกรัน ไม่ใช่เริ่มทำงานทันที <br /><br />คำสั่งต่อมาที่ใช้บ่อยเช่นกันคือ setTimeout(framerate,500); อันนี้ต่างกันคือเรียกใช้เพียงครั้งเดียว เริ่มทำงานหลัง 500ms </span><br />
<br />
<span style="font-size: x-small;">สองคำสั่งนี้จำเป็นมากในการควบคุมเวลาที่ทำให้อนิเมชั่นเกิดการเปลี่ยนแปลงตามเวลา<br />สำหรับ setInterval นั้นนอกจากจะใส่เวลาเป็นตัวเลขเป็นเวลาที่แน่นอนคงที่แล้ว<br />ยังกำหนดเป็นแบบไม่คงที่ได้ เช่น นับเร็วขึ้นเรื่อยๆ ดูรายละเอียดได้ที่เว็บนี้เลย<br /><a href="http://javascript.info/tutorial/animation">http://javascript.info/tutorial/animation</a></span><br />
<span style="font-size: x-small;"><br /><br /><span style="font-size: large;"><b><u>2.คำสั่งเบสิกสุดๆ คือการเปลี่ยนค่า css ของแต่ล่ะ element </u> </b></span></span><br />
<span style="font-size: x-small;">เป็นการเปลี่ยนค่าวัตถุ เช่น ขนาด ตำแหน่ง ซ่อน แสดง ขอบ สี โดยเมื่อออกแบบลำดับดีๆ<br />ก็จะทำให้เกิดการเปลี่ยนแปลงของวัตถุเป็นอนิเมชั่นที่สวยงามได้ โดยใน js เบื้องต้นจะเป็น<br />document.getElementById("id").style. แล้วตามด้วยคำสั่ง style ต่างๆ เช่น</span><br />
<br />
<span style="font-size: xx-small;">document.getElementById("id").style.marginTop = "50%";</span><br />
<span style="font-size: xx-small;">document.getElementById("id").style.border = "10px solid yellow";</span><br />
<span style="font-size: xx-small;">document.getElementById("id".style.backgroundColor = "red";</span><br />
<span style="font-size: xx-small;">document.getElementById("id").style.top = "30%";</span><br />
<span style="font-size: xx-small;">document.getElementById("id").style.opacity = "0.9";</span><br />
<br />
ถ้าของ Jquery ก็จะสั้นกว่า ตามนี้ <a href="http://www.w3schools.com/jquery/jquery_css.asp" target="_blank">http://www.w3schools.com/jquery/jquery_css.asp </a><br />
ซึ่งคำสั่งเพิ่มเติมสามารถหาได้จาก google เลยครับ<br />
<br />
<b>ตัวอย่างโค้ดทำให้การ์ด (html element) เลื่อนขึ้นและโชว์ขอบ และเลื่อนลงซ่อนขอบ</b><br />
<span style="font-size: xx-small;">function cardSlideUp(card) {<br /> document.getElementById(card).style.marginTop = "40" + "%";<br /> document.getElementById(card).style.border = "10px solid yellow";<br /> document.getElementById("frame").style.backgroundColor = "red";<br /> setTimeout(function(){ document.getElementById('raid').style.width = "98%"; },20); <br /> setTimeout(function(){ document.getElementById('raid').style.width = "100%"; },200); <br />}<br /><br />function cardSlideDown(card) {<br /> document.getElementById(card).style.marginTop = "50" + "%";<br /> document.getElementById(card).style.border = "0px solid yellow";<br /> document.getElementById("frame").style.backgroundColor = "black";<br />}</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">เวลาเรียกใช้งานก็จะประมาณนี้</span><br />
<br />
<span style="font-size: xx-small;">function onClick() { <span style="color: red;">//คำสั่งนี้ถูกเรียกได้หลายวิธี สามารถดูได้ที่ tip part1 บทความที่แล้ว</span><br /> var scene = 0<br /><br /> function framerate() { <br /> scene++ </span><br />
<span style="font-size: xx-small;"><br /> switch(scene) {<br /> case 1: <br /> cardSlideUp("card"); <span style="color: red;">//500ms แรก เรียกการ์ดขยับขึ้น เป็นการโจมตี โดยต้องมี html element ภาพการ์ดที่มี id = "card" ด้วยในการเรียก</span><br /> break;<br /> case 2:<br /> cardSlideDown("card"); <span style="color: red;">//500ms ต่อมา โจมตีเสร็จขยับลง</span><br /> break;</span><br />
<span style="font-size: xx-small;"><br /> if (scene == 2) <br /> clearInterval(t); <span style="color: red;">//หยุดการทำงานของ setInterval</span><br /> }<br /><br /> var t = setInterval(framerate,500); <span style="color: red;">//ตั้งเวลาไว้ 500ms หรือครึ่งวินาทีต่อการเปลี่ยนแปลง 1 ครั้ง</span><br />} </span><br />
<br />
<span style="font-size: large;"><b><br /></b></span>
<span style="font-size: x-small;"><span style="font-size: large;"><b><u>3.คำสั่งจำพวก Canvas ใช้ร่วมกับ sprite sheet </u></b></span><br />ถ้าต้องการอนิเมชั่นที่ลื่นไหล สวยงาม สมจริง เช่นท่าเตะของตัวละคร effect สกิลโจมตีต่างๆ<br />ก็จำเป็นที่จะต้องใช้ sprite sheet ร่วมกับคำสั่ง canvas ล่ะครับ <br /><br />sprite sheet ก็คือภาพๆนึง ที่รวมการเคลื่อนไหวของตัวละครหรือวัตถุต่างๆ ในทุกๆเฟรมไว้<br />นั้นเอง เฟรมๆนึงก็จะใช้รูปภาพนึง ดังนั้น sprite image จึงมีภาพเล็กๆหลายภาพ อยู่ในตำแหน่ง<br />ที่แน่นอน เพราะเวลานำไปใช้งานเราจะทำการดึงภาพเล็กๆนั้นแหละไปทีล่ะภาพ โดยจะเปลี่ยน<br />ตำแหน่งในการดึงทุกครั้ง เพื่อให้ได้ภาพเคลื่อนไหวที่สวยงามต่อเนื่อง </span><br />
<img class="irc_mi" src="http://i.stack.imgur.com/7yWvW.jpg" height="200" style="margin-top: 0px;" width="320" /><br />
<br />
<span style="font-size: x-small;"><br /><b>ตัวอย่างภาพ sprite sheet ของ effect ระเบิด </b></span><br />
<span style="font-size: x-small;"><b>(</b>http://stackoverflow.com/questions/28201187/working-with-sprite-sheet-animations-in-android<b>)</b></span><br />
<br />
<br />
<b>คราวนี้จะมาอธิบายพร้อม code นะครับ</b><br />
<span style="font-size: x-small;">ขั้นแรก เราต้องมี html element ให้มันแสดงผล canvas ก่อนนะครับ ง่ายๆเลยก็ตัวอย่างเช่น</span><br />
<blockquote class="tr_bq">
<b><span style="font-size: xx-small;">< canvas id="show" width="640px" height="400px" >< /canvas ></span></b></blockquote>
<span style="font-size: x-small;">ต่อมาก็เป็นรูปภาพ sprite sheet ซึ่งให้โหลดมาเป็น html img แล้วทำการซ่อนภาพ ก่อนปิดด้วยวงเล็บปีกกา เช่น</span><br />
<blockquote class="tr_bq">
<span style="font-size: xx-small;"><b>< img id="skill" src="sprite.png" style="display:none" /></b></span></blockquote>
<span style="font-size: x-small;">สำหรับการโหลดภาพเข้ามาใช้ในงานนั้น เนื่องจาก javascript นั้นทำงานแบบไม่รอใคร ไม่รอคำสั่งบรรทัดบนประมวลผลเสร็จ<br />ก็ไปรันคำสั่งถัดไปแล้ว (async) ก็จะทำให้บางทีนั้นภาพอนิเมชั่นไม่ขึ้น เพราะไม่สามารถหาภาพเจอเนื่องจากโหลดไม่ทัน<br />วิธีแก้นั้นก็คือให้ทำเป็น img html แล้วโหลดมาไว้ก่อน พร้อมกับซ่อนไว้ ดังตัวอย่างข้างบน หรือถ้าจะใช้ javascript โหลดมาตรงๆล่ะก็ อาจจะต้องมีการหน่วงเวลาด้วยคำสั่ง setTimeout หรือจะใช้ window.onload = function () { ... } ในการรอให้โหลดเสร็จก่อนค่อยรันก็ได้</span><br />
<br />
<span style="font-size: x-small;">จากนั้นก็สร้าง javascript สำหรับเรนเดอร์ ดังนี้ </span><br />
<br />
<span style="font-size: xx-small;">function animation() {<br /> var mainAnimationFrame = 0; <span style="color: red;">//เฟรมเริ่มต้นเป็น 0 เหมือนเดิม</span><br /> <br /> var c = document.getElementById("show"); <span style="color: red;">//ต้องนำเข้า canvas html element ที่เราสร้างไว้ในขั้นแรกมาเป็นตัวแปรก่อน </span><br /> var ctx = c.getContext("2d"); <span style="color: red;">//จากตัวแปร canvas นั้น ก็ใช้คำสั่ง getContext("2d") เพื่อเรียกส่วนการวาดของ canvas ขึ้นมา เก็บไว้ที่ตัวแปร ctx</span><br /><br /> var skill_img = document.getElementById('skill'); <span style="color: red;">//นำภาพ sprite sheet เข้ามาเก็บ</span></span><br />
<span style="font-size: xx-small;"><br /> <span style="color: red;">//ต่อมากำหนดตำแหน่งจุดเริ่มต้นภาพที่จะให้ตัดรูปไปแสดงผลในแต่ล่ะเฟรม โดยสร้างเป็นอาเรย์ javascript</span><br /> var skill_list = [{'y': '5', 'x': '5'} ,<br /> {'y': '5', 'x': '655'} ,<br /> {'y': '5', 'x': '1305'} ,<br /> {'y': '5', 'x': '1955'}];<br /><br /> function run() {<br /> var id = mainAnimationFrame; <br /> ctx.clearRect(0, 0, 640, 400); <span style="color: red;">//ลบภาพเก่าเฟรมที่แล้ว ถ้าไม่ใส่ภาพจะวาดทับกันไปเรื่อยๆ</span><br /> ctx.drawImage(<br /> skill_img, <span style="color: red;">//ภาพ sprite ที่โหลดมาไว้ข้างบน</span><br /> skill_list[id].x, <span style="color: purple;"><b>//จุดเริ่มต้นที่วาดภาพในแนวแกน x โดยดูจากอาเรย์ skill_list ตำแหน่งของอาเรย์ตามเฟรมภาพปัจจุบัน</b></span><br /> skill_list[id].y, <b> </b></span><span style="color: purple;"><b><span style="font-size: xx-small;"><span style="font-size: xx-small;">//จุดเริ่มต้นที่วาดภาพในแนวแกน y</span> </span></b></span><span style="color: red;"><span style="font-size: xx-small;"><b><span style="color: purple;"><span style="font-size: xx-small;">โดยดูจากอาเรย์ skill_list ตำแหน่งของอาเรย์ตามเฟรมภาพปัจจุบัน</span> </span> </b> </span></span><br />
<span style="font-size: xx-small;"> 640, <span style="color: red;">//ขนาดรูปต้นฉบับที่จะ crop มาแสดงผล นับจากจุดเริ่มต้นแกน x</span><br /> 400, </span><span style="font-size: xx-small;"><span style="color: red;"><span style="font-size: xx-small;">//ขนาดรูปต้นฉบับที่จะ crop มาแสดงผล นับจากจุดเริ่มต้นแกน y</span> </span> </span><br />
<span style="font-size: xx-small;"> 0, 0, <span style="color: red;">//ตำแหน่ง x,y เริ่มต้นที่จะวาดใน html canvas element</span><br /> 640, <span style="color: red;">//ขนาดรูปแนวแกน x ที่จะวาดลงไปใน canvas</span><br /> 400 <span style="color: red;">//ขนาดรูปแนวแกน y ที่จะวาดลงไปใน canvas</span><br /> );<br /> mainAnimationFrame += 1; <span style="color: red;">//เพิ่มเฟรมไปเรื่อยๆทีล่ะ 1</span><br /><br /> if(mainAnimationFrame == 3) <span style="color: red;">//ถ้าหมด sprite ที่จะแสดงผลแล้ว ในที่นี้มี 4 รูป เริ่มจาก 0 1 2 3 ดังนั้นเมื่อถึง 3 ก็คือรูปสุดท้าย จบแล้ว ให้ทำคำสั่งข้างล่าง</span><br /> {<br /> ctx.clearRect(0, 0, 640, 400); <span style="color: red;">//ลบภาพเก่าที่วาดไว้</span><br /> clearInterval(r); <span style="color: red;">//จบการแสดงผลโดยจบคำสั่ง setInterval ข้างล่าง</span><br /> }<br /> }<br /><br /> var r = setInterval(run, 100); <span style="color: red;">//ทำงานทุกๆ 100ms</span><br /> <br />}</span><b></b><br />
<b><br /></b>
<span style="font-size: x-small;"><b>ดูคำอธิบายโค้ดเพิ่มได้ที่<br /><a href="http://www.w3schools.com/tags/canvas_drawimage.asp" target="_blank">http://www.w3schools.com/tags/canvas_drawimage.asp </a></b></span><br />
<br />
<span style="font-size: x-small;">จากการแสดงผลอนิเมชั่นด้วย canvas ที่ยกตัวอย่างให้เห็นนั้น เป็นการแสดงผล<br />อนิเมชั่นจาก sprite image ที่โหลดเข้ามา โดยตัดภาพแต่ล่ะส่วนของ sprite image </span><br />
<span style="font-size: x-small;">(ตามตำแหน่ง x,y ที่เซตใน array skill_list) ไปแสดงผลที่ canvas element ทุกๆ 100ms </span><br />
<span style="font-size: x-small;">ก็เลยจะได้ภาพที่ค่อนข้างลื่นไหล จะเห็นได้ว่าการทำงานนั้นคล้ายกับตัวอย่างโค้ดใน</span><br />
<span style="font-size: x-small;">PART1 อยู่มาก หลักๆคือให้รู้ว่าทุกๆครั้งที่เฟรมนับไปเรื่อยๆนั้นจะต้องทำอะไร อย่างไรบ้าง </span><br />
<span style="font-size: x-small;">จากตัวอย่าง canvas ในที่นี้คือ เฟรมแรกตัดภาพส่วนที่1 ไปแสดง เฟรมต่อไปก็ตัดภาพส่วนที่2 ไปแสดง </span><br />
<span style="font-size: x-small;">ทำแบบนี้ไปเรื่อยๆจนหมดเฟรม ตรงส่วนนี้เราสามารถออกแบบโปรแกรมให้ทำงานตามที่เราต้องการได้</span><b></b><br />
<b><br />สำหรับการประยุกต์ใช้ตัวอย่างนึงคือ การใช้โค้ดใน part1 นั้น มาเรียกใช้<br />โค้ดในตัวอย่าง canvas นี้ เช่น </b><br />
<b></b><br />
<span style="font-size: xx-small;">function onClick() {<span style="color: red;"></span><br /> var scene = 0<br /><br /> function framerate() { <br /> scene++ </span><br />
<span style="font-size: xx-small;"><br /> switch(scene) {<br /> case 1: <br /> cardSlideUp("card"); <span style="color: red;">//500ms แรก เรียกการ์ดขยับขึ้น เป็นการโจมตี โดยต้องมี html element ภาพการ์ดที่มี id = "card" ด้วยในการเรียก</span> </span><br />
<span style="font-size: xx-small;"> animation(); <span style="color: purple;"><b><span style="font-size: x-small;">//สั่งให้วาดอนิเมชั่นด้วย canvas ที่เราได้ออกแบบไว้หลังการ์ดขยับโจมตี</span></b></span><br /> break;<br /> case 2:<br /> cardSlideDown("card"); <span style="color: red;">//500ms ต่อมา โจมตีเสร็จขยับลง</span><br /> break;</span><br />
<span style="font-size: xx-small;"><br /> if (scene == 2) <br /> clearInterval(t); <span style="color: red;">//หยุดการทำงานของ setInterval</span><br /> }<br /><br /> var t = setInterval(framerate,500); <span style="color: red;">//ตั้งเวลาไว้ 500ms หรือครึ่งวินาทีต่อการเปลี่ยนแปลง 1 ครั้ง</span><br />} </span><br />
<b> </b> J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-51594779703209784302015-10-05T07:38:00.004-07:002015-10-17T01:27:31.472-07:00Tip1 : Basic javascript animation PART1<span style="font-size: x-small;">สวัสดีครับ หายไปนานเพราะงานเข้าเยอะมากๆ ช่วงนี้ก็เลยได้เวลาปล่อยของ เอ้ย ปล่อย</span><br />
<span style="font-size: x-small;">ความรู้ที่ได้รับจากการทำงานเป็นโปรแกรมเมอร์ให้เกมๆนึงทางฝั่งญี่ปุ่น โดยส่วนที่ทำให้</span><br />
<span style="font-size: x-small;">ผมชะงักมากสุดก็คือส่วน javascript ที่เป็นอนิเมชั่นนั้นเอง (ปกติผมเป็น backend php)</span><br />
<span style="font-size: x-small;">เอาล่ะ ใน Part1 นี้ผมจะมาอธิบายในส่วนหลักการพื้นฐานที่ควรรู้ก่อน นั้นคือเรื่อง</span><br />
<span style="font-size: x-small;">เวลาที่อนิเมชั่นจะแสดงผล หรือ timeline frame นั้นเอง</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;"><b>Concept</b></span><br />
<span style="font-size: x-small;">ปกติการรันอนิเมชั่นก็จะมีการกำหนดไว้ว่า ที่เวลาเท่านั้นเท่านี้หลังจาก start จะให้</span><br />
<span style="font-size: x-small;">ทำอะไร วัตถุเคลื่อนไปทางไหน มีอะไรโผล่ขึ้นมา อะไรหายไป และอีกมากมายที่เป็น</span><br />
<span style="font-size: x-small;">การเปลี่ยนแปลงที่ทำให้เกิดเป็นการเคลื่อนไหว หรือ effect ต่างๆ ดังนั้นก็จะต้องมีการ</span><br />
<span style="font-size: x-small;">plan ว่าที่วินาที 1 จะให้ทำอะไร วินาทีต่อมาทำอะไรต่อ เพื่อให้เกิดเป็นภาพอนิเมชั่น</span><br />
<span style="font-size: x-small;">ขึ้นมาในที่สุด บางครั้งอาจเซตเป็น 0.5 วินาที, 0.1 วินาที หรือน้อยจนระดับ ms (millisecond)</span><br />
<span style="font-size: x-small;">แล้วแต่ความ smooth ของภาพ โดยถ้าเซตเป็น 0.5 วินาทีก็หมายความว่า ใน 1 วินาทีที่ผ่านไป</span><br />
<span style="font-size: x-small;">จะมีการเปลี่ยนแปลงเกิดขึ้น 2 ครั้ง และถ้าเซตเป็น 0.1 วินาทีก็มีการเปลี่ยนแปลงเกิดขึ้น 10 ครั้ง</span><br />
<span style="font-size: x-small;">ภาพก็จะ smooth ดูต่อเนื่องมากยิ่งขึ้น ตรงนี้ก็แล้วแต่จุดประสงค์ของแต่ล่ะคนเลยครับ</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">และนี้คือ basic code พื้นฐานที่เป็นหัวใจสำคัญในการรันอนิเมชั่นใน javascript ครับ</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;"><b>function animation() { </b><span style="color: red;">//ชื่อฟังค์ชั่นที่คุมเวลาแสดงอนิเมชั่น </span><b><br /></b></span><br />
<span style="font-size: x-small;"><b> var scene = 0 </b><span style="color: red;">//กำหนด scene หรือฉากแรกเป็น 0 </span></span><br />
<span style="font-size: x-small;"><b><br /></b>
<b> function framerate() { </b></span><br />
<span style="font-size: x-small;"><b> scene++ </b><span style="color: red;">//ให้ฉากเปลี่ยนไปเรื่อยๆ โดยเพิ่มทีล่ะ 1 </span></span><br />
<span style="font-size: x-small;"><b><br /></b>
<b> switch(scene) {</b></span><br />
<span style="font-size: x-small;"><b> case 1: </b></span><br />
<span style="font-size: x-small;"><b> </b><span style="color: red;">//ใส่ function หรือ code ที่ต้องการให้ run เมื่อถึงวินาทีที่1 ตรงนี้</span></span><br />
<span style="font-size: x-small;"><b> break;</b></span><br />
<span style="font-size: x-small;"><b> case 2:</b></span><br />
<span style="font-size: x-small;"><b> </b> <span style="color: red;">//ใส่ function หรือ code ที่ต้องการให้ run เมื่อถึงวินาทีที่2 ตรงนี้</span></span><br />
<span style="font-size: x-small;"><b> break;</b></span><br />
<span style="font-size: x-small;"><b> case 3:</b></span><br />
<span style="font-size: x-small;"><b> </b><span style="color: red;">//ใส่ function หรือ code ที่ต้องการให้ run เมื่อถึงวินาทีที่3 ตรงนี้</span></span><br />
<span style="font-size: x-small;"><b> break;</b></span><br />
<span style="font-size: x-small;"><b><br /></b>
<b> if (scene == 3) </b></span><br />
<span style="font-size: x-small;"><b> clearInterval(t); </b><span style="color: red;">//ถ้า scene มาถึงฉากสุดท้าย หรือในที่นี้คือ3 ให้หยุดการทำงาน</span><b><br /> </b><span style="color: red;">// </span><span style="color: red;">กรณีที่อยากให้วน loop เรื่อยๆไม่หยุด ให้เซต scene = 0; </span></span><br />
<span style="font-size: x-small;"><b> }</b></span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;"><b> var t = setInterval(framerate,1000); </b><span style="color: red;">//เรียกใช้ function framerate ทุกๆ1000ms</span><b><br /></b></span><br />
<span style="font-size: x-small;"><b>}</b></span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">จากข้างบนจะเป็น code สำหรับรันอนิเมชั่น โดยเซตเวลาที่ทำอนิเมชั่นต่อครั้ง = 1 วินาที</span><br />
<span style="font-size: x-small;">(1000ms) และมี timeline การรันอนิเมชั่นอยู่ 3 ครั้ง (ในที่นี้ตามจำนวน case 1-3) </span><br />
<span style="font-size: x-small;">โดยฟังค์ชั่นข้างบนนั้นจะมีการเรียกใช้ได้หลายวิธี ตัวอย่าง เช่น</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;"><u>1.รันเมื่อโหลดหน้าเว็บ พวกรูปภาพ ไฟล์ต่างๆ เสร็จแล้ว</u><b><b><br /></b>window.onload = function () {<br /> animation(); </b><b><br />}</b></span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;"><u>2.รันจากฟังค์ชั่นอื่นๆ (สามารถรันจากฟังค์ชั่นอนิเมชั่นตัวอื่นซ้อนอีกทีก็ได้ จะอธิบาย part ต่อไป) </u></span><br />
<span style="font-size: x-small;"><u>3.รันจาก html element เมื่อคลิก เช่น < img src="xxx.jpg" onclick="animation();"></u></span><br />
<span style="font-size: x-small;"><u>4.รันจาก html element เมื่อเมาส์ชี้ เช่น < img src="xxx.jpg" onmouseover="animation();"></u></span><br />
<span style="font-size: x-small;"><u><u>5.รันจาก html element เมื่อค่าเปลี่ยน เช่น < input type="text" onchange="animation();"></u></u></span><br />
<span style="font-size: x-small;"><u><u><br /></u> </u></span><br />
<span style="font-size: x-small;">สำหรับวันนี้ก็จะเป็นการอธิบายในส่วนของ concept เบื้องต้นนะครับ</span><br />
<span style="font-size: x-small;">จริงๆในส่วนนี้ก็สามารถนำไปประยุกต์ใช้ได้เยอะ แต่ถ้ายังไม่หนำใจมีตอนหน้าครับ</span><br />
<span style="font-size: x-small;">จะเป็นตัวอย่างการใช้งานจริงแบบง่ายๆ และตอนถัดไปก็จะเป็นการประยุกต์มากขึ้นอีก</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">ขอบคุณที่ติดตามครับ</span><b><br /></b>J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-9780271158883778552015-08-15T11:04:00.000-07:002015-10-12T07:33:10.966-07:00[ ANDRIOD ] ไมค์ไม่ดัง แก้ได้ด้วยการปรับค่า mixer_paths.xml , Fix low mic volumn by change value in mixer_paths.xml**Root request**<br />
<br />
ใช้ ES Explorer<br />
1.เข้าไปที่ menu -> Root explorer กดเปิด open แล้วจะเด้งเมนู popup ขึ้นมา<br />
2.เลือก R/W แล้วที่เส้นทาง(path) สองอันแรก (/ กับ /system) ให้เลือก RW<br />
3.เข้าไปที่ system->etc->mixer_paths.xml<br />
4.มองหาบรรทัดดังนี้<br />
<path name="speaker-mic">//speaker mode call</path><br />
<path name="handset-mic">//normal mode call</path><br />
<path name="headset-mic">//headphone mode call </path><br />
แล้วแก้ค่าข้างใน เช่น <span class="tag"><ctl span=""><span class="pln"></span><span class="atn"><path-name font=""><span class="pun">=</span><span class="atv">"DEC5 Volume"</span><span class="pln"> </span><span class="atn">value</span><span class="pun">=</span><span class="atv">"60"</span><span class="pln"> </span><span class="tag">/> แก้เป็นให้มากกว่า 60</span></path-name></span></ctl></span><br />
<span class="tag">แก้โดยคลิกที่ : มุมบนขวา เลือก แก้ไข (edit) หลังจากแก้ไขแล้วกดย้อนกลับ จะมีให้บันทึก<br />5.restart จบ ลองทดสอบดู เท่านี้ไมค์ฝั่งเราก็ดังขึ้นแล้ว ฝ่ายคู่สนทนาจะได้ยินเราชัดขึ้น</span><br />
<span class="tag"><br /></span>
<span class="tag">*****Backup ไฟล์ต้นฉบับเสมอ เพราะอาจทำให้ mic ไม่ทำงานได้ถ้าเซตผิด******</span>J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-25764374872883312492014-08-18T11:34:00.003-07:002015-10-12T07:33:31.071-07:00How to upload image from windows phone 8 to web server. c# อัพโหลดรูปในวินโดว์โฟนขึ้นเซริฟ์เวอร์<span class="userContent" data-ft="{"tn":"K"}">Step การอัพโหลดรูปขึ้น server ใน windows phone for c# <br /> 1.)ใช้ชุดคำสั่ง PhotoChooserTask เลือกรูปในเครื่องแล้วเก็บเป็น bitmapImage<br /> หรือใช้ photoCameraCapture ถ้าต้องการให้ถ่ายรูปทันทีแล้วเ<wbr></wbr><span class="word_break"></span>ก็บเป็นภาพแทน<br /><br /><u>http://www.geekchamp.com/tips/how-to-use-photochoosertask-and-cameracapturetask-in-windows-phone</u><br /><br /> 2.)นำรูป bitmapImage มาเข้ารหัส แปรเป็น byte[] <br /><b>public static byte[] ImageToBytes(BitmapImage img)<br /> {<br /> using (MemoryStream ms = new MemoryStream())<br /> {<br /> WriteableBitmap btmMap = new WriteableBitmap(img);<br /> System.Windows.Media.Imaging.Extensions.SaveJpeg(btmMap, ms, img.PixelWidth, img.PixelHeight, 0, 100);<br /> img = null;<br /> return ms.ToArray();<br /> }<br /> }</b></span><br />
<span class="userContent" data-ft="{"tn":"K"}">เรียกใช้เช่น </span><b><span class="userContent" data-ft="{"tn":"K"}"><span class="userContent" data-ft="{"tn":"K"}">byte[] bit = ImageToBytes(img);</span></span></b><br />
<br />
<u><span class="userContent" data-ft="{"tn":"K"}"><span class="userContent" data-ft="{"tn":"K"}">http://stackoverflow.com/questions/22241480/convert-bitmap-image-to-byte-array-windows-phone-8 </span></span></u><b><span class="userContent" data-ft="{"tn":"K"}"><span class="userContent" data-ft="{"tn":"K"}"><br /></span></span></b><br />
<span class="userContent" data-ft="{"tn":"K"}"><span class="userContent" data-ft="{"tn":"K"}"> </span><br /> 3.)นำ byte[] มาเข้ารหัส base64 แปลเป็น String ความยาวมหาศาล</span><br />
<b><span class="userContent" data-ft="{"tn":"K"}">string strImg = Convert.ToBase64String(bit);</span></b><br />
<span class="userContent" data-ft="{"tn":"K"}"><br /> 4.)ส่ง String ไปสู่ server เข้าไปที่ไฟล์ upload.php <br />ดูวิธีได้ที่ <u>www.thaicreate.com/mobile/windows-phone-add-insert-data-into-web-server.html</u><br /><br /> 5.)ที่ไฟล์ upload.php รับและแปล String กลับเป็น image ด้วย base64.decode</span><br />
<span class="userContent" data-ft="{"tn":"K"}"> แล้ว</span><span class="userContent" data-ft="{"tn":"K"}">เซฟภาพเข้าสู่ไดเรกทอรี่ของเว็บ<wbr></wbr><span class="word_break"></span>ไซด์ ในที่นี้ save ลงใน webURL/image</span><br />
<br />
php code <br />
<br />
<span class="userContent" data-ft="{"tn":"K"}"><b></b></span>
<span class="userContent" data-ft="{"tn":"K"}"><b>define('UPLOAD_DIR', 'image/');<br /> $img = $_POST['sIMG'];<br /> $img = str_replace('data:image/jpeg;base64,', '', $img);<br /> $img = str_replace(' ', '+', $img);<br /> $data = base64_decode($img);<br /> $file = UPLOAD_DIR . uniqid() . '.jpeg';<br /> $success = file_put_contents($file, $data);</b></span><br />
<br />
<br />J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com1tag:blogger.com,1999:blog-4169493253030187484.post-6725041207125090222014-05-28T03:40:00.002-07:002015-10-12T07:35:56.255-07:00ฝึกงาน TCS DAY 37 วันออกไซด์งานครั้งสุดท้าย(21/5/57) วันนี้ออกไซด์ติด label เป็นหลักครับ ที่ราชมงคลพระนคร เทเวศน์ โชติเวศน์ นางเลิ้ง ครับ<br />ก็เข้าไป ใช้เครื่องปริ้น laber กดๆแล้วก็ปริ้นมาติดตามสายต่างๆ ต้องไปติดตามตู้ rack ที่เคยมาติด<br />switch ไว้แล้วด้วย ปีนบันไดยกบันไดกัน แดดร้อนๆด้วย แต่ก็สนุกดีครับ<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8gWn5bOkOyq9Lj-0spNwBC47nFgDAnz8mVmOXA9DrtXMwUrhh728I6eEZeWyMd-tl927xON0Jh5EeHAoytjLmRCgFA6xgSbTJogdN-7OgO_0mZmcGW2i8UleDgmNQBaUKXt3-nnpZysY/s1600/20140521_101859%5B1%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8gWn5bOkOyq9Lj-0spNwBC47nFgDAnz8mVmOXA9DrtXMwUrhh728I6eEZeWyMd-tl927xON0Jh5EeHAoytjLmRCgFA6xgSbTJogdN-7OgO_0mZmcGW2i8UleDgmNQBaUKXt3-nnpZysY/s1600/20140521_101859%5B1%5D.jpg" height="320" width="240" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzxAIXC7nCSrt1jtOK0exBPXCSJ8_SiILzRLYSvtQu26xIY3xEAjSKaZoLePqzfoqZPoK8q83FfyJyY2RUmx9dAlr0qv7lcWJGFXwp6ZUSc6CX947EYdYeMuH0celiK5XT87TX3nfMs78/s1600/20140521_102339%5B1%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzxAIXC7nCSrt1jtOK0exBPXCSJ8_SiILzRLYSvtQu26xIY3xEAjSKaZoLePqzfoqZPoK8q83FfyJyY2RUmx9dAlr0qv7lcWJGFXwp6ZUSc6CX947EYdYeMuH0celiK5XT87TX3nfMs78/s1600/20140521_102339%5B1%5D.jpg" height="240" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYKxwv2CUvsOfPYwcLJSPaB8jikeW67ZK0j9x-mYVSEDm-ucjy6prYPmNvzK6BbEGNzrsudrrMF_eJ3pf6aqgOb-IaQ_ccU_3S6oYiIdhQ14oJru1nbjL0fiX4wCyP4kBbGgPqOYXQ-Xw/s1600/20140521_110923%5B1%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYKxwv2CUvsOfPYwcLJSPaB8jikeW67ZK0j9x-mYVSEDm-ucjy6prYPmNvzK6BbEGNzrsudrrMF_eJ3pf6aqgOb-IaQ_ccU_3S6oYiIdhQ14oJru1nbjL0fiX4wCyP4kBbGgPqOYXQ-Xw/s1600/20140521_110923%5B1%5D.jpg" height="320" width="240" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR6o3fJGsvpvaMylqTtJnXefkZYR3KGVldKud5C6jW27r18gYp2w65ECMfPuJz5NpSen5T_6EDP17YGcGHbARDqpSKgvkPP-3suatgfgstmU_-MFkdY2R3xBfoi3P0EcviC7_4epNCWzE/s1600/20140521_144142%5B1%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR6o3fJGsvpvaMylqTtJnXefkZYR3KGVldKud5C6jW27r18gYp2w65ECMfPuJz5NpSen5T_6EDP17YGcGHbARDqpSKgvkPP-3suatgfgstmU_-MFkdY2R3xBfoi3P0EcviC7_4epNCWzE/s1600/20140521_144142%5B1%5D.jpg" height="320" width="240" /></a></div>
<br />ราชมงคลพระนคร ทั้งเทเวศน์และนางเลิ้ง ก็มีแมวเยอะมากทั้งคู่ เจอตลอด ^^<br /><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgarvDZ5XXzdhOQxCb3ktXuM5xQ4nngHi90dJXmpYby5U8UgTiSjXRirs3mq2mKQs4yTCiJegk0vXYzX6r0W_xiBgJ8eMV0_IPw3qm_xrdqcGLN84G56N9up2JrK3dKdz-NrNsittnhaL8/s1600/20140521_145939%5B1%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgarvDZ5XXzdhOQxCb3ktXuM5xQ4nngHi90dJXmpYby5U8UgTiSjXRirs3mq2mKQs4yTCiJegk0vXYzX6r0W_xiBgJ8eMV0_IPw3qm_xrdqcGLN84G56N9up2JrK3dKdz-NrNsittnhaL8/s1600/20140521_145939%5B1%5D.jpg" height="240" width="320" /></a></div>
<br />ขากลับเนื่องจากม็อปปิดถนน รถเมล์สาย 16 ไม่ผ่านนางเลิ้ง จึงต้องเดินมาโบเบ้ขึ้นสายอื่น<br /><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP6tiSKa650CWRCc8TiC_PAqE9rMZC8wjfs5hrjHyAXe3jHEAfbhrE9e6vS26zCvW9HND4sjPk95ZP5xRo1DCOQCSETA1QDtPvj4ph3E2ejtLfIQk5dkSryqEiNSZyW2BSybH6k3DZt-g/s1600/20140521_162324%5B1%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP6tiSKa650CWRCc8TiC_PAqE9rMZC8wjfs5hrjHyAXe3jHEAfbhrE9e6vS26zCvW9HND4sjPk95ZP5xRo1DCOQCSETA1QDtPvj4ph3E2ejtLfIQk5dkSryqEiNSZyW2BSybH6k3DZt-g/s1600/20140521_162324%5B1%5D.jpg" height="240" width="320" /></a></div>
<br />J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-55455207074521344532014-05-28T02:49:00.003-07:002015-10-12T07:35:56.219-07:00ฝึกงาน TCS DAY 34 35 36(15,16,20 / 5 / 57) 3 วันนี้ว่างอีกแล้ว แต่ได้รับมอบหมายจากพี่ซันให้<br />อ่าน Physical layer แล้วมานำเสนอในภายหลัง ดังนั้นเวลาสามวันนี้<br />ก็หาอ่านพวกสาย fiber,coxial,utp,f-utp,มาตฐานและการตรวจสอบ หัวต่อต่างๆ การเชื่อมสาย<br />วันที่ 20/5/57 พี่เจนก็เข้ามาถามว่า สรุป LSA TYPE3 มาให้พี่ฟังดิ๊ ก็สรุปไป แล้วพี่เขาก็ถามต่อ<br />รู้ว่ามันช่วยลด traffic ในการแลกเปลี่ยน LSA แล้วการแบ่ง area กับ type3 เนี่ย ยังมีประโยชน์<br />อะไรอีกบ้าง การแบ่งกับไม่แบ่ง area มันต่างกันยังไง routing table จะเหมือนกันไหม<br />การ summary route มีจุดไหนที่ทำไม่ได้บ้าง เป็นต้น วันนั้นก็สั้นๆ เอ๋อJ2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-63540207697453395462014-05-28T02:34:00.002-07:002015-10-12T07:35:56.241-07:00ฝึกงาน TCS DAY 33 ออกไซด์งาน(14/5/57) วันนี้ก็เข้าไปที่ราชมงคลพระนครเหนือ นั่งรถสาย 32 จากเทเวศน์ ซิ่งโหดดีแท้<br />วันนี้เข้าไปดูเพราะว่าเมื่อคราวก่อนทางเจ้าหน้าที่ที่ดูแลระบบบอกว่าภาพ cctv จากศูนย์<br />พระนครเหนือกระตุกมาก สลับกับขึ้นสัญญาน No signal เป็นช่วงๆ วันนี้ก็เลยต้องมาดูกัน<br />ซึ่งทางพี่ๆ ก็ใช้ Cacti ในการตรวจสอบ traffic ต่างๆ พบว่าเป็นที่ทางวิศวกรที่ติดตั้ง <br />server มาต่อ uplink เข้าผิด port โดยไปต่อเข้า fastEthernet แทนที่จะเป็น GigabitEthernet<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju9aIx7YAMxxNzClqNCbYs9m8jw69QYjrQp0nw_9GssckW1Ubl7LaFLB9BcSjgvIF34v-VMgO0C7Z6Xc2M2jLCH2XvTyoBRPW6mY-P_DEi-rUaJefw1GjOVUxe3yzz_cNzkmBRHzEYZEQ/s1600/20140514_104532%5B1%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju9aIx7YAMxxNzClqNCbYs9m8jw69QYjrQp0nw_9GssckW1Ubl7LaFLB9BcSjgvIF34v-VMgO0C7Z6Xc2M2jLCH2XvTyoBRPW6mY-P_DEi-rUaJefw1GjOVUxe3yzz_cNzkmBRHzEYZEQ/s1600/20140514_104532%5B1%5D.jpg" height="480" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWxaYtTGM718dPCjjUXvchaYpA7YHG59gWSNg8S2_ivtXpLn6x3BOhIR4N1I_PjjL7Q1cUFgxeKPXbvaQovohhdUqeLtQdDFeAEgY9pAYd0VhZVHi7aTjtKWmZfiPNE62klq-OEppz3QA/s1600/20140514_105656%5B1%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWxaYtTGM718dPCjjUXvchaYpA7YHG59gWSNg8S2_ivtXpLn6x3BOhIR4N1I_PjjL7Q1cUFgxeKPXbvaQovohhdUqeLtQdDFeAEgY9pAYd0VhZVHi7aTjtKWmZfiPNE62klq-OEppz3QA/s1600/20140514_105656%5B1%5D.jpg" height="640" width="480" /></a></div>
<br />วันนี้ก็มีเดินสายใหม่ให้เรียบร้อยด้วยบางส่วน<br /><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPiE2vY_seZ5zjsnxBuzW_LhQUkraKx_dzTpAEtZj1MxUh0PWdTQZ30HehyphenhyphenAkTCNph2FNg3Fq0F18TBd8CECuXswNOlb8PezMXZ-vZzNIvPW5BEvvusT9k6R3rI6Pp3EsGTre22XOXCLI/s1600/20140514_133346%5B1%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPiE2vY_seZ5zjsnxBuzW_LhQUkraKx_dzTpAEtZj1MxUh0PWdTQZ30HehyphenhyphenAkTCNph2FNg3Fq0F18TBd8CECuXswNOlb8PezMXZ-vZzNIvPW5BEvvusT9k6R3rI6Pp3EsGTre22XOXCLI/s1600/20140514_133346%5B1%5D.jpg" height="640" width="480" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPmaMeuWsfxd4eoDtrwq7a0SZA_SStx6g9VL-JryzCAfNLmZUPruvKkN4Hc-oA3ecOhykfxfojxc7rh9GruRQ7hkV323OPn9qmIgRWQa685Lb8HmsrMHOYZNrzQakyzI_jtYegAC3-nEc/s1600/20140514_133402%5B1%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPmaMeuWsfxd4eoDtrwq7a0SZA_SStx6g9VL-JryzCAfNLmZUPruvKkN4Hc-oA3ecOhykfxfojxc7rh9GruRQ7hkV323OPn9qmIgRWQa685Lb8HmsrMHOYZNrzQakyzI_jtYegAC3-nEc/s1600/20140514_133402%5B1%5D.jpg" height="640" width="480" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1onUFls4vV9ofq1Cxov5Vk62Nx72lGie8_qBHYeC-agg8OAgQ_fnoMvSNKYBhiQkY9MZULksqciPqcACTIsvjlj07MZMyMINpl-MaFrC43iead77JDZIbADH8XSKjYNKHzzVdEGYkBHc/s1600/20140514_133439%5B1%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1onUFls4vV9ofq1Cxov5Vk62Nx72lGie8_qBHYeC-agg8OAgQ_fnoMvSNKYBhiQkY9MZULksqciPqcACTIsvjlj07MZMyMINpl-MaFrC43iead77JDZIbADH8XSKjYNKHzzVdEGYkBHc/s1600/20140514_133439%5B1%5D.jpg" height="640" width="480" /></a></div>
และก็มีการ remote ผ่าน telnet เข้าไป config switch ให้เป็นชื่อตามสถานที่นั้นๆ<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxtz_YuJr4Lqp6P0Lw1bPiRHsrkXxcDKi0DddOPcjvdO6WyFo7PvdKn6dYeBFd_nkZGPcWfMSDwBu4C4H7Bz5G1JEHyr-UjGcZ7-THhjivC706vL12LaXOsnS3FNcnXkNau3O24BbwDQw/s1600/20140514_153433%5B1%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxtz_YuJr4Lqp6P0Lw1bPiRHsrkXxcDKi0DddOPcjvdO6WyFo7PvdKn6dYeBFd_nkZGPcWfMSDwBu4C4H7Bz5G1JEHyr-UjGcZ7-THhjivC706vL12LaXOsnS3FNcnXkNau3O24BbwDQw/s1600/20140514_153433%5B1%5D.jpg" height="240" width="320" /></a></div>
ที่ราชมงคลพระนคร เทเวศน์ นั้นแมวเยอะมากกกกกกกก น่าร๊ากกกก เดินกี่ทีก็เจอ<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfAKntiCtKClGOjaHQyNnN86uA-65mq9HUBvtqgC3QNYU_lna6j_yRboL10iz6aqNcFvLXOPPnVkh60LVnqLNUCqCSaTJZLlua-V-R_fajzH9phouz0flpdv4OlSjtdlvcBtd6sMtnuE0/s1600/20140514_160042%5B1%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfAKntiCtKClGOjaHQyNnN86uA-65mq9HUBvtqgC3QNYU_lna6j_yRboL10iz6aqNcFvLXOPPnVkh60LVnqLNUCqCSaTJZLlua-V-R_fajzH9phouz0flpdv4OlSjtdlvcBtd6sMtnuE0/s1600/20140514_160042%5B1%5D.jpg" height="640" width="480" /></a></div>
<br />J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-41356160401506643712014-05-28T02:19:00.000-07:002015-10-12T07:35:56.202-07:00TCS DAY 31 32 (8/5/57) วันนี้แทบไม่มีอะไรครับ นั่งทำ lab ospf ของ CCNP ไปเรื่อยๆ<br />(9/5/57) วันนี้ก็เหมือนเดิม แต่ช่วงสายๆพี่ๆพาไปให้อธิบายแลกเปลี่ยนความรู้<br />เกี่ยวกับ STP แล้วก็ยิงคำถามโหดๆ ให้พี่ๆรวมทั้งนิสิตฝึกงานตอบกัน สนุกดีครับ<br />ก็ยิงมันส์จนเย็นๆ ครับ ก็มีพี่เจน พี่เหน่งเข้ามาร่วมแจมด้วย<br />J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-60284815155823728192014-05-28T02:13:00.002-07:002015-10-12T07:35:56.224-07:00ฝึกงาน TCS DAY 30 ออกไซด์งาน<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqodVPMmvKy2PKaMC092LyY9gCJuFYxeXSzUp1027EChniCasurP5m7-SAFarZ9SfFGIVncxGX5mEMPy2XlujEGHXEeYeJoxeqWVTN8rWAlEaG-u-um3Tuilv8O31tOVIjmhWLQUUO_No/s1600/20140507_110032%5B1%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqodVPMmvKy2PKaMC092LyY9gCJuFYxeXSzUp1027EChniCasurP5m7-SAFarZ9SfFGIVncxGX5mEMPy2XlujEGHXEeYeJoxeqWVTN8rWAlEaG-u-um3Tuilv8O31tOVIjmhWLQUUO_No/s1600/20140507_110032%5B1%5D.jpg" height="320" width="240" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhig5dDa106-Zps_1T2JaR0YZlNpEljyWoIXgcfZumtaSrrfE8Wu1G8tvUq3d5etgqIA4n3wHT8NAqC1i4Cox3GatNhugcTtw3C7OPVnFbUVX1GiOOoLKggoEXAuQFrwZAOe-PzszuEf70/s1600/20140507_110049%5B1%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhig5dDa106-Zps_1T2JaR0YZlNpEljyWoIXgcfZumtaSrrfE8Wu1G8tvUq3d5etgqIA4n3wHT8NAqC1i4Cox3GatNhugcTtw3C7OPVnFbUVX1GiOOoLKggoEXAuQFrwZAOe-PzszuEf70/s1600/20140507_110049%5B1%5D.jpg" height="240" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGIxD4owCyIpUGOGrfTTWTYcUbo9Ean98_y6-RWKVLkLd95T8pd_kBY7gtiatdriu504lcZQn47pkG_firvFtqXfT85BlXyq4Z6PTr4RDm1seRZftasHKKUfoMCknxRBWhBaNb1nUajDk/s1600/20140507_132039%5B1%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGIxD4owCyIpUGOGrfTTWTYcUbo9Ean98_y6-RWKVLkLd95T8pd_kBY7gtiatdriu504lcZQn47pkG_firvFtqXfT85BlXyq4Z6PTr4RDm1seRZftasHKKUfoMCknxRBWhBaNb1nUajDk/s1600/20140507_132039%5B1%5D.jpg" height="320" width="240" /></a></div>
<br />7/5/57 งานหลักในวันนี้คือเดินสายบางส่วน จัดสายให้เรียบร้อย<br />ก็ไปที่ราชมงคลพระนครเหมือนเดิม วันนี้ก็ไปที่พาณิชย์พระนคร แถวๆนางเลิ้ง<br />เดินจัดสาย แล้วก็มุดๆใต้พื้น Raise Floor ยกมันขึ้นมาด้วยตัวดูด แล้วเดินสาย<br /><br />ตอนบ่ายดูพี่ๆเขียน diagram network ของระบบ ส่งไปให้ลูกค้าด้วย<br /><br />J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-3015580297279888322014-05-28T02:06:00.004-07:002015-10-12T07:35:56.179-07:00ฝึกงาน TCS DAY 28 29TCS DAY 28 (30/4/57)<br />วันนี้ว่างๆ ก็อ่าน OSPF LSA Type 1,2 ต่อ โดยลองทำ lab ใน packet tracer ดู<br />ประเด็นคือ LSA Type1 2 บอกอะไรเรา แล้วออกมาจาก router ไหน<br />- Type1 เป็น LSA ที่ไว้บอก router ทุกตัวใน area ospf เดียวกันให้ทราบถึงสถานะของ router ตัวที่<br />ส่ง origin LSA Type1 ออกมา เข้าไปเช็คใน sh ip ospf database ก็ได้ จะมี lsa type1<br />เป็นจำนวนเท่ากับจำนวน router ใน ospf area นั้นๆ<br />- Type2 เป็น LSA ที่ออกมาจาก router ที่ทำหน้าที่เป็น DR ใน segment นั้นๆ (แต่ล่ะ segment<br />หรือ broadclass นึงจะมี DR เพียงตัวเดียว ทำหน้าที่รวม LSA ใน segment แล้วสรุปออกมาเป็น type2 )<br /><br /><br />TCS DAY 29 (6/5/57)<br />วันนี้พี่ๆก็จับมาให้อธิบาย OSPF LSA แล้วก็มีการตั้งโจทย์ถามกันเองมันส์ๆ<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6xFnNWBA9XnUpF23Ewi1lcBTu3dUnY6-wlsV5VvvU5oX6q-Y104a83t3q385MGkLD9Y1Jy1Rk0KlFHibo6gjfH9ESUQst_dO6z8aSv6afAAYcIekbYKiHJjyuwsZLtuXIjL5xaIxDe4I/s1600/20140506_131535%5B1%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6xFnNWBA9XnUpF23Ewi1lcBTu3dUnY6-wlsV5VvvU5oX6q-Y104a83t3q385MGkLD9Y1Jy1Rk0KlFHibo6gjfH9ESUQst_dO6z8aSv6afAAYcIekbYKiHJjyuwsZLtuXIjL5xaIxDe4I/s1600/20140506_131535%5B1%5D.jpg" height="300" width="400" /></a></div>
วันนี้ก็อธิบายตั้งแต่ Type 1-7 แบบคร่าวๆ พี่ๆสนุกกันมาก เฮฮาJ2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-46746744228866851402014-05-25T02:11:00.002-07:002015-10-12T07:32:57.977-07:00How to fix notebook shut off ever exactly 30 minutes. แก้ คอมดับทุก 30 นาที เป๊ะ นับจากเปิดเครื่อง คำเตือน bios mod ทั้งหลาย ห้ามไปปรับแต่งในส่วน allocate vram ของ vga onboard เด็ดขาด<br />
ปรับแล้วเปิดไม่ติด เข้า crisis mode ได้แต่จะไม่ยอมอ่าน usb flashdrive เลย ทีนี้ต้องพึ่งเครื่อง flash<br />
<br />
สาเหตุ<br />
- อัพเกรด cpu <br />
- อยู่ดีๆก็เป็น<br />
- flash bios เอาท่าไหนไม่รู้<br />
- flash bios ผ่านเครื่อง flash บางกรณี จะเป็น (อาการเครื่องผม)<br />
<br />
อาการ<br />
- นับจากกด power on เครื่องจะทำงานได้ตามปกติ เล่นอะไรแรงๆ หรือจะปล่อยทิ้งไว้<br />
ก็ 30 นาทีหลังจากเปิดเครื่อง เครื่องจะดับลงไปเหมือนโดนตัดไฟ<br />
- 30 นาที ที่ว่านี้ ถ้าเข้าโหมด sleep ก่อนจะดับ แล้ว wake up ขึ้นมา <br />
เครื่องจะนับเวลาใหม่ไปอีก 30 นาทีถึงจะดับ (เป็นวิธีแก้ที่ง่ายที่สุดอย่างหนึ่ง)<br />
- เครื่องจะไม่ดับใน crisis mode (โหมด flash recover bios ของ acer aspire)<br />
- flash bios ใหม่บนวินโดว์กับ dos ก็ไม่หายจากการดับทุก 30 นาที แม้เปลี่ยนตัวก็แล้ว<br />
<br />
วิธีแก้<br />
- Flash your bios with crisis mode only.<br />
- Enter crisis mode by <br />
1.remove ac cord<br />
2.copy file P5WE0x64.fd to your flashdrive (FAT format and size not over 2GB)<br />
3.insert your flashdrive to use 2.0 port<br />
4.press hold fn+esc key<br />
5.insert ac power cord<br />
6.press power buttom<br />
7.when flashdrive led brink. release the fn+esc key.<br />
8.wait for 2-5 minutes. notebook will restart 2time. <br />
and then 30 mins exactly shut down will solved.<br />
<br />
นอกจากนี้ crisis mode ยังช่วยกู้ bios ได้ หากเกิดการ flash ที่ผิดพลาดไป<br />
หรือทำอะไรก็ตามที่ทำให้ boot bios ไม่ผ่าน (เครื่องจะดับตั้งแต่ 2 วิที่เปิด ไม่ก็จอดำนิ่งไปเลย)<br />
แค่เข้า crisis mode ก็สามารถ flash กลับมาได้อีกครั้ง <br />
- ถ้า crisis mode ไม่อ่าน usb ให้ลองเปลี่ยนเป็น cd rom แทน ถ้าไม่ได้ถือว่าเสียหายหนัก<br />
ต้องส่งให้ร้าน flash bios ให้ผ่านเครื่อง flash ครับ แนะนำร้านนี้ครับผมใช้บริการมา<br />
แค่ 1200 บาท ครับ พร้อมส่ง ems กลับให้ฟรี แถมทำความสะอาดท่อระบายความร้อนใหม่เอี่ยมฟรี<br />
https://www.facebook.com/comcenter.service<br />
(ผมไป pantip แล้วบอกตรงๆ เซ็ง เหมือนมีแต่พวกจะหลอกฟันเอาเงิน ไม่ค่อยต้อนรับ<br />
บางทีให้ไปหาข้อมูลเอาเองอีก ไม่อยากรับซ่อม ร้านที่ทำให้ได้ก็คิดแพง 2000 เลย)<br />
<br />J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-38846312965277697592014-04-29T09:48:00.001-07:002015-10-12T07:35:56.197-07:00ฝึกงาน TCS DAY 26 27 วันออกไซด์สุดมันส์DAY26 (28/4/57)<br />
วันนี้ไปเจอกันที่ราชมงคลพระนคร(เทเวศน์)ก่อนเช้าๆ วันนี้จะมาแพชสาย นำ fiber SC-LC<br />(สายสีเหลืองตามภาพ หัว sc จะใหญ่ ไว้ต่อกับแพชสีฟ้าดำ ส่วน lc จะเล็ก ไว้ต่อเข้ากับ G_BIC)<br />
<br />ที่แรกที่ไปติดก็ตู้ rack แถวๆ คณะนึง เอาสาย fiber ไปเสียบกับแพช และ gbic ต่อเข้า port25 ก็เสร็จ<br />หลังจากนั้นก็ move กันไปทำแบบนี้กับอีก 5 ตู้ที่เหลือที่วิทยาเขตนางเลิ้ง ก็นั่งรถเมล์ไปลงนางเลิ้ง<br />จากนั้นก็ไล่ติดไปให้ครบ บางตู้ก็ต้องปีนบันได (ตู้เดิมๆที่เคยมายกสวิตช์หนักๆไปติดเมื่อ day15 แหละ)<br />คราวนี้ช่วยๆกันทำกระจายกันไป แป็ปเดียวก็เสร็จ พอเสร็จก็กลับมาวิทยาเขตเทเวศน์อีกครั้ง<br />
แล้วก็ไปที่โชติเวศน์ เดินไปแป็ปก็ถึง ไปต่อสาย fiber LC-LC ระหว่าง core switch กับ switch <br />ปรากฎว่าสายมันดูไม่สวย งานจะไม่ผ่าน ก็เลยแกะออกแล้วอ้อมไปข้างหลังแทน สายก็ตึงมาก<br />แต่ก็ใช้ได้ จากนั้นก็กลับมาเทเวศน์ต่อ<br />จากนั้นนั่งดูรุ่นพี่เขาทำการเช็คกล้อง cctv ว่าขึ้น online ครบไหม ก็ไม่ครบเพราะบางตัว ip ชนกัน<br />ก็นั่งแก้ set ip ไปทีล่ะตัว จนกระทั่งทางทีม server อีกทีมเขาบอกไม่ต้อง แค่ปิดมันก็แจก ip ใหม่<br />ไม่ชนกันแล้ว ก็เลิกทำไป ฮ่าๆ เสร็จแล้วนั่งดูพี่อีกคนที่ไม่ได้ทำ network นะ ไปติดตั้ง tv และเดินสาย<br />จนทุ่มนึงถึงได้กลับบ้าน วันนี้คุ้ม<br /><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiJkSJKl9HupQyaZ-Vu0FKg_RdPAdxQvVz7dYcIy4bK2p5FRBnA7blEimaIa4D1TfR7fGIUMotb4laNq10AA7BebpoDqZ0cgvnrzLys-KnF_01cp1KKnVa36JA7wyCKuLj1l6fKc2TBIo/s1600/20140428_094020.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiJkSJKl9HupQyaZ-Vu0FKg_RdPAdxQvVz7dYcIy4bK2p5FRBnA7blEimaIa4D1TfR7fGIUMotb4laNq10AA7BebpoDqZ0cgvnrzLys-KnF_01cp1KKnVa36JA7wyCKuLj1l6fKc2TBIo/s1600/20140428_094020.jpg" height="320" width="240" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEBAYn33bwt0LZ2m1Ym4qLmn8-Jc62xU4lPc-N8nznbPbbAKIg7E5vfR2xWz3LkKqOiLL_QYyuQiFD0xSkjMQ1U5nZPL013D2947awiKGvf6GXQrS8n5q7sgFu5p0GmavdSY5-EtYz9Sk/s1600/20140428_102715.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEBAYn33bwt0LZ2m1Ym4qLmn8-Jc62xU4lPc-N8nznbPbbAKIg7E5vfR2xWz3LkKqOiLL_QYyuQiFD0xSkjMQ1U5nZPL013D2947awiKGvf6GXQrS8n5q7sgFu5p0GmavdSY5-EtYz9Sk/s1600/20140428_102715.jpg" height="320" width="240" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyTIe6ZcGrRZ8zODbwPbij3zSdZmTw9gXvj5bbLLrBk4MAMbtit_ltfFklMmk8ofbsExqjAg-q1cV-NDgxwsoAMRFfCsvblw7Dfq6mbyQuoqwh4lOhT1zb3BP1L34ScNkfhneWA-a7Zgo/s1600/20140428_102928.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyTIe6ZcGrRZ8zODbwPbij3zSdZmTw9gXvj5bbLLrBk4MAMbtit_ltfFklMmk8ofbsExqjAg-q1cV-NDgxwsoAMRFfCsvblw7Dfq6mbyQuoqwh4lOhT1zb3BP1L34ScNkfhneWA-a7Zgo/s1600/20140428_102928.jpg" height="320" width="240" /></a></div>
ตัวแปลงไฟสีดำๆที่มีไฟสีส้มออกมาเรียกว่า POE <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9QnmVbeSZJLEdrykXhpIHr33mQZ4Qq-nuU6A_qb1e7cu6b521zK9y7rI10iDzdKYC3ZlCu73n81comZIbihWBCv_-nNtsyCKJAh6S0shJ3pNMV5cE4iBJsXyLjv0jasYJyvWKx2Po-a8/s1600/20140428_105209_LLS.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9QnmVbeSZJLEdrykXhpIHr33mQZ4Qq-nuU6A_qb1e7cu6b521zK9y7rI10iDzdKYC3ZlCu73n81comZIbihWBCv_-nNtsyCKJAh6S0shJ3pNMV5cE4iBJsXyLjv0jasYJyvWKx2Po-a8/s1600/20140428_105209_LLS.jpg" height="320" width="240" /></a></div>
สายไฟเบอร์หลังตู้ที่ทางช่างยังไม่ได้มาเก็บลง <span class="st"><em>raised floor (พื้นห้อง rack ยกได้ ข้างล่างไว้เดินสาย)</em></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcrI8cpHpFi58JpkvhwhyphenhyphenCXufVufHh7ZMt8ksVefesL9JVufE3-Jkt6d-K6c0GBA5Ahq_Y4AJpgBcCFGxfPpCvCgbrIelZKmXhtmRNVtWgwj2vzQyryVHuSsCZZmgI-xUK_pFAJfhNjIE/s1600/20140428_105300.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcrI8cpHpFi58JpkvhwhyphenhyphenCXufVufHh7ZMt8ksVefesL9JVufE3-Jkt6d-K6c0GBA5Ahq_Y4AJpgBcCFGxfPpCvCgbrIelZKmXhtmRNVtWgwj2vzQyryVHuSsCZZmgI-xUK_pFAJfhNjIE/s1600/20140428_105300.jpg" height="320" width="240" /></a></div>
รางปลั้กไฟหลังตู้ RACK บางทีตัวผู้หรือตัวเมียก็แล้วแต่ดวง ถ้าเสียบไม่ได้ต้องหาตัวแปลงปลั้ก<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgwcO-vOr9n2qcPTvqU2e5osy3RRJoCsp6grq7WNDd9F1Y5dERLdriWqlGpu-Gp8ILjcF9X2pOmOYNfaX0DdLArIn_wBVCdG7QIR9P01heYuDwfB70L6jOLnJ_GvrKFY_Ec_9PDy9NkO8/s1600/20140428_105320.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgwcO-vOr9n2qcPTvqU2e5osy3RRJoCsp6grq7WNDd9F1Y5dERLdriWqlGpu-Gp8ILjcF9X2pOmOYNfaX0DdLArIn_wBVCdG7QIR9P01heYuDwfB70L6jOLnJ_GvrKFY_Ec_9PDy9NkO8/s1600/20140428_105320.jpg" height="320" width="240" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9w-AeSZfIyzGdhusiOK3POMAwIo-1iVeIiDBP_heCEDM__5pc8aJqNec2hUr7kgFsn_0iAWYvIgQxi4cZ9lEUGhZ3YNxqVkUmcaddZtI_7t9zAUjy7u9r0LDT0Bff57eYbPtMwGPeQXE/s1600/20140428_152508_LLS.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9w-AeSZfIyzGdhusiOK3POMAwIo-1iVeIiDBP_heCEDM__5pc8aJqNec2hUr7kgFsn_0iAWYvIgQxi4cZ9lEUGhZ3YNxqVkUmcaddZtI_7t9zAUjy7u9r0LDT0Bff57eYbPtMwGPeQXE/s1600/20140428_152508_LLS.jpg" height="320" width="240" /></a></div>
<br />
<br />
DAY27 (29/4/57)<br />
วันนี้กลับมาที่เทเวศน์อีกครั้งนึง มาเอาของพวก media converter (สีดำๆ4ตัวตามภาพ ไว้<br />แปลงสาย fiber<>utp ) กับสาย fiber ไปที่ราชมงคลพระนครเหนือ<br />
แน่นอนนำสายไปแพชที่ตู้ rack เดิมที่เคยมาติดกันใน day14 ทั้งหมด 4 ตู้ ส่วนตู้กลางติด media<br />งานนี้ชิลมากเพราะแค่เปิดตู้เสียบสาย (คราวก่อนติดสวิตช์) แต่บางที่ก็ต้องปีน สูงอยู่ตามภาพ<br />
<br />
หลังจากทำเสร็จก็พบว่า ตอนติด media converter ปลั้กของ adapter ดันเสียบกับรางปลั้กตู้ไม่ได้<br />เพราะรางปลั้กเป็นตัวเมีย ปลั้กก็เมีย ทีนี้ล่ะยุ่งต้องให้พี่อีกทีมมาแปลงสายภายหลัง วันนี้ก็เอาแค่<br />ทดสอบ up link ได้ก็พอ ซึ่งหลังจากติดหมด 4 ตู้ก็ลองเทสดู ตู้ที่3ซึ่งเป็นอาคารวิทยา(ในรูปที่ปีน)<br />นั้นไฟไม่เข้าตู้ เพราะเขาคงสับเบรกเกอร์ไว้ ก็เลยต้องรอทางช่างมาเคลียกันเองภายหลัง<br />นอกนั้นทำงานได้ปกติ เป้นอันว่าเสร็จภารกิจ กลับไปทำที่เทเวศน์(ตรงโชติเวศน์ คณะคหกรรม)<br />คราวนี้แค่ไปขยับสายเดิมที่มันตึง เพราะพี่ๆ network admin ของที่นี้เตือนว่าระวังจะตรวจไม่ผ่าน<br />ให้ทำให้ไม่ตึงเกินไป ก็ถอดสายเดินรอดใต้ตู้แทน ลำบากหน่อยแต่ก็ไม่ตึงล่ะ ใช้ได้<br />
<br />
พอทำเสร็จกลับไปเทเวศน์ พี่ admin เขาก็ทัก ไปทำอะไรกับ core switch ที่โชติเวศน์เปล่า<br />เพราะมัน down ไปลิงค์นึง อ้าวชิบหายล่ะไปแตะโดนสายหลวมเปล่านี้ เลยเดินกลับไปดู<br />อ้าว port ก็ up ปกติดีนิ เลยโทรไปถามพี่ว่า port ปกตินิพี่ พี่เขาก็บอกอืมมาล่ะ เฮ้ย<br />ยังไม่ได้ทำอะไรเลย สงสัยจะพี่หลอก ฮ่าๆ<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWOptOJtfcbofnrH5slkoe1BOAUvH91gl5xr2R-rbins2VBdlajXc5F_3zPWXUJk5-dWKQuvT2jV8N95-YTPWrNLZLJrB-c6TiPtRSS1YWBZY2Uv3-mNJDa9Tk4YCEDGMPv7oV6HzrQGM/s1600/20140429_104942.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWOptOJtfcbofnrH5slkoe1BOAUvH91gl5xr2R-rbins2VBdlajXc5F_3zPWXUJk5-dWKQuvT2jV8N95-YTPWrNLZLJrB-c6TiPtRSS1YWBZY2Uv3-mNJDa9Tk4YCEDGMPv7oV6HzrQGM/s1600/20140429_104942.jpg" height="640" width="480" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_UIBStwstGOU2OHzva8ENFGibkQ_85r5-ZIHhIDqSPXV6zzV-bew5jy9kyzyhbHuQkl3OG4kPTTiYO77xRynSwtMv-wAAyA8NsGtmf3FOiubVLcyWcNTFKP9wCiFSQmxOMdG5CoUVP60/s1600/20140429_134656.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_UIBStwstGOU2OHzva8ENFGibkQ_85r5-ZIHhIDqSPXV6zzV-bew5jy9kyzyhbHuQkl3OG4kPTTiYO77xRynSwtMv-wAAyA8NsGtmf3FOiubVLcyWcNTFKP9wCiFSQmxOMdG5CoUVP60/s1600/20140429_134656.jpg" height="400" width="300" /></a></div>
<br />หลังจากเรียบร้อยแล้วก็ได้เวลาเผ่นกลับบ้าน แน่นอนตอนนั้น 6 โมงล่ะ J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-38434453757626043142014-04-29T09:09:00.001-07:002015-10-12T07:35:56.191-07:00ฝึกงาน TCS DAY 22 23 24 25DAY22 (22/4/57)<br />
ว่างอีกแล้ว วันนี้นั่งอ่าน TCP/IP , PPP WAN(ISDN) ไปเรื่อยๆ วันนี้ง่วงมากเผลอนั่งหลับไปบ่อยๆ<br />จนพี่ที่นั่งข้างๆมาบอก เฮ้ย เอ็งหลับแบบนี้คิดว่าบริษัทควรจะจ้างเอ็งไหม O_o อู้ววว หลังจากนั้น<br />ไม่หลับอีกเลย เจ็บเฮือกกกก <br />
<br />
DAY23 (23/4/57)<br />
ว่างอีก อ่าน NAT , ACL , PPP , DNS , CHAP ,PAP , MS-CHAP ในเปิดโลก TCP/IP <br />
<br />
DAY24 (24/4/57)<br />
ว่างอีก วันนี้อ่านเล่มใหม่ เจาะระบบ Network อ่านเรื่อง physical layer สายหัวต่างๆเช่น fiber,utp <br />
<br />
DAY25 (25/4/57)<br />
สุดท้ายวันนี้พี่เจนก็ว่างตอนเย็นๆ 4 โมง เข้าห้องเย็นห้องเดิม นำเสนอต่อ พี่เจนบอก เอ้าอธิบายมาเลย<br />OSPF LSA TYPE 1-7 ส่วนตัวยังไม่ค่อยเข้าใจแต่ล่ะ type เท่าไหร่ ก็เลยอธิบายไปแค่นิดเดียว เช่น<br />type1 มาจากทุก router ส่งใน area เดียวกันเอง<br />type2 มาจาก DR router ส่งใน area เดียวกันเองอีก<br />type3 มาจาก ABR router ส่งข้าม area นั้นคือสรุปข้อมูลของ area นึงไปให้อีกฝั่ง area นึง<br />
<br />
ไปได้ถึงแค่ 3 type พี่เจนก็ถาม งั้น LSA TYPE1 มีกี่ Route ผมก็งงสิฮะ route แบบไหน เส้นทาง<br />เหรอครับ พี่เจนก็บอก อ่ะ เอาเป็นว่าในแต่ล่ะ router db จะมี route กี่บรรทัด โอ้ว ตอบไปว่า<br />n(n-1)/2 หรือเปล่าว่า เพราะมันน่าจะไปหากันทุกๆ เส้นทางที่เป็นไปได้ที่ต่อถึงกัน ผิดดดดดด<br />จริงๆแล้วต้องเป็น N เท่ากับจำนวน router ใน area นั้น เพราะ LSA TYPE1 นั้นจะถูกส่งจาก<br />router ทุกๆ router ใน area นั้นๆ ไปหากันทั้งหมด ซึ่งแต่ล่ะ LSA ที่ออกไปจะมีข้อมูลของ<br />Router ตัวเอง เช่น router-id , port ต่างๆ ดังนั้นสุดท้ายแล้วเมื่อทุก router ได้รับ LSA <br />จากทุกๆ router แล้ว มันจะมีดาต้าเบสเหมือนกันเลย นั้นคือ router แต่ล่ะตัวจะมีข้อมูล<br />ของแต่ล่ะ router ใน area มันทั้งหมด หรือก็คือมีบรรทัดของดาต้าเบสเท่ากับจำนวน router<br />นั้นเอง (แต่ล่ะบรรทัดเป็น lsa ที่มีข้อมูลของ router-id,port ต่างๆของ router นั้นอยู่)<br />
คำสั่งดูดาต้าเบสของ cisco จะเป็น sh ip ospf database <br />
<br />
ส่วน LSA TYPE2 นั้นจะมี Route แค่ 2 บรรทัด ใน DATABASE ของแต่ล่ะ router<br />นั้นคือ แต่ล่ะ router จะได้รับ LSA จาก DR,BDR ของ AREA มันเท่านั้น<br />
<br />
ได้เท่านี้ก็หมดเวลาแล้วครับ สรุปว่าที่เหลือติดไว้ครั้งต่อไปต่อ และแน่นอนวันจันทร์หน้า<br />ออกไซด์ มีพี่ขอไปช่วยงาน เย้ๆ J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-60380902783490096912014-04-29T08:31:00.000-07:002015-10-12T07:35:56.229-07:00ฝึกงาน TCS DAY 19 20 21DAY19 (17/4/57)<br />
วันนี้ว่างทั้งวันอีกล่ะ OSPF ที่ติดค้างพี่เจนไว้ยังไม่ได้รับการชำระ ฮ่าๆ เพราะพี่เจนไม่ว่าง<br />
ก็เลยอ่านเรื่อง WAN ( Leased line , Frame relay) ใน cisco ภาคปฎิบัติไปพอผ่านๆ แต่อ่านทั้งวัน<br />
<br />
DAY20(18/4/57)<br />
วันนี้ว่างเช่นเคย พี่เจนยังคงไม่ว่าง ดังนั้นก็อ่าน WAN ทบกวนเรื่องเดิมต่อ ซึ่งยังไม่ค่อยเข้าใจ<br />
และก็อ่านหนังสือเปิดโลก TCP/IP ไปพลางๆ วันนี้ก็ได้ไป 4บทแรก ร้อยหน้านิดๆ <br />
<br />
DAY21(21/4/57)<br />
วันนี้เหมือนจะว่าง อ่านหนังสือ TCP/IP ไปอีก2บท 50 หน้าได้ พอตกบ่ายสองกว่าๆ<br />
พี่ที่แผนกก็มาถามที่โต๊ะ น้องๆว่างไหมตอนนี้ แน่นอนเราทั้ง3คนพร้อมใจกันตอบว่า ว่างงงงงง<br />
พี่ก็บอกว่า งั้นไป มศว กับพี่นะ ตอนนี้เลย โอ้ววว มีงานซักที ว่าแล้วก็ขนของเป็น AP ใส่มือ<br />
ขนไปขึ้นแท๊กซี่หน้าตึกที่พึ่งโบกมาสดๆ กว่าจะรับก็คันที่4 โน้น ซักพักก็มาถึง มศว<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQYco_S3a0YgpDkjYmL3g-DWyC1hsosl1nX2QqjJPyGBtSoEoQXd6-WpoaCoOAnDPGZJAOXNxsQ9XkDPf7A2s4apkpR00WNfR4guNXUUT82YzF9h45wLprlEb8knDWtcuyXcAtcRKCppo/s1600/20140421_183226.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQYco_S3a0YgpDkjYmL3g-DWyC1hsosl1nX2QqjJPyGBtSoEoQXd6-WpoaCoOAnDPGZJAOXNxsQ9XkDPf7A2s4apkpR00WNfR4guNXUUT82YzF9h45wLprlEb8knDWtcuyXcAtcRKCppo/s1600/20140421_183226.jpg" height="300" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJTN-MtO94I-mMWgmvkcdbS0h_NBt37uJ0xRWqf-ewQhHl-BKmSy7x6AkRO6BvpxbEmrS_ePkeNByE62ltIpShQMUZXQ8_JQwTCxVS0_SqQxyICm4SzBuY8Hg0R53v_Adh0e4RiQDQce4/s1600/20140421_150753.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJTN-MtO94I-mMWgmvkcdbS0h_NBt37uJ0xRWqf-ewQhHl-BKmSy7x6AkRO6BvpxbEmrS_ePkeNByE62ltIpShQMUZXQ8_JQwTCxVS0_SqQxyICm4SzBuY8Hg0R53v_Adh0e4RiQDQce4/s1600/20140421_150753.jpg" height="300" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMaJYZwQ5pQvXRCdX9pxGTZ59MNaTlNCBRx6KQu1CESKR7HINu2Vf-WwUdmwaGSsXLNCG-LkfHRo5kccYo2fzTeCqZ06wnVInJBTXQxR1eOXqotzfOx70qOSS4bFCSM6BzDSeTllTOwLM/s1600/20140421_182920_HDR.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMaJYZwQ5pQvXRCdX9pxGTZ59MNaTlNCBRx6KQu1CESKR7HINu2Vf-WwUdmwaGSsXLNCG-LkfHRo5kccYo2fzTeCqZ06wnVInJBTXQxR1eOXqotzfOx70qOSS4bFCSM6BzDSeTllTOwLM/s1600/20140421_182920_HDR.jpg" height="300" width="400" /></a></div>
เราก็ช่วยกันขนของยกไปไว้ที่ห้องศูนย์คอมพิวเตอร์ของ มศว ก่อน จากนั้นก็นั่งตากแอร์รอให้หายร้อน<br />
จากนั้นก็แกะอุปกรณ์ทั้งหมดมา config โดยรุ่นพี่ทำหมด จะมีการตั้ง ip subnet ชื่อ ap กรุ๊ป เป็นต้น<br />ก็พบปัญหานิดหน่อยที่ notebook พี่ไม่มีไดร์เวอร์ของ ap ตัวใหญ่ๆนั้น โหลดจากเน็ตมาก็ใช้ได้<br />
เสร็จแล้วก็ทำการติดสติ้กเกอร์แต่ล่ะ ap พร้อมทั้งเขียนเลข serial number , mac , ชื่อ ap ไว้<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU4UedeEoh6kn9eCXhiRswNml_xl3IgCvXf_mE3rLPt5kzDXgpgock7dZ-is1UxxrqfZ2rQtcESkeHHFp5CpeXfytqL-FS9xkjlBvHAYYSQHTuXobijyP-EY9Hz-WGLzwiF1l2mMj4j28/s1600/20140421_165535.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU4UedeEoh6kn9eCXhiRswNml_xl3IgCvXf_mE3rLPt5kzDXgpgock7dZ-is1UxxrqfZ2rQtcESkeHHFp5CpeXfytqL-FS9xkjlBvHAYYSQHTuXobijyP-EY9Hz-WGLzwiF1l2mMj4j28/s1600/20140421_165535.jpg" height="640" width="480" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgL5Bj7FJ-PsQ5UGlFL2jzIbKTD09gCavtBDPVAAgCVRZwRsa9q1NAOAiBUPDJM4U3dZO0dgBN_xh_1D-7hn3oxYKNvLG0lcSK2n9INurYtK06uV5v6Se-o19geEZ8urMM39NWRMAVeukQ/s1600/20140421_174126.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgL5Bj7FJ-PsQ5UGlFL2jzIbKTD09gCavtBDPVAAgCVRZwRsa9q1NAOAiBUPDJM4U3dZO0dgBN_xh_1D-7hn3oxYKNvLG0lcSK2n9INurYtK06uV5v6Se-o19geEZ8urMM39NWRMAVeukQ/s1600/20140421_174126.jpg" height="320" width="240" /></a></div>
<br />
หลังจากทำงานเสร็จ ก็แยกย้ายกันกลับ แน่นอน 6 โมง เลยเวลางานเสมอถ้าออกไซด์ ฮ่าๆ<br />ไปลั่นล้าต่อที่ Terminal21 ทันที แต่จะว่าไปเดินจาก มศว ไป terminal ไกลพอสมควรเลย<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwy81hEueDcp0yQdAaKFIhuxxHLLlPGNVmfWFbKyAUn_ykh-9iHRkhxhpPDzJnV8U-pdal3MmTErEI-NE7JvjuLP6NigGgR4mQI2gqu_WbbqYifpwM5iJVspTKhbJWvVCsn1YMXde-G3Y/s1600/20140421_184328.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwy81hEueDcp0yQdAaKFIhuxxHLLlPGNVmfWFbKyAUn_ykh-9iHRkhxhpPDzJnV8U-pdal3MmTErEI-NE7JvjuLP6NigGgR4mQI2gqu_WbbqYifpwM5iJVspTKhbJWvVCsn1YMXde-G3Y/s1600/20140421_184328.jpg" height="240" width="320" /></a></div>
<br />
<br />J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-31692230864885207072014-04-29T08:11:00.001-07:002015-10-12T07:35:56.185-07:00ฝึกงาน TCS DAY 16 17 18day16 ของการฝึกงาน ตรงกับวันที่ 9/04/57 <br />
วันนี้ไม่มีอะไรมาก อ่าน OSPF ขั้น CCNA ทั้งวันตลอดเวลาที่อยู่ office<br />
<br />
day17 (10/04/57)<br />
วันนี้อ่าน OSPF เหมือนเดิม แต่ลึกขึ้นมาระดับ CCNP เจาะไปที่ area หลากหลาย และ LSA TYPE <br />
นอกจากอ่านหนังสือแล้ววันนี้ก็มีช่วยพี่เขาขนของลงไปชั้นล่างหน่อย ก็นำรถเข็นชั้น17 ลงไป<br />
ชั้น 15 แล้วไปยก server 2 เครื่อง ใส่ แล้วขนลงลิฟท์ไปไว้ชั้น B ตอนนำของเข้าออกตึกต้องมี<br />
ใบขออนุญาติด้วย รุ่นพี่จัดการแล้ว เราก็นำของขนขึ้นรถของพี่พนักงาน ให้พี่ๆนำไปติดตั้งที่ไซด์ต่อไป<br />
<br />
day18 (11/04/57)<br />
วันสุดท้ายก่อนพักสงกรานต์ยาววววววววว ก็ทบกวนและก็ทำสไลด์ ospf เตรียมนำเสนอพี่เจน ฮ่าๆ<br />
ช่วงบ่ายๆจะถึงเย็นก็โดนเรียกเข้าไปในห้อง มีพี่ๆพนักงานอีก3คนมาดูและสอบถามด้วย ก็ทุลักทุเล<br />
รอดมาได้แต่ไม่จบ เพราะพี่เจนมีงานเข้าก่อนเลยไม่ได้อยู่ดูนำเสนอต่อที่เหลือ เป็นว่าติดไว้ครั้งต่อไป<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0XVBRWPXNtMYvt7QppX7TdfWxO2NOBe7hiEM2Le3916SEvnx3wb38wQE0pFS0Wa5JGc93uUM4wxEJ87A9BX-15UEBrOsUEIbfsqETeXSqDsSPL5HJ2b9J2YVYduiEEAjbt0tmX7elrlQ/s1600/20140411_150641.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0XVBRWPXNtMYvt7QppX7TdfWxO2NOBe7hiEM2Le3916SEvnx3wb38wQE0pFS0Wa5JGc93uUM4wxEJ87A9BX-15UEBrOsUEIbfsqETeXSqDsSPL5HJ2b9J2YVYduiEEAjbt0tmX7elrlQ/s1600/20140411_150641.jpg" height="240" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
ห้องนำเสนอ (ที่นี้เรียกห้องเย็น)J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-7154991627274155022014-04-08T06:22:00.002-07:002015-10-12T07:35:56.260-07:00ฝึกงาน TCS DAY 15 <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ9IyOObIod3x9OPqANUzj6o8Tj-OENMPXW1NKzfIBa4GL9oRgV-U1-gnQfJLmkjVCBob-WIfZixnIh4m_06B2kfJr0dEuvC9v8NFcVV7jBKNrBIPZYxBreyBpTfe7lJLLDmwBnvS7MFQ/s1600/20140408_082230.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ9IyOObIod3x9OPqANUzj6o8Tj-OENMPXW1NKzfIBa4GL9oRgV-U1-gnQfJLmkjVCBob-WIfZixnIh4m_06B2kfJr0dEuvC9v8NFcVV7jBKNrBIPZYxBreyBpTfe7lJLLDmwBnvS7MFQ/s1600/20140408_082230.jpg" height="240" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLgMLclnqMq21hAknUL6-wS4po3eC68FDpZGokfZ_wP-lOo8gtLszChbf8c8x1rhZWkeJYLKM1w1mXV2xGJOMGWo7e3oDvFtiINnotvJWKKXTXERLvaM3Ou3oQT5up8MwiKFOHABZQ7h4/s1600/20140408_091517.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLgMLclnqMq21hAknUL6-wS4po3eC68FDpZGokfZ_wP-lOo8gtLszChbf8c8x1rhZWkeJYLKM1w1mXV2xGJOMGWo7e3oDvFtiINnotvJWKKXTXERLvaM3Ou3oQT5up8MwiKFOHABZQ7h4/s1600/20140408_091517.jpg" height="240" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8XfR0zzNzBpasvzkpjLa-wj1j3s7DJXoGii2SAKYdcyYSFGJ5X3asG7hZQqykKJV_Wy1tPY0eAuH57QWGaWLSI1ILTUlTcLBjHUDnQSwjYF1zmf_K6_w3yvcY5GVGJPfXS0S61PMDNxs/s1600/20140408_102105.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8XfR0zzNzBpasvzkpjLa-wj1j3s7DJXoGii2SAKYdcyYSFGJ5X3asG7hZQqykKJV_Wy1tPY0eAuH57QWGaWLSI1ILTUlTcLBjHUDnQSwjYF1zmf_K6_w3yvcY5GVGJPfXS0S61PMDNxs/s1600/20140408_102105.jpg" height="240" width="320" /></a></div>
<br />
วันนี้ออกไซด์วันที่3 จากทั้งหมด 15 วันที่ผ่านมา วันนี้ตื่นแต่เช้าไปสยาม รอรถเมล์สาย 16<br />พุ่งตรงไปพาณิชย์พระนคร (เทคโนราชมงคลพระนคร วิทยาเขตกลมหลวงชุมพร) ถึงไวมาก<br />ภายใน 10 นาทีนิดๆ ผิดกับสาย 67 จากพระราม4ไปที่ office แถวพระราม3ที่ใช้เวลาถึง 1ชม <br /><br />ไปถึงก่อนพี่เขานัดอีก นัด 9 โมง มาถึง 8.10น ก็นั่งเล่นมือถือรอไปก่อน เจอแมวมาจ้อง<br />ก็เลยถ่ายรูปมา พอ 9 โมงกว่าพี่ๆมาถึงก็ลุยเลย เข้าไปที่ห้อง network center ในห้องสมุด<br />
ซึ่งภายในมีเครื่องพวก core switch , switch , router และมากมายตั้งอยู่<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7vkKzqQ7bcS-Ny894aNR7LQU-t09XdoKV2d83a5eJS8zUiN_dE7W-ALyU2Sd95ZvqmnWHvCPr0TIZ7mIeEhrVuPWjxv1cSeqSxGWBSQRX_MAXQl6JNw1xuTQr37Dmky_IHy_9xjnoKpM/s1600/20140408_091842.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7vkKzqQ7bcS-Ny894aNR7LQU-t09XdoKV2d83a5eJS8zUiN_dE7W-ALyU2Sd95ZvqmnWHvCPr0TIZ7mIeEhrVuPWjxv1cSeqSxGWBSQRX_MAXQl6JNw1xuTQr37Dmky_IHy_9xjnoKpM/s1600/20140408_091842.jpg" height="480" width="640" /></a></div>
<br />
วันนี้งานที่ทำก็เหมือนเดิม ติดตั้ง switch 5 จุดทั่วมหาลัยเข้าตู้ rack ที่ติดตามกำแพงต่างๆ<br />บางจุดก็ต่ำ บางจุดก็สูง+เสียว ชีวิต network engineer สายติดตั้งต้องเจอแบบนี้แหละ <br />ก็เริ่มโดยการขนอุปกรณ์ switch บันได ไขควง น็อตตัวผู้ตัวเมีย สาย power แค่นี้ล่ะ<br />เพราะวันนี้จะแค่ติดตั้งเสียบสวิตซ์เฉยๆ ไม่ได้ test ping เพราะสาย fiber ทางทีมช่าง<br />ของบริษัทยัง<span class="st"><em>สไป</em>ล<em>ซ์</em> (<wbr></wbr>Splicing) หรือเดินสายยังไม่เสร็จ ยังไม่เข้าถึงแต่ล่ะตู้แร็ค <br /><br />ขั้นแรกก็เหมือนเดิม นำ switch ทุกตัวมาตั้ง vlan ใน port ที่ต้องการ <br />ต่อมาติดตั้งที่ห้อง network center ก่อน โดยใช้สวิชต์ layer3 ติดตั้งไป ส่วน layer2 ที่เหลือ<br />ก็กระจายไปตามจุดต่างๆ โดยก่อนอื่นจะไปเดินสำรวจสถานที่แต่ล่ะจุดก่อน บางจุดปิดก็<br />ต้องถามเจ้าหน้าที่ให้เปิดให้หน่อย <br /><br />จุดแรกสบายๆ ทำเหมือนเดิม แค่ติดสวิตช์ ไขน็อต ใส่สายไฟข้างหลัง จบ (ตู้นี้พี่ ผช ทำ)<br /></span><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpHqDSXLHjj_6hM5TyvqR9wYtgqfevyiddixTI2wPlpEvrrjnX_sv-IwLYGdkzI2LvBPIKAQpmJEqNE-i3XvN30TkGR-zNpgJh2NEP71tvPgzmEZqlanXrId0dzbnv2Gt7jEpEU5kx3_c/s1600/20140408_105203.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpHqDSXLHjj_6hM5TyvqR9wYtgqfevyiddixTI2wPlpEvrrjnX_sv-IwLYGdkzI2LvBPIKAQpmJEqNE-i3XvN30TkGR-zNpgJh2NEP71tvPgzmEZqlanXrId0dzbnv2Gt7jEpEU5kx3_c/s1600/20140408_105203.jpg" height="240" width="320" /></a><span class="st"></span><br />
<span class="st"><br /></span>
<span class="st"><br /></span>
<span class="st"><br /></span>
<span class="st"><br /></span>
<span class="st"><br /></span>
<span class="st"><br /></span>
<span class="st"><br /></span>
<span class="st"><br /></span>
<span class="st"><br /></span>
<span class="st"><br /></span>
<span class="st"><br /></span>
<span class="st"><br /></span>
<span class="st"><br /></span>
<span class="st"><br /></span>
<span class="st">จุดต่อไป ถึงคราวพี่ ผญ ทำ อันนี้สูงชิบ น่ากลัว ขอดูยืนช่วยส่งอุปกรณ์ให้พี่พอ อิอิ</span><br />
<span class="st"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgic7lo2rxPsHHbYG4GP7AM410f8Z136VpAeFx8IQbw7w8LXXCRXq2b19Btk3rNKgwc0CDbmr_XSJ3NrrLCqmuKUs7ykQ5vShubbeikHPUJ5P_W6fXAyreOu0YUDzF0j_y-VMJ_p7D2OUA/s1600/20140408_110447.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgic7lo2rxPsHHbYG4GP7AM410f8Z136VpAeFx8IQbw7w8LXXCRXq2b19Btk3rNKgwc0CDbmr_XSJ3NrrLCqmuKUs7ykQ5vShubbeikHPUJ5P_W6fXAyreOu0YUDzF0j_y-VMJ_p7D2OUA/s1600/20140408_110447.jpg" height="320" width="240" /></a></div>
<span class="st"><br /></span>
<span class="st">จุดที่สาม เสียดายไม่ได้ถ่ายรูปมา เพราะเป็นคนติดเอง(ตู้แรกในชีวิต) สูงไม่แพ้จุดสอง <br />แต่ยังดีที่ไม่อยู่ข้างบันได แต่ก็มีถังดับเพลิงเกะกะอยู่ข้างล่างตู้มากมาย </span><br />
<span class="st">ต้องเอาบันไดสอดเข้าไปตรงช่องว่าง แล้วปีนขึ้นไป เปิดตู้ ติดตั้ง โอ้ว ทั้งร้อนทั้งเกรง<br />เพราะมันสูงงงงงงงง บันไดก็โยกๆ ดีนะจับตู้ไว้ เพื่อนก็คอยส่งอุปกรณ์ขึ้นมาให้ เราก็จับมาติด<br />เวลาอยู่สูงแล้วยืนบนบันได มันจะโครงเครงมาก แต่ switch มันหนักอยู่ ยกขึ้นมาต้องจับ<br />ให้ตรงล็อคแล้วไขน็อตไปด้วย โอ้ววว มาลองทำแล้วจะมันส์มาก แต่คนกลัวความสูงอย่ามาทำ อิอิ<br />ไม่พอปลั้กดันหันเข้าไปข้างในแต่เดิม เอื้อมไปเสียบปลั้กไม่ถึง ต้องถอดรางปลั้กมาอีก แล้วเสียบ<br />เสร็จไขน็อตยึดรางปลั้กเข้าดังเดิม กว่าจะเสร็จขาสั่น หมดแรงไปพอสมควร แต่ในที่สุดก็รอด<br /><br />จุดสี่ เป็นตู้ใหญ่ติดกับพื้น ทำง่ายมากเสียบปุ๊ปได้ ไขแป็ปเดียวเสร็จ อันนี้เพื่อนทำ<br /><br />จุดห้า ทางช่างกำลังเดินสายเข้าตู้พอดี ก็เลยฝากให้ช่างติดให้เลย <br /><br />เสร็จพอดีตอนเที่ยง กินข้าว กลับมานึกว่าจะได้กลับ แต่พอดีทาง network admin ของมหาลัย<br />นำ alcatel 6224 มาให้แก้ เพราะอัพ firmware ไปแล้วมัน boot loop ตลอด <br /><br />กว่าจะเสร็จ พี่ๆก็โทรติดต่อหารุ่นพี่ที่รู้จักอีกที ขอคำแนะนำ และให้ส่ง firmware ใหม่มาให้<br />แล้วก็ทำการติดตั้ง กว่าจะรอโหลดเสร็จ และทำเสร็จ ก็ปาไปเกือบ 5 โมง ถึงได้กลับบ้าน <br /></span><br />
<span class="st"><br /></span>
<span class="st"><br /></span>J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-73879680726386005802014-04-06T03:06:00.000-07:002015-10-12T07:35:56.265-07:00ฝึกงาน TCS DAY 14 วันนี้เป็นวันที่ได้สัมผัสถึงชีวิต Network Engineer มากที่สุดวันนึง <br />
โดยวันนี้ไปถึง office TCS ปุ๊ป พี่ๆก็บอก ป่ะ ไปกัน ก็โบกแทกซี่ไปถึง ม.ราชมงคลพระนคร(เทเวศน์)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXIfiXFYpgjqoFApRy-QXI7hdEQ67xEe35ntVK8uM59IpTlXgcluoRxN6ltEwGZAVRLPze-De0k5bO5ynryh5tMJeUgQBdmzNMrG7GSTiMheTJji-IDq9RIEvHt6VUxJJ63gKKbRECl1M/s1600/20140404_092458.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXIfiXFYpgjqoFApRy-QXI7hdEQ67xEe35ntVK8uM59IpTlXgcluoRxN6ltEwGZAVRLPze-De0k5bO5ynryh5tMJeUgQBdmzNMrG7GSTiMheTJji-IDq9RIEvHt6VUxJJ63gKKbRECl1M/s1600/20140404_092458.jpg" height="240" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdYYsvJ0uJpSPv4hF_dw96CqzwX-ugQHW7k0TzwcuCK4RaTp2ZH2OqZEk7jlkueGPchgzosJYHRK-peyjIb9D0eNhYUqANvC4VazcOujYGMBLDoMHaZc1O-E1KcX285wWVTPU1VWg9sy8/s1600/20140404_094015.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdYYsvJ0uJpSPv4hF_dw96CqzwX-ugQHW7k0TzwcuCK4RaTp2ZH2OqZEk7jlkueGPchgzosJYHRK-peyjIb9D0eNhYUqANvC4VazcOujYGMBLDoMHaZc1O-E1KcX285wWVTPU1VWg9sy8/s1600/20140404_094015.jpg" height="240" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPcsjy0Lf3frd2-GUlsWxNOkLD3KgcV7SSi2aATxONh1u6tbAGzc2uEANMEEAIp8wm3Cqx2ADTooGK08vaj6WLObvZ83-EiX9mt5emG-EpIIOHKvyBNq8z93jzLxogGbGpr7SFVrgs-f8/s1600/20140404_094027.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPcsjy0Lf3frd2-GUlsWxNOkLD3KgcV7SSi2aATxONh1u6tbAGzc2uEANMEEAIp8wm3Cqx2ADTooGK08vaj6WLObvZ83-EiX9mt5emG-EpIIOHKvyBNq8z93jzLxogGbGpr7SFVrgs-f8/s1600/20140404_094027.jpg" height="240" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmhGgzzFxV4IK9HlHE1yXrI5IPNPCAuDK8-B6cs4l5hIO9aMSEZHd_ki39zKG1Hr0wD16zwkFryFlwQ3fwqvDkgnBV8hblufwmhWe5e8psJy5FI0D8NMksSSgVwYRsGDhX_2oEoTdlUrc/s1600/20140404_094048.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmhGgzzFxV4IK9HlHE1yXrI5IPNPCAuDK8-B6cs4l5hIO9aMSEZHd_ki39zKG1Hr0wD16zwkFryFlwQ3fwqvDkgnBV8hblufwmhWe5e8psJy5FI0D8NMksSSgVwYRsGDhX_2oEoTdlUrc/s1600/20140404_094048.jpg" height="240" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2xC3bQKeG9W08xeKg-5kK-_HEfuAuvsSwhB4ZcsEWdqAxUf3-ICHjkMgr55naAT2PM1WRaHs_ya-QowOrnkvE-5-qJqVLVHAU4DVMdM9iPhCZAg5CbhOkclTmNhkE9VlQfXMqPxE833k/s1600/20140404_094207.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2xC3bQKeG9W08xeKg-5kK-_HEfuAuvsSwhB4ZcsEWdqAxUf3-ICHjkMgr55naAT2PM1WRaHs_ya-QowOrnkvE-5-qJqVLVHAU4DVMdM9iPhCZAg5CbhOkclTmNhkE9VlQfXMqPxE833k/s1600/20140404_094207.jpg" height="240" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiaCg5yLSqjlqBwB8aDOouNgtc_LFTbqOmZy3-MrybkxZcVDHo6OQhe5C6snHAD1qo8zlPkE7x4oR0PQfPwSMJ1rLg6hTHU9i7YxWK9ek-mf8p7Oo4oDu7p91LjsJuuQNXDe4Wmq5PFaM/s1600/20140404_094407.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiaCg5yLSqjlqBwB8aDOouNgtc_LFTbqOmZy3-MrybkxZcVDHo6OQhe5C6snHAD1qo8zlPkE7x4oR0PQfPwSMJ1rLg6hTHU9i7YxWK9ek-mf8p7Oo4oDu7p91LjsJuuQNXDe4Wmq5PFaM/s1600/20140404_094407.jpg" height="320" width="240" /></a></div>
<br />
ระหว่างไปในแท็กซี่ก็คุยกับพี่ไปพลางๆ เกี่ยวกับว่างานต้องทำอะไรบ้าง เรียนอะไรไปแล้วยัง<br />
พอไปถึงก็เข้าไปยกของซึ่งเป็น switch ly2 ly3 กับลังที่มีสาย fiber และ G_BIC อยู่<br />
<br />
ยกกันไปไว้ที่ราชมงคลพระนคร คณะออกแบบสิ่งทอ บางส่วน ซึ่งจะมาติดตั้งวันอังคารหน้า<br />ส่วนวันศุกร์นี้ จะยกบางส่วนไปติดตั้งที่ราชมงคลพระนครเหนือ ก็นั่งรถไปกับพี่อีกยาวครับ<br /><br />ไปถึงก็ยกไปไว้ที่ห้องที่เป็นที่ตั้งตู้ server ก่อน เอาของกองไว้แล้วไปทานข้าวเที่ยง<br />กลับมาถึงลุย โดยงานในวันนี้จะเป็นแค่การติดตั้ง switch ที่ห้องส่วนกลางที่มีตู้ server เยอะๆ<br />กับนำ switch ly2 ไปติดตามตู้แร็ค ที่อยู่กระจายตามจุดของมหาลัย 4 จุด<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4fMRXVZWJR-W7m0iBIFezfc6yXWmXiKl9OxHJ4sFR0sPSP5APu9ryuQ1p4dpXXVqx7YyQQUCYpKFjv2RBGrpXYbg6gvT04lRUwZaiEoAJRJm-hDUWGyLvDp59KpGlvN6992T19nv82rk/s1600/20140404_144513.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4fMRXVZWJR-W7m0iBIFezfc6yXWmXiKl9OxHJ4sFR0sPSP5APu9ryuQ1p4dpXXVqx7YyQQUCYpKFjv2RBGrpXYbg6gvT04lRUwZaiEoAJRJm-hDUWGyLvDp59KpGlvN6992T19nv82rk/s1600/20140404_144513.jpg" height="640" width="480" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibS3O-EEVFmWAfiKn1uu6jULq5FcznhizO_L8G1v9kuUgfz5fbBtdcsA_fHbeRecX6yXtzuxGOqxBUhhOnGV29kfRW9fCEYdPQ6YyE0paXhzDPPPLR0eqVLmjBbkZ0-HFxH6Ip8lWEq2Y/s1600/20140404_122409.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibS3O-EEVFmWAfiKn1uu6jULq5FcznhizO_L8G1v9kuUgfz5fbBtdcsA_fHbeRecX6yXtzuxGOqxBUhhOnGV29kfRW9fCEYdPQ6YyE0paXhzDPPPLR0eqVLmjBbkZ0-HFxH6Ip8lWEq2Y/s1600/20140404_122409.jpg" height="400" width="300" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOskLwXsAkBDTEWFa4povVAxFEQ6rr3Px_1MIbCRR0LB51cKhWvwsH6DmaoGLBbnoK6WwKjjTzvopcI8rhGb7Mtb48anVllDN3Ku9OpwrzgCwHuOC5w1BD-Fy4VndIDdNz-ws9ykHNFzM/s1600/20140404_121936.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOskLwXsAkBDTEWFa4povVAxFEQ6rr3Px_1MIbCRR0LB51cKhWvwsH6DmaoGLBbnoK6WwKjjTzvopcI8rhGb7Mtb48anVllDN3Ku9OpwrzgCwHuOC5w1BD-Fy4VndIDdNz-ws9ykHNFzM/s1600/20140404_121936.jpg" height="240" width="320" /></a></div>
<br />
แน่นอนว่า แต่ล่ะที่มีตู้แร็คอยู่ก่อนแล้ว และก็มีสาย fiber ลากมาอยู่แล้ว หน้าที่เราคือนำสวิตซ์<br />ly3 ติดตั้งที่ส่วนกลาง และนำสวิตช์ ly2 ไปติดตามจุดต่างๆ ซึ่งตู้ rack มักจะติดอยู่กับเพดาน<br />สูงตั้งแต่ 2 เมตร - 3 เมตร งานนี้แบกบันได+ของ ยกไปทั่วมหาลัยเลยทีเดียว<br />
<br />
ขั้นแรกก็ติดตั้งที่ส่วนกลาง นำ switch ทั้งหมดมา config vlan ทีล่ะตัว<br />พี่ๆก็จะหยิบสาย console ซึ่งมีหัวแปลงหลากหลาย ใช้กับหลายยี่ห้อได้ พี่ๆจะมีติดตัวไว้ในเป้เลย<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4CX_oIwm10FwedBSUJzkPt0IJHuHvcmH8lE59G5XQq3zdCCuWD0y8bvherGkcEYs66upc3dzEAUxB5HxMnNaH6QmSV24_Tfe5NmK00k2E4nYaudg6a0Ue-AcGphJ4lQ6vuBCRWJk7ToE/s1600/20140404_124238.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4CX_oIwm10FwedBSUJzkPt0IJHuHvcmH8lE59G5XQq3zdCCuWD0y8bvherGkcEYs66upc3dzEAUxB5HxMnNaH6QmSV24_Tfe5NmK00k2E4nYaudg6a0Ue-AcGphJ4lQ6vuBCRWJk7ToE/s1600/20140404_124238.jpg" height="240" width="320" /></a></div>
<br />
เสร็จแล้วก็นำสวิตช์ต่อกับตู้แร๊คใหญ่ ในห้องส่วนกลาง ขันน็อต ต่อสายต่างๆ เช่น power<br />fiber obtic (สายเหลือง หัวฟ้า ที่เชื่อมกับตู้แร็คทั่วมหาลัย โดยเสียบผ่าน gbic เสมอ) เป็นต้น<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKD_-AJgHTwGNBHQhTN2iw4LzqXuS_V1CAr4bQRjryXlA54YyFenels_qRdcB1iyJeJr1oeb5uyQFiuJS1tvsv0JCv5B0lqhXTP9UQD9tiDL0LiTwstCtCf_MmMztUr0iwNwximzCdgz8/s1600/20140404_132711.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKD_-AJgHTwGNBHQhTN2iw4LzqXuS_V1CAr4bQRjryXlA54YyFenels_qRdcB1iyJeJr1oeb5uyQFiuJS1tvsv0JCv5B0lqhXTP9UQD9tiDL0LiTwstCtCf_MmMztUr0iwNwximzCdgz8/s1600/20140404_132711.jpg" height="320" width="240" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir647P1GVU3os-NtQ6dtCqHJdu8cxQ9JSjwU6StDm5lh_PRtDPxypB5uD1th3Zhlpw4TuxTcBO0BRmPz-9MdZH6I8ztM2MZagi7S-fbGeinsVzm7iKi2KVz85pE8bpatJhZiD72xcSt8k/s1600/20140404_134711.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir647P1GVU3os-NtQ6dtCqHJdu8cxQ9JSjwU6StDm5lh_PRtDPxypB5uD1th3Zhlpw4TuxTcBO0BRmPz-9MdZH6I8ztM2MZagi7S-fbGeinsVzm7iKi2KVz85pE8bpatJhZiD72xcSt8k/s1600/20140404_134711.jpg" height="320" width="240" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggQ-gkj0q9DOf2prL0gvt_kcXT18W_GtMYYbv2a4K40hgwJ-PnOjUTIzi-OekJ7GhIoVHhx5GsqaEvVd-VOMFP5oJrs_c7pqyWBgcZigwhPz6eYJgwU-3RbAe4kahr2SJz7xshbM6UZjI/s1600/20140404_130428.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggQ-gkj0q9DOf2prL0gvt_kcXT18W_GtMYYbv2a4K40hgwJ-PnOjUTIzi-OekJ7GhIoVHhx5GsqaEvVd-VOMFP5oJrs_c7pqyWBgcZigwhPz6eYJgwU-3RbAe4kahr2SJz7xshbM6UZjI/s1600/20140404_130428.jpg" height="320" width="320" /></a></div>
<br />
บางทีก็ต้องมีขยับสาย fiber ใต้พื้นบาง ให้มันเอื้อมถึง โดยใช้อุปกรณ์สีแดงๆคล้ายที่ดูดส้วม<br />2 หัวนั้นดูดพื้นขึ้่นมา และแน่นอนน็อตตัวผู้ตัวเมีย ใส่แหวนให้ครบ (อย่าลืมหันแหวนฝั่งด้านออก)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJoq2Eo3BuVZIU21syhJF3B5CCTBpd4E7VdgTMNtMKYugMP2DQ2fGlSrNlKXySRVFJ6_Geb_QsIZ-0K2AlEH-roEesCif3Z1fHLOE4XhMkn1GlxFBgBYClv7eXnMnjnW_NCN7GeRCt1Lw/s1600/20140404_130525.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJoq2Eo3BuVZIU21syhJF3B5CCTBpd4E7VdgTMNtMKYugMP2DQ2fGlSrNlKXySRVFJ6_Geb_QsIZ-0K2AlEH-roEesCif3Z1fHLOE4XhMkn1GlxFBgBYClv7eXnMnjnW_NCN7GeRCt1Lw/s1600/20140404_130525.jpg" height="320" width="320" /></a></div>
<br />
ติดส่วนกลางเสร็จแล้ว จะมีพี่ 1 คน เฝ้าอยู่คอยแก้ปัญหา กรณี ping จากจุดอื่นเข้าห้องนี้ไม่ได้<br />ส่วนเด็กฝึกงาน กับพี่ๆที่เหลือจะกระจายกันออกไปติดตั้ง <br /><br />จุดแรกเป็นห้องอะไรซักอย่างจำไม่ได้<br />
ถ้าห้องล็อคก็ต้องวิ่งไปขอเจ้าหน้าที่หรือพนักงาน อาจารย์ มาช่วยเปิดให้หน่อยครับ<br />
<br />
จุดสองเป็นป้อมยาม ก็ปีนนำสวิตช์ไปติดตั้ง ทุกจุดทำเหมือนกันเด๊ะ คือ<br />1.เปิดตู้แร็คด้วยกุญแจ เตรียมสาย เตรียมน็อตตัวผู้ตัวเมียให้พร้อม<br />
2.ถ้าไม่มีช่องพอให้ใส่สวิตช์ก็ถอดของเก่า ขยับไปไว้ที่อื่นให้พอใส่ได้<br />3.นำน็อตตัวเมียใส่เข้าตรงช่องตู้ เพื่อเอาไว้ยึด แล้วใส่สวิตช์เข้าไป ไขน็อตตัวผู้เข้าสวิตช์ผ่านตัวเมีย<br />
4.เสียบสาย power เข้าปลั้กไฟ และต่ออีกด้านเข้าสวิตช์<br />
5.เสียบหัว G_BIC เข้า port stk (stack) แล้วนำสาย fiber มาเสียบเข้าไป อีกด้านเสียบกับหัวในตู้<br />
เพื่อให้เชื่อมต่อกับสวิตช์ของส่วนกลางได้<br />
6.รอสวิตช์ boot แล้วต่อสาย fastEthernet เข้า port ที่ตั้ง vlan ไว้ใน switch อีกด้านเสียบกับคอม<br />7.ที่คอม ping ไปที่ gateway ที่ตั้งไว้ เช่น ping 192.168.3.1 -t (-t เอาไว้ให้มัน ping ไปเรื่อยๆ)<br />
8.ถ้า request time out สายปลายทางที่ห้องส่วนกลางอาจจะต่อผิดหรือสลับ โทรแจ้งพี่ให้สลับ ฮ่าๆ<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfLzwDrKWZIBKHDz9j0vkhHzAB1olKw55ulrOSFf2DgJy7jZwqq9JhaEJc3COcaLoLw5G8aX-PvPB-XjlMKgcSVrbwazsCn4AzTc5cAjO75OoliDv_dzs-Oql1qO7bZUosTtHP1Mxy_YM/s1600/20140404_143404.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfLzwDrKWZIBKHDz9j0vkhHzAB1olKw55ulrOSFf2DgJy7jZwqq9JhaEJc3COcaLoLw5G8aX-PvPB-XjlMKgcSVrbwazsCn4AzTc5cAjO75OoliDv_dzs-Oql1qO7bZUosTtHP1Mxy_YM/s1600/20140404_143404.jpg" height="300" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic92yH9bhDyidFvCLEcj7VoRBIJAYU8FpiWjgOlTvZYOdLIDRoExPbtvSswr18kLmF58t0PXK28tCMVU2A7WUryhgXFnQB8I-wsvHNmYbwiHTYt9Ghny_dFiZ2Aqk9DTJDZ4x-mLPGBcs/s1600/20140404_144646.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic92yH9bhDyidFvCLEcj7VoRBIJAYU8FpiWjgOlTvZYOdLIDRoExPbtvSswr18kLmF58t0PXK28tCMVU2A7WUryhgXFnQB8I-wsvHNmYbwiHTYt9Ghny_dFiZ2Aqk9DTJDZ4x-mLPGBcs/s1600/20140404_144646.jpg" height="640" width="480" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibLF-2zVENHLNt1XkN_PGAJHOpFi9xhs_MU0BlvQJ4-Vl0OK-PguPJa-qmYWJzUeglbTNonEh8U9g4Ls99v08I3IEEHRf4XjwrGokIKB4BLX2Wx1AGSk3LEq865CRqvgfH501pEobJjFE/s1600/20140404_144742.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibLF-2zVENHLNt1XkN_PGAJHOpFi9xhs_MU0BlvQJ4-Vl0OK-PguPJa-qmYWJzUeglbTNonEh8U9g4Ls99v08I3IEEHRf4XjwrGokIKB4BLX2Wx1AGSk3LEq865CRqvgfH501pEobJjFE/s1600/20140404_144742.jpg" height="480" width="640" /></a></div>
<br />
<br />
จุด3 กับ 4 เป็นจุดที่อยู่สูงจากพื้นเกือบๆ 3 เมตร ก็ต้องปีนบันไดทำ พี่เขาเก่งมาก ฮ่าๆ<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBWFY2n1owCOk5hn4qizt08wwrKhJwXaCRy4k_Hc0E5GF6GZFfMvSOBDh-A4uKxao25RCXlDw3Mq1_tJEenuukraZFHTUFtI0Oxar133OKlnFoBheAyJReY6OWf4rML5-mSpylNEPwzt8/s1600/20140404_145912.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBWFY2n1owCOk5hn4qizt08wwrKhJwXaCRy4k_Hc0E5GF6GZFfMvSOBDh-A4uKxao25RCXlDw3Mq1_tJEenuukraZFHTUFtI0Oxar133OKlnFoBheAyJReY6OWf4rML5-mSpylNEPwzt8/s1600/20140404_145912.jpg" height="200" width="150" /></a></div>
<br />
<br />
เสร็จสิ้นก็เดินเที่ยวพระจอมเกล้าพระนครเหนือต่อ เพราะอยู่แค่ตรงข้ามกัน แล้วก็นั่งรถเมล์<br />สาย 203 ไปที่สนามหลวง แล้วต่อสาย 15 กลับผ่านแยกมาบุญครอง หรือจะ 47 ก็ได้<br /><br />เดี๋ยววันอังคารหน้าลุยต่ออีกที่ หึหึJ2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-29667520743438415352014-04-06T02:22:00.001-07:002015-10-12T07:35:56.174-07:00ฝึกงาน TCS DAY12 13วันที่ 2/04/57 ลาหยุดไปทำฟันครับ<br /><br />วันที่ 12 (1/04/57)<br />วันนี้ก็ไม่มีอะไรมากครับ มาสายอีกล่ะ ถึงเกือบสิบโมง เลยโดนพี่เจนว่าเลย ฮ่าๆ <br />วันนี้พี่เขาก็ให้อ่าน OSPF แทน เรื่องนี้บอกตามตรงอ่านหลายรอบก็ยังไม่เข้าใจดีนัก<br />ไม่ใช่ว่าอ่านไปสอบ แต่ต้องอ่านให้ละเอียด เข้าใจกระบวนการภายในทั้งหมด <br />นำเสนอได้ เจอโจทย์ปัญหาแปลกๆ เกี่ยวกับ ospf ต้องแก้ได้ ดังนั้นวันนี้ก็อ่านเรื่องนี้ทั้งวัน<br /><br />แต่เนื่องจากวันที่31 ที่ผ่านมาจะส่งใบบันทึกเวลา แต่ทางพี่ที่รับเรื่องชั้น22 กลับบ้านตั้งแต่ 5 โมง<br />ก็เลยวันนี้ขึ้นไปหาตอนเที่ยงใหม่ แน่นอนพี่ก็ไปทานข้าวอยู่ สุดท้ายก็ฝากใบบันทึกเวลาให้พี่ยามแทน<br />
<br />
ถึงตอนบ่ายพี่ก็โทรตามลงมาให้ขึ้นไปรับใบไปเขียนใหม่ ต้องมีลายเซ็นต์ผู้อนุมัติ ซึ่งก็ลายเซ็นต์<br />เดียวกับผู้รับรอง(พี่ที่รับผิดชอบเรานั้นแหละฮะ) ตอนแรกเว้นไว้เพราะไม่รู้ว่าใช่คนเดียวกันหรือเปล่า<br />สรุปก็นำกลับมาเซ็นต์และถ่ายสำเนาบัตรประชาชนแนบไปด้วย เงินจะออกเป็นเช็คปลายเดือนได้ครับ<br /><br />สำหรับการโดนใช้งาน วันนี้นั่งอ่านหนังสือ+เล่นเน็ตไปวันๆครับ โดนใช้งานนิดหน่อย<br />แค่ยกแพ๊คกระดาษออกมากองให้พี่ๆใช้งานต่อครับ<br /><br />วันที่ 13 (3/04/57)<br />
วันนี้ก็เหมือนเดิมครับ อ่านหนังสือ OSPF และก็ยกลังกระดาษเข้าห้องแผนกบัญชีครับ <br />ตอนบ่ายๆหน่อย พี่เจนก็บอกว่าพรุ่งนี้เดี๋ยวไปช่วยพี่บูมออกไซด์นะ เย้ ได้ออกอีกแล้ว ฮ่าๆ<br />
<br /> J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0tag:blogger.com,1999:blog-4169493253030187484.post-66483340844673306122014-04-01T09:46:00.001-07:002015-10-12T07:35:56.251-07:00ฝึกงาน TCS DAY11<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN8vavytvu8UZ_W-hFJxvsGpV__IztBYZwaHVH90weZLQG8YVCVu7fA7BWHYASOlIZGdT9aj91LZJqm343PSSXZVUPZkppwx5Rn-NE7RoquD4XhGWnh0Bs43hMqb5grXdKYzt5V5_tdvg/s1600/20140331_114655.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN8vavytvu8UZ_W-hFJxvsGpV__IztBYZwaHVH90weZLQG8YVCVu7fA7BWHYASOlIZGdT9aj91LZJqm343PSSXZVUPZkppwx5Rn-NE7RoquD4XhGWnh0Bs43hMqb5grXdKYzt5V5_tdvg/s1600/20140331_114655.jpg" height="320" width="240" /></a></div>
ที่เห็น 8 ตัวใกล้ๆเป็นตัวผู้ ใส่แหวนให้หันแหวนด้านขุ่นๆออกหงายขึ้น ส่วนตัวเมียเป็นสี่เหลี่ยมๆในถุง<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRU9pTDvGQs-OD7CTBGJoH0axmJMtDzuNuyz6OyBwUY_EA9MebOmWlQ_cPyfctVVBoMmwpPfS5ybsJoP3hZVktFdYS06tQa9ef_eUaeLccEtVyie2Ch-BxeWyOWco5fmESHT_8yquVrSg/s1600/20140331_134639.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRU9pTDvGQs-OD7CTBGJoH0axmJMtDzuNuyz6OyBwUY_EA9MebOmWlQ_cPyfctVVBoMmwpPfS5ybsJoP3hZVktFdYS06tQa9ef_eUaeLccEtVyie2Ch-BxeWyOWco5fmESHT_8yquVrSg/s1600/20140331_134639.jpg" height="320" width="240" /></a></div>
<br />
วันนี้ถือเป็นวันที่ดีที่สุดตั้งแต่ฝึกงานมา เพราะจะได้ออกไปเที่ยว.. เอ้ย ไปออกไซด์งานแล้ว<br />
หลักๆคือไปติดตั้งอุปกรณ์ Router ให้เขานั้นแหละ วันนี้ก็เริ่มจากออกจากหอ แม่เจ้า ทำไม<br />
รถมันติดยาววววววววมาก และแทบไม่ขยับเลย ผิดปกติมากๆ มองไปก็เห็นโซ่กับอะไรไม่รู้<br />
มาปิดกั้นทางขึ้นสะพานไทยญี่ปุ่นเบลเยี่ยม รถเลยติดแบบชิบหาย หัวลำโพงยาวไปยันคลองเตย<br />
ลามไปถึงถนนสาธร(และสีลมด้วยเปล่าไม่รู้) สรุปออกมา 7 โมง ถึง 9.30น จนพี่ๆที่รออยู่<br />
เห็นปุ๊ปก็รีบไปไซด์งานกันเลย โดยนั่งไปกับรถยนต์ส่วนตัวของพี่ในบริษัท ผ่านทางด่วนไปลงบางนา<br />
ไปจอดที่บริษัทนึงแถวบางนา(ที่ทำ datacenter และรู้สึกจะมีโคกับทางญี่ปุ่นด้วยแฮะ) <br />
<br />
มีตึกใหญ่โตมาก และเป็นตึกที่อยู่ข้างทางด่วนบางนามาตั้งแต่สมัยอายุไม่กี่ขวบ จำได้ว่าสมัยก่อน<br />
เป็นตึกสูงตึกสุดท้ายของปลายทางด่วนบางนาเลยทีเดียว ก่อนที่จะไม่มีตึกอีก แต่สมัยนี้มีตึกอื่น<br />
ขึ้นมาประปรายแล้ว เข้าไปจอดรถกลางแดดร้อนๆ ออกมารอเจ้าหน้าที่บริษัทออกมาพาเข้าบริษัท <br />
ทีนี้ก่อนขนของขึ้นตึกก็แลกบัตรชั้น1กันก่อน เสร็จแล้วขึ้นลิฟท์ไปชั้น6 แลกบัตรเพื่อเข้าห้อง<br />
datacenter อีกทีนึง(ซึ่งอยู่ชั้น2ใช้บัตรสแกนเข้า) เสร็จกลับออกมาชั้น1ก็เจอรถที่ขนอุปกรณ์<br />
เป็น Router juniper m320 เป็นลังไม้ใหญ่ๆ(พึ่งนำเข้าจากจีนสดๆ) ก็มีคนงานยกของยกใส่<br />
รถลากของไปขึ้นลิฟท์ ส่วนผมกับพี่ๆ engineer ก็ตามขึ้นลิฟท์ไป ไปถึงชั้น2 ก็จะเป็นทางเดิน<br />
เข้าห้อง datacenter ซึ่งใหญ่มากๆ และเย็นเฉียบ พื้นจะเจาะรูและมี air flow ขึ้นมาสบายตีนมาก..<br />
ภายในมีตู้ Server ตั้งเป็นร้อยๆ ข้างในบางตู้ก็มี server , pc , harddisk , switch , router <br />
และสายรกรุงรังมาก นี้ตูต้องมาต่อสายแบบนี้ไหมเนี่ยถ้าทำงานจริง O_o <br />
<br />
เข้าเรื่องต่อ คนงานก็ยกเครื่อง Router อันหนักอึ้งลงมาจากรถลาก แล้ววางไว้ใกล้ๆตู้<br />
ที่เราต้องนำมันเข้าไปติดตั้ง โดยการติดตั้งก็จะมีขั้นตอนดังนี้<br />
1.เช็คระยะว่าเครื่องที่ใส่เข้าตู้ไป ปิดฝาได้พอดีไหม ไม่มีอะไรยื่นเกินออกมานะ<br />
2.ถ้าไม่พอดีนำตัวไขมาหมุน เลื่อนตัวล็อคไปข้างในให้พอดี แล้วล็อคกลับ<br />
3.นำแท่งเหล็กตัวยึดโครง มาติดกับตู้ ไว้รับน้ำหนักเครื่อง router<br />
โดยใส่น็อตตัวเมียเข้าไปก่อนที่รู แล้วนำเหล็กยึดโครงมาแนบแล้วไขน็อตตัวผู้เข้าไป<br />
4.แบกเครื่อง router ที่ยกกัน 4-5 คน แต่หนักเชี่ยๆ จนนิ้วแทบหลุด โว้วววววว เข้าตู้ไป<br />
5.ต่อไปพี่ๆก็จะถอดฝาที่ใส่การ์ดออก แล้วใส่การ์ดลงไปใน router <br />
6.พี่ที่อยู่ข้างหลังจะนำ power supply 4 ตัว ใส่ท้าย router แล้วต่อสาย power เข้าตู้<br />
โดยใช้เทคนิคสลับด้านกัน เผื่อฝั่งเต้าไฟข้างนึงเสียจะได้มีไฟอีกข้างเลี้ยงอยู่ได้<br />
<br />
สรุป ไปถึง 10.30น เสร็จ 15.30น ข้าวเที่ยวไม่ต้องกิน ไว้กินตอนเสร็จ แน่นอนพี่เลี้ยง ฮ่าาๆๆ<br />
<br />
กลับบริษัทโดยแท็กซี่ไปกับพี่ๆ ถึง 15.50น ได้ แล้วไปกินข้าว ขึ้นมา 16.20น พี่ๆก็สอน<br />
เรื่อง VLAN ให้ เรื่อง port untag กับ tag สรุปสาระได้ดังนี้<br />
<u>มองที่เส้นๆนึง</u><br />
- Untag ไปหา Untag ได้เสมอ แม้ต่าง vlan กัน เพราะมันไม่มี header ที่บ่งบอก vlan id <br />
เช่น Untag20 ไปหา Untag10 ก็ได้ ไม่จำเป็นต้อง 20 เหมือนกัน <br />
- Untag กับ Vtag ไปหาซึ่งกันและกันไม่ได้ เพราะคนล่ะการถอดรหัส<br />
- Vtag ไปหากันเองได้เมื่อ Vlan ต้นและปลายเหมือนกันเท่านั้น เช่น TAG20 ไปหา TAG20 ได้<br />
<u>มองที่ switch</u><br />
-เมื่อรับมาเป็น port Untag10 หรือ Tag10 ก็จะส่งไปยัง port อื่นทุก port ที่มี vlan เป็น 10<br />
เช่น U10 รับเข้ามา ถ้า port ที่เหลือเป็น T10 T20 U10 U30 ก็จะออกช่อง T10 U10<br />
<br />
เสร็จวันนี้กลับ 17.33น ได้ครับ อิอิ<br />
<br />
J2008http://www.blogger.com/profile/05563976420341002627noreply@blogger.com0