16.9.20

RT ToolBox3 Standard version 1.70Y

กำลังศึกษาการใช้งานโปรแกรม RT ToolBox3 เพื่อควบคุมแขนกล Robots-MELFA ของค่าย Mitsubishi



อ่านเพิ่มเติม...

5.6.14

ย้ายที่เก็บไฟล์หน้าเว็บไปไว้โฟวเดอร์อื่น บน Apache2 Mapping URLs to Filesystem Locations

imageปัจจุบันการมาของ cloud storage ได้เข้ามาให้บริการกับผู้ใช้งานเยอะแยะมากมาย หลากหลายเจ้าให้เลือกใช้ ผมก็เป็นคนหนึ่งเหมือนกันที่ชอบใช้ ไม่ว่าจะเป็น Copy.com , Dropbox , OneDrive หรือแม้กระทั่ง Google Drive ทีนี้ ผมก็มีความคิดว่า หากเราย้าย folder เก็บไฟล์หน้าเว็บเพจมาไว้ที่ folder drive เหล่านี้ ก็จะทำให้เรา สามารถที่จะทำการ sync ไฟล์หน้าเว็บที่เป็นซอร์สโค๊ด เอาไว้ทำงานต่อที่บ้่าน หรือที่ไหนๆ ก็ได้

จริงๆ แล้วใน apache2 ที่เป็นโปรแกรมสำหรับทำให้คอมพิวเตอร์ของเราให้กลายเป็น web server ที่ให้บริการเกี่ยวกับข้อมูลข่าวสารผ่านหน้า web browser จะระบุที่เก็บไฟล์ของซอร์สโค๊ดไว้ที่ DocumentRoot อยู่แล้ว เช่น ถ้า DocumentRoot  /var/www/html  แสดงว่าเราต้องเก็บไฟล์ที่เป็นโค๊ดไว้ที่ /var/www/html  ซึ่งจะทำให้เราสามารถเรียกไฟล์ที่อยู่ในโฟวเดอร์นั้นที่ URL ผ่านหน้าเว็บได้ เช่น

http://www.example.com/fish/guppies.html

แสดงว่ามี โฟล์เดอร์ชื่อ fish อยู่ภายใน /var/www/html  และมีไฟล์ guppies.html แสดงข้อมูลให้ client ที่เรียกมันได้เห็น  เอาหล่ะ มาเข้าเรื่องดีกว่า

ถ้าผมมี folder ที่แยกย่อยต่างหาก ไม่อยากเอาโค๊ดตัวเองไปปนใน /var/www/html   ถ้าเป็นใน windows เราก็สามารถกำหนดให้แตกต่างได้เช่น ผมเก็บไว้ที่ Drive D:\Copy\WebApp ผมก็แค่ ไปเพิ่มคำสั่งต่อไปนี้ในไฟล์ httpd.conf  ดังนี้

กำหนด ชื่อเล่นมันก่อน ในที่นี้ผมกำหนด

Alias /WebApp/ "D:/Copy/WebApp/"

<Directory "D:/Copy/WebApp">
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

ระวังเรื่องเครื่องหมาย “ และจำนวน /  ด้วยนะครับ ต้องให้เป็นไปตามรูป

จากนั้น Restart Apache 1 รอบ  แล้วทดลองนำไฟล์หน้าเว็บ ไม่ว่าจะเป็น html หรือ php ไปวางไว้ที่  D:\Copy\WebApp  แล้วเรียกชื่อไฟล์นั้น เช่น ผมเอาไฟล์ hello.php ไปวางไว้ที่ D:\Copy\WebApp\hello.php จากนั้นเรียกไฟล์ผ่าน URL ดังนี้

http://localhost/WebApp/hello.php ก็จะปรากฏหน้าหน้าเว็บที่เราเขียนไว้ใน hello.php

