Month: August 2013

  • ติว (อบรมเชิงปฏิบัติการ) เรื่อง “System Monitoring & Backup Guide สำหรับผู้ดูแลระบบ”

    กิจกรรมของ CoP PSU IT รายการสุดท้ายของปีงบประมาณ อบรมเชิงปฏิบัติการ เรื่อง “System Monitoring & Backup Guide สำหรับผู้ดูแลระบบ” เป็นการนำเสนอเรื่องที่เตรียมมา ผู้เข้าร่วมนำโน้ตบุ๊คมาก็จะได้ลองทำตามดู และแลกเปลี่ยนถามตอบกันในประเด็น

    วันที่ 6 ก.ย. 2556 เวลา 09.00-16.00 น. ห้องประชุม ชั้น 7 สำนักทรัพยากรการเรียนรู้คุณหญิงหลง อรรถกระวีสุนทร ตึก LRC ม.อ.หาดใหญ่
    (อัปเดตล่าสุด ช่วงบ่ายลง lab จะใช้เครื่องคอมห้อง training room ชั้น 3 ครับ)

    System Monitoring = ผมคิดว่าน่าจะเป็นซอฟต์แวร์/วิธีการที่เราเลือกว่า ดีและเหมาะ สำหรับ ผู้ดูแลที่ติดตั้ง server ขึ้นมา 1 เครื่อง แล้วต้องใช้มันทุกวัน จะโดยอัตโนมัติ หรือ นั่งดูแบบ real time

    Backup Guide = ผมคิดว่าน่าจะเป็นวิธีการ/หลายๆเทคนิค ทั้งบน linux และ windows ว่า ใครที่ติดตั้ง server ขึ้นมา 1 เครื่อง ต้อง backup อะไรบ้าง เผื่อเมื่อเครื่องเสียหาย เช่น backup OS, user account, config file, website, database เป็นเบื้องต้น

    รายละเอียด
    09.00-09.40น. นำเสนอ เรื่อง “ระบบ ตรวจจับ POP3 Brute Force Attack กับ ระบบตรวจจับผู้ใช้ PSU Email ที่ถูกหลอกเอารหัสผ่านไป” โดย คณกรณ์ หอศิริธรรม/แลกเปลี่ยนความเห็น
    09.40-10.20น. นำเสนอ เรื่อง การสำรองข้อมูล web site ด้วย TAR เช่น mediawiki, wordpress เป็นต้น โดย วิบูลย์ วราสิทธิชัย และ การสำรองข้อมูล file server ด้วย RSYNC โดย กิตติพัฒน์ อุบลกาญจน์/แลกเปลี่ยนความเห็น
    10.20-10.40น. พัก (รับประทานอาหารว่างร่วมกัน)
    10.40-11.00น. นำเสนอ เรื่อง การดูแลระบบของคณะแพทยศาสตร์ โดย โกเมน เรืองฤทธิ์/แลกเปลี่ยนความเห็น
    11.00-12.00น. นำเสนอ เรื่อง การดูแลระบบของศูนย์คอมพิวเตอร์ โดย จตุพร ชูช่วย/แลกเปลี่ยนความเห็น
    12.00-13.00น. พักเที่ยง (รับประทานอาหารเที่ยงร่วมกัน)
    13.00-16.00น. อบรมเชิงปฏิบัติการ เรื่อง การตรวจสอบการทำงานของเครื่องแม่ข่ายด้วยโปรแกรม Nagios โดยใช้ CentOS 6 + Epel โปรแกรมเสริม NRPE, NAGIOSQL (ตอนที่ 1) โดย จตุพร ชูช่วย และทีมงาน(เกรียงไกร หนูทองคำ)

    หากสนใจเข้าร่วม โปรดอีเมลมาที่ wiboon.w@psu.ac.th ครับ

    รายชื่อผู้แจ้งเข้าร่วม

    1. ทวีศักดิ์ รักษ์สุวรรณ    สถาบันทรัพยากรทะเลและชายฝั่ง
    2. วิศิษฐ โชติอุทยางกุร    คณะทันตแพทยศาสตร์ (อาหารมังสวิรัติ)
    3. นิติ โชติแก้ว    คณะการแพทย์แผนไทย
    4. สัมฤทธิ์ ฤทธิภักดี    ศูนย์คอมพิวเตอร์
    5. สุทิศา จรียานุวัฒน์   คณะทันตแพทยศาสตร์
    6. จรรยา เพชรหวน    คณะทรัพยากรธรรมชาติ
    7. ยุวภา โฆสกิตติกุล    คณะทรัพยากรธรรมชาติ
    8. จันทนา เพ็ชรรัตน์    สำนักวิจัยและพัฒนา
    9. นาลิวัน หีมเห็ม    สำนักวิจัยและพัฒนา
    10. ศุภางค์   อุลมัย    คณะทันตแพทยศาสตร์
    11. มงคล ทองเพชรคง    คณะทันตแพทยศาสตร์
    12. มาโนช จันทรวัฒน์    คณะทันตแพทยศาสตร์
    13. ศานิต แก้วเสถียร    โครงการจัดตั้งวิทยาลัยนานาชาติ
    14. ศุภกร เพ็ชรรัตน์    คณะทันตแพทยศาสตร์
    15. ศิริพงษ์ ศิริวรรณ    คณะเภสัชศาสตร์
    16. ปรีชา  ศรีมนัสรัตน์    ศูนย์คอมพิวเตอร์
    17. ภัทธ์ เอมวัฒน์    ม.อ.ปัตตานี (สำนักวิทยบริการ)
    18. สมพงศ์ หุตะจูฑะ    สำนักทรัพยากรการเรียนรู้คุณหญิงหลง อรรถกระวีสุนทร
    19. เอกภพ ถาวรจิตร    สำนักทรัพยากรการเรียนรู้คุณหญิงหลง อรรถกระวีสุนทร (อาหารมังสวิรัติ)
    20. โกศล โภคาอนนต์    ศูนย์คอมพิวเตอร์
    21. ณัฏฐิกา หัตถกรรม    ศูนย์คอมพิวเตอร์
    22. วิมลรัตน์ แดงสุวรรณ    บัณฑิตวิทยาลัย
    23. สุนิสา จุลรัตน์    สถาบันสันติศึกษา
    24. อานนท์ เหมือนกู้    ม.อ.ปัตตานี (วิทยาลัยอิสลามศึกษา) (อาหารมุสลิม)
    25. อัซมิง เซะ    ม.อ.ปัตตานี (วิทยาลัยอิสลามศึกษา) (อาหารมุสลิม)
    26. สัตยา บุญรัตนชู    ศูนย์เครื่องมือวิทยาศาสตร์
    27. ฮัมดัน มะเซ็ง    ศูนย์เครื่องมือวิทยาศาสตร์
    28. กิตติศักดิ์ แก้วเนียม    ม.อ.ปัตตานี (สำนักวิทยบริการ)
    29. ปิยะวัชร์ จูงศิริ    คณะวิศวกรรมศาสตร์
    30. พัฒนาวดี ศิวติณฑุโก    คณะวิศวกรรมศาสตร์
    31. ธีรเดช เขมะธีรรัตน์    คณะทันตแพทยศาสตร์
    32. ธีรพันธุ์ บุญราช    คณะเภสัชศาสตร์
    33. ขวัญยืน ปานโม    ม.อ.สุราษฎร์ธานี (ศูนย์สนเทศและการเรียนรู้)
    34. สุวัฒน์ อนันตคุณูปกร    ศูนย์สื่อการเรียนรู้
    35. สราวุฒิ เลิศล้ำไตรภพ    ศูนย์สื่อการเรียนรู้
    36. ศรายุทธ จุลแก้ว    ศูนย์สื่อการเรียนรู้
    37. อำนาจ สุคนเขตร์    ม.อ.ปัตตานี (สำนักวิทยบริการ)
    38. อนันต์ คาเรง    ม.อ.ปัตตานี (สำนักวิทยบริการ) นักศึกษาฝึกงาน (Q)
    39. สหภาพ หีมเขียว    คณะพยาบาลศาสตร์

    หมายเหตุ Q คือ โควต้าบุคคลภายนอก

  • การสร้าง Mail Merge ด้วย Thunderbirds

    ส่งจดหมายเวียนในรูปแบบ Email ด้วย Thunderbird

    1. Download และ ติดตั้ง Thunderbird
      http://www.mozilla.org/en/thunderbird/all.html
      แล้วติดตั้ง email Account ตามปรกติ, ทดสอบให้สามารถส่ง email ออกไปได้จริง

    2. Download และ ติดตั้ง ThunderBird Mail Merge Extension
      https://addons.mozilla.org/en-us/thunderbird/addon/mail-merge/
      โดยเปิด Thunderbird แล้วกดปุ่ม  Alt-T แล้วเลือก Add-ons
      แล้วไปที่ รูปเฟือง แล้วเลือก Install Add-ons From file…
      จากนั้น เลือกไฟล์ที่ Download มา (mail_merge.XXXXX.xpi)
      เมื่อติดตั้งเสร็จ ให้ Restart Thunderbird

    3. Download และ ติดตั้ง Notepad++
      http://notepad-plus-plus.org/download/

    4. สร้างฐานข้อมูลด้วย Microsoft Excel หรือ LibreOffice Cal ก็ได้
      โดย ให้บรรทัดแรกของตาราง เป็นชื่อของ Field ซึ่งต้องเป็นภาษาอังกฤษ ไม่มีเว้นวรรค
      04-excel

      ในที่นี้จะมีชื่อ name, email, salary, topup, bonus, sso, total

      แล้ว Save As เป็น .CSV (Comma Delimited) ในที่นี้ตั้งชื่อ salary.csv
      05-saveascsv

      จากนั้นให้ปิด Excel ไปได้เลย

    5. ต่อไป ต้องปรับให้ salary.csv มีการ Encoding เป็น UTF-8 ก่อน โดยใช้โปรแกรม Notepad++
      โดย Right-Click ที่ไฟล์ salary.csv แล้วเลือก Edit with notepad++
      06-editwithnotepadplus

      แล้วเลือก Encoding > Convert to UTF-8
      07-convertutf-8

      เสร็จแล้ว Save แล้วปิดไป

    1. กลับมาที่ Thunderbird ให้สร้าง email ใหม่
      การอ้างอิงข้อมูลใน CSV นั้น ต้องมีเครื่องหมาย {{ }} คร่อมชื่อ Field
      ดังภาพ

      08-write-template

    2. เมื่อต้องการส่ง คลิก File>Mail Merge
      แล้วตั้งค่าดังภาพ โดยเลือกไฟล์ salary.csv ที่แก้ไขแล้วข้างต้น

      09-setting-mailmerge

    3. เมื่อกดปุ่ม OK ระบบก็จะส่งจดหมายไปตาม email ที่กำหนด
      10-sending

    4. ตัวอย่าง email ที่ส่งผ่านระบบ
      11-result

  • แกะรอย Facebook Spam

    ตามรอย Facebook Spam with Virus

    คำเตือน : ขั้นตอนต่อไปนี้ ทำเพื่อให้เห็นว่า Facebook แพร่ Virus มาได้อย่างไรเท่านั้น

    อย่านำไปลองทำที่บ้าน !!! โดยเฉพาะ Windows Users

    1. มี Message มา เป็น Link แปลกๆ

    01-facebook-message

    2. ระแวงไว้ก่อน ลองใช้ Linux Mint LiveCD ตรวจสอบ

    โดยเปิด Link ดังกล่าวด้วย  FireFox (พิมพ์ลงไป ไม่ได้เปิดโดยตรงจาก Facebook)
    พบว่า มันให้ Download ไฟล์ Zip ชื่อ CameraImage-35160.jpg.zip
    ดังภาพ

    02-linuxmintcd

    แต่เดี๋ยวก่อน !!! อย่าใช้คำสั่ง Open เด็ดขาด
    ให้เปลี่ยนเป็น Save File

    หากใครเจอเหตุการณ์เช่นนั้น แล้วเผลอไปเปิด
    คุณก็ติด Virus เข้าแล้ว !!!

    3. จะเห็นได้ว่า พวกนี้จะหลอกให้ผู้ใช้ โดยเฉพาะ Windows ที่มักจะ “ซ่อน” นามสกุลของไฟล์

    (Hide known extensions) ทำให้ไม่เห็นว่าไฟล์ที่ download มานั้นเป็น .Zip ซึ่งจะสามารถสั่งให้
    Execute โปรแกรมหรือ สั่งให้ Virus ทำงานได้ทันที !

    ผู้ใช้ที่ไม่รู้หรือไม่สังเกตุ ก็จะเห็นเป็นแค่
    CameraImage-35160.jpg
    ซึ่งน่าจะเป็นภาพ แทนที่จะเป็น
    CameraImage-35160.jpg.zip
    ซึ่งเป็นไฟล์อันตราย

    4. คราวนี้ มาดูว่า เจ้าไฟล์นี้ มันทำอะไร

    โดยทดลองเปิดดู (บน Linux Mint ไวรัสไม่สามารถทำอะไรได้)
    พบว่าใน Zip ไฟล์นี้ มี ไฟล์ชื่อ
    summertime-fun.jpg.exe
    อยู่ ซึ่งเป็น Virus นั่นเอง (ดังภาพ)
    03-exe-inside

    5. ต่อไป เป็นการส่งไฟล์ไปตรวจสอบ ว่าเป็น Virus ชนิดใด

    ในที่นี้เลือกใช้

    https://www.virustotal.com/en/

    เพราะสามารถส่งไฟล์ไปตรวจสอบได้ทาง Web Browser ดังภาพ
    04-sendfile-to-scan

    โดยเลือกไฟล์ summertime-fun.jpg.exe ข้างต้นไปตรวจสอบ

    ผลที่ได้คือ

    05-scan-result

    สรุป เป็น Virus/Malware ชนิดหนึ่ง

    รายละเอียดยังไม่แน่ชัด แต่ไม่ไปยุ่งกับมันเป็นดีที่สุด

    6. อ่านเพิ่มเติมเกี่ยว Virus/Spam ที่มากับ Facebook ได้ที่

    http://www.hacker9.com/beware-of-spambook-facebook-spam-and-virus.html

     

    สำหรับใครที่เจอเหตุการณ์นี้ แล้ว

    1. ได้รับ Message แล้วคลิก Link … ถ้า Web Browser ของท่านฉลาดสักหน่อย ก็จะถามว่า จะ Save หรือ Open
    (กรณีใช้ Microsoft Windows เท่านั้น)

    ถ้าเลือก Save แล้วไม่ได้ไปเปิดไฟล์ –> ก็ยังปลอดภัย แค่ไปลบไฟล์ทิ้ง จบ
    ถ้าเลือก Open แล้ว ไม่ได้ไป Double Click ไฟล์ที่ซ่อนอยู่ –> ก็ยังปลอดภัย ลบไฟล์ทิ้ง จบ
    แต่ถ้า เลือก Open แล้ว double click –> ท่านน่าจะติด Virus ไปแล้วครับ ถ้าในเครื่องมี Antivirus แต่ไม่ Update
    หรือตรวจสอบไม่เจอ ก็เป็นอันว่า มันฝังในเครื่องแล้ว

    หากติดแล้ว จะเห็นได้ว่า เครื่องจะช้าลง เพราะ Virus/Malware/Trojan พวกนี้จะพยายามติดต่อ Internet เพื่อทำการบางอย่างเช่น แพร่ข้อความ หรือ ที่เคยเจอมา “จะติดต่อกลับไปหาเจ้าของ” ซึ่ง Trojan พวกนี้ จะเปิด Backdoor เอาไว้ ทำให้เครื่องของท่าน
    กลายเป็น Botnet หรือ หุ่นเชิด ผู้ร้ายจะสามารถนำไฟล์อื่นๆมาลงในเครื่องได้ ซึ่งความเสี่ยงได้แก่
    1.1 มีการวาง Key-logger ซึ่งจะดักจับการ กด Keyboard ไว้แล้วส่งไปให้ผู้ร้าย ดังนั้น ถ้าท่านมีการพิมพ์รหัสผ่านต่างๆ
    ก็มีโอกาสที่ผู้ร้าย จะสามารถเข้าถึงบัญชีต่างๆของท่าน และเสี่ยงมากขึ้น หากเป็นข้อมูลทางการเงิน เป็นต้น
    1.2 วางไฟล์ที่จะแพร่ Virus/Malware/Trojan พวกนี้ผ่าน Social Network/Email ไปยังคนที่เกี่ยวข้องกับท่าน
    สร้างความเสียหายเป็นวงกว้าง
    1.3 อื่นๆอีกมากมาย เช่น ก่อกวนทำความเสียหายให้กับเครื่องคอมพิวเตอร์และระบบเครือข่าย

    แนะนำให้หาผู้เชี่ยวชาญใกล้ตัว เพื่อล้าง virus ครับ

    2. ท่านที่ได้รับ Message แต่ไม่ได้เป็น Windows ก็ไม่ต้องเป็นห่วงครับ มันทำอะไรไม่ได้
    แต่ควรระวัง อย่าคลิกอะไรโดยไม่ดู เพราะ ครั้งนี้ ตัวอย่างนี้ เป็นการแพร่ไวรัสแบบ เป็น “ไฟล์”
    ซึ่ง ยังมีอีกรูปแบบหนึ่งคือ มันจะฝังมาใน Temporary Internet File ซึ่ง แค่คลิกลิงค์ ก็ติดแล้ว
    โดย เมื่อคลิกลิงค์ ก็จะไปเปิด Website ที่แพร่ Malware เครื่องของท่านก็จะอยู่ภายใต้การควบคุมทันที
    ซึ่ง ทุกระบบปฏิบัติการ มีโอกาสเสี่ยงได้เท่าๆกัน

     

     

    วิธีป้องกันตัวเอง คือ

    ระแวงในทุกสิ่งที่มาจาก Internet แล้วคุณจะปลอดภัยมากขึ้น
    ไม่รู้ ไม่แน่ใจ อย่าคลิก และ ให้สอบถามจากผู้รู้

  • Record video with RecordMyDesktop for Linux Mint

    วันนี้มีความรู้มาฝากเกี่ยวกับการทำบันทึกวิดีโอแนะนำความรู้จากหน้าจอคอมพิวเตอร์ด้วยตนเอง โดยใช้งานอยู่บนระบบปฏิบัติการ Linux Mint 15 Mate ครับ

    ผมต้องการทำวิดีโอ Preview แผ่น Linux Mint 15 Mate ที่พวกเราจะแจกในงานม.อ.วิชาการ’56 เพื่อเปิดให้มันบรรยายสรรพคุณไปเรื่อยๆในงาน เราไม่ต้องพูดและเด็กๆก็ฟังเมื่อต้องการได้

    ผมจึงได้หาโปรแกรมมาได้โดยการติดตั้งผ่านโปรแกรม Software Manager ของ Linux Mint โปรแกรมนี้มีชื่อว่า gtk-recordmydesktop (ขอขอบคุณเกรียงไกร หนูทองคำ ที่เอื้อเฟื้อคำแนะนำ) แล้วทำการบันทึก ในขณะบันทึกเราก็ต้องมีชุดหูฟังและไมโครโฟนที่พร้อมใช้งาน ผมใช้ Logitech ครับ

    ขั้นตอนการทำวิดีโอง่ายๆ คือ เข้าใช้ระบบปฏิบัติการ Linux Mint แล้วเรียกเมนู Software Manager จากนั้นใส่คำค้นหาเมื่อเจอแล้วดับเบิลคลิกชื่อซอฟต์แวร์ และจบด้วยคลิก Install เมื่อติดตั้งเสร็จก็มาเรียกใช้งาน มันจะอยู่ในเมนู Sound & Video ชื่อโปรแกรมคือ RecordMyDesktop

    position-recordmydesktop-menu

    ตอนนี้โปรแกรมอัดพร้อมแล้วเราก็ไปเปิด Oracle VM VirtualBox สั่งรัน linux mint ที่เป็น Virtual Machine แล้วเมื่อพร้อมก็คลิกที่ปุ่ม Record (ที่ taskbar จะเห็นเป็นสี่เหลี่ยมสีแดง) ก็บรรยายไป คลิกเปิดโปรแกรมไปจนเสร็จ ให้คลิกปุ่มเพื่อ Stop แล้วโปรแกรมมันจะเริ่มเขียนไฟล์จากที่เก็บไว้ใน /tmp จะได้ไฟล์ชื่อ out.ogv ผมก็ rename เป็นไฟล์ชื่อ linuxmint-preview.ogv นำไปไว้บน ftp server ให้ดาวน์โหลดมาเปิดดูและฟังได้

    ผมทำตัวอย่างเก็บไว้อยู่ที่ http://ftp.psu.ac.th/pub/cc/linuxmint-preview.ogv

    ขั้นตอนการเปิดใช้
    1. เปิด Terminal

    2. ดาวน์โหลดด้วย wget มาเก็บไว้เป็นไฟล์อีกไฟล์ให้ใหม่สดเสมอด้วย option -O

    wget http://ftp.psu.ac.th/pub/cc/linuxmint-preview.ogv -O /tmp/current-linuxmint-preview.ogv

    3. วิธีรันแบบ fullscreen

    totem --fullscreen  /tmp/current-linuxmint-preview.ogv

    หวังว่าพวกเราคงสนุกกับบทความนี้นะครับ

  • จดหมายหลอกลวง 2013-08-07

    วันนี้ 7 สิงหาคม 2556 มีจดหมายหลอกลวงหลุดเข้ามาในระบบ
    โดยผ่าน ผู้ใช้ของมหาวิทยาลัย 3 คน ซึ่งโดนหลอกเอารหัสผ่านไปก่อนหน้านี้
    ซึ่ง ทั้งหมด ถูกระงับการใช้งาน PSU Email ชั่วคราวไปแล้ว

    โดยจะมีหน้าตาจดหมาย เป็นภาษาไทย แต่อ่านแล้วสับสน เพราะใช้ Google Translate แปล เพื่อหลอกคนไทยโดยเฉพาะ เนื้อหาประมาณนี้

    spam-20130807

     

    โดยหวังให้ผู้ที่โดนหลอก คลิก Link ใน Email ซึ่งจะได้พบหน้า Website นี้

    spam-20130807-2

     

    เมื่อมีผู้หลงเชื่อ กรอกข้อมูลลงไป โดยเฉพาะ Username และ Password ก็ทำให้ผู้ร้ายสามารถเข้ามาใช้ PSU Webmail ของผู้นั้น เป็นฐานในการโจมตีผู้อื่นต่อไป

    ผลกระทบที่ผู้ถูกหลอกจะได้รับ

    1. จะมีจดหมายจากตัวเอง ส่งไปหาคนทั่วโลก นับแสนคน สร้างความเดือนร้อนรำคาญ

    2. ผู้ร้าย จะทำการเปลี่ยนข้อมูลส่วนตัวของผู้นั้น เมื่อผู้รับตอบกลับมา จะไม่กลับมายัง Email ของคนนั้นอีกเลย แต่จะส่งไปให้ผู้ร้ายแทน

    หากมีข้อมูลทางการเงิน ก็อาจทำให้สูญทรัพย์สินได้

    3. หากมีการส่ง Email ขยะออกไปมาก จะทำให้ ทั่วโลกปิดกั้นการรับข้อมูลจากมหาวิทยาลัย และทำให้เกิดความเสียหายกับทั้งมหาวิทยาลัยได้

     

    ทางมหาวิทยาลัย จะไม่มีจดหมายลักษณะดังกล่าวไปแจ้งผู้ใช้ ** เด็ดขาด **

    กรุณาอ่านเพิ่มเติม เกี่ยวกับกลลวงต่างๆได้ที่

    http://share.psu.ac.th/blog/cyber007/25717

    หากท่านใดได้รับ กรุณาลบทิ้งทันที อย่าได้ลองคลิก Link เด็ดขาด เพราะอาจจะมีการฝัง Script บางอย่าง เพื่อฝังไว้ในเครื่องของท่านก็เป็นได้

     

    จึงเรียนมาเพื่อทราบ

  • ทบทวนที่เรียนจากติว PhoneGap ด้วย HTML5 & Jquery Mobile

    ผมต้องออกตัวก่อนนะครับว่า ไม่ได้เก่งในการเขียน Mobile Apps. เลยสักนิด เพียงแต่ได้ไปเข้าเรียนมา 2 วัน ผมรู้สึกว่าเป็นศาสตร์ที่น่าลองทำดู และไม่ควรให้มันจางหายไปหลังจากเรียน เดี๋ยววิทยากรจะเสียใจ อิๆ ผมจึงบันทีกไว้แบบใครอ่านแล้วไม่ชอบก็อย่าถือสาผมนะครับ

    ลองทบทวนจากที่เรียนใน workshop
    ติว “แนะนำและสอนการพัฒนาเบื้องต้นเกี่ยวกับ Application บนมือถือด้วย PhoneGap โดยใช้ HTML5 & Jquery Mobile”

    สภาพแวดล้อม
    – เป็นการติดตั้งทดสอบบน Windows 8 (32 bit) บนเครื่องโน้ตบุ๊ค HP ProBook 6450b RAM 4 GB

    1. download JRE
    http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
    32bit ได้ไฟล์สำหรับติดตั้ง jdk-7u25-windows-i586.exe
    (64bit ได้ไฟล์สำหรับติดตั้ง jdk-7u25-windows-x64.exe)
    รันไฟล์ดังกล่าวเพื่อติดตั้งลงในวินโดวส์

    2. download ADT
    http://developer.android.com/sdk/index.html
    32bit ได้ไฟล์ที่ zip ไว้คือ adt-bundle-windows-x86-20130729.zip
    (64bit ได้ไฟล์ที่ zip ไว้คือ adt-bundle-windows-x86_64-20130717.zip)
    แตกไฟล์ดังกล่าวออกมาแล้ว
    32bit ได้ไดเรกทอรี adt-bundle-windows-x86-20130729 ไว้ที่ C:\
    (64bit ได้ไดเรกทอรี adt-bundle-windows-x86_64-20130717 ไว้ที่ C:\)
    สร้าง shortcut ไปยังไฟล์ชื่อ eclipse.exe ในไดเรกทอรี eclipse ไว้บน Desktop
    ทดสอบรันโปรแกรม eclipse
    ตั้งชื่อ workspace ไว้ที่ C:\phonegap
    phonegap-000
    3. สร้าง Andriod Device ในโปรแกรม Java – ADT
    เมนู Windows > Android Virtual Device Manager
    แท็บ Android Virtual Devices คลิก New…
    ADV Name: ตั้งชื่อ ADV-7-inch
    Device: เลือก Nexus 7
    Target: เลือก Android 4.3 – API Level 18
    (adt-bundle-windows-x86-20130729.zip จะได้ Android 4.3 – API Level 18)
    Front Camera: None
    RAM: 768
    ทดสอบเปิด ADV-7-inch คลิก Start แล้วรอ ค่อนข้างนาน
    phonegap-001

    4. สร้าง New Android Application
    File > New > New Android Application
    ตั้งชื่อว่า phonegappsu
    ที่เหลือใช้ค่า default
    phonegap-002
    หน้าต่อไป Create Project in Workspace
    ตั้ง Location เป็นชื่อ C:\phonegap\phonegappsu
    phonegap-003
    หน้าต่อไป ใช้ค่า default
    phonegap-004
    หน้าต่อไป ใช้ค่า Blank Activity
    phonegap-005
    หน้าต่อไป ใช้ค่า default (Activity Name: MainActivity)
    phonegap-006
    คลิก Finish แล้วจะได้หน้าต่างของรายละเอียดเยอะแยะ
    phonegap-007

    5. download phonegap
    http://phonegap.com/install/ เลือก PhoneGap2.9.0
    ได้ไฟล์ที่ zip ไว้คือ phonegap-2.9.0.zip
    แตกไฟล์ดังกล่าวออกมาแล้ว ได้ไดเรกทอรี phonegap-2.9.0

    6. ที่ Windows Explorer เข้าไปในไดเรกทอรี phonegap-2.9.0
    ก็อปปี้เฉพาะไดเรกทอรี lib\android\example\assets\www
    phonegap-008
    ที่รายการด้านซ้ายของโปรแกรม ADT คลิกขวาที่ phonegappsu > assets แล้ววาง www ไว้

    ก็อปปี้เฉพาะไดเรกทอรี lib\andriod\xml
    phonegap-009
    ที่รายการด้านซ้ายของโปรแกรม ADT คลิกขวาที่ phonegappsu > res แล้ววาง xml ไว้

    ก็อปปี้เฉพาะไดเรกทอรี lib\android\cordova­2.9.0.jar
    phonegap-010
    ที่รายการด้านซ้ายของโปรแกรม ADT คลิกขวาที่ phonepagpsu > libs แล้ววาง cordova­2.9.0.jar ไว้
    รวมแล้วจะได้หน้าตาประมาณนี้
    phonegap-011

    7. แก้ไขไฟล์  MainActivity.java ( ข้อนี้ต้องระวังการ copy แล้ว paste เครื่องหมายคำพูด และ ; )
    ที่รายการด้านซ้ายของโปรแกรม ADT ใต้ Project ที่สร้าง
    phonegappsu > src > com.example.phonegappsu> MainActivity.java
    โดยคลิกขวา > ใช้คำสั่ง Open With > Text Editor
    (1)แก้ไขบรรทัดเดิม public class MainActivity extends Activity
    เป็น public class MainActivity extends DroidGap
    (2)แก้ไขชุดบรรทัด import เดิมดังนี้
    ลบบรรทัด import android.app.Activity;
    เพิ่มบรรทัด import org.apache.cordova.*;
    (3)แก้ไขบรรทัดที่มีคำว่า protected เป็น public
    (4)ใส่ comment บรรทัด //setContentView(R.layout.activity_main);
    (5)แล้วเพิ่มบรรทัด super.loadUrl(“file:///android_asset/www/index.html”);
    จะได้ประมาณนี้

    phonegap-012

    code

    package com.example.phonegap;
    
    import android.os.Bundle;
    import org.apache.cordova.*;
    import android.view.Menu;
    
    public class MainActivity extends DroidGap {
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //setContentView(R.layout.activity_main);
            super.loadUrl("file:///android_asset/www/index.html");
        }
    
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
        
    }
    
    

    8. ต้องแก้ไข AndroidManifest.xml
    โดยคลิกขวา > ใช้คำสั่ง Open With > Text Editor
    ใส่ Permission Tag ดังนี้

    code

    <uses-permission android:name="android.permission.VIBRATE"/> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.RECEIVE_SMS"/> 
    <uses-permission android:name="android.permission.RECORD_AUDIO"/> 
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/> 
    <uses-permission android:name="android.permission.READ_CONTACTS"/> 
    <uses-permission android:name="android.permission.WRITE_CONTACTS"/> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.CAMERA"/>

    ไว้ก่อนบรรทัดปิด Tag </manifest>

    9.  ติดตั้ง jquery.mobile
    download phonegapcomponent (jquery.mobile)
    เอาจาก facebook group ชื่อ phonegap for psu เลือก files (สามารถโหลดจาก http://jquerymobile.com/ ได้เลย)
    ได้ไฟล์ที่ zip ไว้คือ PhoneGapComponent.zip
    แตกไฟล์ดังกล่าวออกมาแล้ว ได้ไดเรกทอรี PhoneGapComponent
    ที่ Windows Explorer เข้าไปในไดเรกทอรี PhoneGapComponent
    ก็อปปี้เฉพาะไดเรกทอรี css และ js
    ที่รายการด้านซ้ายของโปรแกรม ADT คลิกขวาที่ phonegappsu > assets > www แล้ววาง css กับ js ไว้

    10. ทดสอบสร้าง Application จากตัวอย่าง index.html ที่ให้มา
    จะได้ไฟล์ phonegappsu.apk
    ที่รายการด้านซ้ายของโปรแกรม Eclipse ใต้ Project ที่สร้าง
    assets > www > โดยคลิกขวาที่ไฟล์  index.html > ใช้คำสั่ง Open With > Text Editor
    สั่ง Run
    phonegap-014

    11. ในข้อถัดไปเป็นตัวอย่างใน workshop เอาไฟล์ตัวอย่างจากที่นี่
    https://sharedrive.psu.ac.th/public.php?service=files&t=04facfa02dc0204fadbf00925d3c431c )

    12. ทดสอบด้วยตัวอย่างที่ 1 ชื่อ example1.html
    (ตัวอย่างนี้จะเปิด dialog หลังจากเลือกเมนู และบางเมนูเมื่อเลือกก็จะซ่อนข้อความ)
    นำไฟล์ตัวอย่าง example1.html ไปวางไว้ที่ phonegappsu > www
    phonegap-015
    แก้ไขไฟล์  MainActivity.java
    ที่รายการด้านซ้ายของโปรแกรม Eclipse ใต้ Project ที่สร้าง
    phonegappsu > src > com.example.phonegappsu> MainActivity.java
    แก้ไขบรรทัด super.loadUrl(“file:///android_asset/www/index.html”);
    เป็น super.loadUrl(“file:///android_asset/www/example1.html”);
    รันโปรเจกต์ ได้ผลแสดงบน ADV
    phonegap-016

    13. ทดสอบด้วยตัวอย่างที่ 2 ชื่อ example2.html
    (ตัวอย่างนี้จะมีปุ่ม back ให้ย้อนกลับได้)
    นำไฟล์ตัวอย่าง example2.html ไปวางไว้ที่ phonegappsu > www
    phonegap-017
    แก้ไขไฟล์  MainActivity.java
    ที่รายการด้านซ้ายของโปรแกรม Eclipse ใต้ Project ที่สร้าง
    phonegappsu > src > com.example.phonegappsu> MainActivity.java
    แก้ไขบรรทัด super.loadUrl(“file:///android_asset/www/index.html”);
    เป็น super.loadUrl(“file:///android_asset/www/example2.html”);
    รันโปรเจกต์ ได้ผลแสดงบน ADV
    phonegap-018

    14. ทดสอบด้วยตัวอย่างที่ 3 ชื่อ dbuser.html
    (ตัวอย่างนี้ป้อนชื่อ นามสกุล เพศ เก็บลง sqlite database บน android และแสดงรายการ
    ขอบคุณกิตติพัฒน์ อุบลกาญจน์ที่เป็นเจ้าของต้นฉบับไฟล์ที่แก้ไปเยอะจากที่วิทยากรให้ลองทำ)
    นำไฟล์ตัวอย่าง dbuser.html ไปวางไว้ที่ phonegappsu > www
    phonegap-019
    แก้ไขไฟล์  MainActivity.java
    ที่รายการด้านซ้ายของโปรแกรม Eclipse ใต้ Project ที่สร้าง
    phonegappsu > src > com.example.phonegappsu> MainActivity.java
    แก้ไขบรรทัด super.loadUrl(“file:///android_asset/www/index.html”);
    เป็น super.loadUrl(“file:///android_asset/www/dbuser.html”);
    รันโปรเจกต์ ได้ผลแสดงบน ADV
    phonegap-020

    15. หากต้องการทดสอบบน Android Smartphone เครื่องจริง ก็เอาไฟล์ phonegappsu.apk ไปใส่แล้วติดตั้ง
    ซึ่งไฟล์อยู่ที่ phonegappsu > bin

    ลองทำตามดูนะครับ

  • วิธีติดตั้ง Oracle Virtualbox Guest Additions สำหรับ Ubuntu 12.04 Guest

    การใช้งาน Oracle Virtualbox นั้น ต้องติดตั้ง Guest Additions เพื่อให้สามารถใช้งานความสามารถต่างๆได้มากขึ้น เช่น การ Sync Time ของ Guest จากตัว Host ได้, การ Copy-and-Paste ระหว่าง Guest กับ Host, ความสามารถในการ Copy File ข้ามระหว่าง Guest กับ Host  รวมถึง การใช้งาน Share Folder ด้วย

    สำหรับ Guest ที่เป็น Ubuntu 12.04 Server ซึ่งไม่มี GUI สามารถใช้คำสั่งต่อไปนี้ในการติดตั้ง

    1. ใน Guest OS, เลือกเมนู Device > Install Guest Additions …
    2. ที่ Prompt ใน Guest ต้องติดตั้ง dkms และ build-essential ก่อน ด้วยคำสั่ง
      # sudo apt-get install dkms build-essential
    3. จากนั้น mount เอา /dev/cdrom มาไว้ที่ /media/cdrom ด้วยคำสั่ง
      # sudo mount /dev/cdrom  /media/cdrom
    4. ติดตั้ง Guest Additions ด้วยคำสั่ง
      # sudo /media/cdrom/VBoxLinuxAdditions.run
    5. จากนั้น Reboot
      # sudo reboot

    การ Mount เอา Share Folder จาก Host มาให้ Guest เห็น  โดยอาจจะสร้าง directory
    สำหรับ Mount เอาไว้ชื่อ /media/vboxshare01
    และ Host ได้สร้าง share folder ชื่อ sharename
    ใช้คำสั่ง
    # sudo mkdir /media/vboxshare01
    # sudo mount -t vboxsf sharename /media/vboxshare01

  • Magic table for trigger in SQL Server

    ใน SQL Server ในการ insert ,Update and delete ข้อมูลต่างๆที่เกิดขึ้นจะถูกเก็บไว้ใน magic table อยู่ 2 table

    คือ inserted,deleted tables

    inserted table จะเก็บข้อมูล recordที่ถูกดำเนินการ และจะเก็บข้อมุลหลังจากการ Update เสร็จสิ้น

    Deleted table จะเก็บข้อมูล record ที่มีการลบไปล่าสุดและเก็บข้อมุลเก่าก่อนการ Update Record ไว้

    ในการเขียน Trigger สำหรับ table ใน SQL Server สำหรับการ Insert,delete จะไม่มีปัญหาอะไรดึงข้อมูล

    มาตรวจสอบจาก 2 table นั้นโดยตรง แต่ถ้าเป็นการ Update ก็จะต้องเลือกให้ดีว่าจะเอาข้อมูลอะไร ก่อนหรือหลังการ

    Update มาเก็บเป็น log นะครับ

    ตัวอย่างครับ

     

    CREATE TRIGGER [dbo].[LogTrigger]
    ON [dbo].[zzz]
    AFTER DELETE,UPDATE
    AS
    BEGIN
    SET NOCOUNT ON;

    if exists(select * from inserted)
        begin
                  insert into log_OptFac
                  select *,GETDATE(),’U’ from deleted
         end
    else
         begin
                   insert into log_OptFac
                   select *,GETDATE(),’D’ from deleted
         end
    END