Author: wachirawit.j

  • มัลแวร์เรียกค่าไถ่ Ransomware

    ทุกวันนี้อินเตอร์เน็ตเข้ามามีอิทธิพลต่อชีวิตประจำวันเป็นอย่างมาก ทุกคนไม่ว่าจะเป็นใคร ทำอาชีพอะไร อยู่ที่ไหนในโลกนี้ก็สามารถเข้าถึงอินเตอร์เน็ตได้ด้วยอุปกรณ์ต่าง ๆ ที่หลากหลาย เช่น คอมพิวเตอร์ แท็บเล็ต และสมาร์ทโฟน เป็นต้น อุปกรณ์เหล่านี้ทำให้เราเข้าถึงโลกอินเตอร์เน็ตที่กว้างใหญ่ได้ ดังนั้นเราจึงไม่ควรมองข้ามภัยอันตรายที่แฝงอยู่ในรูปแบบต่าง ๆ โดยเฉพาะอย่างยิ่งภัยอันตรายที่มาจากมัลแวร์ชนิดหนึ่งที่มันจะมาจับเครื่องหรือไฟล์ของเราเป็นตัวประกัน เพื่อเรียกค่าไถ่ มัลแวร์ชนิดนี้สร้างความตื่นตัวให้กับคนทั่วโลก รวมถึงประเทศไทยมาแล้ว  ดังจะเห็นได้จากหน่วยงานราชการต่าง ๆ ในประเทศไทยได้มีการออกหนังสือราชการ ประกาศแจ้งเตือนให้เพิ่มความระมัดระวังในการเปิดอ่านไฟล์ที่แนบมากับจดหมายอิเล็กทรอนิกส์ให้มากยิ่งขึ้น

    รูปที่ 1 ตัวอย่างหนังสือราชการแจ้งเตือนให้เพิ่มความระมัดระวังในการเปิดอ่านจดหมายอิเล็กทรอนิกส์
    [ที่มา : http://www.tourism.go.th/subweb/details/7/88/24949 และ http://www.chkr.go.th/2/images/vs.pdf ]
    มัลแวร์ที่ประสงค์ร้ายต่อข้อมูลในอุปกรณ์ต่าง ๆ ของเราดังกล่าว จัดเป็นมัลแวร์ประเภท “Ransomware” หรือ “มัลแวร์เรียกค่าไถ่” มีเป้าหมายที่ตรวจพบการโจมตีแล้วทั้งในระบบปฏิบัติการ Window, Android, iOS และ Linux โดยแบ่งตามการทำงานออกเป็น 2 รูปแบบหลัก ๆ อุปกรณ์ต่าง ๆ ของเรานคือ

    1. Lock Screen Ransomware
      Ransomware รูปแบบนี้จะใช้ความสามารถของ Lock Screen ทำการล็อคหน้าจอหรือปิดกั้นการเข้าใช้งานเครื่องคอมพิวเตอร์ หรือสมาร์ทโฟนของเหยื่อไว้ ไม่ให้สามารถเข้าถึงโปรแกรมต่าง ๆ และข้อมูลในเครื่องได้ พร้อมทั้งแสดงข้อความเรียกค่าไถ่เพื่อปลดล็อคดังรูปที่ 2 เป็นหน้าจอของสมาร์ทโฟนระบบปฏิบัติการ Android ที่ติด Ransomware ชื่อ iToper
      รูปที่ 2 ตัวอย่างหน้าจอสมาร์ทโฟนที่ติดมัลแวร์ชนิด Lock Screen Ransomware ที่ชื่อ iToper
      [ที่มา : http://www.cmcm.com/blog/en/security/2015-06-16/645.html ]
    2. File Encrypting Ransomware
      เครื่องผู้ใช้งานที่ติด Ransomware ในรูปแบบนี้จะสามารถใช้งานอุปกรณ์ และเข้าถึงโปรแกรมต่าง ๆ ได้ตามปกติ แต่ไฟล์ต่าง ๆ ที่อยู่ในเครื่องทั้งหมด ไม่ว่าจะเป็นไฟล์เอกสาร ไฟล์วีดีโอ หรือไฟล์รูปภาพ และอื่น ๆ จะถูกเข้ารหัสไว้ไม่ให้ผู้ใช้งานสามารถเข้าถึงได้ จากนั้นจึงเรียกค่าไถ่โดยการทิ้งข้อความแสดงคำแนะนำวิธีการจ่ายเงินเพื่อแลกกับคีย์ที่ใช้ในการถอดรหัสไฟล์กลับคืนมาดังรูปที่ 3 เป็นตัวอย่างหน้าจอการเรียกค่าไถ่ของ Ransomware รูปแบบนี้ที่ชื่อ CryptoLocker
      รูปที่ 3 หน้าจอของเครื่องคอมพิวเตอร์ที่ติด Ransomware รูปแบบ File Encrypting ransomware ชื่อ CryptoLocker
      [ที่มา : https://www.thaicert.or.th/papers/technical/2013/pa2013te011.html ]

      สถิติการโจมตีของ Ransomware

      มีสถิติที่น่าสนใจจาก Solutionary ซึ่งเป็นบริษัทด้านความปลอดภัยในเครือ NTT Group ได้ออกรายงานสถิติการโจมตีของ Ransomware ที่ตรวจพบได้ในไตรมาสที่ 2 ของปี 2016 พบว่าหน่วยงานด้านสาธารณสุขเป็นหน่วยงานที่ถูกโจมตีมากที่สุดถึง 88% รองลงมาคือหน่วยงานด้านการศึกษา 6% และหน่วยงานด้านการเงิน 4% โดย Ransomware สายพันธ์ที่ตรวจพบมากที่สุดคือ CryptoWall คิดเป็น 94%

    รูปที่ 4 สถิติการโจมตีของ Ransomware ในไตรมาสที่ 2 ปี 2016 [ที่มา : https://www.helpnetsecurity.com/2016/07/27/ransomware-healthcare-industry ]

    ช่องทางการโจมตีของ Ransomware

    1. การโจมตีส่วนใหญ่จะมาทางอีเมล์หลอกลวงที่แนบไฟล์ Ransomware ไว้ โดยเนื้อหาในอีเมล์จะดึงดูดให้ผู้อ่านอยากคลิกเข้าไปอ่าน เช่น อีเมล์แจ้งเลขที่ใบสั่งซื้อสินค้า (OrderID) หากผู้ใช้ไม่คลิกไปเปิดไฟล์แนบ ก็อาจจะทำให้สูญเสียโอกาสทางการค้าได้ ซึ่งถ้าผู้ใช้คลิกเปิดไฟล์โดยไม่ระมัดระวัง ก็จะตกเป็นเหยื่อของ Ransomware ทันที ไฟล์แนบที่มากับอีเมล์จะเป็น zip file หากแตกไฟล์ออกมาก็จะพบไฟล์นามสกุล .doc, .xls, .ppt หรือไฟล์อื่นๆ ที่เราคุ้นเคย แต่ถ้าสังเกตดี ๆ จะพบว่านามสกุลของไฟล์จริง ๆ แล้วเป็น .exe เรียกเทคนิคการตั้งชื่อไฟล์แบบนี้ว่า Double Extensions
    2. โจมตีด้วยวิธี Social Engineering เป็นการหลอกผู้ใช้งานให้ดาวน์โหลดโปรแกรมมาติดตั้งในเครื่อง เช่น ในขณะที่ใช้งานระบบลงทะเบียนเรียนออนไลน์ของมหาวิทยาลัย พบว่ามี Pop-up ขึ้นมาบอกว่า ให้ดาวน์โหลดโปรแกรมเสริมมาติดตั้งเพื่อให้สามารถลงทะเบียนได้สะดวก และรวดเร็วขึ้น ทั้ง ๆ ที่โปรแกรมนี้ไม่มีอยู่จริง หากผู้ใช้งานหลงเชื่อและทำการดาวน์โหลดมาติดตั้ง ไฟล์ต่าง ๆ ก็จะโดนจับเป็นตัวประกันทันที
    3. โจมตีทางช่องโหว่ของ Browser รวมถึง Add-on, Plug-in ต่าง ๆ เช่น Java, Flash และ Acrobat Reader เป็นต้น

    เทคนิคที่ File Encrypting Ransomware ใช้ในการเข้ารหัส

    Ransomware ส่วนใหญ่จะเข้ารหัสไฟล์โดยใช้ Asymmetric Key Algorithms ประกอบด้วยกุญแจ 2 ดอก คือ Public Key ใช้ในการเข้ารหัส และ Private Key ใช้ในการถอดรหัสดังรูป

    รูปที่ 5 การเข้ารหัส และถอดรหัส [ที่มา : https://www.hotforsecurity.com /blog /how-does-ransomware-work-the-ultimate-guide-to-understanding-ransomware-part-ii-11856.html]

    ขั้นตอนการทำงานของ Ransomware

    การโจมตีของ Ransomware จะมีขั้นตอนการทำงาน 6 ขั้นตอน ดังรูป โดย 3 ขั้นตอนสุดท้ายจะใช้การสื่อสารผ่าน TOR (The Onion Router) เพื่อปกปิดตัวตนของโจร และทำให้ไม่สามารถทราบได้ว่าเชื่อมต่อจากที่ไหน

    รูปที่ 6 ขั้นตอนการทำงานของ File Encrypting Ransomware [ที่มา : https://www.sans.org/reading-room/whitepapers/incident/enterprise-survival-guide-ransomware-attacks-36962]
    1. ส่งข้อมูลหลอกลวงผู้ใช้งานในรูปแบบของอีเมล์ที่มีไฟล์แนบ หรือลิงค์สำหรับดาวน์โหลดโปรแกรม
    2. ผู้ใช้งานดาวน์โหลดไฟล์ Ransomware จากไฟล์แนบหรือลิงค์หลอกลวง
    3. ผู้ใช้งาน Double Click เพื่อเปิดไฟล์ที่ดาวน์โหลดมา ก็จะเป็นการสั่งให้ Ransomware ทำงานทันที
    4. Ransomware ทำการเชื่อมต่อไปยัง Command and Control Center (C&C) หรือเครื่องเซิร์ฟเวอร์ที่ทำหน้าที่เก็บข้อมูล และคีย์ที่ใช้ในการถอดรหัสของเหยื่อแต่ละราย ซึ่ง Ransomware จะต้องทำการเชื่อมต่อ C&C ให้ได้ก่อนที่จะดำเนินการขั้นต่อไป จากนั้นจึงสร้าง RSA Key ขนาด 2,048 bits ขึ้นมาคือ Public Key ที่ใช้สำหรับเข้ารหัส และ Private Key ที่ใช้สำหรับถอดรหัสโดย C&C จะเก็บ Private Key ไว้ และส่ง Public Key ไปยังเครื่องเหยื่อ
    5. Ransomware จะทำการค้นหาไฟล์ต่าง ๆ บนเครื่องเหยื่อโดยดูจากนามสกุลไฟล์ ทั้งไฟล์รูปภาพ (เช่น .jpg, .gif, .png) วีดีโอ (เช่น .avi, .mpeg, .mov) และเอกสาร (เช่น .doc, docx, xls, xlsx) เป็นต้น จากนั้นจึงใช้ RSA Algorithm เข้ารหัสไฟล์ด้วย Public Key และแสดงตัวเพื่อเรียกค่าไถ่โดยการทิ้งข้อความแจ้งเตือนเหยื่อว่าไฟล์ทั้งหมดถูกเข้ารหัสแล้ว ไม่สามารถใช้งานได้ และเหยื่อต้องยอมจ่ายเงินเป็นจำนวนที่โจรต้องการในรูปแบบของ Bitcoins เพื่อแลกกับ Private Key ที่ใช้ในการถอดรหัสภายในระยะเวลาที่กำหนด ไม่เช่นนั้นจะขึ้นค่าไถ่ หรือทำลายคีย์ทิ้ง และจะไม่สามารถถอดรหัสไฟล์ได้อีก
    6. หากเหยื่อจ่ายเงินค่าไถ่ตามคำแนะนำของโจร ก็อาจจะได้รับ Private Key ภายใน 2 – 48 ชั่วโมง และจะทำการถอดรหัสไฟล์ให้โดยอัตโนมัติ แต่ไม่รับประกันว่าจะสามารถถอดรหัสได้ทุกไฟล์หรือไม่

    จากข้อมูลผู้ให้บริการตรวจสอบชนิดของ Ransomware ที่ https://id-ransomware.malwarehunterteam.com สามารถตรวจสอบและระบุตัว ransomware ได้ต่างกัน 187 ชนิด ซึ่งแต่ละชนิดจะมีรายละเอียดต่างกัน เช่น CryptoLocker และ Ransom32 มีรายละเอียดดังนี้

    CryptoLocker

    เป็นมัลแวร์ที่แพร่กระจายในรูปของไฟล์แนบ zip file ในอีเมล์ซึ่งถูกส่งมาจากผู้ส่งที่น่าเชื่อถือ หากแตกไฟล์ออกมาก็จะพบไฟล์ .exe ในรูปของไฟล์เอกสาร เช่น pdf, word, excel เป็นต้น หากผู้ใช้ Double Click จะทำให้ไฟล์ต่าง ๆ ถูกเข้ารหัสทันที โดยตัวอย่างหน้าจอ CryptoLocker เป็นดังรูป

    รูปที่ 7 หน้าจอคอมพิวเตอร์ที่โดน CryptoLocker เข้ารหัสไฟล์เรียบร้อยแล้ว และรายชื่อไฟล์ที่ถูกเข้ารหัส [ที่มา : https://www.it24hrs.com/2015/ransomware-alert]

    Ransom32

    เป็นมัลแวร์รูปแบบใหม่ที่พัฒนาโดยใช้ภาษา Java Script ภายใต้แนวคิด Software as a Service (SaaS) เชื่อมต่อกับ C&C ผ่านทาง TOR เช่นเดียวกับ Ransomware สายพันธ์อื่น ๆ  การพัฒนาด้วยแนวคิด SaaS จะทำให้ใครก็ตามสามารถสร้างมัลแวร์เป็นของตนเองได้ทันทีโดยอาศัยการตั้งค่าต่าง ๆ เช่น จำนวนเงินที่เรียกร้อง และข้อความแจ้งเตือน เป็นต้น ผ่านทางเว็บไซต์ที่ซ่อนอยู่ภายในเครือข่าย TOR

    รูปที่ 8 ตัวอย่างข้อความเรียกค่าไถ่ของ Ransom32
    [ที่มา : http://securityaffairs.co/wordpress/43250/cyber-crime/ransom32-crypto-ransomware.html]

    หากตกเป็นเหยื่อของ Ransomware แล้วต้องทำอย่างไร

    1. ในกรณีที่ไฟล์ที่ถูกเข้ารหัสเป็นไฟล์สำคัญจริง ๆ ก็ต้องจ่ายเงิน แต่ก็ไม่สามารถรับประกันได้ว่าจะสามารถได้ไฟล์คืนมา เนื่องจากการทำธุรกรรมกับโจรย่อมมีความเสี่ยงที่จะเป็นผู้เสียเงินฝ่ายเดียว หากเป็นไปได้ไม่ควรใช้วิธีการนี้ เนื่องจากการจ่ายเงินเป็นการสนับสนุนธุรกิจของโจร
    2. ห้ามใช้เครื่องที่ติด Ransomware เชื่อมต่อกับเครือข่าย Flash Drive หรือ External Hardisk เนื่องจากอาจจะเป็นการกระจายมัลแวร์ไปยังเครื่องอื่น ๆ ได้
    3. ควร Format เครื่อง และติดตั้งระบบปฏิบัติการใหม่

    การป้องกันภัยจาก Ransomware

    • เนื่องจากช่องทางการแพร่กระจายของ Ransomware โดยส่วนใหญ่จะมาทางอีเมล์ขยะ ผู้ใช้งานจึงควรเลือกใช้โปรแกรมสำหรับจัดการอีเมล์ และบริการอีเมล์ที่มีคุณสมบัติการช่วยกรองอีเมล์ขยะที่มีประสิทธิภาพ
    • ควรเพิ่มความระมัดระวังในการใช้อินเตอร์เน็ตให้มากยิ่งขึ้น หากสงสัยว่าไฟล์ที่ดาวน์โหลดมาเป็นมัลแวร์ ก็สามารถทำการตรวจสอบได้โดยการอัพโหลดไฟล์ดังกล่าวไปทดสอบกับเว็บไซต์ https://www.virustotal.com
    • ตั้งค่าเครื่องคอมพิวเตอร์ให้แสดงนามสกุลไฟล์ จะทำให้สังเกตไฟล์ที่มีลักษณะเป็น Double Extension ซึ่งเป็นเทคนิคที่ Ransomware ใช้ในการหลอกลวงผู้ใช้ได้ง่ายยิ่งขึ้น
    • ทำการอัพเดทโปรแกรมต่าง ๆ ที่มักจะเป็นเป้าหมายในการฝังมัลแวร์ไว้ เช่น Java, Adobe Flash Player, Microsoft Silverlight, Adobe Reader, Web Browser เป็นต้น รวมทั้งระบปฏิบัติการ และโปรแกรม Antivirus ให้ทันสมัยอยู่เสมอ
    • สำรองข้อมูลอย่างสม่ำเสมอไว้ในฮาร์ดดิสสำรองเพื่อป้องกันข้อมูลสูญหาย ซึ่งเมื่อทำการสำรองข้อมูลเสร็จแล้วควรรีบปลดสายออก
    • ควรติดตั้งส่วนเสริมสำหรับ Browser ที่ใช้ในการปิดกั้นโฆษณา เนื่องจากมัลแวร์มีการแพร่กระจายโดยการฝัง Script สำหรับดาวน์โหลดมัลแวร์ไว้ในแบนเนอร์โฆษณา

    แหล่งที่มาของข้อมูล

    • https://www.sans.org/reading-room/whitepapers/incident/enterprise-survival-guide-ransomware-attacks-36962
    • https://izonex.wordpress.com/2008/10/26/anoymous-software-tor
    • https://www.it24hrs.com/2015/ransomware/
    • https://www.hotforsecurity.com/blog/money-or-data-the-ultimate-guide-to-understanding-ransomware-part-i-11808.html
    • https://www.techtalkthai.com/ransom32-saas-ransomware/
    • http://securityaffairs.co/wordpress/43250/cyber-crime/ransom32-crypto-ransomware.html
    • http://www.aripfan.com/ransomware-email-virus/
    • https://www.helpnetsecurity.com/2016/07/27/ransomware-healthcare-industry
    • http://www.tourism.go.th/subweb/details/7/88/24949

     

  • แนวทางการพัฒนา App บนสมาร์ทโฟน

    ถ้าใครเคยพัฒนา app เพื่อให้รองรับหลาย ๆ Platform ทั้ง iOS, Android หรือ Window Phone  ก็คงจะทราบถึงความยากลำบากในการพัฒนา เนื่องจากแต่ละ platform ก็มีวิธีการพัฒนาที่แตกต่างกัน เช่น app ที่รันบน iOS พัฒนาโดยใช้ภาษา Object C, ภาษา Swift ในขณะที่ app ที่รันบน Android พัฒนาขึ้นโดยใช้ภาษา Java และ app ที่รันบน Windows phone ก็พัฒนาขึ้นด้วย .Net Framework จะเห็นว่าแต่ละ Platform ใช้เทคโนโลยีที่ต่างกันอย่างสิ้นเชิง ทำให้การพัฒนา app 1 ตัว ให้รองรับทั้ง 3 platform ดังกล่าวข้างต้น ต้องใช้ต้นทุนค่อนข้างสูง ใช้เวลาในการพัฒนาเยอะ และยุ่งยากในการบำรุงรักษา

    App บนสมาร์ทโฟน สามารถแบ่งออกเป็น 3 ประเภท ดังนี้

    • Native App คือ app ที่เกิดจากการพัฒนาโดยการใช้ SDK (Software Development Kit) ของ OS แต่ละค่าย ทำให้ app ที่พัฒนาขึ้นมีประสิทธิภาพสูง สามารถเรียกใช้งานฟังก์ชันต่าง ๆ เพื่อเข้าถึงหรือควบคุมอุปกรณ์ได้ เช่น ตัวรับสัญญาณ GPS กล้องถ่ายรูป อุปกรณ์สแกนลายนิ้วมือ ที่ติดตั้งมากับสมาร์ทโฟนได้โดยตรง แต่ข้อเสียคือจะสามารถทำงานได้กับ OS เฉพาะค่ายนั้นเท่านั้น
    • Web App เป็น app ที่เข้าถึงได้ด้วยโปรแกรมประเภท Browser ต่าง ๆ ผ่านเครือข่ายคอมพิวเตอร์ เป็นที่นิยม เนื่องจากผู้พัฒนาสามารถอัพเดท หรือบำรุงรักษาได้โดยที่ไม่ต้องติดตั้งบนเครื่องผู้ใช้ ข้อเสียของ app ประเภทนี้คือ ไม่สามารถเขียนโปรแกรมเพื่อเรียกใช้งานฟังก์ชันต่าง ๆ เพื่อเข้าถึงหรือควบคุมอุปกรณ์ต่าง ๆ ของสมาร์ทโฟนได้
    • Hybrid App เป็น app ที่พัฒนาขึ้นโดยนำข้อดีของ app ทั้ง 2 ประเภทข้างต้นมารวมกัน โดยอาจจะมองว่า มันเป็น Web App ที่สามารถเขียนโปรแกรมให้เรียกใช้งานฟังก์ชันเพื่อเข้าถึงหรือควบคุมอุปกรณ์ต่าง ๆ ของสมารทโฟนได้ มีหน้าตาการใช้งานหมือนกับการ Native App แต่พัฒนาโดยใช้ภาษาต่าง ๆ เช่น HTML, CSS, Java Script เป็นต้น เปิดใช้งานด้วย Web viewer ของ OS แต่ละตัวเลย ข้อดีที่เด่นชัดคือ นักพัฒนาสามารถพัฒนา app ขึ้นมาเพียงชุดเดียว แล้ว build ให้มันสามารถรันบน platform ต่าง ๆ ได้ตามต้องการ

    compare app

    รูปที่ 1เปรียบเทียบประสิทธิภาพ ความสามารถในการเขียน App แต่ละแบบ [ที่มา :http://androiddevelopersthai.blogspot.com/]

    การเลือกว่าจะพัฒนา app เป็นแบบไหน ก็ขึ้นอยู่กับความต้องการของผู้ใช้งานเป็นหลัก และเพื่อแก้ปัญหาที่ได้กล่าวไว้ตอนต้น พบว่า Hybrid App สามารถตอบโจทย์ได้เป็นอย่างดี โดยเครื่องมือที่นำมาใช้ในการพัฒนาที่มีประสิทธิภาพมากที่จะแนะนำในบทความนี้คือ Ionic Framework

    Ionic Framework

    Ionic Framework เป็นตัวช่วยในการใช้พัฒนา Hybrid App ที่ทำให้พัฒนา App แค่ครั้งเดียวก็สามารถ Build ให้รันได้ในหลาย Platform ซึ่งเทคโนโลยีที่ใช้ในการพัฒนาเป็นเทคโนโลยีเดียวกันกับที่ใช้ในการพัฒนาเว็บได้แก่ HTML, CSS และ Java Script ทำให้นักพัฒนาเว็บสามารถเรียนรู้วิธีการพัฒนาได้อย่างรวดเร็ว

    ionic_frameworkรูปที่ 2  Ionic Framework [ที่มา : http://blog.prscreative.com]

     

    Ionic Framework เป็น Open Source ที่นักพัฒนาสามารถใช้ในการสร้าง App ของตัวเอง หรือ App เชิงพาณิชย์ก็ได้ มีเว็บไซต์อย่างเป็นทางการคือ http://ionicframework.com

    ตัวอย่าง App ดังๆ ที่ใช้ Ionic ได้แก่ UNIQLO ดังรูป

    uniqlo
    รูปที่ 3 ตัวอย่างหน้าจอ App ของ UNIQLO ที่พัฒนาขึ้นด้วย Ionic [ที่มา :https://itunes.apple.com/th/app/uniqlo-th/id867497451?l=th&mt=8 ]

    สามารถดูตัวอย่าง App ที่พัฒนาด้วย Ionic เพิ่มเติมได้จาก http://showcase.ionicframework.com

  • การสร้าง Hybrid App ด้วย Ionic Framework

    ในบทความนี้จะนำขั้นตอนการพัฒนา Hybrid App อย่างง่ายด้วย Ionic Framework เพื่อเป็นแนวทางการพัฒนาแก่ผู้ที่สนใจ โดยเครื่องที่ใช้ในการทดลองเป็นปฏิบัติการ Windows 10 มีขั้นตอนการติดตั้งเครื่องมือต่าง ๆ เพื่อให้สามารถใช้ Ionic ได้ดังนี้

    1. ติดตั้ง js โดยดาวน์โหลดไฟล์ node-v4.4.7-x64.msi ได้จาก http://nodejs.org วิธีการติดตั้งก็ไม่ยุ่งยากครับ ใช้ Next Technology ได้เลย จะมีหน้าจอขั้นตอนต่าง ๆ ดังรูป
      node_js_setup
    1. ติดตั้ง Cordova และ Ionic command line tool โดยการเปิด command prompt ของ windows ขึ้นมา แล้วรันคำสั่ง
      $ npm install -g ionic
      install_ionic

    เริ่มต้นสร้าง App อย่างง่าย

    หลังจากที่เตรียมความพร้อมของเครื่องที่พัฒนาเรียบร้อยแล้ว ขั้นตอนต่อไปก็จะเป็นการสร้าง App ขึ้นมา ซึ่ง Ionic ได้เตรียม template ตั้งต้นไว้ให้เราแล้ว ได้แก่ side menu, maps, salesforce, complex-list, blank เราก็ดูว่า App ของเราสามารถใช้ template ตัวไหนได้บ้าง ก็เลือกมาใช้ได้เลย
    ionic_template
    รูปที่ 1 Ionic Template [ที่มา : http://ionicframework.com]

    ขั้นตอนการสร้าง App โดยใช้ command line tools

    1. เปิด command line ขึ้นมา แล้วกำหนด working directory เป็นที่ที่สำหรับใช้เก็บ project (ในที่นี้จะกำหนดเป็น “C:\ionic” )
      cmd
    1. สร้าง project กำหนดชื่อ myApp และใช้ tabs เป็น template ตั้งต้นโดยใช้คำสั่ง
      $ ionic start myApp tabs
      ผลลัพธ์ที่ได้จากคำสั่งนี้ จะทำให้ได้ไฟล์ต่าง ๆ ดังรูป
      file_structureจะพบว่ามีโฟลเดอร์ชื่อ www สำหรับเก็บโค้ด HTML, CSS, Java Script เหมือนกับการพัฒนาเว็บไซต์ ให้เราใช้ความรู้ด้านการเขียนเว็บไซต์สร้างไฟล์ต่าง ๆ เก็บไว้ในโฟลเดอร์นี้ได้เลย
    1. หลังจากสร้างไฟล์ App ขึ้นมาแล้ว ก็จะเข้าสู่ขั้นตอนการ Build ให้ App สามารถรันบน Platform ต่าง ๆ ได้ สำหรับในบทความนี้จะแสดงเฉพาะการ Build สำหรับ Android เพื่อให้เห็นเป็นแนวทางการพัฒนา เนื่องจากเครื่องที่ใช้ทดสอบเป็น Windows 10 หากจะ Build ให้รันบน iOS ได้ ก็ต้อง Build บนเครื่องที่ใช้ระบบปฏิบัติการ iOS ในส่วนของการเตรียมความพร้อมสำหรับการ Build ให้รันบน Android ได้ เครื่องที่ใช้ในการพัฒนาจะต้องติดตั้ง Java Development Kit (JDK) 7 และAndroid Stand-alone SDK Tools หรือ Android Studio  ก่อน ซึ่งขั้นตอนการติดตั้งก็ไม่ยากครับ ใช้ Next Technology เช่นเคย
    1. Build และ Run บน Android โดยใช้คำสั่งต่อไปนี้
      $ ionic platform add android
      $ ionic build android
      $ ionic emulate androidจะทำให้ได้ผลลัพธ์ดังรูป
      android_app
      จากรูปเป็นผลลัพธ์ที่ได้จากการใช้ Tab template ซึ่งผู้พัฒนาจะต้องแก้ไขโค้ดให้เป็นไปตามที่ได้ออกแบบไว้ ก็จะได้ Android App ตามต้องการ

     

     

     

  • ข้อแตกต่างระหว่างการลงนามเอกสารด้วย Electronic Signature กับ Digital Signature

    ที่ผ่านมาได้มีโอกาสเดินทางไปดูงานระบบเอกสารอิเล็กทรอนิกส์ของหน่วยงานภาครัฐในภาคตะวันออกเฉียงเหนือ และภาคกลางด้วยความอยากรู้ว่าหน่วยงานอื่นๆ เขาพัฒนาระบบนี้กันไปถึงไหนแล้ว เพื่อจะได้นำมาเป็นแนวทางในการพัฒนาปรับปรุงระบบของม.อ.เราต่อไป จากการดูงานที่ผ่านมาพบว่า ระบบที่มีการใช้งานกันส่วนใหญ่ยังไม่ได้รับการพัฒนาให้รองรับงานด้านสารบรรณอย่างเต็มรูปแบบสักเท่าไหร่ บางที่ยังเป็นแค่ระบบที่ใช้ในการเก็บเอกสารแต่ยังไม่สามารถติดตามการดำเนินการต่างๆ ที่เกิดขึ้นกับเอกสารเรื่องนั้นๆ ได้ ซึ่งต่างจากของม.อ. เราที่สามารถติดตามเส้นทางการดำเนินการต่างๆ ที่เกิดขึ้นได้ทั้งหมด

    และเป็นที่ทราบกันดีว่าวัตถุประสงค์หลักของระบบเอกสารอิเล็กทรอนิกส์คือ การดำเนินการต่างๆ ด้านงานสารบรรณทั้งหมดในรูปแบบไฟล์อิเล็กทรอนิกส์แทนการใช้งานกระดาษ นั่นหมายความว่าเป้าหมายที่สำคัญของระบบนี้คือการดำเนินการทั้งหมดจะต้องดำเนินการผ่านระบบคอมพิวเตอร์ได้ 100% โดยไม่มีการใช้กระดาษเลย แต่ในปัจจุบันระบบยังไม่สามารถทำแบบนั้นได้ โดยเฉพาะในเรื่องของการลงนามเอกสาร เนื่องจากผู้ใช้ยังไม่มั่นใจรูปแบบการลงนามเอกสารในรูปแบบอิเล็กทรอนิกส์เท่าที่ควร จึงเลือกที่จะพิมพ์เอกสารเป็นกระดาษแล้วลงนามกันด้วยปากกาเช่นเดิม อย่างไรก็ตามเทคโนโลยีนี้กำลังจะได้รับการยอมรับมากยิ่งขึ้น เนื่องจากมีกฎหมายออกมารองรับ และสามารถใช้เป็นหลักฐานในชั้นศาลได้แล้ว

    จากการเดินทางไปศึกษาดูงานพบว่ามีระบบของสถาบันแห่งหนึ่งในภาคกลาง มีความสามารถในการลงนามเอกสาร โดยผู้ใช้จะต้องใช้รหัสผ่านที่ 2 เพื่อยืนยันตัวตนอีกครั้งหนึ่งก่อนการลงนาม จากนั้นระบบจะดึงรูปภาพลายเซ็นของผู้ลงนามมาแปะลงในเอกสารตามตำแหน่งที่กำหนดไว้ ข้อดีของวิธีการนี้คือในเอกสารจะมีรูปภาพลายเซ็นแปะอยู่ ทำให้ผู้อ่านคนอื่นๆ รับทราบได้ทันทีว่าใครเป็นคนลงนาม แต่ข้อเสียคือ รูปภาพลายเซ็นดังกล่าวสามารถคัดลอกแล้วนำไปแปะในเอกสารอื่นๆ ได้ง่าย จึงทำให้การลงนามแบบนี้ยังขาดคุณสมบัติด้านความปลอดภัย

    จากการศึกษาข้อมูลจากแหล่งต่างๆ พบว่าวิธีการในการลงนามเอกสารแบบอิเล็กทรอนิกส์นั้นมี 2 วิธีหลักๆ คือ  Electronic signature และ Digital Signature ซึ่งมีความหมายและข้อแตกต่างกันดังนี้

    Electronic Signature

    เป็นการทำสัญลักษณ์ หรือลายเซ็นที่อยู่ในรูปแบบอิเล็กทรอนิกส์โดยบุคคล เพื่อเป็นการยืนยันหรือลงนามในเอกสาร สัญลักษณ์ที่นิยมใช้กันได้แก่ รูปภาพลายเซ็นที่เซ็นด้วยหมึกปากกาลงในกระดาษแล้วสแกนเข้าสู่ระบบคอมพิวเตอร์ การใช้เมาส์ หรือนิ้วมือ หรือ stylus วาดรูปลายเซ็นบนหน้าจอคอมพิวเตอร์ ลายเซ็นที่แนบท้ายอีเมล์ การพิมพ์ชื่อด้วยคีย์บอร์ด รูปภาพลายนิ้วมือ การคลิก “I Agree” ใน Electronic form ต่างๆ เป็นต้น

    [ที่มา : https://www.signinghub.com/electronic-signatures]
    [ที่มา : https://www.signinghub.com/electronic-signatures]

    Digital Signature

    Digital Signature เป็น Subset ของ Electronic Signature เนื่องจากเป็นลายเซ็นที่อยู่ในรูปแบบของอิเล็กทรอนิกส์เหมือนกัน แต่ได้เพิ่มเติมคุณสมบัติด้านความปลอดภัยเข้าไป เพื่อให้มีความน่าเชื่อถือมากยิ่งขึ้น คุณสมบัติดังกล่าวประกอบด้วย

    1. Signer Authentication เป็นความสามารถในการพิสูจน์ว่าใครเป็นคนเซ็นเอกสาร ตัวลายเซ็นจะสามารถใช้ในการเชื่อมโยงไปยังบุคคลที่เซ็นเอกสารได้
    2. Data Integrity เป็นความสามารถในการตรวจสอบ หรือพิสูจน์ได้ว่ามีการแก้ไขเอกสารหลังจากที่ได้มีการเซ็นไปแล้วหรือไม่
    3. Non-repudiation การไม่สามารถปฏิเสธความรับผิดชอบได้ เนื่องจากลายเซ็นที่สร้างขึ้นมีเอกลักษณ์ สามารถพิสูจน์ในชั้นศาลได้ว่าใครเป็นผู้เซ็นเอกสาร

    [ที่มา : https://www.signinghub.com/electronic-signatures]
    สรุปข้อดีข้อเสียของ Electronic Signatures และ Digital Signature

    ข้อดี ข้อเสีย
    Electronic Signature – ใช้สัญลักษณ์ หรือรูปภาพลายเซ็นที่ผู้ใช้สามารถเห็นได้ง่าย ทำให้ทราบได้ว่าใครเป็นเจ้าของลายเซ็น (ทราบได้จากการดูรูปลายเซ็น) – ถูกคัดลอกจากเอกสารฉบับหนึ่งไปยังอีกฉบับหนึ่งได้ง่าย

    – ไม่สามารถตรวจจับการแก้ไขเนื้อหา หรือข้อความในเอกสารที่เกิดขึ้นหลังจากการเซ็นได้

    – วิธีการนี้ยังขาดความชัดเจน ไม่สามารถพิสูจน์ได้ว่าเจ้าของลายเซ็นเป็นผู้ลงนามจริงหรือไม่ จึงอาจโดนปฏิเสธความรับผิดชอบในชั้นศาลได้

    Digital Signature – เอกสารที่ผ่านการเซ็นแล้วจะไม่สามารถแก้ไขได้ หากมีการแก้ไขก็จะสามารถตรวจสอบได้ และส่งผลให้ลายเซ็นหมดสภาพไป

    – ผู้เซ็นเอกสารสามารถกำหนดระดับความน่าเชื่อถือได้

    – ผู้เซ็นเอกสารจะไม่สามารถปฏิเสธความรับผิดชอบได้

    – สามารถใช้เป็นหลักฐานในชั้นศาลได้เทียบเท่ากับการเซ็นเอกสารในกระดาษด้วยหมึกปากกา

    – ขึ้นอยู่กับการเข้ารหัสลับ และมีความยุ่งยากในการเชื่อมโยงกับลายเซ็นบนกระดาษ

     

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

     

    แหล่งข้อมูลอ้างอิง : https://www.signinghub.com/electronic-signatures/

  • จับตา Bootstrap 4 Beta

    เมื่อช่วงเดือนสิงหาคม 2015 ผู้พัฒนา Bootstrap ได้เปิดตัว Bootstrap 4 Beta ออกมาให้ผู้พัฒนาเว็บไซต์ได้ทดลองใช้งานกัน โดยได้มีการแก้ไข bug ที่เจอในเวอร์ชั่น 3 และเพิ่มเติมความสามารถต่างๆ เข้าไป ทำให้การพัฒนาเว็บไซต์สามารถทำได้ง่าย และเป็นที่น่าสนใจได้มากขึ้น โดยในเวอร์ชั่นนี้มีการปรับปรุงจากเวอร์ชั่น 3 ค่อนข้างเยอะ แต่ที่เด่นๆ ได้แก่

    bootstrap 4

     

    • ใช้ Sass แทน Less ทำให้ compile ได้เร็วขึ้น ข้อดีของการใช้ Sass คือการมี community ขนาดใหญ่เป็นตัวช่วยสำหรับนักพัฒนาในการค้นคว้าหาความรู้เพิ่มเติม หรือขอความช่วยเหลือต่างๆ จาก community ได้
    • ปรับปรุง Grid System ให้รองรับกับขนาดหน้าจอของอุปกรณ์ต่างๆ ให้มากยิ่งขึ้น
    • สนับสนุนการใช้งาน flexbox grid system และ component
    • ใช้ Card component แทนการใช้ wells, thumbnails และ panel
    • รวม HTML Reset ทั้งหมดไว้ใน Module เดียวกันชื่อ Reboot
    • เพิ่ม option ในการ customize ก่อนการดาวน์โหลดมาใช้งาน เช่นการกำหนด gradients, transitions, shadows ให้กับ component ต่างๆ โดยเก็บไว้ในตัวแปร Sass แล้ว recompile เป็น CSS มาใช้งาน
    • ยกเลิกการสนับสนุน IE8 แล้ว ส่งผลทำให้เราสามารถใช้ประโยชน์จาก Style sheet ได้อย่างเต็มประสิทธิภาพ และในเวอร์ชั่นนี้ก็ได้เปลี่ยนการใช้งานหน่วย pixel มาเป็น rems และ ems แทน เนื่องจากหน่วยทั้ง 2 แบบนี้ จะช่วยให้การพัฒนาเว็บไซต์ในรูปแบบ Responsive ทำได้ง่ายขึ้น ทั้งในส่วนของ Typography และ component sizing แต่ถ้าหากยังอยากให้เว็บไซต์รองรับ IE8 ด้วย ทางผู้พัฒนา Bootstrap แนะนำว่าให้ใช้ Bootstrap Version 3 ตามเดิม
    • เขียน Javascript plugin ใหม่ทั้งหมด
    • ปรับปรุง auto-placement หรือการจัดวางตำแหน่งของ tooltips และ popovers
    • ปรับปรุงเอกสาร Documentation ให้อ่าน และค้นหาได้ง่ายขึ้น
    • และอื่นๆ เช่น Custom form control, มีคลาสสำหรับ margin และ padding ให้ใช้งานได้ง่ายขึ้น และ Utility Class สำหรับอำนวยความสะดวกในการพัฒนาเว็บไซต์ เป็นต้น

     

    จะเห็นว่าจากรายการที่เปลี่ยนแปลงต่างๆข้างต้นนั้นมีความน่าสนใจมาก ทางผู้พัฒนาจึงได้สร้างเว็บไซต์ตัวอย่างไว้ให้ดูโดยสามารถดูได้จาก http://expo.getbootstrap.com/

  • Icon Font

    บทความนี้จะพูดถึงคำ 2 คำ คือ Icon และ Font ที่ใช้งานบนเว็บ ซึ่งทุกคนคงจะรู้จัก Web Icon กันดีอยู่แล้วว่ามันคือรูปภาพขนาดเล็กที่ปรากฏบนหน้าเว็บไซต์ ใช้เป็นสัญลักษณ์แทนความหมายต่างๆ เช่น รูปแว่นขยายมีความหมายถึงการค้นหาข้อมูล รูปแผ่นดิสก์ใช้แทนความหมายของการบันทึกข้อมูล เป็นต้น รูปภาพเหล่านี้ส่วนใหญ่จะเป็นไฟล์นามสกุล .png ซึ่งสามารถทำเป็นรูปที่มีพื้นหลังโปร่งใสได้

    search-iconActions-document-save-all-icon

     

     

     

    ในส่วนของการใช้งาน Font บนเว็บไซต์นั้นสามารถอ่านได้จากบทความ @font-face ครับ กล่าวโดยสรุปแบบง่ายๆ คือ Font เป็นข้อความที่ใช้นำเสนอข้อมูลบนเว็บไซต์ครับ และการพัฒนาเว็บไซต์ในปัจจุบันนี้ได้มีสิ่งที่น่าสนใจเกิดขึ้น เมื่อมีการนำ Icon และ Font มารวมกัน คือการทำ Icon ให้เป็น Font หรือการสร้างตัวอักษรที่มีรูปร่างเป็น Icon เรียกใช้งานผ่าน CSS class แล้วแสดงผลเหมือนเป็นรูปภาพรูปหนึ่ง ข้อดีของการทำแบบนี้คือเราสามารถจัดการเรื่องขนาด และสีได้ด้วยการใส่ CSS อย่างง่ายได้

    Icon Font ใน Bootstrap Framework

    Bootstrap Framework ที่นิยมใช้งานกันอย่างแพร่หลายก็ได้จัดเตรียมคอมโพเน้นต์ที่เป็น Icon Font ให้ใช้งานด้วยเหมือนกัน โดยจะใช้ชื่อว่า Gryphicons (http://getbootstrap.com/components/#glyphicons) ประกอบด้วย Icon ต่างๆ มากมายดังรูป

    gryphicons

    วิธีการใช้งานก็ไม่ยาก แค่กำหนด CSS class ให้กับแท็ก <span> ดังตัวอย่างนี้

    gryphicons-class-example

    Font Awesome

    font-awesome

    Font Awesome เป็นแหล่งรวม Icon Font ที่น่าสนใจมากอีกแหล่งหนึ่ง มี Icon สวยๆ ให้เลือกมากมาย วิธีการติดตั้งมี 2 วิธีเช่นเดียวกับการเรียกใช้งาน CSS ทั่วไป ดังนี้

    1. ติดตั้งผ่าน MaxCDN Bootstrap ในแท็ก <head> ดังนี้

    <link rel=”stylesheet” href=”//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css”>

    1. ดาวน์โหลดจากเว็บ http://fortawesome.github.io/Font-Awesome มาติดตั้งบนเว็บไซต์ของเราได้โดยตรง และติดตั้งในแท็ก <head> ดังนี้

    <link rel=”stylesheet” href=”path/to/font-awesome/css/font-awesome.min.css”>

    วิธีการใช้งานให้ใช้ผ่านแท็ก <i> หรือ <span> เช่น

    <i class=”fa fa-camera-retro”></i> fa-camera-retro

    ก็จะทำให้ได้ Icon รูปกล้องถ่ายรูปดังรูป

    camera-icon

    ท่านสามารถศึกษาเพิ่มเติมได้จากตัวอย่างในเว็บนี้ครับ http://fortawesome.github.io/Font-Awesome/examples

  • @FONT-FACE

    การใช้ฟอนต์นำเสนอข้อมูลข่าวสารบนเว็บไซต์ หรือ Web Typography ในยุคแรก นั้น Browser จะเป็นตัวกำหนดว่าจะนำเสนอด้วยฟอนต์อะไร ทำให้การแสดงผลในแต่ละ Browser ไม่เหมือนกัน ต่อมาใน HTML2 ได้มีการเพิ่มแท็ก <font> เข้ามา และใน CSS2 ก็อนุญาตให้เราสามารถกำหนดฟอนต์ได้เอง แต่ปัญหาที่เจอคือฟอนต์ที่เราเลือกใช้จะต้องถูกติดตั้งบนเครื่องฝั่งผู้ใช้ด้วย ดังตัวอย่างการกำหนดรูปแบบ font ด้วย CSS2 ดังนี้

    body { font-family: Gill, Helvetica, sans-serif }

    เมื่อ Web Browser อ่านเจอ CSS ดังกล่าว อันดับแรกก็จะดูว่าฟอนต์ที่ชื่อ Gill ถูกติดตั้งไว้ในเครื่องแล้วหรือยัง ถ้าติดตั้งแล้วก็จะแสดงผลเว็บไซต์ด้วยฟอนต์ Gill แต่ถ้ายังไม่ได้ติดตั้ง Browser ก็จะมองหาฟอนต์ตัวถัดไปคือ Helvetica และ sans-serif ตามลำดับ

    จากข้อจำกัดดังกล่าว จึงมีผลทำให้เราไม่สามารถใช้งานฟอนต์สวยๆ บนเว็บไซต์ได้ นักออกแบบเว็บไซต์จึงเลือกใช้วิธีการนำเสนอข้อมูลด้วยรูปภาพแทน โปรแกรมกราฟิกที่ใช้กันก็อย่างเช่น Adobe Photoshop จะทำให้สามารถใส่ข้อความ และ effect ต่างได้อย่างสวยงาม แต่ปัญหาต่อมาที่เจอก็คือการแก้ไขข้อความในรูปภาพมีความยุ่งยากซับซ้อน

    อะไรๆ ก็ง่ายขึ้นด้วย @font-face

    ถือว่าเป็นข่าวดีของนักพัฒนาเว็บไซต์เป็นอย่างมาก เมื่อ CSS3 ได้กำหนด @font-face ไว้ใน specification ด้วย ทำให้การใช้ฟอนต์บนเว็บไซต์มีความหลากหลายมากยิ่งขึ้น

    @font-face เป็นกลไกที่จะช่วยให้เราสามารถเรียกใช้ฟอนต์ที่ไม่ได้ถูกติดตั้งไว้บนเครื่องฝั่งผู้ใช้ได้ โดยให้ระบุแหล่งที่อยู่ (src) ของไฟล์ฟอนต์ไว้ใน Style Sheet ดังนี้

    @font-face {

    font-family: myFirstFont;

    src: url(‘www.mydomain.com/sansation_light.woff’);

    }

    จากโค้ดเมื่อ Web Browser อ่านเจอก็จะไปโหลดฟอนต์ตามที่อยู่ที่ระบุไว้มาใช้งาน ทำให้เราสามารถกำหนดฟอนต์ได้ตามต้องการ

    ปัญหาต่อมาที่เจอคือแต่ละ Web Browser นั้นรองรับไฟล์ฟอนต์ในรูปแบบ (format) ที่แตกต่างกันออกไป ในโค้ดตัวอย่างใช้รูปแบบ Web Open Font Format (woff) รูปแบบอื่นที่มีการใช้งานกันได้แก่ EOT (Embedded OpenType), TrueType Font (ttf), Open Type Font (otf) และ Scalable Vector Graphics (SVG) เป็นต้น โดยแต่ละ Browser รองรับรูปแบบไฟล์ต่างกันดังรูป

    font-browser-supportที่มา : www.w3schools.com

    แล้วทีนี้เราจะเขียน CSS อย่างไรให้รองรับทุก Browser ล่ะ? คำตอบก็คือ ให้เราระบุแหล่งที่อยู่ของไฟล์ฟอนต์ (src) แต่ละรูปแบบต่อท้ายเข้าไปเลยดังนี้

    @font-face {

    font-family: myFirstFont;

    src: url(‘sansation_light.woff’);

    src: url(‘sansation_light.woff’) format(‘woff’),

    url(‘sansation_light.eot) format(‘embeded-opentype’),

    url(‘sansation_light.ttf) format(‘truetype);

    }

    จากโค้ดในส่วนของ format จะเป็นตัวบอก Browser ว่าไฟล์ที่ระบุตรงกับรูปแบบที่รองรับหรือไม่ ถ้าตรงก็โหลดมาใช้งาน แต่ถ้าไม่ตรงก็จะไม่โหลดลงมาให้เปลือง Banwidth

    แล้วจะหาไฟล์ฟอนต์ได้จากไหน?

    อ่านมาถึงตรงนี้แล้ว หลายคนอาจจะกังวลว่า แล้วจะหาไฟล์ woff, eot, ttf เหล่านี้ได้จากไหน? คำตอบคือให้ทำตามขั้นตอนดังนี้

    1. ดาวน์โหลดฟอนต์ในรูปแบบ ttf ที่ต้องการก่อนครับ แนะนำเว็บไซต์ f0nt.com จะมีฟอนต์ภาษาไทยสวยๆ ให้เลือกมากมาย และที่สำคัญคือสามารถใช้ได้ฟรี ไม่มีค่าลิขสิทธิ์
    2. เข้าเว็บไซต์ http://www.font2com/
    3. ให้อัพโหลดไฟล์ฟอนต์ที่เตรียมไว้ แล้วคลิกปุ่ม Convert & Download ได้เลยครับ จะได้เป็นไฟล์ zip มา ข้างในประกอบด้วยไฟล์ css, demo.html และไฟล์ฟอนต์ต่างๆ ให้เราเอาไปใช้งานได้เลยครับ

     

  • ทำความรู้จักกับ Bootstrap

    สำหรับในบทความนี้ เป็นภาคต่อจาก “เตรียมความพร้อมก่อนการพัฒนา Web Application ” โดยจะมาทำความรู้จักกับ Bootstrap กันให้มากขึ้น ซึ่ง Bootstrap จัดเป็น Front-end Framework  ที่กำลังได้รับความนิยมเป็นอย่างมากในปัจจุบัน อาจจะเป็นเพราะว่า Bootstrap มีแนวทางในการพัฒนาในแบบ Responsive Web Design ก็เป็นได้ (บทความ แนวทางการพัฒนาเว็บแบบ Responsive Web Design)

    แนวคิดของ Bootstrap จะให้ความสำคัญกับการออกแบบการแสดงผลในอุปกรณ์ขนาดเล็กก่อน (Mobile First Approach) กล่าวคือ การสร้างเว็บไซต์ 1 หน้าสำหรับ Content ชุดเดียวกัน เราต้องออกแบบการแสดงผลให้ครอบคลุมหน้าจออย่างน้อย 3 ขนาดทั้ง Mobile device, Table และ Notebook  จริงๆ แล้วการจะออกแบบโดยเริ่มต้นที่หน้าจอขนาดใหญ่ หรือเล็กก่อนก็สามารถทำได้ทั้งนั้น แต่การเริ่มต้นจากหน้าจอขนาดเล็กจะทำให้เราได้โฟกัสใน Content ที่สำคัญๆ ก่อน เพื่อให้ User ได้รับข้อมูลหลักที่เว็บไซต์ต้องการนำเสนอ และค่อยๆ ออกแบบโดยเพิ่มรายละเอียดที่สำคัญรองลงมาในหน้าจอขนาดใหญ่ขึ้นตามลำดับ

    ใน Bootstrap เวอชั่น 3 นั้นได้เพิ่มคุณสมบัติการเป็น Responsive มาในตัวแล้ว การนำมาใช้งานจึงไม่ต้อง Include ไฟล์คุณสมบัตินี้เพิ่มเหมือนในเวอร์ชั่นก่อนหน้า

    การดาวน์โหลด Bootstrap

    สามารถดาวโหลดได้ที่ www.getbootstrap.com

    โครงสร้างไดเร็กทอรี่

    หลังจากดาวน์โหลดไฟล์มาแล้ว ให้ทำการแตกไฟล์ .zip จะพบว่ามีโครงสร้างไฟล์ดังนี้

    file_structure

    css
    เป็นโฟลเดอร์สำหรับเก็บไฟล์ CSS ที่ใช้กำหนด Layout และ Theme ของหน้าเว็บ สังเกตว่าในโฟลเดอร์นี้จะมีไฟล์ .min ซึ่งเป็นไฟล์ CSS ที่ผ่านการคอมไพล์แล้วทำให้มีขนาดเล็กลง

    js
    เป็นโฟลเดอร์สำหรับเก็บไฟล์ JavaScript เพิ่มลูกเล่นให้กับเว็บ

    fonts
    เป็นโฟลเดอร์สำหรับเก็บฟอนต์ต่างๆ ที่ใช้ในการแสดงผลข้อความบนหน้าเว็บ

    สิ่งที่ Bootstrap เตรียมไว้ให้

    Grid system
    ระบบ Grid จำนวน 12 คอลัมน์ สามารถเลือกใช้ได้ทั้งแบบ fixed และแบบ fluid

    Base CSS
    style sheets สำหรับ html elements พื้นฐาน เช่น typography, tables, forms และ images

    Components
    style sheets สำหรับสิ่งที่เราต้องใช้บ่อยๆ ไม่ว่าจะเป็น navigation, breadcrumbs รวมไปถึง pagination

    JavaScript
    jQuery plugins ต่างๆ ไม่ว่าจะเป็น modal, carousel หรือ tooltip

    เทมเพลตพื้นฐาน

    Bootstrap ใช้โครงสร้างเอกสารเป็น HTML5 ซึ่งมีเทมเพลตพื้นฐานดังรูป

    basic template

    ตัวอย่างการนำไปใช้งานที่เห็นได้ชัด และหลายๆ ท่านในชุมชน PSU SysAdmin เองคงจะคุ้นเคยกันดี เช่น

    – Joomla เวอร์ชั่น 3 ที่นำ Bootstrap ไปใช้ เพื่อให้เว็บไซต์มีคุณสมบัติของ Responsive Design ตอบสนองการแสดงผลบนอุปกรณ์ที่มีขนาดต่างๆ กันได้เป็นอย่างดี

    – WordPress ก็สามารถสร้าง Theme ด้วย Bootstrap ได้เหมือนกัน (http://blog.teamtreehouse.com/responsive-wordpress-bootstrap-theme-tutorial)

    – นอกจากนี้ท่านยังสามารถดูตัวอย่างเว็บไซต์อื่นๆ ที่ทางผู้พัฒนา Bootstrap ได้รวบรวมไว้ได้ที่ http://expo.getbootstrap.com/

     

     

     

  • การทำ Wireframe

    ในการพัฒนาเว็บไซต์ จะมีผู้ที่เกี่ยวข้องโดยตรงหลักๆ ได้แก่
    1. ทีมพัฒนาเว็บไซต์ หรือโปรแกรมเมอร์ อาจจะมีคนเดียว หรือทำงานกันเป็นทีมก็ได้ และ
    2. ผู้ใช้ หรือลูกค้า จะเป็นผู้กำหนดความต้องการของเว็บไซต์

    หลังจากที่ทีมพัฒนาเก็บรวบรวมความต้องการของลูกค้า และได้ทำการวิเคราะห์ความต้องการแล้ว ขั้นตอนถัดไป ก็จะเป็นการวางแผน ออกแบบ Layout คร่าวๆ ก่อน เพื่อให้ทีมพัฒนามีความเข้าใจที่ตรงกัน อีกทั้งยังสามารถนำเสนอต่อลูกค้า เพื่อให้ลูกค้าเห็นภาพรวมของเว็บไซต์ก่อนการลงมือออกแบบเว็บไซต์ และเขียนโค้ดจริง  เราเรียกกระบวนการออกแบบ Layout และนำเนื้อหาคร่าวๆ ในเว็บไซต์มาจัดเรียงบน Layout นี้ว่า “การทำ Wireframe”

    การทำ Wireframe นั้นไม่ได้มีรูปแบบตายตัว นักพัฒนาแต่ละคนอาจมีวิธีการที่แตกต่างกันไป แต่มีวัตถุประสงค์ในการทำที่เหมือนกัน คือ เพื่อให้เห็นภาพรวมของเว็บไซต์ ทำให้ทีมเข้าใจตรงกัน และพัฒนาไปในทางเดียวกัน

    ตัวอย่างเครื่องมือที่ใช้ทำ Wireframe ที่ทำได้ง่ายที่สุด คือการใช้ดินสอ วาด Layout ลงบนกระดาษ และจัดเรียงเนื้อหาคร่าวๆ ดังรูป

    wireframe

    หรือจะใช้โปรแกรมคอมพิวเตอร์ช่วยในการทำก็ได้แล้วแต่ความถนัดของแต่ละคน ซึ่งโปรแกรมคอมพิวเตอร์ที่ช่วยในการทำ Wireframe จะมีให้เลือกใช้มากมาย ทั้งในแบบใช้งานออนไลน์ และแบบที่ต้องติดตั้งลงเครื่อง มีทั้งที่ให้ใช้งานฟรี และเสียตังค์ซื้อก็มี ตัวอย่างที่น่าสนใจได้แก่

    1. Prototype – โปรแกรมทำ Wireframe ตัวนี้มีทั้งบน Windows / Mac OS โดยแบ่งเป็นเวอร์ชั่นฟรี กับเวอร์ชั่นเสียเงิน
    2. Pencil Project – โปรแกรมทำ Wireframe ใช้ฟรี ๆ มีทั้งบน Windows / Linux / Mac OS
    3. Cacoo – Web App สำหรับทำ Diagram, Wireframe ออนไลน์ โดย Account ฟรีจะสร้าง Wireframe ได้จำกัดหน้า
    4. JumpChart – Web App สำหรับทำ Wireframe Online ที่หน้าตาเรียบง่าย โดย Account ฟรีจะสร้าง Wireframe ได้จำกัดหน้า
    5. FrameBox – Web App สำหรับทำ Wireframe ฟีเจอร์น้อย แต่ใช้ฟรี ทำเสร็จส่งลิงค์ให้ลูกค้าได้ทันที
    6. iPlotz – Web App สำหรับสร้าง Wireframe ออนไลน์ที่ดูมีสีสันกว่าตัวอื่น ใช้ฟรี Account จะจำกัดหน้า

    วิธีการใช้งานโปรแกรมเหล่านี้ก็ไม่ยากมาก สามารถศึกษาได้ด้วยตนเอง และเลือกใช้งานโปรแกรมได้ตามความถนัดของแต่ละคน ตัวอย่างต่อไปนี้จะเป็นวีดีโอแนะนำการใช้งาน Pencil Project ซึ่งเท่าที่เคยได้ลองเล่นดูพบว่าเป็นโปรแกรมที่น่าสนใจ มีเครื่องมือให้ใช้ค่อนข้างครบถ้วน และที่สำคัญคือใช้งานได้ฟรีไม่มีค่าใช้จ่าย