เพียงเท่านี้เราก็จะได้เก็บไฟล์โค๊ดไว้ที่ cloud storage ซึ่งจะทำให้เราสามารถกลับมาทำงานต่อที่บ้านได้อย่างไม่มีปัญหาครับ

ขอให้สนุกกับการเขียนเว็บนะครับ

อ่านเพิ่มเติม...

7.3.14

Yii CGridView: Render customized

ถ้าต้องการเปลี่ยนการแสดงผลแค่บาง Cell ใน GridView table ใน Yii Framework วันนี้ ลองเอาวิธีที่ผมลองนำวิธีจาก
CGridView: Render customized/complex datacolumns  มาใช้ดูครับ

จากโจทย์ที่ต้องการ คือผมต้องการเปลี่ยนสีของตัวหนังสือที่อยู่ใน Cell ของช่องข้อมูลที่ต้องการ โดยจะทำการเปรียบเทียบ หากข้อมูลในช่องนั้น มีค่ามากกว่า  0 ให้ทำการเปลี่ยนสีฟอนต์ของตัวหนังสือให้เป็นสีแดง ดังรูป

อันดับแรกให้ทำการเพิ่ม function ใน Class ใน Controller ก่อน ในที่นี้ ผมทำการเพิ่ม function renderGridCell ใน QuizController เพื่อให้ส่วนของ View ทำการเรียก renderGridCell ไปใช้งาน

protected function renderGridCell($data)
{
    //var_dump($data);
    if($data["cnt"]>0){
         echo '<font color="red">'.$data["cnt"].'</font>';
    }  else {
          echo $data["cnt"];
    }
}

ในส่วนของ View ที่ Widget bootstrap.widgets.TbGridView ผมทำการเรียกใช้  renderGridCell ดังรูป

CGridView: Render customized/complex datacolumns
เมื่อแสดงผล เราจะได้ตัวหนังสือสีแดง เมื่อค่าที่นำมาเปรียบเทียบมากกว่า 0

CGridView: Render customized/complex datacolumns

ลองนำไปประยุกต์ใช้กันดูนะครับ ขอให้สนุกกับ Yii Framework นะครับ

อ่านเพิ่มเติม...

19.12.13

yii-api-1.1.14.chm

yii_api_1.1.14.chm

     ผมมักชอบที่จะเปิดอ่านคู่มือ หรือ help จากไฟล์ CHM ซะมากกว่า ด้วยเหตุผลที่ว่า มันค้นหาคำที่เราป้อนได้ง่าย และรวดเร็วกว่า นอกจากนั้น ไฟล์ CHM ยังพกพาง่าย และไม่ใหญ่จนเกินไป ซึ่งเสียดายเพียงอย่างเดียว มันไม่สามารถ take note ลงบนไฟล์ ได้เหมือนไฟล์ pdf

วันนี้ ผมได้ลองนำ Yii API 1.1.14 class reference ซึ่งเดิมทีของ Yii official เขาทำไว้เป็น html ไฟล์ แต่ ด้วยความที่มันค้นหาคำ หรือ keyword mี่เราต้องการได้ยาก ผมจึงนำมาแปลงเป็น chm file ซะเลย ทำเสร็จแล้วก็เลยเอามาแชร์เพื่อนๆ หามีบางท่านกำลังเล่นกับ Yii framework เหมือนกับผม

เวอร์ชั่นที่นำมาแปลงนั้น เป็นเวอร์ชั่น 1.1.14 ซึ่งต่อจากเวอร์ชั่นนี้ ก็เป็นเวอร์ชั่น 2.0 ซึ่งผมก็ยังไม่ได้ลอง เพราะยังไม่เข้าใจมันเท่าไหร่ และเวอร์ชั่น 1.1.14 ก็ยังเป็นเวอร์ชั่นที่ stable อยู่ ก็เลยยังไม่คิดที่จะเปลี่ยน

