tag:blogger.com,1999:blog-28245505863098261602024-03-16T14:08:05.390+07:00โปรแกรมเมอร์(จำเป็น)เรามีอะไร เราก็แบ่งปันWisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.comBlogger51125tag:blogger.com,1999:blog-2824550586309826160.post-50696872058951330202023-05-29T17:33:00.002+07:002023-05-29T17:33:26.228+07:00Test AMR Fleet Management program<div>ระบบบริหารจัดการจราจรและจัดคิวงานของรถ AMR (Autonomous Mobile Robot) ที่พัฒนาโดยบริษัท WP Solution Co., Ltd. จากภาษา C# ทั้งในส่วนของ Backend (Service application) และ Frontend ที่เป็น GUI รันเป็น Windows application </div><div><br /></div><iframe frameborder="0" height="270" src="https://youtube.com/embed/wtfYtDo_k6s" width="480"></iframe><div><br /></div><div>เยี่ยมชมผลงานเราได้ที่ <a href="https://www.facebook.com/wpsolution2017">WP Solution | Facebook</a></div>Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com0tag:blogger.com,1999:blog-2824550586309826160.post-36135901660044509352022-07-10T00:13:00.000+07:002022-07-10T00:13:14.569+07:00Backup & Restore Database Tool (Demo)<iframe width="480" height="360" src="https://youtube.com/embed/VVtflwZg-1w" frameborder="0"></iframe>Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com0tag:blogger.com,1999:blog-2824550586309826160.post-75613105158695457792020-09-16T09:54:00.001+07:002020-09-16T09:54:50.136+07:00RT ToolBox3 Standard version 1.70Y<span style="background-color: white; color: #222222; font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, "Hiragino Sans", Arial, "MS PGothic", sans-serif; font-size: 14px;">กำลังศึกษาการใช้งานโปรแกรม RT ToolBox3 เพื่อควบคุมแขนกล Robots-MELFA ของค่าย Mitsubishi</span><br /><br />
<br /><br />
<iframe allowfullscreen="" frameborder="0" height="344" src="https://www.youtube.com/embed/ernzkesURyk" width="459"></iframe>Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com0tag:blogger.com,1999:blog-2824550586309826160.post-49424346435768078212014-06-05T19:13:00.001+07:002014-06-05T19:18:27.953+07:00ย้ายที่เก็บไฟล์หน้าเว็บไปไว้โฟวเดอร์อื่น บน Apache2 Mapping URLs to Filesystem Locations<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"><iframe src="http://www.facebook.com/widgets/like.php?href=http://faker-programmer.blogspot.com/2014/06/apache2-mapping-urls-to-filesystem.html" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"></iframe></div><p><a href="http://lh4.ggpht.com/-d68K4RqX49Y/U5Be2AlLQ5I/AAAAAAAAJ3Y/16eJCJ_DBXQ/s1600-h/image%25255B6%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: left; padding-top: 0px; padding-left: 0px; margin: 0px 5px 5px 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" align="left" src="http://lh4.ggpht.com/-G2n0y85sPr4/U5Be3H7nFtI/AAAAAAAAJ3g/JixluJATLF4/image_thumb%25255B2%25255D.png?imgmax=800" width="244" height="155" /></a>ปัจจุบันการมาของ cloud storage ได้เข้ามาให้บริการกับผู้ใช้งานเยอะแยะมากมาย หลากหลายเจ้าให้เลือกใช้ ผมก็เป็นคนหนึ่งเหมือนกันที่ชอบใช้ ไม่ว่าจะเป็น Copy.com , Dropbox , OneDrive หรือแม้กระทั่ง Google Drive ทีนี้ ผมก็มีความคิดว่า หากเราย้าย folder เก็บไฟล์หน้าเว็บเพจมาไว้ที่ folder drive เหล่านี้ ก็จะทำให้เรา สามารถที่จะทำการ sync ไฟล์หน้าเว็บที่เป็นซอร์สโค๊ด เอาไว้ทำงานต่อที่บ้่าน หรือที่ไหนๆ ก็ได้ </p> <p>จริงๆ แล้วใน apache2 ที่เป็นโปรแกรมสำหรับทำให้คอมพิวเตอร์ของเราให้กลายเป็น web server ที่ให้บริการเกี่ยวกับข้อมูลข่าวสารผ่านหน้า web browser จะระบุที่เก็บไฟล์ของซอร์สโค๊ดไว้ที่ DocumentRoot อยู่แล้ว เช่น ถ้า DocumentRoot  /var/www/html  แสดงว่าเราต้องเก็บไฟล์ที่เป็นโค๊ดไว้ที่ /var/www/html  ซึ่งจะทำให้เราสามารถเรียกไฟล์ที่อยู่ในโฟวเดอร์นั้นที่ URL ผ่านหน้าเว็บได้ เช่น </p> <p>http://www.example.com/fish/guppies.html</p> <p>แสดงว่ามี โฟล์เดอร์ชื่อ fish อยู่ภายใน /var/www/html  และมีไฟล์ guppies.html แสดงข้อมูลให้ client ที่เรียกมันได้เห็น  เอาหล่ะ มาเข้าเรื่องดีกว่า </p> <p>ถ้าผมมี folder ที่แยกย่อยต่างหาก ไม่อยากเอาโค๊ดตัวเองไปปนใน /var/www/html   ถ้าเป็นใน windows เราก็สามารถกำหนดให้แตกต่างได้เช่น ผมเก็บไว้ที่ Drive D:\Copy\WebApp ผมก็แค่ ไปเพิ่มคำสั่งต่อไปนี้ในไฟล์ httpd.conf  ดังนี้ </p> <p>กำหนด ชื่อเล่นมันก่อน ในที่นี้ผมกำหนด </p> <p><font color="#ffff00">Alias /WebApp/ "D:/Copy/WebApp/"</font></p> <p><font color="#ffff00"><Directory "D:/Copy/WebApp"> <br />    AllowOverride None <br />    Order allow,deny <br />    Allow from all <br /></Directory></font></p> <p>ระวังเรื่องเครื่องหมาย “ และจำนวน /  ด้วยนะครับ ต้องให้เป็นไปตามรูป </p> <p>จากนั้น Restart Apache 1 รอบ  แล้วทดลองนำไฟล์หน้าเว็บ ไม่ว่าจะเป็น html หรือ php ไปวางไว้ที่  D:\Copy\WebApp  แล้วเรียกชื่อไฟล์นั้น เช่น ผมเอาไฟล์ hello.php ไปวางไว้ที่ D:\Copy\WebApp\hello.php จากนั้นเรียกไฟล์ผ่าน URL ดังนี้ </p> <p><font color="#ffc000">http://localhost/WebApp/hello.php</font> ก็จะปรากฏหน้าหน้าเว็บที่เราเขียนไว้ใน hello.php </p> <p>เพียงเท่านี้เราก็จะได้เก็บไฟล์โค๊ดไว้ที่ cloud storage ซึ่งจะทำให้เราสามารถกลับมาทำงานต่อที่บ้านได้อย่างไม่มีปัญหาครับ </p> <p align="right">ขอให้สนุกกับการเขียนเว็บนะครับ</p> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com0tag:blogger.com,1999:blog-2824550586309826160.post-69009261768055779582014-03-07T14:30:00.001+07:002014-03-07T14:33:06.579+07:00Yii CGridView: Render customized<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"><iframe src="http://www.facebook.com/widgets/like.php?href=http://faker-programmer.blogspot.com/2014/03/yii-cgridview-render-customized.html" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"></iframe></div><p>ถ้าต้องการเปลี่ยนการแสดงผลแค่บาง Cell ใน GridView table ใน Yii Framework วันนี้ ลองเอาวิธีที่ผมลองนำวิธีจาก <br /><a href="http://www.yiiframework.com/wiki/278/cgridview-render-customized-complex-datacolumns/" rel="nofollow" target="_blank">CGridView: Render customized/complex datacolumns</a>  มาใช้ดูครับ <br /> <br />จากโจทย์ที่ต้องการ คือผมต้องการเปลี่ยนสีของตัวหนังสือที่อยู่ใน Cell ของช่องข้อมูลที่ต้องการ โดยจะทำการเปรียบเทียบ หากข้อมูลในช่องนั้น มีค่ามากกว่า  0 ให้ทำการเปลี่ยนสีฟอนต์ของตัวหนังสือให้เป็นสีแดง ดังรูป </p> <p>อันดับแรกให้ทำการเพิ่ม function ใน Class ใน Controller ก่อน ในที่นี้ ผมทำการเพิ่ม function renderGridCell ใน QuizController เพื่อให้ส่วนของ View ทำการเรียก renderGridCell ไปใช้งาน</p> <p><font color="#ffff00">protected function renderGridCell($data) <br />{ <br />    //var_dump($data); <br />    if($data["cnt"]>0){ <br />         echo '<font color="red">'.$data["cnt"].'</font>'; <br />    }  else { <br />          echo $data["cnt"]; <br />    } <br />}</font></p> <p>ในส่วนของ View ที่ Widget bootstrap.widgets.TbGridView ผมทำการเรียกใช้  renderGridCell ดังรูป </p> <p><a href="http://lh3.ggpht.com/-8aClz6-yTeI/Uxl1nfpoRZI/AAAAAAAAJic/fVX4Myct96s/s1600-h/image%25255B10%25255D.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="CGridView: Render customized/complex datacolumns " border="0" alt="CGridView: Render customized/complex datacolumns " src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1wD_qBlW4X42qjkJYmL-KFWMWDz40Wl4RhMBJhVqI61oDJSc_yJjb7yEreNMiYqCkxPTSmLaoBi-x8HCmhXjJpSqlNMJXiWD6oaH_IjyG8ADZva0U4J1RrM2t5qoUtnaNb1yRiBTX22Ez/?imgmax=800" width="562" height="366" /></a> <br />เมื่อแสดงผล เราจะได้ตัวหนังสือสีแดง เมื่อค่าที่นำมาเปรียบเทียบมากกว่า 0 </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYbtfE5fOQVgvI4x-0OZCBUaTNs_5kun5tXELgKfJQyvOiT9l4Kn9annAydwomy7JXcFsyO1DJiELAp3E6FsS2Nu_zJH27EUjCqbqvlD8ajiXaQaqDtaG2NeRKQs3xA2WdbNzlfwlHHLV6/s1600-h/image%25255B11%25255D.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="CGridView: Render customized/complex datacolumns " border="0" alt="CGridView: Render customized/complex datacolumns " src="http://lh6.ggpht.com/-qI2TR925CgE/Uxl1qji6MhI/AAAAAAAAJi0/Oh0077h-LAI/image_thumb%25255B7%25255D.png?imgmax=800" width="557" height="185" /></a></p> <p align="right">ลองนำไปประยุกต์ใช้กันดูนะครับ ขอให้สนุกกับ Yii Framework นะครับ</p> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com0tag:blogger.com,1999:blog-2824550586309826160.post-49527092385873607822013-12-19T23:47:00.001+07:002013-12-19T23:47:58.599+07:00yii-api-1.1.14.chm<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"><iframe src="http://www.facebook.com/widgets/like.php?href=http://faker-programmer.blogspot.com/2013/12/yii-api-1114chm.html" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"></iframe></div><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinXhPx6bHdcRIZXwDsrfPvJ33-iof0400UAl2cbTpyytMuxBit8Kos25vgwrKcfWN7QPtfYfXv-yfjrh7HP1-cIhKWHVLg4zxgLefTl-dhT3L_gmbQSqi7a21_kClhCktzyPC9m08OwvFi/s1600-h/image%25255B2%25255D.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="yii_api_1.1.14.chm" border="0" alt="yii_api_1.1.14.chm" align="left" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1ZlLHGUic5K4zQCsvHUawvAtIurgqTYGeHRbBefFwr2vp5Di6pTOeWSHMlNNGfVXuN7BfoWWgpVHz6UdbFM-fw_miJOGGYuUGujCRviFJOTUD6gG5QpvPc_NE_gr20TM-wIj-fZcWu-Jj/?imgmax=800" width="244" height="145" /></a></p> <p>     ผมมักชอบที่จะเปิดอ่านคู่มือ หรือ help จากไฟล์ CHM ซะมากกว่า ด้วยเหตุผลที่ว่า มันค้นหาคำที่เราป้อนได้ง่าย และรวดเร็วกว่า นอกจากนั้น ไฟล์ CHM ยังพกพาง่าย และไม่ใหญ่จนเกินไป ซึ่งเสียดายเพียงอย่างเดียว มันไม่สามารถ take note ลงบนไฟล์ ได้เหมือนไฟล์ pdf </p> <p>วันนี้ ผมได้ลองนำ Yii API 1.1.14 class reference ซึ่งเดิมทีของ Yii official เขาทำไว้เป็น html ไฟล์ แต่ ด้วยความที่มันค้นหาคำ หรือ keyword mี่เราต้องการได้ยาก ผมจึงนำมาแปลงเป็น chm file ซะเลย ทำเสร็จแล้วก็เลยเอามาแชร์เพื่อนๆ หามีบางท่านกำลังเล่นกับ Yii framework เหมือนกับผม </p> <p>เวอร์ชั่นที่นำมาแปลงนั้น เป็นเวอร์ชั่น 1.1.14 ซึ่งต่อจากเวอร์ชั่นนี้ ก็เป็นเวอร์ชั่น 2.0 ซึ่งผมก็ยังไม่ได้ลอง เพราะยังไม่เข้าใจมันเท่าไหร่ และเวอร์ชั่น 1.1.14 ก็ยังเป็นเวอร์ชั่นที่ stable อยู่ ก็เลยยังไม่คิดที่จะเปลี่ยน </p> <p>ใครสนใจ Yii framework ก็ดาวน์โหลด  <a href="https://www.dropbox.com/s/x0s8crr10yv1fv1/yii_api_1.1.14.chm" rel="nofollow" target="_blank">yii-api-1.1.14.chm</a> ไปติดเครื่องไว้นะครับ เอาไว้ดำคำสั่งเวลาเขียนโค๊ด </p> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com0tag:blogger.com,1999:blog-2824550586309826160.post-34726370214870587502013-10-11T15:30:00.001+07:002013-10-11T15:31:03.618+07:00One comand make Yii Controller<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"><iframe src="http://www.facebook.com/widgets/like.php?href=http://faker-programmer.blogspot.com/2013/10/one-comand-make-yii-controller.html" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"></iframe></div><p>หลังจากเราติดตั้ง Yii framework ไปเรียบร้อยแล้ว สิ่งที่เราต้องทดลองทำเป็นอย่างแรก คือ สร้าง Controller ด้วยของเราเอง </p> <p>ในการที่จะแสดงหน้าเพจ สักหนัาหนึ่งบน Yii Framework เราจะต้องสร้างไฟล์ที่เป็น controller หลังจากนั้น ก็กำหนด method ที่เป็น action เพื่อทำงานอะไรสักอย่าง จากนั้น ก็ส่งผลลัพธ์ไปแสดงที่ view <br />หากเราจะสร้างเอง ก็สามารถทำได้ แต่ จะต้องทำตามที่ Yii เขากำหนดมา นั่นก็คือ </p> <p>สร้างไฟล์ controller โดยชื่อนำหน้าไฟล์ XXXcontroller.php จะเป็น controller id ในที่นี้คือ XXX และต้องสร้างไฟล์ไว้ใน /protected/controllers/ <br />จากนั้นเขียน method ภายในไฟล์นี้ โดย method ต้องมีชื่อรูปแบบ  public function actionYYY(){......} ซึ่ง YYY คือ action id </p> <p>จากนั้นจะต้องไปสร้่างไฟล์ที่เอาไว้แสดงผล หรือ render ข้อมูล ในที่นี้ผมเรียกว่า view file ก็แล้วกัน โดยจะต้องมีชื่อสอดคล้องกับที่กำหนดใน method render และจะต้องสร้างไว้ใน folder ที่ชื่อเดียวกันกับ Controller id (ในที่นี้คือ XXX)ที่อยู่ภายในโฟวเดอร์ /views/ อีกที ดังนั้น จะได้ path folder /views/XXX นั่นเอง <br />สรุปว่าใน actionYYY จะเป็นรูปแบบนี้</p> <p>public function actionYYY() <br />{ <br />    this->render('ชื่อ view file') <br />}  </p> <p>เวลาที่เราเรียกใช้งาน ก็จะเป็นรูปแบบนี้ </p> <p>http://localhost/myweb/index.php?<font color="#ffff00">r</font>=<font color="#ff0000">XXX</font>/<font color="#00ff00">YYY</font></p> <p>โดยที่ </p> <p><font color="#ffff00">r</font> หมายถึง route หรือเส้นทางที่จะเป็นตัวบอกให้ controller เข้ามารับงานไปทำ <br /><font color="#ff0000">XXX</font> คือชื่อ Controller id <br /><font color="#00ff00">YYY</font> คือชื่อ action id </p> <p>ซึ่งทั้งหมดนี้ เป็นขั้นตอนพื้นฐานเพื่อให้ได้หน้าเว็บ 1 หน้า ดูเหมือนจะเยอะ แต่ในแง่การพัฒนา และบำรุงรักษาโค๊ด ผมว่า Yii framework เขาทำไว้ดีแหละ </p> <p>ประเด็นของหัวข้อนี้ ผมอยากจะบอกว่า มีวิธีในการสร้างหน้าเว็บบน Yii ได้เร็ว กว่าการสร้่างไฟล์ทั้งสอง สามไฟล์  โดยมีรูปแบบตามที่ผมได้บอกไว้แล้วข้างต้น ด้วยการใช้ Yiic.bat ครับ (สำหรับ Linux เราจะใช้ไฟล์ Yiic.php) ซึ่งจะทำกันบน command line console ครับ</p> <p>อันดับแรกก็เปิด command line console ของเราก่อน แล้วก็เข้าไปที่ directory ทีเก็บโปรเจค yii ของเรา ในที่นี้ สมมติว่าชื่อ train ผมเก็บไว้ที่ D:\www\</p> <p>cd D:\www\train</p> <p>พอเราเข้าไปแล้ว ก็ให้เรียก yiic.bat ที่อยู่ใน /framework/ ภายใต้  yii directory ที่เก็บ framework ในที่นี้ ผมเก็บไว้ที่ yii-1.1.14</p> <p>D:\www\train>D:\www\yii-1.1.14\framework\yiic shell</p> <p>เราจะอยู่ใน shell ของ yii สังเกตว่า prompt จะเปลี่ยนไป </p> <p><a href="http://lh4.ggpht.com/-JOd7_Tgr2MI/Ule2sAtA-6I/AAAAAAAAIdY/GzxrWgBSg6I/s1600-h/image%25255B3%25255D.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="yiic shell" border="0" alt="yiic shell" src="http://lh5.ggpht.com/-tz8PCHELNrU/Ule2y3m-1AI/AAAAAAAAIdg/aqiMh4WkRLU/image_thumb%25255B1%25255D.png?imgmax=800" width="644" height="229" /></a></p> <p>ต่อมาเราจะมาสร้าง controller สำเร็จรูปกันเลยครับ ด้วยคำสั่ง </p> <p><font color="#ffff00">controller [controller id] [action id]</font></p> <p><font color="#ffffff">ดังนั้น หากผมต้องการสร้าง controller id =  message และ action id ที่ชื่อ helloworl จะได้</font></p> <p><a href="http://lh4.ggpht.com/-sfU95Hw2YUY/Ule2446xBMI/AAAAAAAAIdo/HIkL8nHiLT4/s1600-h/image%25255B7%25255D.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="yiic shell" border="0" alt="yiic shell" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_esDpfy1fQIbUeudA1lifpeVLLL800fzOzJuA9EZuJqpiGc6sE4vUHWhecuiPcyqKskzwCjfMa_uN8PvDn9XozVMlzSJ0Ph5EcDbkl60UyaQ144J0e83_G227YQkN14QuxW3DjjcOyBZs/?imgmax=800" width="644" height="183" /></a></p> <p>ลองเช็คดูในโปรเจคใน Netbean เราจะเห็นไฟล์ถูกสร้างขึ้นมา</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg3KOflzdMclvH6JtwOHys5aZ9KlVMTavpF04pMknOHfrgTIBqLYGxwJ_ZX50O63pPWaXHn6LyEKWLsNNoJxQABiASH0piMPix6oh9FHjRKu81wfXBYUwPT-7f6zXGd1PSjLkvXJsbNrNW/s1600-h/image%25255B11%25255D.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="yii controller" border="0" alt="yii controller" src="http://lh3.ggpht.com/-7eR1HEqvzrc/Ule3MQHaFlI/AAAAAAAAIeA/KYjMX11Jb9Q/image_thumb%25255B5%25255D.png?imgmax=800" width="644" height="459" /></a></p> <p>ลองเรียกหน้าเว็บ http://localhost/train/index.php?r=message/helloworld ดูครับ </p> <p>มันจะง่าย และชัวร์กว่า วิธีสร้างเอง นอกจาำกนี้ยังสามารถสร้าง model  form module อื่นๆ ได้อีก ลองพิมพ์ help ที่ shell ของมันครับ </p> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com0tag:blogger.com,1999:blog-2824550586309826160.post-40808123154547791802013-03-13T16:49:00.001+07:002013-03-13T16:49:45.548+07:00How to install ChartDirector on Linux Server<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"><iframe src="http://www.facebook.com/widgets/like.php?href=http://faker-programmer.blogspot.com/2013/03/how-to-install-chartdirector-on-linux.html" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"></iframe></div><p>สำหรับการติดตั้ง php ChartDirector บน Linux Server มีขั้นตอนดังนี้ <br />หลังจากเราได้ทำการ login ผ่าน ssh เข้าไปที่ web server ของเราแล้ว ให้เข้าไปที่ directory web root ของเราก่อน ในที่นี้ server ผม มี web root directory อยู่ที่ /var/www/html   </p> <p>[root@host lib]#<font color="#ffff00">cd /var/www/html   <br /></font>(ไม่ต้องพิมพ์ [root@host lib]# นะ) </p> <p>จากนั้น ทำการดาวน์โหลดไฟล์ที่ถูกบีบอัดจากเว็บของ <a href="http://www.advsofteng.com/download.html" rel="nofollow" target="_blank">advsofteng.com</a> ที่เก็บ ChartDirector ผมใช้วิธีก๊อปปี้ลิ้งค์จากหน้าเว็บ แล้วดาวน์โหลดด้วยคำสั่ง wget  </p> <p><a href="http://lh6.ggpht.com/-bWBlwyzJel4/UUBK6dEss6I/AAAAAAAAGxE/4EiOeTgfXsk/s1600-h/image%25255B12%25255D.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Copy link ChartDirector" border="0" alt="Copy link ChartDirector" src="http://lh4.ggpht.com/-Yjhk-BMKr04/UUBLDt2duCI/AAAAAAAAGxM/ZDYsKWvNNhI/image_thumb%25255B6%25255D.png?imgmax=800" width="575" height="218" /></a></p> <p>[root@host html]# <font color="#ffff00">wget http://download2.advsofteng.com/chartdir_php_linux.tar.gz</font></p> <p>รอสักครู่ (ใช้เวลาแปรผกผันตามความแรงของอินเตอร์เนตของเรา)</p> <p>ซึ่งน่าจะได้ไฟล์ chartdir_php_linux.tar.gz อยู่ในโฟวเดอร์ที่เราอยู่ตอนนี้ (นั่นก็คือ /var/www/html )</p> <p>แตกไฟล์ ด้วยคำสั่ง </p> <p>[root@host lib]#<font color="#ffff00">gunzip chartdir_php_linux.tar.gz</font></p> <p>แล้วตามด้วย </p> <p>[root@host html]# <font color="#ffff00">tar xvf chartdir_php_linux.tar</font></p> <p>ทีนี้ เราต้องก๊อปปี้ไฟล์ไลบรารี่ของ ChartDirector ไปไว้ที่ extension ไดเรกทอรี่ของ linux แต่ก่อนจะก๊อปปี้ไฟล์ไลบรารี่เหล่านั้น ต้องทำการเข็คก่อนว่า php มองเห็น  extension ไดเรกทอรี่ของ linux อยู่ที่ไหน ด้วยคำสั่ง </p> <p>[root@host html]# <font color="#ffff00">php -r "phpinfo();" | grep extension_dir</font></p> <p>จะได้ <br /><font color="#00ff00">extension_dir => /usr/lib/php/modules/ => /usr/lib/php/modules/ <br /></font>sqlite3.extension_dir => no value => no value <br />[root@host html]#</p> <p>ผมได้คำตอบว่า อยู่ที่ <font color="#00ff00">/usr/lib/php/modules/</font></p> <p>ผมทำการก๊อปปี้ไฟล์ที่อยู่ในโฟวเดอร์  ChartDirector/lib/ ทั้งหมดไปไว้ที่ /usr/lib/php/modules/</p> <p>[root@host html]# <font color="#ffff00">cp -R ChartDirector/lib/* /usr/lib/php/modules/.</font></p> <p>จากนั้น จะต้องทำการกำหนดให้ php เรียกไฟล์ไลบรารี่ให้ตรงกับเวอร์ชั่นของ php  ซึ่งเราต้องทำการเช็คเวอร์ชั่น php ของเราก่อน ด้วยคำสั่ง php -v</p> <p>[root@host modules]# <font color="#ffff00">php -v <br /></font>PHP 5.3.3 (cli) (built: Jul  3 2012 16:40:30) <br />Copyright (c) 1997-2010 The PHP Group <br />Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies</p> <p>ของผมเวอร์ชั่น 5.3.3 ซึ่งถ้าดูตามคู่มือของ ChartDirector แล้ว ผมจะต้องทำการกำหนดให้ php เรียก phpchartdir530.dll </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdG2JR7zJqIZdIF5S5L_nKiTjz2HC28XUkF_9_dPiR7DI7qqj2-AmHS8qPy14StOogm3UcZK8lUpIIwF8Xqzhhg2JZk4jUE9VNRzMq7dBfgnSM_DXS7ejt3H12AeaBl7r6UseWKKl1QZRf/s1600-h/image%25255B13%25255D.png"><img style="border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Select ChartDirector library file version " border="0" alt="Select ChartDirector library file version " src="http://lh3.ggpht.com/-ftH2aUqWSRE/UUBLTFyqIFI/AAAAAAAAGxc/7bHKcX1_pgI/image_thumb%25255B7%25255D.png?imgmax=800" width="566" height="188" /></a></p> <p align="left">ดังนั้น ผมต้องเข้าไปกำหนด extensionไฟล์ ใน php.ini ซึ่งใน linux จะเก็บไฟล์นี้ไว้ที่ /etc/php.ini  </p> <p>เข้าไปแก้ไขไฟล์นี้ด้วยคำสั่ง </p> <p>[root@host html]# <font color="#ffff00">vim /etc/php.ini</font></p> <p>มองหาบรรทัด <font color="#00ff00">extension_dir="/usr/lib/php/modules/" <br /></font>แล้วเพิ่มบรรทัด <font color="#ff0000">extension="phpchartdir530.dll"</font>  ต่อท้ายบรรทัดดังกล่าว</p> <p>ทำการบันทึกไฟล์ php.ini  </p> <p align="left">ทำการรีสตาร์ทเซอร์วิส apache เพื่อให้การกำหนดค่าของเรามีผล (บังคับใช้) ด้วยคำสั่ง /etc/init.d/httpd restart</p> <p>[root@host html]# <font color="#ffff00">/etc/init.d/httpd restart <br /></font>Stopping httpd:                                            [  OK  ] <br />Starting httpd:                                            [  OK  ] <br />[root@host html]# </p> <p align="left">ถ้าไม่มี Error ใดๆ ก็น่าจะสำเร็จ ให้ลองเปิดตัวอย่าง ChartDirector ของเรา ผ่านหน้าเว็บบราวเซอร์ </p> <p>http://ชื่อhostของเรา/ChartDirector/phpdemo/ น่าจะปรากฏตัวอย่างกราฟให้เราเห็น </p> <p><a href="http://lh6.ggpht.com/-pU1cRo3na3M/UUBLeuLjlgI/AAAAAAAAGxk/3nP8xTTslPc/s1600-h/image%25255B16%25255D.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="ChartDirector Demo" border="0" alt="ChartDirector Demo" src="http://lh5.ggpht.com/-2MKXS_Oen7E/UUBLrLQUtAI/AAAAAAAAGxs/Yp6lm_ulACY/image_thumb%25255B10%25255D.png?imgmax=800" width="560" height="362" /></a></p> <p align="right">ขอให้สนุกกับ ChartDirector ครับ</p> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com0tag:blogger.com,1999:blog-2824550586309826160.post-41816261859360861642012-12-19T20:00:00.001+07:002012-12-19T20:00:44.329+07:00Multi Tabbed PUTTY<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"><iframe src="http://www.facebook.com/widgets/like.php?href=http://faker-programmer.blogspot.com/2012/12/multi-tabbed-putty.html" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"></iframe></div><p><a href="http://lh3.ggpht.com/-p8UMe4OmTGs/UNG6UDftFaI/AAAAAAAAGOU/td5RPabEceY/s1600-h/image%25255B10%25255D.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 12px 1px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="MTPutty : Multi Tabbed Putty" border="0" alt="MTPutty" align="left" src="http://lh6.ggpht.com/-y5EY3mDqsh0/UNG6XGDAWPI/AAAAAAAAGOc/i6Vla08igBo/image_thumb%25255B4%25255D.png?imgmax=800" width="240" height="134" /></a>    หลายๆ คนที่ต้องเกี่ยวข้องกับ Server Linux หรือต้องดูแลเครื่องคอมพิวเตอร์ที่ติดตั้ง Linux คงจะคุ้นเคยกับเครื่องมือตัวหนึ่งที่ชื่อ Putty ซึ่งเป็นโปรแกรมเล็กๆ ที่เอาไว้สำหรับเป็นหน้าต่างในการติดต่อสื่อสารกับคอมพิวเตอร์เครื่องอื่นๆ ที่เปิด Port 22 telnet ไว้ ผมก็คนหนึ่งเหมือนกันที่ใช้โปรแกรม Putty บ่อยๆ แทบจะบอกว่า ทุกครั้งที่ติดตั้งลงวินโดวน์ใหม่ ผมจะต้องดาวน์โหลดโปรแกรม putty นี้ มาไว้ติดเครื่องอยู่เสมอ เพราะความที่มันใช้งานง่าย และมีความจำเป็นเมื่อจะต้อง telnet เข้าไปที่เครื่่องที่ติดตั้ง linux ไว้ และเปิดพอร์ต 22 ไว้ </p> <p>    ก็มีหลายครั้งที่จะต้องเปิดหน้าต่างโปรแกรม putty มากกว่า 1 หน้าต่างในการรีโมทเข้าไปที่เครื่องคอมพิวเตอร์ปลายทาง ซึ่งบางทีเราก็เปิดหน้าต่างหนึ่งสำหรับเฝ้ามอง log message ไปพร้อมกับการแก้ไข คอนฟิค หรือกระทำการบางอย่างกับคอมพิวเตอร์เครื่องนั้น ไปพร้อมๆ กัน ซึ่งถ้าจอ คอมพิวเตอร์ของเราใหญ่พอ ที่จะเปิดหลายๆ หน้าต่าง และจัดเรียงซ้อนกันไปมา คงไม่ใช่ปัญหา แต่ ถ้าจอคอมพิวเตอร์ของเพื่อนๆ มันไม่ได้ใหญ่ขนาดนั้นหล่ะก็ มองหาโปรแกรมอื่นๆ ที่ปรับแต่งได้มากกว่า Putty ธรรมดาเหอะๆ </p> <p>    โปรแกรม MTPutty หรือ Multi-tabbed Putty คือโปรแกรมที่ถูกพัฒนาด้วย win32 ให้ทำการซ้อนหน้าต่างโปรแกรม putty อีกทีหนึ่ง ให้สามารถจัดเรียงกันแบบไหนก็ได้ ตามใจ ซึ่งช่วยให้หน้าต่างโปรแกรม putty ของเรา ถูกยึดไว้ในหน้าต่างเดียวกัน สะดวกต่อการใช้งานมากๆ </p> <p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Muti-tabbed Putty Program" border="0" alt="MTPutty" src="http://lh3.ggpht.com/-lJWkCPgwwhI/UNG6bw2eD5I/AAAAAAAAGOk/p6nyhOQ3WhI/image%25255B6%25255D.png?imgmax=800" width="561" height="360" /></p> <p>    จริงๆ แล้ว โปรแกรม MTPutty ไม่ได้ทำหน้าที่เหมือนโปรแกรม Putty เลย เพียงแต่มันทำหน้าที่เสริม คือ ให้หน้าต่างโปรแกรม putty สามารถเปิดได้หลายๆ หน้าต่าง แต่ให้อยู่ใน ฟอร์มของหน้าต่างหลักเท่านั้นเอง นั่นก็หมายความว่า ก่อนใช้งานโปรแกรม MTPutty นั้น เพื่อนๆ ต้องมีโปรแกรม Putty ติดตั้งอยู่ก่อนแล้ว และเมื่อทำการเรียกโปรแกรม MTPutty ในครั้งแรก โปรแกรมจะถามหาโปรแกรม Putty (ในกรณีที่มันหาไม่เจอ ถ้าไม่ได้อยู่ที่โฟวเดอร์เดียวกัน) เพื่อทำการเรียกค่าต่างๆ ที่เราเคยตั้งค่าไว้ที่โปรแกรม Putty มาเป็นค่าเริ่มต้นการใช้งานโปรแกรม MTPutty นั่นเอง </p> <p>ลองไปใช้งานกันดูครับ ผมเห็นว่าสะดวกดี จึงมาแนะนำให้เพื่อนๆ ลองเอาไปใช้งานกันดู <a href="http://ttyplus.com/multi-tabbed-putty/" rel="nofollow" target="_blank">ฟรี</a> ครับ</p> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com2tag:blogger.com,1999:blog-2824550586309826160.post-27861087783597102342012-12-07T19:56:00.001+07:002013-10-11T11:10:57.010+07:00Getting started Yii Framework เอากับเขาบ้าง<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"><iframe src="http://www.facebook.com/widgets/like.php?href=http://faker-programmer.blogspot.com/2012/12/getting-started-yii-framework.html" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"></iframe></div><p>     ช่วงนี้ ศึกษาหลายศาสตร์เหลือเกิน web programming , linux programming , Embedded System ก็เอา ปนเป กันไปหมด ตามประสา คนชอบศึกษา แต่ไม่ได้เอาทำมาหากินเป็นเรื่องเป็นราวเท่าไหร่ </p> <p>     จริงๆ ผมก็เขียน PHP มาหลายปีแหละ ตอนที่เขียนแรกๆ ผมก็ยังวนลูปไม่เป็นเลย จะปริ้นท์ตาราง table ทีหนึ่ง ก็ hard code เลย ทำที่ละ row ที่ละ column ต้องสารภาพ ว่าทำแบบนั้นจริงๆ พอเริ่มเขียนมาเรื่อยๆ ก็ไม่ไหวแหละ ก็ต้องมาวนลูปเอา เพราะความที่มันทำแบบวิธีเก่าๆ ไม่ไหว มาถึงตอนนี้ ผมก็ว่าการเขียนโค๊ดที่ต้องคอย Include เอา Header.php , footer.php , menu.php เข้ามา ผมว่ามันก็น่าเบื่อไม่ใช่น้อย และก็อีกเช่นเคย ความอดทนของผมก็เริ่มหมดไป ในที่สุดต้องหาวิธีที่มันง่ายกว่านี้หน่อย </p> <p>    ผมเคยพยายามที่จะลองใช้ tool ที่ gen template ให้ แต่ก็ไม่ไหว ไม่ถนัดเอาเสียเลย จนมาเร็วๆ นี้ ได้ยินชื่อของ Framework ตัวหนึ่งที่เค้าว่ากันว่า ช่วยให้งานของเรามีระบบมากขึ้น และสามารถขจัดปัญหาเรื่องการต้องมา maintenance โค๊ดในอนาคตได้ดีเลย เพราะมันเป็นการแยกส่วนของการ coding และการ design ออกจากกัน ซึ่งนั่นแหละเป็นสิ่งที่ผมตามหามานาน (หลังจากที่พยายามทำเองมาหลายครั้ง แต่ก็เละทุกครั้ง T_T ) </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU4kSXDAaMUBpbACg_h9zWrFIe1zEeLo0aoDvJ49fq7XV-ol26msZrfirxx1EQNS1Bije_fpGL_5BU3OaFvmLSJ4i0pTw9P7WsWugTWXYXtbS6gCsXsP-ztrlGyae6roUEJvxIIhMjW5pd/s1600-h/image%25255B11%25255D.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Yii Framework" border="0" alt="Yii Framework" src="http://lh5.ggpht.com/-z0masXSv-zI/UMHnZ_vgD9I/AAAAAAAAGFg/DU2_d8qhW6E/image_thumb%25255B5%25255D.png?imgmax=800" width="244" height="59" /></a> </p> <p>    <strong><font color="#ffff00">Yii Framework</font></strong> เป็น PHP Framework ตัวหนึ่งในหลายๆ Framework ที่ช่วยให้นักพัฒนาโปรแกรม PHP สามารถทำงานได้อย่างสะดวก ภายใต้รูปแบบการพัฒนาโปรแกรมตามแบบฉบับของ Yii Framework ซึ่งออกแบบให้ Framework ทำงานแบบ MVC โดยแยกส่วนของการออกแบบ Design และ การ Coding ออกจากกัน นอกจากนี้ ยังทำให้ผู้ที่มาพัฒนาต่อนั้น ไม่เกิดความสับสนกับสไตล์ของแต่ละคน เพราะว่า ผู้ที่ใช้ Yii Framework จะต้องทำตามรูปแบบ Framework ตัวนี้ วางเอาไว้ ซึ่งทำให้เกิดทิศทางในการพัฒนาระบบใหญ่ๆ ไปในทิศทางเดียวกัน </p> <p><a href="http://lh4.ggpht.com/-5m0WLGfGrn8/UMHnbFDmPnI/AAAAAAAAGFo/TFzVs9bgfUg/s1600-h/image%25255B3%25255D.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Yii Framework MVC model" border="0" alt="Yii Framework MVC model" src="http://lh3.ggpht.com/-NjIqsW-QSOs/UMHncao8PRI/AAAAAAAAGFw/93bujcDGOPs/image_thumb%25255B1%25255D.png?imgmax=800" width="386" height="484" /></a> </p> <p>    <strong><font color="#ffff00">Yii Framework</font></strong> เป็น Framework ที่ได้รับการจัดอันดับให้เป็น Framework อันดับหนึ่ง หลายปีซ้อน นั่นแหละทำให้ผม สนใจที่จะศึกษา Framework ตัวนี้ และหาหนทางที่จะนำมันมาใช้กับงานปัจจุบันของผมให้จงได้ เพราะผมทนไม่ได้กับการเขียนโค๊ดแบบเดิมๆ ของผมอีกต่อไปแล้ว :P </p> <p><a href="http://lh6.ggpht.com/-RI-5snBMofQ/UMHndvDiljI/AAAAAAAAGF4/IUj3AaH8CEA/s1600-h/image%25255B8%25255D.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Yii Framework Performance" border="0" alt="Yii Framework Performance" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyoB6XJlVGTTSjqDJvzRWRjwx-iMZ9kFWzX-R4iopMIB5X0m9mYDIlNSt1UCmoLhJ_AbtTu-H_UV3BrEg4-RjCgw71lmT7xs5G7KisDNd3HKkd5JoJl3CQ80Eo_L1g3hfgGdsYfHRLKcEa/?imgmax=800" width="567" height="365" /></a> </p> <p>มาเริ่มกันเลยดีกว่า </p> <p>- ก็เริ่มจากดาวน์โหลดโค๊ด จาก <a href="http://www.yiiframework.com/download/" rel="nofollow" target="_blank">http://www.yiiframework.com/download/</a> เลือกเวอร์ชั่นที่ stable แล้ว <br />- แตกไฟล์ออก ใน webroot folder ของเรา (ซึ่งของผมเก็บไว้ที่ C:\AppServ\www ) จะเปลี่ยนชื่อโฟล์เดอร์หรือเปล่า ก็ตามแต่ใจ <br />- ทดลองเรียก http://localhost/yiiRoot/requirements/ เพื่อเช็คความพร้อมของระบบของเรา ซึ่งน่าจะไม่มี Failed สีแดงเกิดขึ้น <br />- สร้างเว็บโปรเจคของเราด้วย command line ครับ ผมเรียกคำสั่ง C:\AppServ\www>php yiiRoot\framework\yiic webapp myweb <br />- ผมได้โปรเจค myweb เก็บไว้ที่ webroot <br />- ทดสอบเรียกโปรเจคของเรา http://localhost/myweb/</p> <p>สำเร็จแหละ ต่อไปก็เริ่มลุยกับโปรเจคได้เลย อ่าน manual , tutorial , แล้วก็ศึกษาเรื่อง OOP และ Array ของ PHP ให้ชำชอง </p> <div style="padding-bottom: 0px; padding-left: 0px; width: 425px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:c1d4a38c-d63f-48a3-92ec-faef48ddb316" class="wlWriterSmartContent"> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px" id="35d2f211-0397-4873-9b55-c8f978f6abf0"> <div><a href="http://www.youtube.com/watch?v=NBK9a4A-7nw" target="_new"><img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" alt="" src="http://lh4.ggpht.com/-W1oAuuPHYs8/UMHnf_sfx4I/AAAAAAAAGGQ/4mrZkMsBeYc/video99b99236c713%25255B8%25255D.jpg?imgmax=800" onload="var downlevelDiv = document.getElementById('35d2f211-0397-4873-9b55-c8f978f6abf0'); downlevelDiv.innerHTML = "<div><object width=\"425\" height=\"355\"><param name=\"movie\" value=\"http://www.youtube.com/v/NBK9a4A-7nw&hl=en\"><\/param><embed src=\"http://www.youtube.com/v/NBK9a4A-7nw&hl=en\" type=\"application/x-shockwave-flash\" width=\"425\" height=\"355\"><\/embed><\/object><\/div>";" galleryimg="no" /></a></div> </div> </div> <p align="right">แล้วพบกันใหม่ครับ</p> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com0tag:blogger.com,1999:blog-2824550586309826160.post-64096812393049593032012-09-26T14:03:00.001+07:002012-09-26T14:11:07.079+07:00JustGage : JavaScript plugin for animating gauges<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"><iframe src="http://www.facebook.com/widgets/like.php?href=http://faker-programmer.blogspot.com/2012/09/justgage-javascript-plugin-for.html" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"></iframe></div><p><a href="http://lh6.ggpht.com/-6Gblc7GgsPI/UGKoxiehQHI/AAAAAAAAE_0/HkcMhwNPwWU/s1600-h/image%25255B5%25255D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="justGate gauge dashboard" border="0" alt="justGate gauge dashboard" align="left" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMsqEvbxuFh_hqGtpcLUgRZJQLlPBPrpCAwQcfVy8336RVUFn7G83WJHpcazWr6go4AfhXfy64kLEngqskU7At5M0dxAvOO4isVMMMy3eK1hVlW_HieeggnxQQYSImNjJIuyBJiFl_W5s7/?imgmax=800" width="339" height="306" /></a> </p> <p>   JustGage เป็น จาวาสคริปไลบรารี เล็กๆ ที่ใช้ในการสร้างภาพ เกจวัด แบบแอนนิเมชั่น สามารถแสดงค่าแบบมีการเคลื่อนไหวได้ โดยพื้นฐานของจาวาสคริปต์ตัวนี้ เค้าพัฒนาต่อยอดจาก Raphaël library ซึ่งมีความสามารถในการสร้างภาพเวกเตอร์บนหน้าเว็บ ด้วยจาวาสคริปต์ </p> <p>   JustGage จะสร้างภาพแบบ SVG โดยภาพแบบ SVG นั้น สามารถแสดงผลได้ทุกบราวเซอร์ ไม่ว่าจะเป็น IE6+, Chrome , FireFox , Safari, Opera, Android และอื่นๆ อีกมากมาย </p> <p> </p> <p>วิธีการนำไปใช้งาน <br />- ทำการดึงไฟล์ไลบรารี JustGage กับ Raphaël เข้ามาในเว็บเพจโค๊ด <br />- ทำการสร้าง div tag ที่มี id <br />- เรียก 'justGate({id,value})' </p> <p><a href="http://lh3.ggpht.com/-ueMqFApj1sc/UGKqgS6j10I/AAAAAAAAFAM/mLXDBK5hCOY/s1600-h/image%25255B10%25255D.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="justGate set up" border="0" alt="justGate set up" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbuS15QMht_t20rMDxNT_OnC0j42d-LiYebmWUiXVTeoKlIG6VK_Pyu3IoczaLJxWTY2k6QWlYrDJ2SsffKM5ZrbOH7E_CFQsX3F1G_bSOhFnlwgQx70U9rWk5n4zci1R6Yv6ukxW8YwWN/?imgmax=800" width="341" height="359" /></a> </p> <p>ค่อนข้างจะง่ายสำหรับการติดตั้ง แต่ ถ้าเรื่องของการปรับแต่ง ก็ขอให้ดูที่ตัว Demo ของเค้านะครับ </p> <p>ดาวน์โหลด JustGage Library  <a href="http://www.justgage.com/" rel="nofollow" target="_blank">คลิก</a></p> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com0tag:blogger.com,1999:blog-2824550586309826160.post-39475277534761574102012-09-20T14:40:00.001+07:002012-09-20T14:41:06.651+07:00Microsoft technical forums for thai ของจริงรึเนี้ย!!!<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"><iframe src="http://www.facebook.com/widgets/like.php?href=http://faker-programmer.blogspot.com/2012/09/microsoft-technical-forums-for-thai.html" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"></iframe></div><p align="left">     พอดี ผมได้รับเมล์จากไมโครซอร์ฟ ซึ่งคงเป็นเมล์ ที่ส่งให้กับหลายๆ คน  เป็นเมล์สำรวจความคิดเห็นหน่ะครับ แต่ อย่างหนึ่งที่เพิ่มเติมมาในเมล์ และเห็นว่า เป็นเมล์ที่มีประโยชน์กับเพื่อนๆ และคนไทยหลายคน ก็เลยอยากจะเอามาแชร์ ก็คือ ทางไมโครซอร์ฟได้จัดทำฟอร์รั่ม หรือเว็บบอร์ดถาม-ตอบ ปัญหาเทคนิค เกี่ยวกับผลิตภัณฑ์ของไมโครซอร์ฟ อาทิ เช่น ถามตอบ โปรแกรม Visual Studio หรือ เว็บเรียนรู้เทคโนโลยีของไมโครซอร์ฟ โดยทั้งหมดนี้ ตอบคำถาม หรืออธิบายด้วยผู้ชำนาญด้านไอที ของทางไมโครซอร์ฟ ซึ่งเป็นคนไทย ด้วยกัน นับว่าเป็นการเปิดตลาดของโปรแกรมเมอร์หน้าใหม่ของเมืองไทย เลยก็ว่าได้ </p> <p align="left"><a href="http://click.email.microsoftemail.com/?qs=678636859499196f70772a4a353938e93302373c7598dce2915968d733ae9f897b7c47c3b491d055"><img style="display: inline; margin-left: 0px; margin-right: 0px" border="0" align="left" src="http://www.microsoft.com/thailand/edm/FY12Q1_CPE-Pre-note/ITPro/images/news_technet.png" width="146" height="56" /></a><strong>คุณต้องการ การสนับสนุนและช่วยแก้ปัญหาด้านเทคนิค เป็นภาษาไทย:</strong> ถามคำถามด้านเทคนิคเป็นภาษาไทย โดยไม่เสียค่าใช้จ่าย เพียงตั้งกระทู้ถามในฟอรัม <a href="http://click.email.microsoftemail.com/?qs=678636859499196f70772a4a353938e93302373c7598dce2915968d733ae9f897b7c47c3b491d055" rel="nofollow" target="_blank">TechNet Thai Forums</a><u></u> สำหรับ IT Professional และ <a href="http://click.email.microsoftemail.com/?qs=678636859499196fc9449f6eb620f43bd18556cfa60ec80b10366cda5c1dd47c8ee902c9ec236467" rel="nofollow" target="_blank">MSDN Thai Forums</a><u></u> สำหรับ Developer เรามีทีมวิศวกรผู้เชี่ยวชาญที่จะช่วยหาคำตอบที่ถูกต้องให้ในเวลาอันรวดเร็ว อีกทั้งบทความเทคนิคที่น่าสนใจและคำถามที่พบบ่อยในฟอรัมอีกด้วย นอกจากนี้ คุณยังสามารถติดตามข่าว <br />อัพเดตด้านเทคนิคผ่าน <img src="http://www.microsoft.com/thailand/edm/FY12Q1_CPE-Pre-note/ITPro/images/icon.jpg" width="19" height="19" /> <a href="http://click.email.microsoftemail.com/?qs=678636859499196f5ce2f1101f7f6ab39fe78e01a60cf38f04cab40d55d0994234db351b23b1652d" rel="nofollow" target="_blank">ติดตามที่นี่ได้อีกช่องทางหนึ่ง</a></p> <p align="left"><a href="http://click.email.microsoftemail.com/?qs=678636859499196fffb2ea0ebdb8c66ae6ae2e22d41e2d4002240e1d7f558872d85e928fda7e64d3"><img style="display: inline; margin-left: 0px; margin-right: 0px" border="0" align="left" src="http://www.microsoft.com/thailand/edm/FY12Q1_CPE-Pre-note/ITPro/images/news_volume.jpg" width="146" height="95" /></a> <br /><strong>คุณต้องการข้อมูลเรื่องลิขสิทธิ์</strong> <br />เรียนรู้เรื่องลิขสิทธิ์ของไมโครซอฟท์ แบบสนุกๆ <a href="http://click.email.microsoftemail.com/?qs=678636859499196fb6524af15344158d04aab34c3f658450476f3f388c86a8b9ac851463761c78da" rel="nofollow" target="_blank">ผ่านการ์ตูนซีรี่ส์</a><u></u> ที่จะช่วยอธิบาย <br />ให้เข้าใจได้ง่ายยิ่งขึ้น และท่านสามารถศึกษาข้อมูลเรื่องลิขสิทธิ์เพิ่มเติมได้ที่เว็บไซต์ <br /><a href="http://click.email.microsoftemail.com/?qs=678636859499196fb6524af15344158d04aab34c3f658450476f3f388c86a8b9ac851463761c78da" rel="nofollow" target="_blank">ข้อมูลลิขสิทธิ์ไมโครซอฟท์ประเทศไทย</a><u></u></p> <p align="left"> </p> <p align="left"><a href="http://click.email.microsoftemail.com/?qs=678636859499196fcc9b46e1a4947ddafe3847ff36c81489818264ee9953f4c4872d4bcc5b8fae3e"><img style="display: inline; margin-left: 0px; margin-right: 0px" border="0" align="left" src="http://www.microsoft.com/thailand/edm/FY12Q1_CPE-Pre-note/ITPro/images/news_mva.jpg" width="145" height="89" /></a> <br /><strong>ไมโครซอฟท์ได้เตรียมข้อมูลและแหล่งเรียนรู้สำหรับเทคโนโลยีใหม่ ๆ </strong>ในหลากหลายรูปแบบได้ฟรีไม่ว่าจะเป็น e-book ( <a href="http://click.email.microsoftemail.com/?qs=678636859499196f590a159853ed30ee2d61fd351e636661a20c384c8f6e7834464151acdcdb0680" rel="nofollow" target="_blank">Free ebook: Introducing Windows Server 2012 (RTM Edition)</a>, <a href="http://click.email.microsoftemail.com/?qs=678636859499196f27041a945c1963a479c1ce8824669e1a9e9725d75f462fcc49337be3be50bfc9" rel="nofollow" target="_blank">TechNet Video</a> หรือ <a href="http://click.email.microsoftemail.com/?qs=678636859499196f5a5d7a8d417ce21038d46843f63a48acfd448371e34e943a31962deb2d6ea2ac" rel="nofollow" target="_blank">Microsoft Virtual Academy(MVA)</a> ซึ่งเป็นระบบ e-learning ที่คุณลงทะเบียนเรียนได้ฟรีเช่นกัน โดยคุณสามารถเลือกสาขาที่คุณสนใจอย่างเช่น <a href="http://click.email.microsoftemail.com/?qs=678636859499196fb317cd9cb4ee07871a00bfd484cc0d85256c27a5da349705c689fe1e45bca523" rel="nofollow" target="_blank">Windows Server 2012 Technical Overview</a> หรือ <a href="http://click.email.microsoftemail.com/?qs=678636859499196fb317cd9cb4ee07871a00bfd484cc0d85256c27a5da349705c689fe1e45bca523" rel="nofollow" target="_blank">Windows Server 2012: Server Virtualization</a> ยังมีอีกหลายหัวข้อที่น่าสนใจรอคุณ นอกจากนั้นเรายังได้เตรียมงานสัมนาที่จัดโดยบริษัทไมโครซอฟท์ ประเทศไทยอย่าง Tech Days หรืองานสัมนาที่ได้จัดร่วมกันกับชุมชนชาวไอทีต่าง ๆ ตลอดทั้งปีซึ่งท่านสามารถติดตามได้จาก<a href="http://click.email.microsoftemail.com/?qs=678636859499196f4823e395d46c8c9fcabafd3495b24fb395e5a16858e433664e51285303156651" rel="nofollow" target="_blank">http://blogs.technet.com/b/thailand/</a></p> <p align="left"><img style="display: inline; margin-left: 0px; margin-right: 0px" border="0" align="left" src="http://www.microsoft.com/thailand/edm/FY12Q1_CPE-Pre-note/ITPro/images/news_l.jpg" width="146" height="98" /> <br /><strong>คุณต้องการข้อมูลใหม่ๆ ที่จะช่วยคุณเลือกโซลูชั่นสำหรับงานไอทีของคุณ: </strong>เว็บไชต์และจดหมายข่าวรายเดือน <a href="http://click.email.microsoftemail.com/?qs=678636859499196faac25f731fd80c3c6cb341e74013293488067d1153e2f9a0833eeb1b035d09ac" rel="nofollow" target="_blank">TechNet ภาษาไทย</a><u></u> และ <a href="http://click.email.microsoftemail.com/?qs=678636859499196fa3488652f7b844cba7dd98ceeb555c66444e693914e754edd31cd6e9296fb11c" rel="nofollow" target="_blank">MSDN ภาษาไทย</a><u> </u> <br />เป็นแหล่งอัพเดตเทคโนโลยีใหม่ซึ่งได้รับคะแนนความพึงพอใจสูงจากการสำรวจ <br />ครั้งก่อน คุณจะพบกับบทความที่คุณสามารถนำไปใช้อ้างอิงการแนะนำเครื่องมือใหม่ๆ <br />เช่น Hyper-V ที่ช่วยให้คุณทำเวอร์ชวลเซิร์ฟเวอร์ได้ทันที และข้อมูลที่เป็นประโยชน์อื่นๆ อีกมากมาย</p> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com0tag:blogger.com,1999:blog-2824550586309826160.post-47616009244433500622012-08-16T13:02:00.001+07:002012-08-16T13:02:56.179+07:00VIM tutorial online<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"><iframe src="http://www.facebook.com/widgets/like.php?href=http://faker-programmer.blogspot.com/2012/08/vim-tutorial-online.html" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"></iframe></div><p>ใครที่เคยใช้ Linux ต้องเคยใช้ VIM หรือโปรแกรม text editor ของ Linux แน่ๆ อย่างน้อยก็ครั้งหนึ่งแหละ ไม่ใช่เรื่องง่ายเลย ที่เราจะใช้ VIM ในครั้งแรกอย่างเข้าใจ เพราะ ตัวโปรแกรมเองไม่ได้ออกแบบมาเพื่อผู้ใช้ที่คุ้นเคยกับวินโควน์เลย แม้แต่น้อย  ทำให้มือใหม่ หลายๆคน ต้องเลิกรา มองหาโปรแกรม text ediotr ตัวอื่น แทน บางครั้งก็ต้องหันไปใช้ text editor ทีอยู่บน graphic mode แทน (แต่ถ้าเรา telnet เข้าไปที่เครื่อง ก็หนีไม่พ้นที่จะต้องทำผ่าน VIM ) แต่ คนที่เซียน linux เค้าไม่ทำอย่างนั้น VIM จึงเป็นเหมือนโปรแกรมที่บอกได้ว่า เราคุ้นเคยกับ linux มากน้อยแค่ไหน </p> <p>วันนี้ ผมมี tutorial online เรื่องการใช้ VIM มาฝากเพื่อนๆ ครับ แนะนำว่า มือใหม่ และมือสมัครเล่น ไปลองฝึกให้คุ้นเคยกันซะ มีประโยชน์แน่ๆ Linux  หากินได้ตลอดครับ โดยเฉพาะทุกวันนี้ มีบอร์ด Embedded ที่มี linux ฝังมาด้วยแล้ว จำเป็นเลยครับ VIM นี่แหละ </p> <p><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="VIM online tutorial " border="0" alt="VIM online tutorial " src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4_yEM6uqqqcfHXJr1h_Gq41T7eGsj35CAnj2X7mb8hUQfKrERd_GRcqkZhngAj-rkrEaA-kHQPJMDIVqIqab0DNOTlEJgEW8IROma3ZjKWBVyJgSnZcomd0hDdiangXQknaPgpC9ns0Wh/?imgmax=800" width="471" height="367" /> </p> <p>มาลองเล่นกันครับ  <a href="http://www.openvim.com/tutorial.html" rel="license" target="_blank">คลิก</a></p> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com0tag:blogger.com,1999:blog-2824550586309826160.post-57630307995712462352011-11-10T21:24:00.001+07:002011-11-10T21:34:32.616+07:00Jquery UI framework installation ไม่ได้ยากเลย<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"><iframe src="http://www.facebook.com/widgets/like.php?href=http://faker-programmer.blogspot.com/2011/11/jquery-ui-framework-installation.html" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"></iframe></div><p><a href="http://lh6.ggpht.com/-fyS9zxFb1WA/TrveaslwZkI/AAAAAAAADYQ/4t3Y9FjRREw/s1600-h/image%25255B31%25255D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="image" border="0" alt="image" align="left" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0Rkn2rJN3JQyIkpYJ9AzjChmjhY05djzllnOQ5faQWMBsAcAq-Tf69K_FMxS5QZofcZ47mA_d3Z0mMlu-cnDg1j2XbcJ_H54SYI9oh9OdmDJtd_Wp4fr36hgr0MsLAZrhsSAc0ZNqdodb/?imgmax=800" width="244" height="211" /></a>      หลังจากที่หายไปพักใหญ่ๆ กับงานทางด้านเว็บแอพพลิเคชั่น ผมก็รู้สึกเหมือนจะถูกเทตโนโลยีทิ้ง ไปซะไกล ต้องมานั่งไล่ตามกันพักใหญ่ ที่หายไป ก็ไม่ได้ห่างหายไปไหนหรอกครับ กำลังคร่ำเคร่งอยู่กับ ไมโครคอนโทรลเลอร์ อยู่ พอกลับมาได้ทำโปรเจค เกี่ยวกับเว็บอีกครั้ง ผมต้องตะลึง กับหลายๆ framework ที่มีอยู่มากมาย ต่างพากัน แสดงความสามารถตัวเอง กันอย่างเต็มที่ </p> <p>     วันนี้ ผมมองหา Framework ดีๆ ที่จะมาช่วยให้งานของผม มีลูกเล่นมากขึ้น ตอนแรก ก็กะว่าจะลองใช้ Kendo framework แต่ดูแล้ว เหมือนจะไม่ฟรี ก็เลยมองหาตัวอื่น จนมาเจอกับ Jquery UI นี่แหละ </p> <p>    Jquery UI หรือ Jquery User Interface เป็นตัวที่ใช้รูปแบบไวยกรณ์ของ Jquery นั่นแหละ แต่ เค้าได้สร้างลูกเล่นที่เป็น library เอาไว้ให้เราดึงเอามาใช้ เพื่อใช้ในการตอบโต้ ลาก วาง ย่อ ขยาย ซ่อน หรือแสดง สิ่งต่างๆ บนหน้าเว็บได้ตามต้องการ หรือเพื่อลดภาระให้กับ server ก่อนที่เราจะทำการส่งค่า การร้องขอ ให้ server กระทำอะไรบางอย่างให้เรา ซึ่งถ้าใครเข้าใจ Jquery ดีอยู่แล้ว เรื่องนี้ ก็ไม่ใช่เรื่องง่ายเลยครับ แต่ผม เพิ่งศึกษามาได้ สอง สาม วัน ยังต้องอีกนาน ที่จะเข้าใจ มันได้ทั้งหมด </p> <p>วันนี้ เรามาติดตั้ง Jquery กันก่อนครับ เริ่มจาก </p> <ul> <li>ทำการเลือก Theme หรือ สีของ component เพื่อให้เข้ากับหน้าเว็บของเราก่อน หรือถ้าเพื่อนๆ ชอบสีไหน ก็เลือกโหลดมาได้เลยครับ <a href="http://jqueryui.com/themeroller/#themeGallery" rel="nofollow" target="_blank">คลิก</a> ก็ edit ให้ได้สีตามใจ หรือเลือกโหลดจาก Theme ที่เค้าสร้างไว้ให้ก็ได้ครับ </li> </ul> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl2w344fA0JCqhXv8giZ0C4n3Dqhr_BHFShB1h1S36DdFOteN6h8iJLighR03C0oM1p20R1nDAi0H1SV6WhFY4k0Gp9D4pzka3ITLwkShRfZEvpBhRVPk970oK4DkN-lX5hSnrT0QGlgrK/s1600-h/image%25255B2%25255D.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Jquery Theme" border="0" alt="Jquery Theme" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbH89b-VrylKyqplSgnbsLrk9dZdyNj8peczAd4su8OHEIs46hvRgdebD5DAfX4jbfINtnf3YjkiKKhP3Wp7-gAQac6IzIbfFai09ongWCpoQ9MYiHX4fHqpNxowmJ4jUbx7bPr-UrKln7/?imgmax=800" width="222" height="244" /></a> </p> <ul> <li>หลังจาก <a href="http://jqueryui.com/download" rel="nofollow" target="_blank">download</a> มาแล้ว ให้แตกไฟล์ออกเลยครับ แล้วเปลี่ยนย่อชื่อ folder ให้มันสั้นๆ ก็พอ เอาไปไว้ที่ C:\AppServ\www ในที่นี้ ผมเก็บไฟล์ที่ได้จากการแตก zip ไฟล์ที่ดาวน์โหลดมาไว้ที่ โฟล์เดอร์ jquery ครับ </li> </ul> <p><a href="http://lh3.ggpht.com/-bSUXOELNiv0/TrveerM5XUI/AAAAAAAADYw/mZAfJe8t3Y0/s1600-h/Jquery%252520UI%252520framwork%25255B3%25255D.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Jquery UI framwork" border="0" alt="Jquery UI framwork" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeqioVoRTdEIWhjXEgmKsPWs9aJzYtBLbSdPf-6SzyVPr69BsE_byzrTT7frRJPiA0Rvs-9sUVOG5E1ebAbYkanG_aszh6zrzyY_wr0WWTaklIZLU5C2xlT18KjTOHA4MjpRPSLr3Gbeb-/?imgmax=800" width="431" height="152" /></a> </p> <ul> <li>ในที่นี้ ผมได้สร้าง folder ชื่อ test แล้วข้างใน มีไฟล์ที่ชื่อ index.php เพื่อทำการทดสอบดึง Jquery UI framework เข้ามาทำงานด้วย ขั้นตอนต่อไป เราจะทำการเรียกไฟล์ไลบรารี เข้ามานะครับ </li> <li>เพื่อป้องกันความผิดพลาด เราจะใช้วิธีการก๊อปปี้ เอาเลย โดยให้เข้าไปที่ folder jquery ของเรา แล้วเปิดไฟล์ index.html แล้วทำการก๊อปปี้ บรรทัดประมาณที่ 6-8 ตามรูปด้านล่างเลยครับ </li> </ul>    <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrdb77uP5pDcQn71xB8k5SvkQqziwUJUJd1shAS6E8LjT1q8BinwvLkHdtuW-grYu3Onn0gwwV1tg-rH-mSPbwA_8ovN8iEidJnpmaxr3F6JQjl2b2PFPTzkk5JzLTagU_nzUiAMG3uoOG/s1600-h/image%25255B7%25255D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="header Jquery reference" border="0" alt="header Jquery reference" src="http://lh6.ggpht.com/-HiWDuP0vDmY/TrveiMDW9FI/AAAAAAAADZI/MXcMGajvjyE/image_thumb%25255B3%25255D.png?imgmax=800" width="543" height="91" /></a> </p> <ul> <li>นำไปใส่ที่ ส่วน <header> ของไฟล์ index.php ที่อยู่ในโพล์เดอร์ test ที่เราได้สร้างโค๊ด html ที่จำเป็นไว้ แล้วทำการแก้ไขโค๊ดที่เราก๊อปปี้ มานิดหน่อย เนื่องจาก folder jquery ไม่ได้อยู่ภายใน folder test ของเรา </li> </ul> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRDbbnr8rSX8ivgIrERIULq9EqrTbbK41gxUv6JXFW757OYTsDAy0iSJmq4WMW8MU3DWl1yn4NQbHmF1CqSZptqKwWcf4iue5C7jmqFo8mEmbWMMrO5EF7e0pzKeIQRGVcAsqWXh01Esel/s1600-h/image%25255B23%25255D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="header Jquery reference" border="0" alt="header Jquery reference" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ8xjWv3hcEsO1rtrIn-0loSM_uKFM4gb6N8aJ1o9EGB0zq_yFR0o9cDYlQ2x_D5WPq1SlGEvfAcNkZzxIM9Ze5r5CVV3HmSE7X76XJLapl8E3Zncq01yHOCBNDh6txz2v5S51OJGCW3j6/?imgmax=800" width="566" height="93" /></a> </p> <p><font color="#ff8000">*** เพื่อนๆ เห็นความแตกต่างไหมครับ ลองสังเกตดีๆ ผมเพิ่ม ../jquery/ เข้าไป เห็นไหมครับ</font> </p> <ul> <li>ที่นี้ เราจะมาลองสร้าง datepicker กันครับ นั่นก็คือปฏิทิน นั่นเองครับ โดยเราจะให้ datepicker ปรากฏทุกครั้งที่มีการคลิกในช่อง input text อันดับแรก เราจะต้องทำการ initial ด้วยการเพิ่มโค๊ด ที่เป็น java script เข้าไปก่อน โดยวางไว้ในส่วนของ header </li> </ul> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNAmCnp17VVviWxEz39VUzSXUvWIfD6uiqSsEJs5J5qfDO_cmUMpXERSRZc775ww6XUJ8z6Y_x_ZaRr0S_64cual_46gvEm59i6e7Jz7684wjlx_Cfwphc3MsVIEI-9NLc_F_2jetu5PZN/s1600-h/datePIcker_Jquery_UI%25255B4%25255D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="datePIcker_Jquery_UI" border="0" alt="datePIcker_Jquery_UI" src="http://lh6.ggpht.com/-XqKpr3S4us0/TrvemJpKaAI/AAAAAAAADZo/MOMSIYTxuZU/datePIcker_Jquery_UI_thumb%25255B2%25255D.png?imgmax=800" width="562" height="402" /></a> </p> <ul> <li>ทำการแก้ไขที่ส่วน selector ให้ตรงกับ id ของ DOM ที่เราอ้างอิงไปถึง (ในตอนต่อๆ ไป เราค่อยมาดูเรื่อง selector และการตั้งค่าอื่นๆ กันครับ) </li> <li>ทดลองรันไฟล์ <a href="http://localhost/test/index.php">http://localhost/test/index.php</a> แล้วคลิกที่ช่อง input text จะปรากฏปฏิทิน ขึ้นมาให้เรา เลือกวันที่ </li> </ul> <p><a href="http://lh3.ggpht.com/-7fP_GqkHanA/TrvenR_KReI/AAAAAAAADZw/JgdHn9HKYPQ/s1600-h/image%25255B27%25255D.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="ทดสอบ datePicker" border="0" alt="ทดสอบ datePicker" src="http://lh4.ggpht.com/-9llYb6WiplM/TrveobczlII/AAAAAAAADZ4/Nm85rHSwu5Y/image_thumb%25255B19%25255D.png?imgmax=800" width="439" height="330" /></a> เห็นไหมหล่ะครับ ไม่ได้ยากเลยใช่ไหมครับ แบบนี้ รับรอง ทำให้งานของเรา เสร็จไว และมีลูกเล่น ไม่น่าเบื่อ แน่นอนครับ เดี๋ยวเราจะค่อยๆ มาเจาะลึกลงไป เดี๋ยวขอตัวไปอ่านเพิ่มเติมก่อนครับ ถ้าคนไหน ยังทำไม่ได้ ลองไล่ๆ กลับไปลองดูอีกทีครับ อยากศึกษาเพิ่มเติม ก็ลองดู <a href="http://jqueryui.com/demos/" rel="nofollow" target="_blank">demo</a> ครับ ยังมีอีกหลายตัวที่น่าสนใจ </p> <p>    ในระหว่างที่กำลังเขียนบทความนี้ ข้างนอก เค้ากำลังจุดพลุ จุดประทัด เนื่องจากเป็นวันลอยกระทง ในสถานการณ์ ที่บ้างส่วนของประเทศไทย โดยเฉพาะกรุงเทพฯ  กำลังโดนมหาอุทกภัย ครั้งร้ายแรงที่สุดกำลังถาโถมเข้าใส่คนกรุงฯ แต่ เราคนไทย ก็ยังร่าเริงกันได้บ้าง นั่นเป็นเพราะ เป็นนิสัยของคนไทย ที่เป็นคนชอบความสนุก ก็จริงนะ ไม่รู้จะทุกข์ไปทำไม แต่ในคืนนี้ ผมก็ยังไม่คิดที่จะออกไปลอยกระทง เหมือนๆ 10 ปีก่อน ผมคิดว่า ถ้าเราจะแสดงความเคารพ พระแม่คงคาแล้ว เราก็ไม่ควรจะเอาอะไร ส่งลงไปที่แม่น้ำ ลำคลอง อีก เราควรจะกระทำในทางตรงกันข้ามมากกว่า ด้วยการรณรงค์ ให้วันนี้ เป็นวันที่ทุกคน ควรที่จะเก็บขยะ เศษปฏิกูล หรือขุดลอก คูคลอง ดีกว่า แต่ก็อย่างว่าหล่ะครับ จะเปลี่ยนแปลงสิ่งที่คน ยึดถือ กันมา มันเป็นเรื่องที่ไม่ง่ายเลยทีเดียว </p> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com2tag:blogger.com,1999:blog-2824550586309826160.post-60501194919147245392011-11-03T23:00:00.001+07:002011-11-03T23:01:34.167+07:00Android VDO tutorial from TESA<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"><iframe src="http://www.facebook.com/widgets/like.php?href=http://faker-programmer.blogspot.com/2011/11/android-vdo-tutorial-from-tesa.html" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"></iframe></div><p><a href="http://lh4.ggpht.com/-5Gt_qrgrT3k/TrK5ktlD5PI/AAAAAAAADTw/Otp4-gILwYg/s1600-h/android-video-tutorial-for-beginner-1%25255B5%25255D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="android video tutorial" border="0" alt="android video tutorial" align="left" src="http://lh6.ggpht.com/-__n6Jza1xcc/TrK6hVTqRaI/AAAAAAAADT4/rHKOWmyA4_Y/android-video-tutorial-for-beginner-1_thumb%25255B3%25255D.jpg?imgmax=800" width="239" height="159" /></a>       ห่างหายไปนานพอสมควรครับ พอดีติดภาระกิจหลายอย่าง ทั้งมินิโปรเจค ทั้งงานประจำ แล้วก็งานที่มหาลัย ซึ่งในขณะนี้ ก็ยังไม่ค่อยว่างเท่าไหร่ ช่วงนี้ ไม่มีข่าวไหนจะดังไปกว่า มวลน้ำก้อนมหึมา กำลังถาโถม เข้าใส่กรุงเทพฯ ซึ่งหลีกเลี่ยงไม่ได้เลย แต่ เราสามารถที่จะบรรเทา เบาบางลงได้ ถ้าเมื่อ <a href="http://www.youtube.com/watch?v=wnBFkXUeblo&feature=player_embedded" rel="nofollow" target="_blank">ปี2538</a> เราทำตามคำแนะนำของพระบาทสมเด็จพระเจ้าอยู่หัวของเรา ที่พระองค์ทรงพระราชทานไว้เมื่อ <a href="http://www.youtube.com/watch?v=wnBFkXUeblo&feature=player_embedded" rel="nofollow" target="_blank">ปี2538</a> ในครั้งนั้น น้ำก็ท่วมกรุงเทพฯ เหมือนกัน แต่ ด้วยพระปรีชาสามารถ ทำให้ในครั้งนั้น คนกรุงเทพ ไม่ได้รับผลกระทบรุนแรงเท่าครั้งนี้ </p> <p>วันนี้ ผมได้นำเอา VDO สอนการเขียนโปรแกรมบนระบบปฎิบัติการ Android ซึ่งเป็น VDO ที่ทำ Work shop ของ TESA  ซึ่งมีอยู่ด้วยกันหลายตอน มาฝากเพื่อนๆ ครับ หวังว่า เพื่อนๆ จะได้รับความรู้ในการเขียนโปรแกรม บนระบบปฎิบัติการ Android </p> <p> </p> <div style="padding-bottom: 0px; padding-left: 0px; width: 425px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:1f9c5c47-cae2-432e-b106-eac602a2cf25" class="wlWriterSmartContent"><div id="dcddd8a7-b38a-40cc-b516-9b17aebb83cb" style="margin: 0px; padding: 0px; display: inline;"><div><a href="http://www.youtube.com/watch?v=QFPzRNWff-E" target="_new"><img src="http://lh3.ggpht.com/-X2UzXEaxXQ0/TrK6iqW6eEI/AAAAAAAADVA/lPTxXeCCX9o/video29c2ff7fdc6e%25255B6%25255D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('dcddd8a7-b38a-40cc-b516-9b17aebb83cb'); downlevelDiv.innerHTML = "<div><object width=\"425\" height=\"355\"><param name=\"movie\" value=\"http://www.youtube.com/v/QFPzRNWff-E&hl=en\"><\/param><embed src=\"http://www.youtube.com/v/QFPzRNWff-E&hl=en\" type=\"application/x-shockwave-flash\" width=\"425\" height=\"355\"><\/embed><\/object><\/div>";" alt=""></a></div></div><div style="clear:both;font-size:.8em;">Android ตอนที่ 1</div></div> <p></p> <p></p> <p></p> <p> </p> <div style="padding-bottom: 0px; padding-left: 0px; width: 425px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:646523bf-c800-4a2d-8ed5-22e3a4f22ec7" class="wlWriterSmartContent"><div id="be8248a6-f38f-483d-aa29-6125489a866a" style="margin: 0px; padding: 0px; display: inline;"><div><a href="http://www.youtube.com/watch?v=xrQeT3wc0TE&feature=related" target="_new"><img src="http://lh4.ggpht.com/-Q-E_NaOsagY/TrK6joaHL-I/AAAAAAAADVE/aTa1S-B6H3I/videobe4447fd1241%25255B6%25255D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('be8248a6-f38f-483d-aa29-6125489a866a'); downlevelDiv.innerHTML = "<div><object width=\"425\" height=\"355\"><param name=\"movie\" value=\"http://www.youtube.com/v/xrQeT3wc0TE&hl=en\"><\/param><embed src=\"http://www.youtube.com/v/xrQeT3wc0TE&hl=en\" type=\"application/x-shockwave-flash\" width=\"425\" height=\"355\"><\/embed><\/object><\/div>";" alt=""></a></div></div><div style="clear:both;font-size:.8em;">Android ตอนที่ 2</div></div> <p></p> <p> </p> <div style="padding-bottom: 0px; padding-left: 0px; width: 425px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:7f7db361-3d75-4ab0-84e6-68c1cd38b3ae" class="wlWriterSmartContent"><div id="ed751949-7eed-4e76-9c56-1841beeef59d" style="margin: 0px; padding: 0px; display: inline;"><div><a href="http://www.youtube.com/watch?v=Q4Cxnl0y1oo&feature=related" target="_new"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZmCKCnCgLQ9MxeE4arJPF8JaoYk17hB-bmrUqDWSPKEg5E9khgkHxXZNa5Rr6idYVVvzb3e1eWx6HJcX9v7RzpZlC4FEW-fSEl03ORr4oSc6uPUzxOwOEe87dcg5xa2R8HTwEsdVsgpfB/?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('ed751949-7eed-4e76-9c56-1841beeef59d'); downlevelDiv.innerHTML = "<div><object width=\"425\" height=\"355\"><param name=\"movie\" value=\"http://www.youtube.com/v/Q4Cxnl0y1oo&hl=en\"><\/param><embed src=\"http://www.youtube.com/v/Q4Cxnl0y1oo&hl=en\" type=\"application/x-shockwave-flash\" width=\"425\" height=\"355\"><\/embed><\/object><\/div>";" alt=""></a></div></div><div style="clear:both;font-size:.8em;">Android ตอนที่ 3</div></div> <p></p> <p> </p> <div style="padding-bottom: 0px; padding-left: 0px; width: 425px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:2e8ec74a-d465-4b95-bf57-71a406135d15" class="wlWriterSmartContent"><div id="f10e028b-22e5-45e1-b29f-c229ae28360d" style="margin: 0px; padding: 0px; display: inline;"><div><a href="http://www.youtube.com/watch?v=ounl8JkwfLw&feature=related" target="_new"><img src="http://lh6.ggpht.com/-XWvb4i8WgXA/TrK6mNJzuYI/AAAAAAAADVM/ZTze99a-DhY/videoab6d3dbfec31%25255B6%25255D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('f10e028b-22e5-45e1-b29f-c229ae28360d'); downlevelDiv.innerHTML = "<div><object width=\"425\" height=\"355\"><param name=\"movie\" value=\"http://www.youtube.com/v/ounl8JkwfLw&hl=en\"><\/param><embed src=\"http://www.youtube.com/v/ounl8JkwfLw&hl=en\" type=\"application/x-shockwave-flash\" width=\"425\" height=\"355\"><\/embed><\/object><\/div>";" alt=""></a></div></div><div style="clear:both;font-size:.8em;">Android ตอนที่ 4</div></div> <p></p> <p> </p> <div style="padding-bottom: 0px; padding-left: 0px; width: 425px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:08f1f7e5-39c0-42e6-a005-067e531926cf" class="wlWriterSmartContent"><div id="e7dce5a1-a321-485d-99fe-aee7b47cde1e" style="margin: 0px; padding: 0px; display: inline;"><div><a href="http://www.youtube.com/watch?v=q-O_P0GZZVU&feature=related" target="_new"><img src="http://lh4.ggpht.com/-K-uEeL-AOFw/TrK6nRqwwAI/AAAAAAAADVQ/OaK5XypIfH0/video98ab30996eb8%25255B5%25255D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('e7dce5a1-a321-485d-99fe-aee7b47cde1e'); downlevelDiv.innerHTML = "<div><object width=\"425\" height=\"355\"><param name=\"movie\" value=\"http://www.youtube.com/v/q-O_P0GZZVU&hl=en\"><\/param><embed src=\"http://www.youtube.com/v/q-O_P0GZZVU&hl=en\" type=\"application/x-shockwave-flash\" width=\"425\" height=\"355\"><\/embed><\/object><\/div>";" alt=""></a></div></div><div style="clear:both;font-size:.8em;">Android ตอนที่ 5</div></div> <p></p> <p> </p> <div style="padding-bottom: 0px; padding-left: 0px; width: 425px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:cbe4c6a2-c614-49f3-b62e-bf0f975df80a" class="wlWriterSmartContent"><div id="1bfd1fe4-60cd-4627-8a19-2150f2999ac2" style="margin: 0px; padding: 0px; display: inline;"><div><a href="http://www.youtube.com/watch?v=_-TY4lPCZCs&feature=related" target="_new"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiKMEu7qwwA2ikgb4xBlOrldOXD46QVLFpoWPu-7-NM97KciJLg4xdBOvVP71jd3O6MFHRjo3frfuZOp5ZcFZYtNbC75j-iumTpSUZkUMI7jxhc2BPGaag6q7P2GATcakIjmKMb0d_zBqC/?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('1bfd1fe4-60cd-4627-8a19-2150f2999ac2'); downlevelDiv.innerHTML = "<div><object width=\"425\" height=\"355\"><param name=\"movie\" value=\"http://www.youtube.com/v/_-TY4lPCZCs&hl=en\"><\/param><embed src=\"http://www.youtube.com/v/_-TY4lPCZCs&hl=en\" type=\"application/x-shockwave-flash\" width=\"425\" height=\"355\"><\/embed><\/object><\/div>";" alt=""></a></div></div><div style="clear:both;font-size:.8em;">Android ตอนที่ 6</div></div> <p></p> <p> </p> <div style="padding-bottom: 0px; padding-left: 0px; width: 425px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:97f81812-0665-447c-ae47-54edc5940d1d" class="wlWriterSmartContent"><div id="0ba3b529-be5d-4dbf-93f3-373fb60a2cbc" style="margin: 0px; padding: 0px; display: inline;"><div><a href="http://www.youtube.com/watch?v=kBP_RpKXmVc&feature=related" target="_new"><img src="http://lh5.ggpht.com/-NCdQbA34eIw/TrK6piH4PVI/AAAAAAAADVY/28d9tcpOZ6Y/videof0bfc2427c66%25255B6%25255D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('0ba3b529-be5d-4dbf-93f3-373fb60a2cbc'); downlevelDiv.innerHTML = "<div><object width=\"425\" height=\"355\"><param name=\"movie\" value=\"http://www.youtube.com/v/kBP_RpKXmVc&hl=en\"><\/param><embed src=\"http://www.youtube.com/v/kBP_RpKXmVc&hl=en\" type=\"application/x-shockwave-flash\" width=\"425\" height=\"355\"><\/embed><\/object><\/div>";" alt=""></a></div></div><div style="clear:both;font-size:.8em;">Android ตอนที่ 7</div></div> <p></p> <p> </p> <div style="padding-bottom: 0px; padding-left: 0px; width: 425px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:63c6c73b-5a0d-44ca-8e43-960a93aa4792" class="wlWriterSmartContent"><div id="8ad48542-c67f-4dbf-8f07-4c374b4a94a4" style="margin: 0px; padding: 0px; display: inline;"><div><a href="http://www.youtube.com/watch?v=0iTChcQTwqg&feature=related" target="_new"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmjjFeB8TDCGa2j60re8-2D6JUK02s0TdY6SgYrOjS4yPOvRPw5eI2tCj20CYsJTTatXlvP70WPEnIlamjzva69cmbbf_jnDK_p_7AqaNE24mQHhHaIv_MgMKtR2SKXIgWe_-YDBL1nDoK/?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('8ad48542-c67f-4dbf-8f07-4c374b4a94a4'); downlevelDiv.innerHTML = "<div><object width=\"425\" height=\"355\"><param name=\"movie\" value=\"http://www.youtube.com/v/0iTChcQTwqg&hl=en\"><\/param><embed src=\"http://www.youtube.com/v/0iTChcQTwqg&hl=en\" type=\"application/x-shockwave-flash\" width=\"425\" height=\"355\"><\/embed><\/object><\/div>";" alt=""></a></div></div><div style="clear:both;font-size:.8em;">Android ตอนที่ 8</div></div> <p></p> <p>หวังว่า เพื่อนๆ คงได้รับความรู้ ไม่มากก็น้อย นะครับ เดี๋ยวพบกันใหม่ครับ ถ้ามีไรดีๆ ผมจะกลับมาแบ่งปันใหม่ </p> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com0tag:blogger.com,1999:blog-2824550586309826160.post-109652586340398402011-05-31T22:38:00.001+07:002011-05-31T22:39:55.575+07:00PHP command line ช่วยงานได้เยอะ<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:0px 0px 0px 0px;"><script type="text/javascript"><br /></script><br /><script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script><br /><br /></div><p>ช่วงนี้ ผมแทบไม่ได้เข้ามาอัพเดทบล๊อกนี้เท่าไหร่ เพราะกำลังง่วนอยู่กับการศึกษาไมโครคอนโทรลเลอร์ ผมว่ามันสนุกดี แล้วก็จับต้องได้ด้วย ติดตามกันได้ที่นี่ครับ <a href="http://www.123microcontroller.com" target="_blank">www.123microcontroller.com</a> </p> <p>วันนี้ ผมเอาเทคนิคดีๆ ที่ผมใช้อยู่เป็นประจำในที่ทำงาน เนื่องจากงานของผม ในบางครั้งจะต้องยุ่งเกี่ยวกับการดึงดาต้าจาก Oracle เพื่อนำมาประกอบการพิจารณาทางสถิติอะไรบางอย่าง ผมมักจะเลือกที่จะใช้ภาษา PHP ที่ผมถนัดอยู่แล้ว เป็นตัวกลางในการติดต่อกับดาต้าเบส Oracle จริงๆ เราสามารถใช้ภาษา SQL สั่งคิวรี่ ข้อมูลจาก Oracle ผ่านโปรแกรม SQL Plus ได้ แต่ในบางครั้งข้อมูลที่เราต้องการดึงมานั้น มีการเชื่อมโยงข้อมูลต่างตารางกัน แล้วยังจะมีการคำนวณหรือกรองข้อมูลที่ไม่ต้องการออก หรือในบางครั้งอาจจะต้องมีการเปรียบเทียบข้อมูลทั้งหมดในแต่ละรอบก่อน แล้วจึงค่อยแสดงค่า ถ้าจะให้ทำการวนลูปด้วยภาษา SQL บอกได้คำเดียวว่ายาก (โดยเฉพาะ ผมก็ไม่เคยทำได้สักที) </p> <p>ที่พูดมาทั้งหมดก็อยากจะบอกว่า ในบางครั้งการใช้ภาษาสคริปต์อย่างเช่น PHP ในการประมวลผลข้อมูล มันจะเป็นการง่ายกว่า การมานั่งเขียนภาษา SQL เพื่อให้ได้คำตอบที่ต้องการในการคิวรี ข้อมูลภายในครั้งเดียว แต่ภาษา SQL ก็ยังเป็นส่วนที่จำเป็นอยู่ดี ไม่สามารถทิ้งไปได้ แต่เราจะใช้ในการดึงข้อมูลดิบ แล้วทำการส่งต่อให้ PHP ทำการประมวลผลต่อไป ซึ่งถ้าใครถนัด PHP อยู่แล้ว จะทำให้มองภาพของการไหลของข้อมูลออกได้อย่างง่ายดาย </p> <p>จริงๆ ผมน่าจะเขียนเรื่องการ config PHP ให้ติดต่อกับฐานข้อมูล Oracle ก่อนนะ แต่ในเมื่อเกริ่นนำไว้แล้ว ก็เลยกะว่า เอาไว้เขียนวันหลังแล้วกัน เพราะมี plan จะเขียนเรื่องนี้ ให้เพื่อนที่ทำงานดูอยู่แล้วหล่ะ </p> <p>กลับมาเรื่องที่ตั้งใจจะนำเสนอกันดีกว่า ในกรณี ผมต้องการให้ script ของผมทำงานเป็นเวลา โดยตั้งเวลาผ่านโปรแกรม system scheduler ซึ่งผมใช้เป็นประจำในการกำหนดให้สคริปต์ผมทำงานตามเวลาที่ตั้งไว้ </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3RPBq4G1TgIRyg5GS4udUWQwcMz59ZN3BAoAYGs4dYS1p7JaJ6EVSAW5diukJYgEG2KVOfFQgJxIxoRKmSpf85RPlpm3RwOdVsYWoJf9eU1WAF8x-TI_AVvQvEvX4Er_pQaTprEDCT_lg/s1600-h/image%25255B9%25255D.png"><img title="sytem scheduler for php command line application" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="343" alt="sytem scheduler for php command line application" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXpgomf-ptGVfhliOWGfbKnpnNl-9m6MeJvmKuPEuJ3DzXaf65aeilG8XKOrBK5fTU-pqdw4jXDKp1Buxo8FF414ZXZrB3dzML76uFgSOy1UUzZs7h_InHZ5j5o9RT9nFzspwgU4YRkiFe/?imgmax=800" width="477" border="0" /></a> ในส่วนของการใช้งานโปรแกรมนี้ ก็ไม่มีไรมาก ตามรูปเลยครับ แต่ส่วนสำคัญอยู่ตรงที่ parameter ครับ ผมขออธิบายก่อนดังนี้ เนื่องจากในสคริปต์นี้ ผมต้องการที่จะเขียนครั้งเดียว แต่สามารถทำงานได้หลายเงื่อนไข ผมจึงออกแบบให้โปรแกรมเป็นกลางๆ ไว้ก่อน โดยให้สามารถเปลี่ยนเงือนไขภายในได้จาก Argument ที่ผมส่งเข้าไปตามรูป แต่ในกรณีที่เพื่อนๆ ออกแบบสคริปต์ให้ทำงานแค่อย่างเดียวก็อาจจะไม่จำเป็นจะต้องทำการส่ง Argument เข้าไปเหมือนผมก็ได้ แล้ภายในสคริปต์ก็จะแตกต่างไปจากของผมด้วยเช่นกัน </p> <p>ในการทำอย่างนี้ เมื่อโปรแกรมเราถูก Execute เมื่อเวลาได้ถูกกำหนดตามที่เราต้องการ สคริปต์จะถูกสั่งให้ทำงานผ่านหน้าต่าง dos โดยจะทำงานเป็นแบบ text mode แต่ก็ใช่ว่าโปรแกรมของเราจะดูด้อยค่าเหมือนหน้าต่างโปรแกรมทีกำลังรันอยู่เลย กลับกัน มันกลับมีพลังในการทำงานอย่างดีเยี่ยมต่างหาก เพราะเพื่อนๆ สามารถสั่งให้สคริปต์ทำการเขียนผลลัพธ์ลง text file หรือจะเป็นนำค่าที่ได้ย้ายไปเก็บค่าในดาต้าเบส MySQLอีกทีหนึ่งก็สามารถทำได้เช่นกัน ทั้งนี่ ขึ้นอยู่กับประสบการณ์ของแต่ละคนครับ </p> <p>เรามาดูตัวอย่างสคริปต์นี้กันครับ </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCVPg7hTLjVaS968I-rTn0c7DIFbOlqMtpE9QtcZ0s32XmyqZWKXOrVI6Sg-O43Mq20x3_xZooISXTWRbwHZ8Ip6k24FUZoUQOypF0Ta3-xHAN81J8RlSx-O6KFg4AUiB_wXuBj6Rv5orC/s1600-h/image%25255B14%25255D.png"><img title="php command line script " style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="376" alt="php command line script " src="http://lh5.ggpht.com/-WI-2knublbQ/TeULaTHqrBI/AAAAAAAAC4U/ORVkPvyRDKw/image_thumb%25255B8%25255D.png?imgmax=800" width="458" border="0" /></a> </p> <p></p> <p></p> <p>มันเป็นตัวอย่างง่ายๆ เพื่อให้เพื่อนๆ ได้ทดลองกันก่อน เพื่อให้ได้เห็นผลลัพธ์ ก่อนการนำไปประยุกต์ใช้งานครับ ผลลัพธ์ที่ได้ก็คือ </p> <p><a href="http://lh4.ggpht.com/-u2pX2WQZ7H4/TeULbWfZiDI/AAAAAAAAC4Y/lBAHhWaFPJc/s1600-h/image%25255B19%25255D.png"><img title="PHP comman line output" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="335" alt="PHP comman line output" src="http://lh6.ggpht.com/-86UpRXXssPY/TeULcAHMy_I/AAAAAAAAC4c/PvBUUyFxMVA/image_thumb%25255B11%25255D.png?imgmax=800" width="453" border="0" /></a> จะเห็นว่า argc[0] ตัวแรกจะเป็นชื่อไฟล์ที่เราสั่งให้ทำงาน ส่วน argument ที่เราส่งเข้าไปในสคริปต์จะเริ่มต้นที่ argc[1] ถ้าเรามี argument ที่มากกว่า 1 ตัว เราก็จะได้ argc[2].. argc[3]…argc[n] ไปเรื่อยๆ เพื่อนๆ ลองคิดต่อดูสิครับ ว่าโปรแกรมเราจะยืดหยุ่นขนาดไหน โดยที่เราสามารถส่งค่าเข้าไปโดยผ่านทาง command line ต่อๆเข้าไปได้อย่างนี้ </p> <p>ถ้าใครจะไม่ใช้โปรแกรม sytem scheduler แต่เพื่อนๆ อยากรันที่ dos prompt เลยก็ได้นะครับ ก็ทำเหมือนกัน ไม่ได้ต่างกันเลยครับ เราก็สามารถ execute สคริปต์ของเราผ่าน command line ได้เช่นกันครับ </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZpp5l7G68P-J63YsL1M_HpxmpuihyPovtHbbdZQ2DiHQgKNJMKjF2bQ3QsCkSmLX9x54x0ZiRHfbsvjpGLcf94PKwy3OtsriqRFs5O5S_R5cn4pCMvuZjwrADLr_Mq257lUBTq0f29z9u/s1600-h/image%25255B23%25255D.png"><img title="image" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="238" alt="image" src="http://lh5.ggpht.com/-wdP_mvime3c/TeULd-Tc3EI/AAAAAAAAC4k/nUsb2Yi7Vas/image_thumb%25255B13%25255D.png?imgmax=800" width="375" border="0" /></a> ลองๆ นำไปประยุกต์ใช้งานกันดูครับ แล้วเจอกันใหม่ในตอนหน้าครับ สวัสดีครับ </p> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com2tag:blogger.com,1999:blog-2824550586309826160.post-75240673684582631732011-02-12T16:58:00.000+07:002011-02-13T19:55:30.203+07:00เริ่มต้นกับแอฟง่ายๆก่อน : Simple Android Application<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:0px 0px 0px 0px;"><script type="text/javascript"> </script> <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script><br /><br /></div><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf602M4y4lZ3yd5U297ACJ1_Vub5xoyvT250D0JmiVJWZ56i1zQ0SP-GjmZwr8wGfDAnlWGTCtDn57RYMFOOPoXdbdlI5Zr8RDRyXwoqUnA5AAfSB7D4P_gKpsB8kXtKyj4a9rUSimv2pi/s1600-h/image%5B5%5D.png"><img title="Android Application" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin-left: 0px; margin-right: 0px; border-right-width: 0px" height="240" alt="Android Application" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHO2KDpZ2wNXEXLUSkOP1_fiDBbeJdDprHaEut0JggyVvhKKq08Tc90uw7BcoqLHzF1jAxQch8Q7MARO2AqswgF8Ru3PsZsHrBDwlK6l5vjQDopD4YIM7bQwlTvl3zlw0Ra6p_5HxdR4RQ/?imgmax=800" width="315" align="left" border="0" /></a> หลังจากสาวน้อย อธิบายให้ป๋าฟังเรื่องการติดตั้ง Android SDK ให้ป๋าฟังแล้ว ถึงเวลาที่สาวน้อย จะแสดงให้เห็นว่า Application ที่เขียนขึ้น มันจะไปทำงานบนมือถือได้ยังงัย โดยสาวน้อย จะแสดงให้ป๋าเห็น บน Emulator โดยหล่อนก็คาดหวังว่า ป๋าจะ get สักที ว่าไอ้ app บน android มันหน้าตาเป็นยังงัย ก่อนที่เธอจะลากตาแก่ ไปเลือก Android แจ่มๆ สักเครือง (ใคร งง กลับไปอ่าน <a href="http://faker-programmer.blogspot.com/2011/02/android-android-sdk-installation.html" target="_blank">คลิก</a>)</p> <p> </p> <p> </p> <p>ขั้นตอนอย่างหยาบๆ กับ android application อย่างง่ายๆ</p> <ol> <li>สร้าง Android Virtual Device (AVD) ก่อนเลย โดยไปที่เมนู Eclipe เลือก <strong>Window > Android SDK and AVD Manager</strong>. </li> <li>เลือก <strong>Virtual Devices</strong> ทางซ้าย </li> <li>คลิก<strong>New</strong>. จะปรากฏ <strong>Create New AVD</strong> dialog </li> <li>ตั้งชื่อ AVD เช่น "my_avd". </li> <li>เลือก Target ให้เวอร์ชั่นตรงกับที่เราจะสร้างโปรแกรมให้ไปทำงานบน platform เวอร์ชั้นไหน ในที่นี้ ผมเลือก Android SDK 2.1 </li> <li>ที่เหลือ ไม่ต้องใส่ค่า </li> <li>คลิก <strong>Create AVD</strong>. </li> <li>แล้ว Start Emulator จากปุ่ม Start </li> </ol> <p>ปล่อยให้ Emulator โหลดหน้าต่าง Emulator ขึ้นมา มันจะใช้เวลาพอสมควร เราไม่ต้องไปสนใจ ให้ไปสร้างโปรเจคง่ายๆ กันต่อเลย </p> <ol> <li>จากเมนู Eclipe เลือก <strong>File > New > Project</strong>. </li> <li>เลือก "Android Project" แล้วคลิก <strong>Next</strong>. </li> <li>เติมค่าเหล่านี้ลงไป ตามช่องต่างๆ <ul> <li><em>Project name:</em> HelloAndroid </li> <li><em>Application name:</em> Hello, Android </li> <li><em>Package name:</em> com.example.helloandroid (or your own private namespace) </li> <li><em>Create Activity:</em> HelloAndroid </li> </ul> </li> <li>คลิก Finish </li> <li>ทำการ Modified โค๊ดที่ได้จากการสร้างโปรเจค <pre><font color="#ffff00">package com.example.helloandroid;<br /><br />import android.app.Activity;<br />import android.os.Bundle;<br /><strong>import android.widget.TextView;</strong><br /><br />public class HelloAndroid extends Activity {<br />   /** Called when the activity is first created. */<br />   @Override<br />   public void onCreate(Bundle savedInstanceState) {<br />       super.onCreate(savedInstanceState);<br />       </font><font color="#ffff00"><strong>TextView tv = new TextView(this);<br />       tv.setText("Hello, Android");<br />       setContentView(tv);</strong><br />   }<br />}</font></pre><br /> </li><br /><br /> <li>ทำการรัน save แล้ว run application ไปที่เมนู <strong>Run > Run</strong>. </li><br /><br /> <li>เลือก "Android Application". </li><br /><br /> <li>รอดูผลที่หน้าต่าง Emulator </li><br /><br /> <li>จบ App แรก ดีใจโครตๆ </li><br /><br /> <li>คนเขียน เหนื่อย U_U </li><br /></ol><br /><br /><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHaiIfeNrREr17lKwH3wubj3rs44A9hkaIIrpvsfOOK7wCXp-wry4m4Zzwm295WB7Du2kBq2PNI3eWp4qA-2PZ0WeCooEKx9vwhiXVvGuc25zDs_k3oqNu1v14svr1oDT72oy6sU3XUhsB/s1600-h/simple%20android%20application%5B3%5D.jpg"><img title="simple android application" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="352" alt="simple android application" src="http://lh5.ggpht.com/_000cgw7RCzE/TVUIfhl1NtI/AAAAAAAACkQ/hpZkur8B8s0/simple%20android%20application_thumb%5B1%5D.jpg?imgmax=800" width="559" border="0" /></a> </p><br /><br /><p>ผมพยายามอัดคลิปวีดีโอ การสร้าง Android Application อย่างง่ายๆ เพื่อให้เพื่อนๆ ได้ลองไปเล่นกัน หวังว่า คงสนุกกับการสร้าง Application นะครับ น้องๆ คนไหน ยังไม่มีรายได้ ก็อย่าไปรบกวนพ่อแม่ นะครับ รู้ว่าขอเงินไป ได้แน่นอน แต่เราไม่รู้หรอกว่า ท่านยอมลำบาก เพื่อให้ลูกสบาย ท่านทำได้เสมอ ก็อยากให้เขียนให้เก่งๆ ก่อน แล้วถ้าเกิดฝีมือเข้าขั้น มีแนวโน้มทำรายได้ ให้เราจริงๆ ค่อยไปกู้เงินมาซื้อ  นะครับ</p><br /><br /><div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:b551a8a2-434d-4dc1-8fb2-6a71ec2ef5c6" style="padding-right: 0px; display: block; padding-left: 0px; float: none; padding-bottom: 0px; margin-left: auto; width: 425px; margin-right: auto; padding-top: 0px"><div id="5f738600-75fd-4075-b044-b5cfbcb611fb" style="margin: 0px; padding: 0px; display: inline;"><div><a href="http://www.youtube.com/watch?v=h_yJvIMeIt8" target="_new"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIOSG9ls_C9Aran1wa0rXpfDRarug2BoH_XCDD8fT71Gb4Eo0z8iP8HS4vrjpOKuj2oaNYWycBrgFNQE59-qL1q2CqkUQwxTl-V4L14UHkj5iE4CH5j8S8Zu75AyPG9pRR8xDJVriInLPi/?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('5f738600-75fd-4075-b044-b5cfbcb611fb'); downlevelDiv.innerHTML = "<div><object width=\"425\" height=\"355\"><param name=\"movie\" value=\"http://www.youtube.com/v/h_yJvIMeIt8&hl=en\"><\/param><embed src=\"http://www.youtube.com/v/h_yJvIMeIt8&hl=en\" type=\"application/x-shockwave-flash\" width=\"425\" height=\"355\"><\/embed><\/object><\/div>";" alt=""></a></div></div></div> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com3tag:blogger.com,1999:blog-2824550586309826160.post-466199614227510492011-02-11T20:30:00.001+07:002011-02-14T13:54:02.384+07:00หนูอยากได้ Android ค่า : Android SDK Installation<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:0px 0px 0px 0px;"><script type="text/javascript"><br /></script><br /><script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script><br /><br /></div><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD5dlLVsyE4BVFcQiMV6e3H2qGDBHZ6EMFCOTlENJbyk8uzikHsXNvyKiLmD-I3uSJQwdUNgUpVxZsPX-atCN3i8e4DpQFRuBsHGs6aZ2oNgV4MFLyUag9Hu4mNAFZhDDeKzALkBQXDXmh/s1600-h/image6.png"><img title="Android" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin-left: 0px; margin-right: 0px; border-right-width: 0px" height="287" alt="Android" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKQscTAJy4m4geDcPN45PCi7AiLr8g5P6cigAxItl3pbmAsLsOBqXPPNzqBzF4e0oq7cmO6nn1h0i9r_ml85-xK4yU2-JymtkiyDGUNJy1SRC48-jL3BApoiowa6wnyVKfu8669c1mOSsJ/?imgmax=800" width="368" align="left" border="0" /></a> </p> <p> </p> <p>ณ โรงแรมม่านรูดแห่งหนึ่ง หลังจากเสร็จสิ้นภาระกิจแล้ว สาวน้อย นอนเบียดอยู่ข้างตาแก่พุงพลุ้ย ที่กำลังสูบบุหรี่อยู่ (มีภาพ sensor ที่ปากนิดนึง) แล้วสาวน้อย ก็พูดด้วยน้ำเสียงออดอ้อนขึ้นมาว่า </p> <p align="left"> </p> <p align="left"> </p> <p align="left"> </p> <p align="left"> </p> <p align="left"> </p> <p align="left">สาวน้อย : ป๋าขา ป๋าขา หนูอยากได้มือถือ เครื่องใหม่สักเครื่องหน่ะค่ะ</p> <p align="left">ป๋า : ก็ป๋า ซื้อให้แล้วนี่ค่ะ </p> <p align="left">สาวน้อย : หนูอยากได้ เครื่องที่ มี Android หน่ะค่ะ </p> <p align="left">ป๋า (ทำหน้า งงๆ ไรว่ะแอนดรอยด์) : หนูจะเอามาทำไร ค่ะ</p> <p align="left">สาวน้อย : หนูจะมาเขียน App คะป๋า </p> <p align="left">ป๋า : >_< เชี้ยไรว่ะ App (งง หนักเข้าไปอีก) </p> <p>อย่าว่าแต่ป๋าเลยครับ ผมเองก็ งง เหมือนกัน ไรว่ะ แอนดรอยด์ มันกินได้ไหม เด็กบ้านนอกอย่างฉันต้องมีไหมอ่ะ ตำรวจจะจับไหม ไม่รู้เหมือนกัน เอาว่ะ เนตก็มี ไปกลัวอะไร search มันเข้าไปกูเกิ้ล ได้ความมาว่า </p> <p><font color="#ffff00"><strong>Android</strong></font> มันเป็นชื่อของระบบปฏิบัติการที่ทาง Google พี่แกใจดี้ ใจดี สร้างขึ้นมาเพื่อเป็นระบบปฏิบัติการของมือถือ โดยได้พัฒนามาจาก Linux ใครที่เคยเล่น Linux มาก่อนจะเข้าใจ ในการจัดการ process ของ Linux ว่าแตกต่างจาก Windows ยังงัย โดยกูเกิ้ลร่วมกันพัฒนา OS Android กับบริษัททำมือถือยักษใหญ่ ในตอนนั้น ได้แก่ อิงก์, ที-โมบาย, เอชทีซี, ควอลคอมม์ และ โมโตโรลา และได้เปิดโอกาสให้นักพัฒนาอิสระ โหลดตัว  Android SDK ไปพัฒนา Application (ซึ่งใช้ JAVA เป็นหลัก) เพื่อมาใช้บนระบบปฏิบัติการนี้</p> <p>ด้วยความเอื้อเฟื้อ ต่อการพัฒนา Application นักพัฒนา สามารถที่จะพัฒนา Application ต่างๆ บนคอมพิวเตอร์ของเราได้ก่อน ก่อนที่จะนำไปติดตั้งลงบนมือถือ โดยทำการจำลองโปรแกรมของเราผ่าน Android Emulator ทำให้เกิดการพัฒนา Application สำหรับ Android ขึ้นอย่างมากมาย นอกจากนี้ Application ที่พัฒนาขึ้นมา เราสามารถโหลดมาใช้ได้ฟรีๆ </p> <p><a href="http://lh4.ggpht.com/_000cgw7RCzE/TVU5zcQt38I/AAAAAAAACkg/ndCMO3xwTFg/s1600-h/image11.png"><img title="Android Applications" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="466" alt="Android Applications" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv3C4uSVweAfbnZA57iZ4wyLBLYtq_htrVzuDzvzcaimnTEaxCJgtIY_oyqSMEP_SXhK0rtylLH51GK7AuvfmIH6HX-w_7QVWifZGJK_PDaPwrg4Ccvc-jR0rcXsiFpkUqgbPvrSqWlwUI/?imgmax=800" width="540" border="0" /></a> </p> <p>อย่ารอช้า หากเพื่อนๆ อยากมี applicartion ที่อยากให้ชาวบ้านเค้าไปโหลดไปใช้ หากยังไม่มีมือถือ Android เหมือนผม U_U ก็เล่น Emulator ไปก่อนหล่ะกัน ว่าแล้ว เราก็มาติดตั้ง Android  SDK กันก่อน </p> <p>ขั้นตอนการติดตั้ง Android SDK</p> <ol> <li>ให้เรา โหลด ตัว Android SDK <a href="http://developer.android.com/sdk/index.html" target="_blank" rel="nofollow">http://developer.android.com/sdk/index.html</a> เค้าแนะนำ <a href="http://dl.google.com/android/installer_r09-windows.exe" rel="nofollow">installer_r09-windows.exe</a> (Recommended) </li> <li>โหลด Eclipe classic หรือตัวอื่นๆ ถ้าชอบ <a href="http://www.eclipse.org/downloads/" target="_blank" rel="nofollow">http://www.eclipse.org/downloads/</a> ในที่นี้เค้าแนะนำ <ul> <li>Eclipse IDE for Java Developers </li> <li>Eclipse Classic (versions 3.5.1 and higher) </li> <li>Eclipse IDE for Java EE Developers </li> </ul> </li> <li>โหลดตัว <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank" rel="nofollow">JDK</a> ของ JAVA ด้วย ไม่โหลดตอนนี้ เดี๋ยวมันก็ถามหาอยู่ดี ลำพัง JRE เอาไม่อยู่ ต้องโหลด <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank" rel="nofollow">JDK</a> ด้วย </li> <li>แตกไฟล์ Eclipe ไปไว้ที่ไหนก็ได้ drive D: ก็ได้ แล้ว เรียก Eclipe.exe ขึ้นมา </li> <li>ติดตั้ง Adroid SDK ดับเบิ้ลคลิกที่ไฟล์ <a href="http://dl.google.com/android/installer_r09-windows.exe" target="_blank" rel="nofollow">installer_r09-windows.exe</a> พอติดตั้งเสร็จ มันจะถามให้รัน Android SDK and AVD manager ไหม ก็รันไปเลย </li> <li>ขั้นตอนนี้ มันจะติดตั้ง package ไม่รู้ไรหนักหนา ขี้เกียจอ่าน เลือกมันหมดเลยหล่ะกัน โปรแกรมจะทำการดาวน์โหลดจากอินเตอร์เนต นานมากๆ ไปอาบน้ำรอได้เลย </li> <li>กลับมาอีกที ยังไม่เสร็จอีก *_* </li> <li>พอติดตั้งเสร็จ ให้เปิด Eclipe ขึ้นมา แล้วไปที่ เมนู <strong>Help</strong> > <strong>Install New Software...</strong>. </li> <li>คลิกปุ่ม Add </li> <li>ตั้งชื่อ เป็น "ADT Plugin" ในช่อง Name แล้วใส่ URL  <pre>https://dl-ssl.google.com/android/eclipse/ ในช่อง Location </pre><br /><br /> <br /><br /><br /> <br /><br /><br /> <br /></li><br /><br /> <li>คลิก OK , Next , Next แล้วก็ Finish <br /> <br /><br /><br /> <br /></li><br /><br /> <li>ติดตั้งเสร็จ มันจะ restart Eclipe หนึ่งดอก <br /> <br /><br /><br /> <br /></li><br /><br /> <li>ถึงเวลาที่เราต้อง config ตัว ADT Plugin สำหรับ คนที่ใช้ Eclipe IDE เป็นตัวพัฒนา App (มัดมือชก ตัวอื่นไม่รู้ทำงัย) กันสักหน่อย <br /> <br /><br /><br /> <br /></li><br /><br /> <li>ไปที่ <strong>Window</strong> > <strong>Preferences...</strong>  <br /><br /><br /> <br /></li><br /><br /> <li>เลือก <strong>Android</strong> จากเมนู ทางขวา <br /><br /> <br /><br /><br /> <br /></li><br /><br /> <li>มองหา <em>SDK Location</em> แล้ว Browse หา SDK library ซึ่งน่าจะอยู่ที่ C:\Program Files\Android <br /><br /> <br /><br /><br /> <br /></li><br /><br /> <li>คลิก Apply แล้ว OK <br /> <br /><br /><br /> <br /></li><br /><br /> <li>เหนื่อย(ว่ะ) <br /> <br /></li><br /></ol><br /><br /><br /><br /><br /><br /><br /><br /><p>ผมพยายามทำ Clip VDO สอนการติดตั้ง Android SDK แต่เนี่องจากมันใช้เวลานานพอสมควร ผมจึงทำการบันทึกไป หยุดไป ภาพอาจจะไม่ต่อเนื่อง ก็พยายามดูๆ เอาหล่ะกัน อัดกันสดๆ ก็แบบนี้แหละ </p><br /><br /><br /><br /><br /><br /><br /><br /><p>อยากเห็น App ไทย ไป App นอกบ้าง ผมว่า ก็คงมีแหละ ที่ App ของคนไทยที่มีคนโหลดไปเล่นกัน  พอดี ไม่ค่อยได้ติดตามมากนัก เพราะ มือถือก็ยังไม่มี รอผู้ใจดี มีเงินเหลือ ซื้อให้สักเครือง ใครถูกหวย ก็ซื้อให้มั่งนะ อยากลองๆๆ ^_^ </p><br /><br /><br /><br /><br /><br /><br /><br /><p>ตอนหน้า เรามาเขียน <a href="http://faker-programmer.blogspot.com/2011/02/simple-android-application.html" target="_blank">Android Application</a> ง่ายๆ แล้วลองรัน ใน Emulator ดูกันครับ ว่ามันจะเป็นยังงัย </p><br /><br /><br /><br /><br /><br /><br /><br /><div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:c965d071-c594-41d3-abd6-fb2eb4b38c79" style="padding-right: 0px; display: block; padding-left: 0px; float: none; padding-bottom: 0px; margin-left: auto; width: 425px; margin-right: auto; padding-top: 0px"><br /> <div id="5ba23b4c-b2a1-4bc2-9276-99ef1a371497" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"><br /> <div><embed src="http://www.youtube.com/v/NnE2wZw5jrI&hl=en" width="425" height="355" type="application/x-shockwave-flash" /></div><br /> </div><br /></div> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com1tag:blogger.com,1999:blog-2824550586309826160.post-29901951886979625212011-02-09T20:33:00.001+07:002011-02-09T20:35:50.435+07:00variables naming : ว่าด้วยเรื่องการตั้งชื่อตัวแปร<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:0px 0px 0px 0px;"><script type="text/javascript"> </script> <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script><br /><br /></div><p><a href="http://lh3.ggpht.com/_000cgw7RCzE/TVKXnxjJibI/AAAAAAAACj4/Deq8LCASPwY/s1600-h/image%5B11%5D.png"><img title="variable naming" style="border-right: 0px; border-top: 0px; display: inline; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px" height="247" alt="variable naming" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQvvobSSsvPuES1iJL-im-0Hv6jZ0ATQAL8mwyYd3BNM6kVti703B1yes-r675WrNKCPTUDxPoBqZTXbo_ApTdQTg2CzGIIR33L6Y-LWlyhFqeMEBXHdsatYOrn77XtmmSuRCrlGG9Q9EY/?imgmax=800" width="351" align="left" border="0" /></a></p> <p>   ไม่ว่าคุณจะเขียนโปรแกรมคอมพิวเตอร์ด้วยภาษาใดๆ ก็ตาม อย่างหนึ่งที่ต้องทำ อย่างหลีกเลี่ยงไม่ได้ นั่นก็คือ คุณต้องทำการจองหน่วยความจำสำหรับเก็บข้อมูล และไม่ว่าภาษาคอมพิวเตอร์ที่คุณกำลังเขียนอยู่นั้น จะต้องทำการประกาศตัวแปร ก่อนหรือไม่ก็ตามก่อนนำไปใช้งาน เราก็จำเป็นที่จะต้องทำการสร้างตัวแปรขึ้นมา โดยการประกาศชื่อตัวแปร เพื่อให้ตัวแปรภาษาเข้าใจ ว่านี่ คือส่วนของตัวแปรที่เก็บข้อมูลที่เราได้ประกาศขึ้นมาเอง และแน่นอนว่า ตัวแปร ไม่ได้มีแค่ตัวเดียวอย่างแน่นอน การที่เราจะต้องการประกาศตัวแปรหลายๆ ตัว เราก็จำเป็นจะต้อง ตั้งชื่อให้กับตัวแปร ที่เราประกาศไว้ เพื่อไม่ให้เกิดความสับสน และเพื่อให้ง่ายต่อการไล่ดูโค๊ดในภายหลัง เราจะต้องมีเทคนิคที่ดี ในการตั้งชื่อตัวแปร ให้อ่านทำความเข้าใจได้ง่าย และให้เกิดความสวยงาม </p> <p>     เกริ่นมาซะยาว จริงๆ วันนี้ ผมตั้งใจ จะเล่าเรื่องสไตล์ในการตั้งชื่อตัวแปร ไม่ใช่ว่าเค้านึกอยากจะตั้งอย่างไร ก็ได้ ก็จริงอยู่ที่เราสามารถตั้งชื่อตัวแปรอย่างไรก็ได้ ตามใจฉัน เพราะฉันเป็นคนเขียนโปรแกรมนี้ขึ้นมา ขออย่างเดียว อย่าไปซ้ำกับคำสงวนแค่นั้นพอ แต่เพื่อนๆ ทราบไหมว่า การตั้งชื่อตัวแปร จริงๆ แล้วเค้ามีธรรมเนียมปฏิบัติกันอยู่ (คำว่า ธรรมเนียม แปลว่า ถ้าเราไม่ทำตาม ก็ไม่ผิดกฏ) เรามาดูกันว่า มีอะไรบ้าง </p> <p>      ธรรมเนียมปฏิบัติที่มีประโยชน์มากอย่างหนึ่ง ในการตั้งชื่อตัวแปร ที่ใช้กันอยู่ทั่วไปนั่นก็คือ การระบุชนิดของตัวแปร เข้าไปในชื่อของตัวแปรด้วย รูปแบบการประกาศแบบนี้ เราเรียกว่า “Hungarian Notation”</p> <p>      ในการประกาศตัวแปร แบบฮังกาเรียน นั้น จะมีการเพิ่มตัวอักษรพิมพ์เล็กนำหน้าชื่อตัวแปร เพื่อเป็นการบ่งบอกถึงชนิดของตัวแปร  ตัวอย่างเช่น </p> <ul> <li> <div align="left"><code>bBusy</code> : <font color="#ffff00">boolean</font></div> </li> <li> <div align="left"><code>chInitial</code> : <font color="#ffff00">char</font></div> </li> <li> <div align="left"><code>cApples</code> : <font color="#ffff00">count of items </font></div> </li> <li> <div align="left"><code>dwLightYears</code> : <font color="#ffff00">double word</font> (systems) </div> </li> <li> <div align="left"><code>fBusy</code> : <font color="#ffff00">boolean </font>(flag) </div> </li> <li> <div align="left"><code>nSize</code> : <font color="#ffff00">integer</font> (systems) or count (application) </div> </li> <li> <div align="left"><code>iSize</code> : <font color="#ffff00">integer</font> (systems) or index (application) </div> </li> <li> <div align="left"><code>fpPrice</code>: <font color="#ffff00">floating-point</font></div> </li> <li> <div align="left"><code>dbPi</code> : <font color="#ffff00">double</font> (systems) </div> </li> <li> <div align="left"><code>pFoo</code> : <font color="#ffff00">pointer</font></div> </li> <li> <div align="left"><code>rgStudents</code> : <font color="#ffff00">array, or range </font></div> </li> <li> <div align="left"><code>szLastName</code> : <font color="#ffff00">zero-terminated string </font></div> </li> <li> <div align="left"><code>u32Identifier</code> : <font color="#ffff00">unsigned 32-bit integer</font> (systems) </div> </li> <li> <div align="left"><code>stTime</code> : <font color="#ffff00">clock time structure </font></div> </li> <li> <div align="left"><code>fnFunction</code> : <font color="#ffff00">function name</font></div> </li> </ul> <p></p> <p></p> <p>      นั่นเป็นการนำตัวย่อของชนิดข้อมูลมานำหน้าชื่อตัวแปร เพราะหลังจากที่ตัวแปรเหล่านี้เข้าไปอยู่ในโค๊ดยาวๆ แล้วคุณอาจจะเกิดปัญหาว่า จำไม่ได้ว่าตัวแปรตัวนี้ ถูกประกาศไว้เก็บข้อมูลชนิดใดกันแน่ ตัวอย่างที่ยกให้เห็นนี้ เป็นชื่อตัวแปรที่มีความยาวไม่มากนัก มักนิยมเป็นคำๆ แต่ถ้าเราต้องการสื่อความหมายของตัวแปร ด้วยคำที่ยาวกว่านี้หล่ะ บางทียาวเป็นวลี เราจะตั้งชื่ออย่างไร </p> <p>      ธรรมเนียมในการตั้งชื่อตัวแปรยาวๆ ก็ยังมีให้เห็น สอง รูปแบบหลักๆ ก็คือ แบบแรกเป็นการใช้ตัวอักษรพิมพ์ใหญ่ที่ต้นคำ แล้วเขียนติดกันไปเลย และเมื่อผสมกับรูปแบบฮังกาเรียนเข้าไปด้วย ก็จะต้องเขียนอักษรย่อบ่งบอกชนิดตัวแปรไว้ข้างหน้าด้วย ตัวอย่างเช่น </p> <p align="center"><font color="#00ff00">int iCountStudent;</font></p> <p align="left">     ส่วนอีกรูปแบบหนึ่งก็คือ การใช้ตัวอักษรพิมพ์เล็กทั้งหมด แล้วใช้ขีดล่าง (under score) คั่นระหว่างคำ โดยเมื่อใช้กับรูปแบบฮังกาเรียนแล้ว ก็จะเขียนอักษรย่อกำกับไว้ข้างท้าย ตัวอย่างเช่น </p> <p align="center"><font color="#00ff00">char *record_primary_key_p;</font></p> <p align="left">     ทั้งสองรูปแบบนี้ เห็นได้เยอะมาก แต่ไม่ว่าคุณจะเลือกการประกาศชื่อตัวแปร แบบไหนก็ตาม ก็ขอให้คุณยึดหลักแบบนั้น ไว้ทั้งโปรแกรม แต่อย่างไรก็ดี หากคุณไม่แน่ใจว่าจะเลือกใช้รูปแบบไหนดี ตัวเลือกหนึ่งที่ช่วยให้คุณตัวสินใจได้ง่ายขึ้น นั่นก็คือ ให้คุณสังเกตที่ไลบรารี ของภาษาที่เราเลือกใช้ แล้วก็จงใช้ตามหลักของภาษานั้น เหตุผลก็เพราะว่า จะทำให้โค๊ดโปรแกรมของคุณ ดูเป็นเนื้อเดียวกัน </p> <p align="left">      ไม่ว่าคุณจะเลือกรูปแบบไหน อาจจะต้องมีการตกลงกันในทีมก่อน เพื่อให้รูปแบบการเขียนโปรแกรมไปในทิศทางเดียวกัน แต่สุดท้ายแล้ว คุณก็จะได้สไตล์การเขียนที่เป็นรูปแบบของคุณเอง สไตล์การพูดแต่ละคนไม่เหมือนกันฉันใด สไตล์การเขียนโปรแกรมก็ย่อมไม่เหมือนก้นฉันนั้น แต่เราก็พูดภาษาเดียวกัน ครับ </p> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com1tag:blogger.com,1999:blog-2824550586309826160.post-21973716074131946592011-02-05T00:35:00.001+07:002011-02-05T00:35:25.806+07:00วิีธีแก้ปัญหา "The JDK missing and is required to run some Netbean Module"<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:0px 0px 0px 0px;"><script type="text/javascript"> </script> <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script><br /><br /></div><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_LYczM9eA1JXtcKykuws5l66QceWlNvt8hQTAlQnkY19zk21TzMJVpQ_U4bhRxwEgyRUhZqxdEJmWQcEvoJ5blWdEFJ9ug2UDQwniihlnsxSueo91SDg-7LXzPvwoXhyphenhyphenCHpbZ8h4S7-XN/s1600-h/image%5B4%5D.png"><img title="Netbean full package" style="border-right: 0px; border-top: 0px; display: inline; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px" height="181" alt="Netbean full package" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu-sWzj52_dS4QiqINRaZhqvrNdt_eDUrjaLVQHGgI2kAD1Y4S3WkLW3e9TAE0fq52vqwIjov_F1K-2_abL5mz1yFrOhrdivwUb6Va3jqNsSRvAD7AuXB1Zt-aSOr7K5oldd7__JDJw52E/?imgmax=800" width="381" align="left" border="0" /></a> พอดี สาวๆมาขอร้องให้ช่วยทำการบ้านวิชาโปรแกรมมิ่งให้หน่อย ก็ไม่มีอะไรมากเป็นแค่ Lab ภาษา Java ง่ายๆ (แน่นอนหล่ะ ถ้ายากๆ ไม่ทำให้หรอก เพราะเราเองก็เขียนไม่เป็น) ก็ลองหา IDE มาทดลองเขียนสักหน่อย </p> <p>พอดีเหลือบไปเห็นว่าเครืองเราก็ลง Netbean 6.9.1 ไว้แล้วนี่หน่า ก็เลย เปิดโปรแกรมขึ้นมา จะทำการบ้านให้เพื่อนที่ทำงานสักหน่อย ปรากฏว่า ตอนเราเลือกลง Netbean ดันเลือกลงเฉพาะ package complier ภาษา c/c++ ก็เลย เลือกลงใหม่ คราวนี้ เอาแบบ <a href="http://netbeans.org/downloads/index.html" target="_blank" rel="nofollow">All</a> ซะเลย หมดเรื่องหมดราว </p> <p>แต่เดี๋ยวก่อน ชีวิตไม่ได้ราบรื่นขนาดนั้น โชคชะตาล้อเล่นเราได้เสมอ ปรากฏว่า พอจะเลือก สร้างโปรเจค Java สักหน่อย พี่แกดันฟ้อง error "<font color="#ff0000">The JDK missing and is required to run some Netbean Module</font>" มาซะนี่ </p> <p><a href="http://lh6.ggpht.com/_000cgw7RCzE/TUw4xoIvcoI/AAAAAAAACis/mRWQFKHtIYo/s1600-h/image%5B8%5D.png"><img title="The JDK missing and is required to run some Netbean Module" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="337" alt="The JDK missing and is required to run some Netbean Module" src="http://lh4.ggpht.com/_000cgw7RCzE/TUw4ylmp4QI/AAAAAAAACiw/sE1vrKSBeOw/image_thumb%5B4%5D.png?imgmax=800" width="475" border="0" /></a> </p> <p>เอ้า แสรด!!! งานเข้าเลยครับ ทำงัยดีหล่ะที่นี้ ก็ลงไปแบบ full package แล้วนี่หน่า ทำไมเป็นแบบนี้หล่ะ ตั้งสติก่อนสตาร์ท (อ้าว ไม่เกี่ยว ) ลองๆค้นหาดูก่อนสิ มีชาวบ้านเค้าเจอปัญหาเหมือนเราบ้างไหม ปรากฏว่า เจอเหมือนกัน ครับ </p> <p>สาเหตุก็มาจากว่า ตัว netbean มันดันหาตัว jdk ของ java ไม่เจอครับ ให้เราเข้าไปแก้ไฟล์ <br />C:\Program Files\NetBeans 6.9.1\etc\netbeans.conf ครับ ให้มองไปหาไฟล์ jdk ของ java ใหม่ แต่ว่าแพคเกจ ของ jdk ที่เราติดตั้งต้องมีอยู่นะครับ มันน่าจะมาพร้อมกับตอนที่เราติดตั้ง Netbean แบบ All นั่นแหละครับ โดยเราแก้ไปที่ path ของ jdk ในไฟล์ config ของ netbean </p> <p>จากเดิมมันกำหนดเป็น netbeans_jdkhome="<font color="#ff0000">C:\Program Files\Java\jre6</font>" <br />ก็ให้เราแก้เป็น netbeans_jdkhome="<font color="#ffff00">C:\Program Files\Java\jdk1.6.0_23</font>" </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxHM_f-fDyeJ9IrBnT_bGCB7LinOK4smJ2eIVDoVmdufTYYjkt39Xqk_2ssxEfmnZz_rEomWpXH1bQ1ovN9sKYmZLQffGUoJLQSucb7LdEUHeWje_kSc30prgjQ44czSjaEpHdvi2qxCEP/s1600-h/image%5B12%5D.png"><img title="netbeans.conf" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="279" alt="netbeans.conf" src="http://lh4.ggpht.com/_000cgw7RCzE/TUw40ieNUnI/AAAAAAAACi4/Vf0MuODV04Y/image_thumb%5B6%5D.png?imgmax=800" width="497" border="0" /></a> </p> <p>แล้วก็ลองเข้าโปรแกรม netbean ใหม่ครับ ซึ่งถ้าไม่มีผีมาแกล้งซะก่อน ก็น่าจะสามารถสร้าง java project ได้ตามปกติ </p> <p></p> <p></p> <p></p> <p><a href="http://lh5.ggpht.com/_000cgw7RCzE/TUw41mqahJI/AAAAAAAACi8/fq17L_7kyys/s1600-h/image%5B17%5D.png"><img title="Java project on netbean " style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="347" alt="Java project on netbean " src="http://lh3.ggpht.com/_000cgw7RCzE/TUw42i_IilI/AAAAAAAACjA/0l53hZ2IdfY/image_thumb%5B9%5D.png?imgmax=800" width="493" border="0" /></a></p> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com0tag:blogger.com,1999:blog-2824550586309826160.post-7703630084740554712011-01-01T11:00:00.001+07:002011-01-01T11:06:48.227+07:00Google Search Shortcuts Guide เทคนิคการค้นหา<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:0px 0px 0px 0px;"><script type="text/javascript"> </script> <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script><br /><br /></div><p><a href="http://lh3.ggpht.com/_000cgw7RCzE/TR6mxFQYh_I/AAAAAAAACdM/HY11xfLB2cA/s1600-h/image%5B32%5D.png"><img title="Google search shortcuts guide " style="border-right: 0px; border-top: 0px; display: inline; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px" height="223" alt="Google search shortcuts guide " src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhabPnELdhQ3DkcQVZ4HhlHCeSJuY1Hhhevo8Hz8d5ikw3oF7GsikIiCGCEVDltrFDFanuoe6NPpQeHtLsqOKxtWAAfxaSREOoCWu4qmqlHVR8VFH5JkEq20CpIBgQxWWC8J8p4tpL3jxNV/?imgmax=800" width="244" align="left" border="0" /></a> สวัสดีปีใหม่  2554 ครับเพื่อนๆ คิดหวังสิ่งใด ขอให้สมหวังทุกประการ ต้องขออภัยที่ไม่ได้เข้ามาอัพเดทบล๊อกโปรแกรมเมอร์(จำเป็น) เสียนาน  จริงๆก็ไม่ได้ไปไหนหรอกครับ ก็พยายามไปอัพเดทบล๊อกอื่นๆ ให้มันครบหน่ะครับ เหมือนผมจะบ้าเขียนบลีอกไปหรือเปล่า ก็ยังสงสัยตัวเองอยู่เหมือนกัน </p> <p>มาเข้าเรื่องกันเลยดีกว่า ตั้งแต่กูเกิ้ล ได้เข้ามาเปลี่ยนแปลงโลกของอินเตอร์แบบก้าวกระโดด เมื่อประมาณ 10 ปีที่แล้ว ตอนนั้นย้อนไปในอดีต อินเตอร์เนตเป็นสิ่งที่ตื่นเต้นสำหรับผมมากๆ ผมไม่คิดว่า การนั่งอยู่หน้าคอมพิวเตอร์จะทำให้เรารับรู้ข้อมูลข่าวสารได้มากมายเพียงนี้ ก่อนกูเกิ้ลจะเข้ามา เว็บแรกๆที่ผมได้รู้จัก ก็เป็นเว็บ sanook เว็บ Hunsa แล้วก็เว็บ Thaiwebhunter เหตุที่ทำให้จำเว็บพวกนี้ได้ดี ก็เพราะเว็บเหล่านี้ ล้วนเป็นเว็บท่า คล้ายๆกับท่าเรือ ที่มีเรือมาจอดมากมาย เพือนำเราไปยังเว็บอื่นๆ แต่พอหลังจากที่กูเกิ้ล เข้ามาแล้ว การจะต้องมานั่งจดจำชื่อเว็บเหล่านี้ ก็ไม่จำเป็นแล้วครับ เราอยากไปไหน ณ จุดใดๆ ก็สามารถที่จะใส่คำค้นหาได้เลย </p> <p><a title="ดาวน์โหลด Google Chrome" href="http://program-software-download.blogspot.com/2010/02/google-chrome.html" target="_blank"><img title="Download Google Chrome" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="123" alt="Download Google Chrome" src="http://lh3.ggpht.com/_000cgw7RCzE/TR6myqGix3I/AAAAAAAACdU/-1p1zJrgrx0/image%5B4%5D.png?imgmax=800" width="557" border="0" /></a> </p> <p>หลายคน ค้นพบเส้นทางในการแสวงหาสิ่งที่เค้าสงสัย และได้พบคำตอบอย่างง่ายดาย แต่ก็ยังมีอีกหลายคน ยังวนๆเวียนๆ กับการไล่ล่าหาคำตอบแบบหลงทาง เสียเวลามากไปกับป่าดงดิบอินเตอร์เนต ซึ่งเรื่องนี้เป็นเรื่องจำเป็นอย่างมาก สำหรับคนที่ต้องทำงานเกี่ยวข้องกับคอมพิวเตอร์เลยก็ว่าได้ เราไม่ได้รู้ไปทุกเรื่อง แต่เราควรจะรู้ว่าใครรู้เรืองนี้บ้าง บางเรื่องมีคนให้คำตอบไว้แล้ว ปัญหาก็คือ เราจะหาคำตอบนั่นเจอได้อย่างไร </p> <p>วันนี้ ผมมีเทคนิคเล็กๆน้อยๆที่จะทำให้เพื่อนๆ ได้คำตอบจากกูเกิ้ลให้ได้เร็ว และตรงใจมากที่สุด โดยกูเกิ้ลเค้าได้แนะนำวิธีในการใช้ search engine ของเค้าในการค้นหา ที่เป็นประโยชน์มากที่สุด เราจะมาดูกันว่ามีอะไรบ้าง </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKEKlkjGXJNEHiRHhXY42M-CO3TYZKyITcZLYlCszE1lxVhyphenhyphenpSoCsFF7rnefoWSGoBCQypWND-aYEFXRrMe7xvAsuFJhgu1GrGKX9v_gnsLYwZ4MzcfDaFEAVUx7xmZJUYX7TgMaFJ-i6k/s1600-h/image%5B22%5D.png"><img title="Google search shortcuts guide 1" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="278" alt="Google search shortcuts guide 1" src="http://lh6.ggpht.com/_000cgw7RCzE/TR6m0E0vPfI/AAAAAAAACdc/uVDT-pVJpXE/image_thumb%5B13%5D.png?imgmax=800" width="562" border="0" /></a> </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi00ZW7_4lNfH0JyaL5_sIXgEGJQNU6v_bU-g71yrBj9n0eBOmUpIfhWeokDpiRUkklFoXLs_IG49AsQFeTvGf82CXEVYtvLuHrpWbaonlZsjFbiXFYG8dk4HWMPYwK8fE7rbnRbdFzgKO5/s1600-h/image%5B23%5D.png"><img title="Google search shortcuts guide 2" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="352" alt="Google search shortcuts guide 2" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZV1_Q9SCGUM2LGHO3cDcWstyjXu7Mu0ehsHRlyzDxht9JIxFy5ZOke-UyDU6h-jx7SqJ5x1hyphenhyphenHm3DeNBv-kH6svdq9t58Q-WO7hq6PaSO6fzC0PzigMCcS4TfZmgevXxwWwL-qUGQFGxC/?imgmax=800" width="562" border="0" /></a> </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1pVNQ8hsFkjzRSl02HlQ0QouixuBwOGX3Pd8pGA3B47sq_5CbRsRasewy42Agywyh-zUglCMtyufKxgTsA8lH9_8mroDhjmzmy47jUQEzu8fG4tG47EJ8UREqa1-w-QxcY6kVD1tMsoQb/s1600-h/image%5B28%5D.png"><img title="Google search shortcuts guide 3" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="152" alt="Google search shortcuts guide 3" src="http://lh4.ggpht.com/_000cgw7RCzE/TR6m3wXW7dI/AAAAAAAACds/ngsCadqR-w0/image_thumb%5B17%5D.png?imgmax=800" width="562" border="0" /></a> </p> <p>ลองใช้บ่อยๆครับ แล้วเราก็จะจำได้เอง แล้วคุณก็จะค้นพบว่า การเรียนรู้มันไม่มีที่สิ้นสุดเลย จริงๆ </p> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com0tag:blogger.com,1999:blog-2824550586309826160.post-17974572822654610492010-10-31T19:02:00.001+07:002010-10-31T19:02:39.431+07:00ทำอย่างไรถึงจะเป็นโปรแกรมเมอร์มืออาชีพ (How to be a professional Programmer)<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:0px 0px 0px 0px;"><script type="text/javascript"> tweetmeme_source = 'Mecha_Bot'; </script> <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script><br /><br /></div><p><img style="display: inline; margin-left: 0px; margin-right: 0px" alt="The Programmer" align="left" src="http://creattica.com/uploaded-images/0007/3581/programmer_creattica_full.jpg" width="149" height="173" />ประเทศไทย กำลังก้าวเข้าสู่ยุค IT ยุคนี้ทุกคนจะต้องใช้อุปกร์ ทาง IT ไม่ว่าจะเป็น PDA โทรศัพท์มือถือ คอมพิวเตอร์ และอื่นๆ อีกมากมาย ตอนนี้ก็อยุ่ที่คุณเอง เลือกจะช่วยไห้ประเทศไทย เดินทางสุ่ยุคนี้ไปในทิศทางได มันก็มีอยู่ 2 ทิศทาง คือ ผู้ใช้ กับผู้สร้าง ถ้าเป็นผู้ใช้ นั่นก็หมาย ความว่า ประเทศไทย จะต้องจ่ายเงิน จากระเป๋า เพื่อซื้อ Software เงินก้จะใหลออกนอกประเทศ แต่ถ้าเป็นผู้สร้าง นี่หล่ะคือจุดสำคัญแห่งความยิ่งใหญ่ เราจะเป็นผู้รับเงินจากต่างประเทศ เอาหละตัสินใจว่าจะช่วยประเทศทางไหน ถ้าคุณเลือกเป็นผู้สร้าง คุณจะต้องเป็น Programmer และการที่คุณจะ ไปสู่จุดหมายนั้นคุณ จะต้องทำอย่างไรถึงจะเป็นโปรแกรมเมอร์มืออาชีพ ต้องทำให้ได้ 5 ข้อ ดังต่อ ไปนี้ครับ </p> <p>        1. สำรวจดูว่า ตัวเองมีคุณสมบัติเป็นโปรแกรมเมอร์หรือไม่ </p> <p>        2. ฝึกเขียนโปรแกรม </p> <p>        3. ค้นหาข้อมูลเพิ่มเติม </p> <p>        4. เผยแพร่ผลงาน </p> <p>        5. กระทำตามข้อ 1 - 4 อย่างสม่ำเสมอ </p> <p>        นี่ คือ 5 ข้อหลักของโปรแกรมเมอร์ ถ้าหากคุณทำได้ทั้ง 5 ข้อนี้ คุณก็จะได้เป็น โปรแกรมเมอร์ มืออาชีพ เลยทีเดียว เรามาดูรายละเอียดของแต่ละข้อกันเลยดีกว่าครับ ว่ามีราบละเอียดอย่างไรบ้าง </p> <p>สำรวจดูว่า ตัวเองมีคุณสมบัติเป็นโปรแกรมเมอร์หรือไม่ <br />        เรามาสำรวจดูตัวเราก่อนว่า เหมาะสมกับการเป็น โปรแกรมเมอร์ หรือไม่ ลองถามตัวเองดูสิว่า คุณต้องการเป้นโปรแกรมเมอร์ อย่างจริงจังหรือไม่ แล้วถ้าเราไม่ได้จบ คอมพิวเตอร์มาหล่ะ เราเป็นโปแกรมเมอร์ได้หรือไม่ ตรงนี้ ผมเองก็ขอตอบจากความรู้สึก สวนตัวเลยว่า ไม่จำเป็นครับ เราลองทบทวนและ มองโลกให้กว้างครับ ว่าโปรแกรมเมอร์ ที่เก่งๆ หลายคน ไม่ได้จบคอมพิวเตอร์มาโดยตรง และอีกหลายคนก็จบคอมพิวเตอร์มาโดยตรง แต่บางคนจบคอมพิวเตอร์มาโดยตรง ก็เขียนโปรแกรมไม่เป็น เป็นแค่ งูงูปลาปลา ก็ถมไป สาเหตุมาจากอะไรหรือครับ ใจเขาไม่รักกับการเป็น โปรแกรมเมอร์ไงครับ ดังนั้นวุติการศึกษาไม่ใช่อุปสรรค ในการเป็นโปรแกรมเมอร์ครับ </p> <p>        <img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://cache.gawker.com/assets/images/4/2009/12/500x_programmer.jpg" width="257" height="233" /></p> <p>สาเหตุทีผมบอกว่า วุฒิการศึกษา ไม่ใช่อุปสรรคต่อการเป็นโปรแกรมเมอร์ ก็เนื่องจาก ตอนเรายังเด็ก เราไม่ได้เลือกเรียนสายการเรียน ที่เรารักครับ แต่เราเลือกเรียน ตามเพื่อนบ้าง ตามพ่อแม่ผู้ปกครองต้องการบ้าง เพราะในช่วงวัยนั้น เรากำลังอยู่ในช่วงหัวเลี้ยวหัวต่อ มักตามเพื่อน หรือบางคนเรียนเพื่อตามใจพ่อแม่ แต่พอมาถึงวัยหนึ่ง เราก็มารู้ตัวว่าเราไม่ได้ชอบมันเลย ก็ทำให้เราเสียเวลาไปมากแล้ว จะกลับไปเรียน หรือก็ เสียค่าใช้จ่ายมาก แล้วแต่เหตุผล ของแต่ละคนไป ดังนั้นผมจึงขอ แนะนำว่า จงอย่ายึดติดกับค่านิยมของ คำว่าวุติการศึกษา ปริญญา ต่างๆ ทั้งสิ้นหากเราอยากเป็นโปรแกรมเมอร์ มันอยูที่เราต้องการจะเป็นโปรแกรมเมอร์หรือไม่ต่างหาก รักการเป็นโปรแกรมเมอร์ มากแค่ไหน ก็ทุ่มเทให้กับมันเต็มที่ </p> <p>        คุณมรความเพรียรพยายามหรือไม่ เพราะการเป็นโปรแกรมเมอร์ จพต้องมีความเพรียร ไม่ยอมแพ้ต่อปัญหา ต่างๆ เมื่อเขียนโปรแกรมแล้วติดปัญหา หากคุณเขียนโปรแกรมแล้วติดปัญหา คุณต้องพยายามแก้ไขปัญหาให้ได้ อย่ายอมแพ้เป็นอันขาด หากคุณยอมแพ้ คุณก็ไม่มีคุณสมบัติที่จะเป็นโปรแกรมเมอร์ ดังนั้น ความเพรียรพยายาม เป็นกติกาสำคัญข้อหนึ่งของโปรแกรมเมอร์เลยทีเดียว ต้องมีความคากเพียรไม่ย่อท้อต่อสิ่งได และจะยอมแพ้ก้ต่อเมื่อ หาหนทางจนสุดกู่แล้วก็ไม่พบ จึงจะยอมแพ้ แต่การยอมแพ้ ต้องยอมแพ้อย่าง โปรแกรมเมอร์ คือ ยอมแพ้ในเวลานั้น เท่านั้น แต่เก็บมันเอาไว้เป้นการบ้าน ค่อยคิดค่อยหาทางแก้ปัญหา มันอีกทีหลังไปเรื่อยๆ มันต้องทำได้สิ สักวันคุณก็จะแก้ปัญหาได้ หมายความว่า ถ้าแก้ปัญหาไม่ได้ ก็อย่าจมอยู่กับมัน แต่ พักมันเอาไว้ก่อนต่างหากหล่ะ สุดท้ายก็แปลว่า ไม่ยอมแพ้นั่นเอง </p> <p>        โปรแกรมเมอร์จะต้องคิด อย่างที่คนอื่นเขาไม่คิด ทำในสิ่งที่ตนอื่นเขาไม่ทำ หมายความว่า เราต้องคิด ในสิ่งที่คนอื่น คิดไม่ถึง ทำในสิ่งที่คนอื่นเขาทำไม่ได้ เพราะโปรแกรมเมอร์ จะต้องสร้างสรรค์ผลงานใหม่ๆ ออกมาเสมอ ดังนั้น หากเราคิดแต่จะทำตามคนอื่น ลอกเรียนแบบคนอื่นๆ อยู่ เราก็ไม่สามารถพัฒนาโปรแกรมของเราให้คนอื่น เขารู้สึก ประทับใจ และต้องการได้ เพราะอะไรก็ตามที่ง่ายๆ หลายคนก็มักจะทำกัน หาที่ไหนก็ได้ ราคาและคุณค่าเลยไม่มี แต่ถ้าอะไรที่ยากๆ หายาก ไมาค่อยมีคนทำ หรือไม่มีใตรทำเลย นั่นแหละครับ ของสิ่งนั้นมันจะมีค่า น่าจดจำและประทับใจ </p> <p>ฝึกเขียนโปรแกรม <br />        เมื่อคุณสำรวจตัวของคุณเองแล้วว่าคุณมีคุณสมบัติตามข้อ 1 คุณก็กระทำตามข้อ 2 ต่อไปนี้ แต่ถ้าคุณยังไม่มีคุณสมบัติตามข้อ 1 มีทางเลือกอยู่ 2 ทาง ครับ ทางที่ 1 คุณก็ควรจะเลิกลมความตั้งใจที่จะเป็นโปรแกรมเมอร์ ระดับมืออาชีพได้แล้วครับ เพราะคุณฝืนไปก็เสียเวลาเปล่า เพราะสิ่งที่คุณจะเจอเมื่อเป็นโปแกรมเมอร์ นั้นมันช่างเต้มไปด้วยสิ่งตื่นเต้น และปัญหามากมายเสียเหลือเกิน ล้มคเลิกความคิดเสียเถิด อย่าเป็นมันเลย โปแกรมเมอร์นี่ แต่ถ้าคุณยังมีคว่มต้องการที่จะเป็นโปรแกรมเมอร์มืออาชีพ อยู่หล่ะก็ ข้อที่ 2 ที่ปมจะแนะนำคือ กระทำตามข้อ 1 ให้สำเร็จครับ เมื่อคุณกระทำสำเร็จ ตุณก็มีคุณสมบัติ พร้อมที่จะเป็นโปรแกรมเมอร์ ดังนั้นเมื่อคุณ พร้อมตามคุณสมบัติแล้ว คุณจะต้องกระทำ ข้อนี้ครับ </p> <p>        ฝึกฝนตัวเองให้เก่งกล้าสามารถ ครับ โดยการฝึกเขียนโปแกรม แล้วจะเขียนโปแกรมภาษาอะไรดี นี่ไง ที่โปรแกรมเมอร์ หลายคนต่อหลายคนเจอปัญหา แล้วไปไม่ถึงฝัน เพราะทุดคนคิดแต่เพียงว่า อะไรที่ง่ายๆ นี่หล่ะ ทำตรงนี้หละ ถ้าคิอย่างนี้เหมะสมกับอาชีพอื่นครับไม่เหมาะสมอย่างยิ่งที่จเป็นโปรแกรมเมอร์ เพราะจะใช้คำว่า เริ่มต้นจากสิ่งที่ง่ายไปหายาก นั้นผิดครับ สำหรับการเป็นโปแกรมเมอร์ เพราะมันจะทำให้เรายึดติดและท้อถอยง่ายๆ เมือเจอปัญหา ดังนั้นคุณควรเลือกเรียนภาษา ที่ยากๆ ไว้ก่อน เพราะว่าภาษาคอมพิวเตอร์ อะไรก็ตามที่ยากๆ เขียนยาก ย่อมเข้าไกล้ภาษาเครื่องมากที่สุด เพราะการเขียนโปรแกรมนั้น เป็นการเขียนโปรแกรมเพื่อบอกให้คอมพิวเตอร์ ทำงานตามเรา ดังนั้น การเข้าถึงและเข้าไกล้ภาษาเครื่องมากเท่าไร ก็ยิ่งทำให้คอมพิวเตอร์ เข้าใจมากเท่านั้น </p> <p>        แล้วจะใช้ภาษา อะไรดี ขอแนะนำดังนี้ครับ ภาษาที่ ทีเครื่องมือ แบบ Visual ช่วยเยอะแยะไปหมด ย่อมมีขีดจำกัดของมัน ภาษาที่มีเครื่องมือแบบ Visual น้อย ก็จะลดขีดจำกัดลงได้ครับ ดังนั้นขอแนะนำภาษา จากยากไปหาง่าย เพียงบางตัวดังนี้ครับ Assembly, C++, C++ Builder, C# Builder, Visual C++, Visual C#, Delphi7,Pascal, Delphi8 for .Net, Visual Basic.Net, Visual Basic เป็นต้น จะสังเกตุเห็นว่า Assembly เป็นภาษาที่เข้าไกล้ภาษาเครื่อง มากที่สุด เขียนยาก ไม่มี Tools ช่วย ต่อมา เป็น C++ เขียนง่ายขึ้นมาหน่อย แต่ไม่มี Tools ช่วย ต่อมา เป็น C++ Builder ก็เขียนว่าย ขึ้นมาอีกนิด มี Tools ช่วยพอประมาณ ต่อมาเป็น C# Builder ก็มี Tools ช่วยมากมาก เขียนง่ายเข้าไปอีกระดับ จนสุดท้าย Visual Basic โอ้พระเจ้า Tools เพียบ เขียนง่ายมากๆ แค่ เขี่ยๆ ก็เสร็จแล้วครับ งายจริงๆ ไม่ต้องใช้สมองในการคิดเลย ช่วยให้เราเบาสมองไปได้เยอะ และทำให้สมองเราไม่ได้ใช้งาน เป็นใงครับ เมือสมองไม่ได้ใช้งาน ก็สมองตื้อสิครับ </p> <p>        ทีนี้ ก็เป็นอันว่า เลือกเอาภาษาที่คุณชอบ แต่ อย่าทิ้งภาษาอื่นนะครับ เพราะภาษา ง่ายๆ นี้ก็ยังช่วยเราได้เยอะเช่น ความต้องการของโปรแกรมแบบ ง่ายๆ ก็ใฝช้ภาษาง่ายๆ เขียน ทุ่นเวลาดี ดังนั้น ขอแนะนำให้ฝึกทุกตัว แต่ ยึดภาษายากๆ เป็นหลักไว้ 1 ตัว เพื่อสร้างผลงานที่ยิ่งใหญ่ คุณควรฝึกเขียนโปรแกรมอย่าง สม่ำเสมอ ครับ จะได้คล่อง และควรเริ่มฝึกจากถาษา ยากๆ เป็นอันดับแรก ฝึกฝนจนชำนาญ อย่าละทิ้งนะครับ </p> <p>ค้นหาข้อมูลเพิ่มเติม <br />        หลังจากที่คุณผ่าน ข้อ 1 และข้อ 2 มาแล้ว ข้อ 3 นี้เป็นข้อที่คุณขาดไม่ได้เลยทีเดียว เนื่องจากการที่จะเป็นโปรแกรมเมอร์ ระดับมืออาชีพนั้น ก็คือการค้นหาข้อมูลเพิ่มเติม อยู่เสมอ โปรแกรมเมอร์ จะต้องเป็นคนที่ไม่หยุดนิ่ง จะต้องเพิ่มพูนความรู้ใหม่ๆ อยู่ตลอดเวลา ดังนั้นหากเราหยุดนิ่ง เราจะตามโลกไม่ทัน เพราะเทคโนโลยีทุกวันนี้ ก้าวไกลและรวดเร็ว เสียเหลือเกิน หากเราหยุดเดินเพียงก้าวเดียว เราอาจตามโลกไม่ทัน อีกหลายพันก้าว เลยทีเดียว ดังนั้นการค้นหาข้อมูลเพิ่มเติม จึงเป็นส่วนสำคัญอย่างยิ่ง เพราะในโลกนี้ ไม่มีใคร เก่งที่สุด และเก่งไปหมดทุกอย่าง ดังนั้น ความรู้ เปรียบดังอาวุธ เอาไว้ต่อสู้กับความไม่รู้ ข้อมูลคือมูลเหตุแห่งความรู้ เราจงค้นหาข้อมูล มาเพิ่มเติมความรู้ให้กับตัวเราเองเถิด </p> <p>        การที่เราค้นหาข้อมูลเพิ่มเติมอยู่เสมอนั้น ไม่ใช่แค่เป็นการเพิ่มพูนความรุ้เท่านั้น แต่ยังช่วยแก้ไขปัญหา เกี่ยวกับการเขียนโปรแกรมของเราด้วย เนื่องจากการเขียนโปรแกรมทุกครั้ง เราขะต้องติดปัญหาเสมอ รับรองได้ ไม่มีโปรแกรมเมอร์คนใด ที่เขียนโปรแกรมโดยไม่มีติดปัญหาเลย จะต้องมี ดังนั้น เราจึงต้องค้นหาข้อมูลเข้ามาช่วยแก้ไข ดังที่ว่า ไม่มีใครเก่งไปทุกอย่าง เราเก่งจุดหนึ่ง อีกคนเก่งจุดหนึ่ง เมื่อนำมารวมกัน ก็จะขจัดความไม่เก่ง ของแต่ละคนได้ ก็จะขจัดปัญหาได้ โดยการแลกเปลี่ยน ความรู้ซึ่งกันและกัน ปัญหาต่างที่พบก็จะคลี่คลายลงได้ แต่ถ้ามัวแต่คิดอยู่คนเดียว หัวของคุณอาจระเบิดตูม ขึ้นมาก็ได้ จริงไหมครับ </p> <p>        นอกจากเป็นการช่วยแก้ปัญหาในการเขียนโปรแกรมแล้ว การคนหาข้อมูลเพิ่มเติมอยู่เสมอ ยังช่วยให้เรารุ้ความต้องการของโลกปัจจบัน ว่าต้องการอะไร ขาดอะไร เราสามารถนำความต้องการเหล่านั้น มาพัฒนาเป็นโปรแกรมคอมพิวเตอร์ ด้วยฝีมือของเราเอง ออกสู่ท้องตลาดได้ หากเราผลิตผลงานที่ไม่ตรงกับความต้องการของมนุษย์ แน่นอน ผลงานนั้น ย่อมไม่มีค่า และไม่มีความหมายใดๆ เลย เพราะความรู้ จะนำเราไปสู่โลกแห่งความจริง และมองออกถึงโลกอนาคต เพราะคุณจะกลายเป้นคนที่รู้จักวิเคราะห์ หาเหตุ และ ผล แห่งความเป็นไป เราจึงรู้ได้ว่า จะเกิดอะไรขึ้น และ จะต้องทำอะไรต่อไป เมื่อเรารู้ เราก็ย่อมจะผลิต ผลงานการเขียนโปรแกรมที่มีคุณภาพ ออกสู่ท้องตลาด อย่างตรงจุดประสงค์ และกลุ่มเป้าหมายได้ </p> <p>        แล้ว... แหล่งค้นคว้าข้อมูลหล่ะ อยู่ที่ไหน ตรงนี้ มีเต็มไปหมดเลยครับ อันได้แก่ หนังสือวารสาร ต่างๆ หนังสือวิชาเฉพาะด้าน มากมายเต็มไปหมดเลย ทางรายการตาม สถาณีวิทยุ โทรทัศน์ ก็มี สารคดีต่างๆ แม้กระทั่งสื่อ CD-ROM ต่างๆ และที่ค้นหาข้อมูล ได้อย่างมหาศาล ก็คือ Web site ใงครับ เป็นแหล่งค้นหาข้อมูลที่ยิ่งใหญ่ เหมือนกัน และโดยมากแล้ว จะเป็นข้อมูลที่มีการ Update บ่อย และเป้นข้อมูล Share จากประสบการณ์ ของกลุ่ม โปรแกรมเมอร์ ด้วยกัน ดังนั้นเราก็รู้แล้วว่า แหล่งจ้อมูลมีมากมาย สุดแล้วแต่ที่เราจะหาได้ ใครชอบแบบใหน ก็เอาอย่างนั้นครับ แต่ผมว่า ค้นหาข้อมูลทุกรูปแบบ ครับดีกว่าหาข้อมูลจากแหล่งเดียว จะได้นำข้อมูลมาเปรียบเทียบกัน วิธีการเลือกซื้อหนังสือ ก็เหมือนกัน พยายาม เลือกซื้หนังสือที่เหมาะสม และน่าเชื่อถือ โดยเฉพาะ หนังสือแปล ที่แปลมาจากหนังสือภาษาต่างประเทศ ต้องดุให้แน่ใจว่า ผู้แปล หนังสือเล่มนั้น ต้องเป็น โปรแกรมเมอร์ ไม่ใช่นักแปลภาษาอังกฤษ เพราะ ศัพท์ บางคำ ที่เป็นภาษาของโปรแกรมเมอร์ ไม่ได้มีความหมาย ตรงกับความหมาย ของนักแปลภาษาทั่วไป ผมเห็นหลาย ต่อหลายเล่ม ที่แปลผิด น่าสงสาร แม้กระทั่ง ครูผู้สอนเองยังนำเอาสิ่งผิดๆ นั้นไปสอนนักเรียน ต่ออีก แล้วเมื่อไร เราจะได้โปรแกรมเมอร์ที่รุ้จริง อย่างที่ผมเห็นมา การแปล เรื่อง Object และ Class ดันไปแปลว่า Class คือพิมพ์เขียว พิมพ์เขียวอะไรกัน มั่วกันไปใหญ่ นักเรียน ตามมหาวิทยาลัย ก็นำเอาความรู้ที่ผิดๆ นัน มาใช้กัน จนชั่วลูกชั่วหลาน แล้วเมื่อไร คนไทยจะมีโปรแกรมเมอร์ระดับ มืออาชีพ เก่งๆ กับเขาสักที อย่างนี้แหละ ที่ผมจะบอกว่า อย่าเชื่อหนังสือมากนัก จงเชื่อโปรแกรมเมอร์ดีกว่า ครับ แล้วเราจะได้ไม่เสียดาย เงินที่ซื้อหนังสือ จะซื้อที ต้องได้หนังสือดีมีคุณค่า จริงใหมครับ </p> <p>เผยแพร่ผลงาน <br />        เมื่อเรามีผลงานของเราออกมาแล้ว ขั้นตอนต่อไปก็คือ เผยแพร่ผลงาน ออกสู่ สาธานณะชน เพื่อให้คนอื่นได้เห็น ได้สัมผัสกับผลงานของเรา หากเราไม่นำผลานของเราออกเผยแพร่สู่สายตา ของคนอื่น แล้วเขาจะรู้ไหมครับว่าเราเขียนโปรแกรมเป็น มีฝีมือขนาดไหน การเผยแพร่ผลงานนี่แหละ มีประโยชน์ที่สุด เพราะการที่เรามีผลงานเผยแพร่ออกไป ให้หลายคนเห็น หลายคนรู้ ต่อไปคุณก็จะมีชื่อเสียง มีหลายคนรู้จัก อีกไม่นาน งานและเงิน จะมาหาคุณเองโดยที่คุณแทบตั้งตัวไม่ติดเลยทีเดียว เพราะอะไรหรือครับ ก็เขาเชื่อมั่นในตัวคุณแล้วใงครับ จากผลงานที่คุณได้ เผยแพร่ออกไป อย่างโบราณเขาว่า สวรรค์มีตา ฟ้ามีใจ ใงครับ </p> <p>        แล้วเราจะเผยแพร่ผลงานอย่างไร ไม่ยากครับ วิธีแรก ง่ายที่สุดเลยครับ ส่งตัวอย่างโปรแกรมให้กลุ่มเป้าหมายไปทดลองใช้ วิธีนีได้ผลดีทีเดียวครับ สำหรับคนที่กว้างขวาง รุ้จักคนเยอะแยะไปหมด ก็ทำได้ง่าย แล้วคนที่ไม่ค่อยรู้จักใครหล่ะ ก็มีวิธีเช่นกันครับ ก็โดยการเผยแพร่ผลงานผ่าน Web site ใงครับ เช่นเข้าไปช่วยตอบกระทู้คำถาม ของกลุ่ม โปรแกรมเมอร์ต่างๆ ตาม Web board หรือ Forum Board ต่างๆ เมื่อเราเข้าไปช่วยตอบ ช่วยแก้ไขปัญหาต่างๆ ได้ นั่นแหละครับ หมายความว่าคุณได้สร้างผลวานออกไปแล้ว และถ้าหาก อยากเผยแพร่ผลงานอะไรออกไป แต่ไม่มีใครถามสักที ก็ตังคำถามเองเสียเลย และคอยดูว่าจะมีคนสนใจคำถามนั้นหรือไม่ พอมีคนตอบ มา เราก็ไปเสริมสักหน่อย หรืออีกอย่าง เราก็ตังกระทู้เป็น เนื้อหาไปเลยไม่ใช้คำถาม เป็นบทความบทความหนึ่งไปเลย นี่ก็นับเป็นการเผยแพร่ ผลงานอีกวิธีหนึ่ง และค่อนข้างได้ผลดีทีเดียว ส่วนอีกวิธี ก็คือ เผยแพร่ตัวอย่าง Source Code ไปเลยครับ วิธีนี้ได้ผลดีเยี่ยมเลยทีเดียวครับ เพราะเป็นทั้ง บทความ และมี Source Code ตัวอย่างให้ Download อีกต่างหาก วิธีนี้รับรองประทับใจหลายคนเลยทีเดียวครับ </p> <p>        หลายคนก็บอกว่า จะลงเนื้อหา บทความได้ที่ไหน เพราะ Web board หรือ Forum board หลายที่ จำกัดจำนวนตัวอักษรในการลง ทำให้ลงเนื้อหาได้ไม่หมด เอาหล่ะตรงนี้ ผมก็เห็นใจ ผมเลยตัดสินใจเด็ดขาด เพื่อเป็นสื่อกลางนั้น โดยการปรับปรุง Forum board ขึ้นหมาใหม่ ไม่จำกัดตัวอักษรใน และสามารแทรกรูปภาพในเนื้อหาได้ เป็นลักษณะ Visual HTML Editor เพื่อให้ทุกคนสามารถเผยแพรผลงานออกไป พร้อมทั้งไปนั้งหลังขดหลังงอ สร้าง Code Develop ขึ้นมาเพื่อให้ทุกคนสามาถ ที่จะส่งบทความพร้อม Source Code เพื่อเผยแพร่เช่นกัน หน้าตาคล้ายกัน ที่นี่ จะให้ความสำคัญและ สนับสนุนทุกคนครับ </p> <p>กระทำตามข้อ 1 - 4 อย่างสม่ำเสมอ <br />        ทำไมเราต้องทำตามข้อ 1 - 4 อย่างสม่ำเสมอ ก็เพราะว่า เราจะได้ฝึกฝน อยุ่ตลอดเวลา เพราะการฝึก ทำให้เราแกร่ง และเราก็จะได้เป็นโปรแกรมเมอร์ ระดับมืออาชีพใงครับ ถ้าเราขาดการฝึกฝน เราก็จะอยู่กับที่ ก้าวไม่ทันโลก แล้วก็ไม่มีโอกาส ได้เป็นมืออาชีพดังใจหวังไว้ นะสิครับ </p> <p>        สุดท้ายนี้ ก็ขอให้ทุกคนเป้นโปรแกรมเมอร์ สมใจครับ หากต้องการปรึกษาผมโดยตรง ก็ติดต่อมาได้ครับ ....Webmaster</p> <p align="right"><em>…………. ที่มา www.thai-programmer.com</em></p> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com2tag:blogger.com,1999:blog-2824550586309826160.post-33325191366008287352010-10-19T22:28:00.001+07:002010-10-19T22:28:12.691+07:00ติดตั้ง NetBeans 6.9.1ให้แปลภาษา C<p><img style="display: inline; margin-left: 0px; margin-right: 0px" title="NetBeans 6.9.1 Overview" alt="NetBeans 6.9.1 Overview" align="left" src="http://netbeans.org/images_www/v6/8/screenshots/cpp-editor.png" width="224" height="182" />      หลังจากที่ได้ชวนเพื่อนๆ ย้อนกลับมาเริ่มศึกษาภาษาซี แบบจริงๆจังๆ ไม่เอาแค่หยุด printf ธรรมดาๆ แล้ว ผมก็ได้มองหา IDE ดีๆสักตัว เอาไว้ลอง complie ภาษาซี จริงๆก็มีอยู่หลายตัวมาก ทั้งเก่าและใหม่  แต่ด้วยความที่ผมอยากได้ IDE ที่ออกมาใหม่ๆ แล้วก็ฟรีด้วย ก็เลยมาลงเอยที่ IDE ของ NetBeans 6.9.1 ซึ่งเป็น IDE ที่นับว่าน่าใช้ตัวหนึ่ง ซึ่งเจ้าตัว NetBeans นี้สามารถที่จะใช้เขียนโปรแกรมได้หลากหลายภาษาเหมือนกัน ซึ่งขึ้นอยู่กับว่าที่เครื่องของเราลงตัวแปลภาษาตัวไหนไว้บ้าง</p> <p>วันนี้ เราจะมาติดตั้ง NetBeans 6.9.1 กับตัว complier Cygwin เพื่อเอามาแปลภาษาซี </p> <p>อันดับแรก ก็ไปดาวน์โหลด NetBeans กันก่อนเลยครับ ขนาดไฟล์ก็ขึ้นอยู่กับว่า เพื่อนๆจะเอา NetBeans มาใช้ทำ IDE ภาษาอะไรบ้าง ในที่นี้ผมเลือกเอา C/C++ ก็พอ (เพราะเราจะเอามาทดสอบภาษาซี ก็พอ) </p> <p><a href="http://lh6.ggpht.com/_000cgw7RCzE/TL24jHREbhI/AAAAAAAACYw/ng_srRJn9ig/s1600-h/image%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="NetBeans 6.9.1 Install and configuration" border="0" alt="NetBeans 6.9.1 Install and configuration" src="http://lh5.ggpht.com/_000cgw7RCzE/TL24kHu3-kI/AAAAAAAACY0/eaptzonJa4I/image_thumb%5B1%5D.png?imgmax=800" width="526" height="241" /></a> </p> <p><a href="http://netbeans.org/downloads/index.html" rel="nofollow" target="_blank"><img style="display: block; float: none; margin-left: auto; margin-right: auto" alt="download NetBeans" src="http://netbeans.org/images_www/v6/dl-nb-ide.gif" /></a></p> <p></p> <p>แล้วก็ติดตั้งไปตามปกติ ที่เราเคยชินนั่นแหละครับ ตรงนี้ไม่มีอะไรพิเศษ หลังจากติดตั้งแล้ว มันจะยังไม่เข้าใจภาษาซี ครับ ให้เราติดตั้ง complier ภาษาซีก่อน ในที่นี้ผมเลือก Cygwin ครับ เพื่อเป็นตัวแปลภาษาซี </p> <p>เวอร์ชั่น ที่ผมใช้ติดตั้ง <tt>gcc </tt>3.4.4  Cygwin C compiler โดยไปที่เว็บของ Cygwin ก่อนครับ  <a href="http://cygwin.com/" rel="nofollow" target="_blank">คลิก</a> หรือเลือกไฟล์ติดตั้งเลยก้ได้</p> <p><a href="http://cygwin.com/setup.exe" rel="nofollow" target="_blank"><img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Install Cygwin!" alt="Install Cygwin!" src="http://cygwin.com/cygwin-icon.gif" /></a></p> <p>ดาวน์โหลดไฟล์ setup.exe มาแล้วก็ดับเบิ้ลคลิก เข้าสู่การติดตั้งเลยครับ </p> <p><a href="http://lh3.ggpht.com/_000cgw7RCzE/TL24lF0dSII/AAAAAAAACY4/M1CITgn-FFs/s1600-h/image%5B7%5D.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Cygwin Install and configuration" border="0" alt="Cygwin Install and configuration" src="http://lh6.ggpht.com/_000cgw7RCzE/TL24nepLSqI/AAAAAAAACY8/4YzILeSrOA8/image_thumb%5B3%5D.png?imgmax=800" width="389" height="291" /></a></p> <p align="center">กด Next  ไปเลยครับ</p> <p><a href="http://lh4.ggpht.com/_000cgw7RCzE/TL24oFLu7tI/AAAAAAAACZA/Jkcqaj5o5hI/s1600-h/image%5B51%5D.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Cygwin Install and configuration" border="0" alt="Cygwin Install and configuration" src="http://lh5.ggpht.com/_000cgw7RCzE/TL24pBkf-0I/AAAAAAAACZE/09VOc8R38cs/image_thumb%5B27%5D.png?imgmax=800" width="454" height="342" /></a>  ในที่นี้ผมเลือกดาวน์โหลดไฟล์ install มาไว้ที่เครื่องเราด้วย แล้วก็ Install ด้วย ก็ให้เลือก Install from internet  </p> <p align="center"><a href="http://lh4.ggpht.com/_000cgw7RCzE/TL24plu8a2I/AAAAAAAACZI/zivF-RLr96M/s1600-h/image%5B47%5D.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Cygwin Install and configuration" border="0" alt="Cygwin Install and configuration" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoNf5Ig45iAgNMu65lG7J4smAe4YzYCubtKclcBO1DEqVnfEzmXxZD5iJhcEyuajWmBA54y8hUbLjiQ0zxMkBBuhFfMDK4oyosmFpdXLg16y5_NesbE82UkJlQwSjfxF5LrCYAv0WIHNCD/?imgmax=800" width="438" height="336" /></a> ให้โปรแกรมติดตั้งที่ไหน</p> <p align="center"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-aC_oGNNxC5hUoczby13eyC7Z7faLFN4Yny1hUzWcN_MuUSUuj1Ur5QgTfiZ006wN0uOem04u50M2QudObD6Nwe9ghYDcKhUenbHS5S-wIDFyfWbBtgb0fGNm6iKaJB4LjJ2UmUUyenAT/s1600-h/image%5B21%5D.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Cygwin Install and configuration" border="0" alt="Cygwin Install and configuration" src="http://lh6.ggpht.com/_000cgw7RCzE/TL24sa37ttI/AAAAAAAACZU/iFYv9FQSvKc/image_thumb%5B11%5D.png?imgmax=800" width="413" height="312" /></a> เลือกโฟล์เดอร์ที่จะเก็บไฟล์ไว้ install วันหลัง</p> <p align="center"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSmGnXtEKgtf4kmOzG4D3A2GOSjuUc4aj1fr3BULo2kBfasmDHFfXGfz_7-pJRV8GPrYqBpkMJjqCFlVvPqTPVIDQQnA14FOTlQZzWs9ns0wVzJaEyN2mKeeupwiQb-v_RQ_3OOievn0Y2/s1600-h/image%5B25%5D.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Cygwin Install and configuration" border="0" alt="Cygwin Install and configuration" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBqhprMx19N9yd2MvJcW3-wXkY1tylk7259L84gktSRHE6V2_J4Bsd63F2vH_xC2XwLHGX3Uox-x2PYFEuCKHXn4IiUq2gLzRrMBsAOMw39afgvOUqsjoGZy4QIXsjiRyfMzB3rf0tm466/?imgmax=800" width="438" height="331" /></a> Next ไปเลยครับ</p> <p><a href="http://lh6.ggpht.com/_000cgw7RCzE/TL24u3id8yI/AAAAAAAACZk/qQU1o3hwomM/s1600-h/image%5B29%5D.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Cygwin Install and configuration" border="0" alt="Cygwin Install and configuration" src="http://lh3.ggpht.com/_000cgw7RCzE/TL24vpF7veI/AAAAAAAACZo/V-dZ6XyiQRo/image_thumb%5B15%5D.png?imgmax=800" width="433" height="324" /></a> </p> <p>รอจนกว่าจะติดต่อสำเร็จ จนมาถึงขั้นตอน Select Packages ให้เราเลือกเฉพาะ Packages ที่จำเป็น แค่ </p> <p>gcc-core: C compiler <br />gcc-g++: C++ compiler <br />gdb: The GNU Debugger <br />make: the GNU version of the 'make' utility</p> <p>โดยพิมพ์ชื่อเข้าไปที่ช่อง Search แล้วติกเลือกหน้าช่องที่เราต้องการเท่านั้นครับ ตัวอื่นไท่ต้องเอามา เดี๋ยวมันจะนานซะเปล่าๆ</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDGEF3DiG3XJzVMIzrT_-KLxrwXUN704U5o2KKPWTIHxBYGVxExHl2jMAv879Atm46k-Yuoor1zY00uRSpe9OTu0JjsOi3_pobfx8ETXd4EmMiqvj9skdjPSnYQjr5xgy4Znwo5b7SoJ4I/s1600-h/image%5B38%5D.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Cygwin Install and configuration" border="0" alt="Cygwin Install and configuration" src="http://lh5.ggpht.com/_000cgw7RCzE/TL24xTCKWUI/AAAAAAAACZw/w1G0VEZx_sc/image_thumb%5B20%5D.png?imgmax=800" width="362" height="171" /></a> <a href="http://lh6.ggpht.com/_000cgw7RCzE/TL24yWCPlaI/AAAAAAAACZ0/Rq0YIeO2ZMY/s1600-h/image%5B37%5D.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Cygwin Install and configuration" border="0" alt="Cygwin Install and configuration" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPeihzZmtCwUBEzdrBKWYFrOvmDOzpUcQmBx6WvkjSLf0JN7GXYc_xI4ZR1xbaizSxZWmF3KqADw_n0BL1liC8dsSslk87cfGGK1F37KPsACg0dgGJV09oquvtKH4cgOI87W6emNM_wmQ7/?imgmax=800" width="423" height="313" /></a> <a href="http://lh4.ggpht.com/_000cgw7RCzE/TL240rWUu4I/AAAAAAAACZ8/2g8ioZ_UpDk/s1600-h/image%5B42%5D.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Cygwin Install and configuration" border="0" alt="Cygwin Install and configuration" src="http://lh6.ggpht.com/_000cgw7RCzE/TL241pKWbII/AAAAAAAACaA/XxJ75Drukro/image_thumb%5B22%5D.png?imgmax=800" width="406" height="302" /></a> </p> <p>หลังจากติดตั้งเสร็จแล้ว เราต้องปรับแต่ง Path ของ windows ให้มองเห็นตัวแปลภาษาซีของเราซะก่อน ให้ไปที่ </p> <p>Settings > Control Panel > Performance and Maintenance > System <br />แล้วเลือกแท๊ป Advance แล้วเลือก Environment Variables. ให้ใส่ค่า C:\cygwin\bin; ต่อเข้าไป</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjV2W-iUoYoB9Xv9kHhtPt6G_MUfyluy92MUNgm5vJmmPKvtj5D2TzveKJq-k6J51wu7AJFlAlGkX03OgTtk-KdMLNUqdomEa7Mo_XNZkulndhRBJTSsAyRyMinXqaUPRgdgqzPFv_1U-2H/s1600-h/image%5B55%5D.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="NetBeans 6.9.1 Install and configuration" border="0" alt="NetBeans 6.9.1 Install and configuration" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiL649kGYYDeap3Mrz0FANHvMnhaWpbhLAcVMhaGObD8eM60s-vbYR_mZ0VBhyphenhyphenIs511Ixun_tE4fnTaFPU0yOYVhIIKG4plJJU8FynR0bn4FFKk6BHCzNorIMK5qFwsJ9LBzW2ERSqLHHYC/?imgmax=800" width="340" height="382" /></a> </p> <p>แล้วคลิก OK ตรงนี้ไม่ยาก เพื่อนๆน่าจะทำกันได้ ไม่มีปัญหานะครับ แล้วก็ restart สักครั้ง เพื่อความเป็นสิริมงคล (เกี่ยวไหมเนี้ย –_-“ )</p> <p>ทดลองเขียนโปรเจคแรกกันเลย</p> <p><a href="http://lh6.ggpht.com/_000cgw7RCzE/TL245Xp33NI/AAAAAAAACaM/-EfaeaDC75U/s1600-h/image%5B59%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="NetBeans 6.9.1 Install and configuration" border="0" alt="NetBeans 6.9.1 Install and configuration" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLVWuW-JZwxGfya-ARcqtPXfeZHiLPFAZS5rKs5gPwEdtwU1LxWONNEVGIA-AfJj-ZH8q1emHcH5b4b13NkJTJCmjCF8hufaVgTOXrp2sOrCXe0Tx-4l-9Wf4WbVTkhN82meyE2m4ebjHK/?imgmax=800" width="482" height="307" /></a> </p> <p align="center">เลือก C/C++ Application</p> <p><a href="http://lh4.ggpht.com/_000cgw7RCzE/TL2474CDAmI/AAAAAAAACaU/Jg7nok4miWE/s1600-h/image%5B70%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="NetBeans 6.9.1 Install and configuration" border="0" alt="NetBeans 6.9.1 Install and configuration" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwMQMTQx0F9Y5N4uBOkh8Qz0qYfFncFBHN5alTbzxywHqiR606iKm8WdhCqLTMfUXwddk-9XrDqemaaPH93GJ2cyitWPCRRda__RHvQGrhNLIzrAwLigLe0jWxjsAalo2_rGDWfsms5DxO/?imgmax=800" width="475" height="354" /></a></p> <p align="center">เลือก เอารูปแบบภาษา C ตามรูปนะครับ พร้อมกันนั้น เค้าจะสร้าง main ไฟล์ให้ด้วย</p> <p> <a href="http://lh6.ggpht.com/_000cgw7RCzE/TL24-Cz46wI/AAAAAAAACac/3-cfH407tDk/s1600-h/image%5B68%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="NetBeans 6.9.1 Install and configuration" border="0" alt="NetBeans 6.9.1 Install and configuration" src="http://lh4.ggpht.com/_000cgw7RCzE/TL24_XOFd4I/AAAAAAAACag/4jcRmDuy2Ks/image_thumb%5B36%5D.png?imgmax=800" width="481" height="307" /></a></p> <p align="center">ไปที่ source file แล้วคลิกเลือก main.c มาแก้ไข เพิ่มเติม</p> <p> <img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="NetBeans 6.9.1 Install and configuration" border="0" alt="NetBeans 6.9.1 Install and configuration" src="http://lh6.ggpht.com/_000cgw7RCzE/TL25AXgjO9I/AAAAAAAACak/UE4X_GDXEaw/image_thumb%5B40%5D.png?imgmax=800" width="482" height="304" /></p> <p align="center">พิมพ์โค๊ดสุดคลาสิคเข้าไป printf(“Hello NeBeans 6.9.1, I love you.\n”); </p> <p align="center">เสร็จแล้วกดปุ่มสามเหลี่ยมสีเขียวด้านบนเพื่อทดสอบ Run ดู ถ้าไม่มีอะไรผิดพลาดจะปรากฏ cmd ดังภาพ</p> <p><a href="http://lh5.ggpht.com/_000cgw7RCzE/TL25BzlMDdI/AAAAAAAACao/o4YGyU9KOnE/s1600-h/image%5B79%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="NetBeans 6.9.1 Install and configuration" border="0" alt="NetBeans 6.9.1 Install and configuration" src="http://lh3.ggpht.com/_000cgw7RCzE/TL25C-SWHVI/AAAAAAAACas/mo9pc1QF8es/image_thumb%5B43%5D.png?imgmax=800" width="516" height="339" /></a></p> <p align="center">คุณทำสำเร็จแล้ว ต่อไปก็ลุยกันไปเลย แล้วขอให้สนุกกับการเรียนรู้ภาษาซี นะครับ </p> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com2tag:blogger.com,1999:blog-2824550586309826160.post-82689274686184168692010-09-29T19:49:00.001+07:002010-09-29T20:08:59.320+07:00Back to (for) Future ย้อนเวลาหา C อีกครั้ง<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:0px 0px 0px 0px;"><script type="text/javascript"> </script> <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script><br /><br /></div><p><img title="ภาษาซี C language" style="display: inline; margin-left: 0px; margin-right: 0px" height="246" alt="ภาษาซี C language" src="http://runningwithtweezers.typepad.com/runningwithtweezers/images/2008/07/06/c.jpg" width="254" align="left" />ห่างหายวงการไปนาน ช่วงนี้ผมยุ่งจริงๆ พยายามจะมาเขียนบทความอัพเดทบล๊อก แต่ก็หาเวลาไม่ค่อยได้ ช่วงเวลาที่หายไป ผมกำลังเมามันส์กับไมโครคอลโทรลเลอร์อยู่ แล้วกำลังสร้างบล๊อกเพิ่มด้วย ก็กะว่าจะเอาไว้เขียนเรื่องเกี่ยวกับไมโครคอลโทรลเลอร์หน่ะครับ รอติดตามก็แล้วกัน </p> <p>พอพูดถึงเรื่องไมโครคอลโทรลเลอร์ ก็ต้องพูดถึง complier ที่ใช้ในการสสร้าง hex ไฟล์ เพื่อสั่งให้ไมโครคอลโทรลเลอร์ของเราทำงานตามฟังก์ชั่นที่เราต้องการ หากม่นับภาษาแอสแซมบลีแล้ว  ผมคิดว่าภาษาซี คือภาษาที่มความเร็วมากที่สุด ในการประมวลผล และนอกจากนี้ ภาษาซี ยังเป็นภาษาต้นแบบของแทบจะทุกภาษาที่เกิดขึ้นมาทีหลัง นับได้ว่าเป็นรากฐานของทุกภาษาเลยก็ว่าได้ หากเราเข้าใจภาษาซีแล้ว ก็แทบจะพูดได้ว่า คุณเข้าใจภาษาอื่นๆไปแล้ว เกินครึ่งหรือแทบจะทั้งหมด</p> <p>ช่วงที่หายไป ผมก็กำลังศึกษาภาษาซี ของแต่ละค่าย จริงๆภาษาซีหลักๆ เค้าอ้างอิงตามมาตรฐาน ANSI C อยู่แล้ว แต่ว่าถ้าเป็นภาษาซี ที่เป็น complier แล้ว ของแต่ละค่ายก็จะแตกต่างกันออกไปนิดหน่อย แต่หลักๆแล้ว ก็ยังอ้างอิงกับ ANSI C อยู่ดี </p> <p><img title="C Complier" style="display: block; float: none; margin-left: auto; margin-right: auto" alt="C Complier" src="http://static.howstuffworks.com/gif/c-compile.gif" /></p> <p>เป็นเรื่องน่าตลกที่ผมเขียนภาษา PHP ได้ก่อน ก่อนที่ผมจะเขียนภาษาซีได้เสียอีก ทั้งๆที่ ภาษา PHP นั้น ก็มีต้นกำเนิดมาจากภาษาซี เหมือนกัน แต่ PHP  นั้นอ่อนตัว ไม่ค่อยเข้มงวดเหมือนภาษาซี เช่น ไม่ต้องมีการประกาศตัวแปร ก่อนนำไปใช้งานเหมือนภาษาซี พอผมลองได้มาจับภาษาซีแล้ว ทำให้ผมรู้ตัวเลยทันทีว่า PHP ที่ผมเขียนนั้น มันช่างดูและเทะ อะไรอย่างนี้ บางจุดเรามักง่ายมากๆ Bug เพียบ  แต่นั้นก็เป็นไปตามประสาคนที่เรียนรู้ด้วยตัวเอง มันย่อมมีจุดบกพร่องอยู่ในตัวมันเสมอ </p> <p>ถ้าคุณเป็นคนนึง ที่คิดจะหันมาเล่นทางไมโครคอลโทรลเลอร์ แล้วหล่ะกัน ผมขอแนะนำ จับภาษาซีให้แน่นๆ อย่างหยุดยั้งอยู่เพียงแค่การ printf ได้เท่านั้น ในโลกของไมโครคอลโทรลเลอร์มันมีอะไรที่มากกว่านั้น ไม่ว่าจะเป็นการกำหนดค่าตัวแปรให้เหมาะสมกับตัวเลขที่คำนวณได้ การใช้ Macro การใช้ pointer การจัดการกับข้อมูลที่เป็นตัวอักษร การใช้ตัวแปรแบบ enum และ struct  คุณต้องเอาให้คล่องเลย ไม่งั้นตันแน่ๆ ต้องย้อนกลับมาเหมือนผมแน่ๆ</p> <p><img style="display: block; float: none; margin-left: auto; margin-right: auto" height="297" src="http://www.mikroe.com/img/publication/pic-books/programming-in-c/chapter/03/fig3-3.gif" width="437" /></p> <p>และปัญหาอีกอย่างหนึ่งผมเกิดกับผม นั่นก็คือ ความรู้สึกอึดอัด เนื่องจาก memory ของ ไมโครคอลโทรลเลอร์ มันช่างน้อยเสียนี่กะไร จะมาเขียนโปรแกรมแบบสุ่มสี่ สุ่มห้า หรือตามใจฉันไม่ได้อีกแล้ว เพราะทุกบรรทัด คือ การใช้ memory ที่มีอยู่อย่างจำกัดบนตัวไมโครคอลโทรลเลอร์ ทำอย่างไร เราจะให้โปรแกรมเราบรรลุวัตถุประสงค์โดยที่ memory ไม่หมดไปเสียก่อน อันนี้ต้องคิดอยู่เสมอ </p> <p></p> <p></p> <p></p> <p>ในส่วนของ web programming ผมคงไม่ได้ต่อยอดไปไกลกว่านี้อีกแล้วหล่ะ สิ่งที่ท้าทายที่ผมกำลังทำอยู่ก็คือ ทำให้ของทั้งสองอย่างทำงานร่วมกันได้อย่างสอดคล้อง นั่นคือ เป้าหมายที่ผมจะไปต่อไป เพียงแต่ว่า ตอนนี้มันแค่เพียงเพิ่งเริ่มต้นเท่านั้นเอง</p> <p>ชมวีดีโอสาธิตการประยุกต์ใช้ WEB programming กับไมโครคอลโทรลเลอร์ หรือรายละเอียดเพิ่มเติม <a href="http://mechacity.blogspot.com/2010/09/avrvbnetweb-hardware-web.html" target="_blank">คลิก</a></p> <div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:a66a4d8a-a151-41b0-b6d1-095a4e59d0a8" style="padding-right: 0px; display: block; padding-left: 0px; float: none; padding-bottom: 0px; margin-left: auto; width: 425px; margin-right: auto; padding-top: 0px"><div id="e6c09ef3-bbd6-4ec6-b1ff-99787bca3685" style="margin: 0px; padding: 0px; display: inline;"><div><a href="http://www.youtube.com/watch?v=LM7THOeEILA&feature" target="_new"><img src="http://lh5.ggpht.com/_000cgw7RCzE/TKM6MXf8lcI/AAAAAAAACWA/Rxw1Crk_kZQ/video720452803dbb%5B10%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('e6c09ef3-bbd6-4ec6-b1ff-99787bca3685'); downlevelDiv.innerHTML = "<div><object width=\"425\" height=\"355\"><param name=\"movie\" value=\"http://www.youtube.com/v/LM7THOeEILA&hl=en\"><\/param><embed src=\"http://www.youtube.com/v/LM7THOeEILA&hl=en\" type=\"application/x-shockwave-flash\" width=\"425\" height=\"355\"><\/embed><\/object><\/div>";" alt=""></a></div></div></div> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com0tag:blogger.com,1999:blog-2824550586309826160.post-75271676833259174202010-02-25T20:58:00.001+07:002010-02-25T21:05:13.636+07:00Python Classroom Project แอบซุ่มทำอยู่<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:0px 0px 0px 0px;"><script type="text/javascript"><br /></script><br /><script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script><br /><br /></div><p align="left"><a href="http://lh6.ggpht.com/_000cgw7RCzE/S4aB__a8eqI/AAAAAAAACOc/MIcfDdB4ZzU/s1600-h/image%5B9%5D.png"><img title="Python Classroom project" style="border-right: 0px; border-top: 0px; display: inline; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px" height="156" alt="Python Classroom project" src="http://lh4.ggpht.com/_000cgw7RCzE/S4aCCGYB88I/AAAAAAAACOk/uRbkJKpX2vU/image_thumb%5B5%5D.png?imgmax=800" width="224" align="left" border="0" /></a>     ห่างหายไปนานสำหรับบทความนี้จากบล๊อกโปรแกรมเมอร์(จำเป็น) ไปซะนาน  ไม่ได้หายไปไหน เพียงแต่ตอนนี้ไปซุ่มทำโปรเจคใหม่อยู่ ถือเป็นการทดลองไปด้วย อยากลองเปลี่ยนไปเขียน content กับ Google site ดูหน่ะครับ </p> <p align="left">      ก็เลยตั้งใจว่า เนื้อหาที่เกี่ยวกับ<a href="http://faker-programmer.blogspot.com/search/label/Python" target="_blank" rel="tag">ไพธอน</a>ทั้งหมด จะยกไปไว้ที่ <a href="http://sites.google.com/site/pythonclassroom/" target="_blank">Python Classroom</a> เพื่อนๆที่สนใจเรื่องเกี่ยวกับไพธอน ก็ตามไปที่นั่นได้ ในส่วนของ Blog โปรแกรมเมอร์(จำเป็น) ก็ยังจำเป็นอยู่ ยังต้องอัพเดทกันต่อไป ส่วนจะเน้นไปทางแนวไหน ก็ยังบอกไม่ได้เหมือนกัน มันขึ้นอยู่กับความจำเป็นจริงๆ </p> <p align="left">      ใน <a href="http://sites.google.com/site/pythonclassroom/" target="_blank">Python Classroom</a> ผมได้วางคอนเซ็ปต์ไว้ว่า จะมีเนื้อหาเป็นบทเรียน ยกตัวอย่างโมดูลที่น่าสนใจ แล้วก็จะมีตัวอย่างโค๊ดไพธอนให้เพื่อนๆไปศึกษากัน โดยเนื้อหาทั้งหมดผมก็ค้นคว้ามาจาก text book บ้าง จากเว็บไซต์อื่นๆ บ้าง และก็จากประสบการณ์ในที่ทำงานบ้าง บางครั้งหากเจอมุขเด็ดๆของไพธอนที่เค้าเอามาใช้งานจริง ผมก็จะพยายามนำมาอัพเดทลงใน <a href="http://sites.google.com/site/pythonclassroom/" target="_blank">Python Classroom</a></p> <p align="left">      คงต้องขอออกตัวไว้ก่อนว่า ผมก็ไม่ได้เชี่ยวชาญในตัวภาษาไพธอนมากเท่าไหร่เลย แต่ผมถือคติว่า </p> <blockquote> <p align="left">“The first step is always the hardest การเริ่มต้นทำสิ่งใดสิ่งที่ยากที่สุดก็คือตอนเริ่มต้นทำ” </p> </blockquote> <p align="left">      เพระฉะนั้น จะเป็นการดีมาก ที่ทำ <a href="http://sites.google.com/site/pythonclassroom/" target="_blank">Python Classroom</a> project นี้ขึ้นมา เพราะนอกจากจะเป็นการบังคับให้เราเอาชนะในการเข้าใจในภาษาไพธอนแล้ว ยังมีโอกาสได้นำประสบการณ์มาถ่ายทอดให้น้องๆ รุ่นต่อๆมา ให้หันมาศึกษาภาษาไพธอนกันให้มากๆ ขึ้นอีกด้วย และจะได้มีแหล่งความรู้ในการศึกษาไปพร้อมๆกัน</p> <p align="left">      ผมคิดว่าอนาคตของภาษาไพธอนยังไปอีกได้ไกลแน่ๆ ด้วยความที่มีคนพัฒนาโมดูลต่างๆออกมาให้ใช้กันอย่างมากมาย และความยืดหยุ่นของตัวภาษา จึงทำให้ภาษาไพธอนถูกนำไปใช้ในหลายๆ องค์กร ไม่ว่าจะเป็น นาซ่า หรือแม้แต่ Google ของเรา เพราะฉะนั้น จึงอยากให้เมืองไทยได้มีแหล่งเรียนรู้ภาษาไพธอน เพื่อวันหนึ่งเราอาจจะเห็นคนไทย สร้างสรรค์ผลงานที่เขียนด้วยภาษาไพธอน ออกสู่สายตาชาวโลกสักครั้ง (ไม่รู้ฝันไปหรือเปล่า) </p> <p align="left">      หลายคงอาจจะรู้สึกว่าทำไมผมจึงเชียร์จังเลยกับตัวภาษาไพธอน ภาษานี้มันทำอะไรได้มั่ง ตอนนี้ผมก็ยังไม่เข้าใจในตัวภาษาไพอนทั้งหมดหรอกครับ แต่เท่าที่เห็น เจ้าตัวภาษาไพธอนสามารถเขียนให้ติดต่อกับ hardware บางตัวได้ ยันไปจนถึงเขียนเว็บ application ได้ ฉะนั้นจะดีกว่าไหม หากเพื่อนๆ มาเขียนภาษานี้ แล้วสามารถทำงานได้ครอบคลุม ตั้งแต่ hardware ไปจนถึงโปรแกรมมิ่งเน็ตเวิร์ค โดยที่ไม่ต้องผ่านตัวแปลภาษาอื่น เพื่อเชื่อมต่อทั้งหมดเข้าด้วยกัน  งั้นอย่ารอช้าเลย มาศึกษาพร้อมกันเถอะครับ Let’s Go !!!</p> <p align="left"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7W_BweJ6prMknx2zTQi77B8LW60WqrVxq7-OJ0WWMT2dtY8BwL88pgfiyVNbdUqS0N7c4EjfiZ-pK1f-sAIq3uOGX9EqckcFIANesMhvIlX2JxhfefZomjm3hW9ZX1CiOHYHlSUnGG26R/s1600-h/image%5B8%5D.png"><img title="python hardware network" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="316" alt="python hardware network" src="http://lh5.ggpht.com/_000cgw7RCzE/S4aCFd9xoEI/AAAAAAAACOY/QxZnutyegNk/image_thumb%5B4%5D.png?imgmax=800" width="523" border="0" /></a></p> Wisit.Phttp://www.blogger.com/profile/04747663677248244453noreply@blogger.com2