ใครสนใจ Yii framework ก็ดาวน์โหลด  yii-api-1.1.14.chm ไปติดเครื่องไว้นะครับ เอาไว้ดำคำสั่งเวลาเขียนโค๊ด

อ่านเพิ่มเติม...

11.10.13

One comand make Yii Controller

หลังจากเราติดตั้ง Yii framework ไปเรียบร้อยแล้ว สิ่งที่เราต้องทดลองทำเป็นอย่างแรก คือ สร้าง Controller ด้วยของเราเอง

ในการที่จะแสดงหน้าเพจ สักหนัาหนึ่งบน Yii Framework เราจะต้องสร้างไฟล์ที่เป็น controller หลังจากนั้น ก็กำหนด method ที่เป็น action เพื่อทำงานอะไรสักอย่าง จากนั้น ก็ส่งผลลัพธ์ไปแสดงที่ view
หากเราจะสร้างเอง ก็สามารถทำได้ แต่ จะต้องทำตามที่ Yii เขากำหนดมา นั่นก็คือ

สร้างไฟล์ controller โดยชื่อนำหน้าไฟล์ XXXcontroller.php จะเป็น controller id ในที่นี้คือ XXX และต้องสร้างไฟล์ไว้ใน /protected/controllers/
จากนั้นเขียน method ภายในไฟล์นี้ โดย method ต้องมีชื่อรูปแบบ  public function actionYYY(){......} ซึ่ง YYY คือ action id

จากนั้นจะต้องไปสร้่างไฟล์ที่เอาไว้แสดงผล หรือ render ข้อมูล ในที่นี้ผมเรียกว่า view file ก็แล้วกัน โดยจะต้องมีชื่อสอดคล้องกับที่กำหนดใน method render และจะต้องสร้างไว้ใน folder ที่ชื่อเดียวกันกับ Controller id (ในที่นี้คือ XXX)ที่อยู่ภายในโฟวเดอร์ /views/ อีกที ดังนั้น จะได้ path folder /views/XXX นั่นเอง
สรุปว่าใน actionYYY จะเป็นรูปแบบนี้

public function actionYYY()
{
    this->render('ชื่อ view file')

เวลาที่เราเรียกใช้งาน ก็จะเป็นรูปแบบนี้

http://localhost/myweb/index.php?r=XXX/YYY

โดยที่

r หมายถึง route หรือเส้นทางที่จะเป็นตัวบอกให้ controller เข้ามารับงานไปทำ
XXX คือชื่อ Controller id
YYY คือชื่อ action id

ซึ่งทั้งหมดนี้ เป็นขั้นตอนพื้นฐานเพื่อให้ได้หน้าเว็บ 1 หน้า ดูเหมือนจะเยอะ แต่ในแง่การพัฒนา และบำรุงรักษาโค๊ด ผมว่า Yii framework เขาทำไว้ดีแหละ

ประเด็นของหัวข้อนี้ ผมอยากจะบอกว่า มีวิธีในการสร้างหน้าเว็บบน Yii ได้เร็ว กว่าการสร้่างไฟล์ทั้งสอง สามไฟล์  โดยมีรูปแบบตามที่ผมได้บอกไว้แล้วข้างต้น ด้วยการใช้ Yiic.bat ครับ (สำหรับ Linux เราจะใช้ไฟล์ Yiic.php) ซึ่งจะทำกันบน command line console ครับ

อันดับแรกก็เปิด command line console ของเราก่อน แล้วก็เข้าไปที่ directory ทีเก็บโปรเจค yii ของเรา ในที่นี้ สมมติว่าชื่อ train ผมเก็บไว้ที่ D:\www\

cd D:\www\train

พอเราเข้าไปแล้ว ก็ให้เรียก yiic.bat ที่อยู่ใน /framework/ ภายใต้  yii directory ที่เก็บ framework ในที่นี้ ผมเก็บไว้ที่ yii-1.1.14

D:\www\train>D:\www\yii-1.1.14\framework\yiic shell

เราจะอยู่ใน shell ของ yii สังเกตว่า prompt จะเปลี่ยนไป

yiic shell

ต่อมาเราจะมาสร้าง controller สำเร็จรูปกันเลยครับ ด้วยคำสั่ง

controller [controller id] [action id]

ดังนั้น หากผมต้องการสร้าง controller id =  message และ action id ที่ชื่อ helloworl จะได้

yiic shell

ลองเช็คดูในโปรเจคใน Netbean เราจะเห็นไฟล์ถูกสร้างขึ้นมา

yii controller

ลองเรียกหน้าเว็บ http://localhost/train/index.php?r=message/helloworld ดูครับ

มันจะง่าย และชัวร์กว่า วิธีสร้างเอง นอกจาำกนี้ยังสามารถสร้าง model  form module อื่นๆ ได้อีก ลองพิมพ์ help ที่ shell ของมันครับ

อ่านเพิ่มเติม...
 

เกี่ยวกับฉัน(ไหมเนี้ย)

รายการบล๊อกอื่นๆ

  • Solved: error: 'TKD2' was not declared in this scope, LIFA_Base compile error - วันนี้ จะมาเล่าถึงปัญหาที่เจอในการเบิร์นโค๊ด LIFA_Base ที่เราใช้ในการทำให้ Arduino ของเราสามารถรับคำสั่งจาก LabVIEW ได้ ปัญหานี้ เริ่มเกิดขึ้นตอนที่ Ard...
  • Type-Fu : Typing practice game online - หากใครที่สนใจ หรือจะต้องทำงานเกี่ยวกับคอมพิวเตอร์ หนึ่งในความจำเป็นก็คือ จะต้องเรียนรู้ที่พิมพ์สัมผัสได้ เพราะการที่พิมพ์สัมผ้สได้ มันได้ประโยชน์หลายๆ อย...

Blog อื่นๆ ที่น่าติดตาม

  • RT ToolBox3 Standard version 1.70Y - กำลังศึกษาการใช้งานโปรแกรม RT ToolBox3 ในการเขียนโปรแกรมเพื่อควบคุมแขนกล Robots-MELFA ของค่าย Mitsubishi Facebook link
    7 months ago
  • Software control Oriental actuator - Software control Oriental actuator โปรเจคนี้ ลูกค้าต้องกานให้เขียนโปรแกรมควบคุม Actuator ให้เคลือนที่ไป กลับ... From: วิสิทธิ์ แผ้วกระโทก Views: 21 0 rati...
    3 years ago
  • วิธีก๊อบปปี้เปลี่ยนชื่อ Solution ใน Visual studio 2015 community - วิธีก๊อบปปี้เปลี่ยนชื่อ Solution ใน Visual studio 2015 community บางครั้งเราอาจะมีงานเคยซ้ำๆ กับโปรเจคเก่า แค่ อาจจะแก้ไขบาง class หรือปรับแต่งหน้าตาอีก...
    4 years ago
  • Free Screen Capture โปรแกรมบันทึกหน้าจอ ฟรีๆ - หากเพื่อนๆ จะมองหาโปรแกรม ที่ไว้สำหรับบันทึกหน้าจอคอมพิวเตอร์ ไม่ว่าจะบันทึกในรูปของภาพนีิ่ง (Screen shot) หรือแบบบันทึกเป็นภาพเคลื่อนไหว ( screencas...
    6 years ago
  • An Advanced Technique of Context Switching for RTOS (Keil C51) - ใครเคยใช้ RTOS ทุกตัวจะต้องรู้จักกับคำว่า "Context Switching" เป็นอย่างดี แต่คนที่ไม่เคยเจาะลึกลงไปยังตัว Kernel จะไม่มีทางรู้ได้เลยว่าเนื้อแท้ของมันเป็นอย...
    9 years ago

เหล่าบรรดา Blogger