Ubuntu server 18.04 config static IP with ifupdown not netplan

เดิมก่อนหน้า server 18.04 จะออกมาให้ใช้งานกันนั้น จะเป็น server 16.04 เราตั้งค่า (config) static IP ให้กับ server ด้วยไฟล์นี้ /etc/network/interfaces ซึ่งก็คือ package ชื่อ ifupdown และ DNS resolver ที่ใช้ก็คือ resolvconf แต่ใน server 18.04 นี้ เปลี่ยนไปใช้ package ชื่อ netplan แก้ไขที่ไฟล์ /etc/netplan/01-netcfg.yaml และใช้ DNS resolver คือ systemd-resolve ซึ่งจะ…

Uploading Files into Database with ASP.NET MVC

การ    upload  file มีหลายรูปแบบ ไม่ว่าจะเป็นการ upload file  แบบ copy ไว้บน server หรือจะเป็นการบันทึกลงในฐานข้อมูลเลยโดยตรง วันนี้จะขอนำเสนอในส่วนของการ upload   file  และบันทึกลงฐานข้อมูล     โดยใช้ ASP.NET MVC  ดังนี้   กำหนดไฟล์ที่ต้องการ upload ให้มีรูปแบบดังนี้       public class UploadModel { [Required] public HttpPostedFileBase File { get; set; } }…

จดหมายลอกลวง 23/4/61

ช่วง ศุกร์ที่ 20 ถึง เช้าวันนี้ จันทร์ที่ 23 เมษายน 2561 พบว่า มีผู้ใช้หลายท่านได้รับ email ลักษณะประมาณนี้ แล้วมีคำถามว่า เป็นของมหาวิทยาลัยส่งจริงหรือไม่ ตอบก่อนเลยว่า “ไม่ใช่อีเมลของทางมหาวิทยาลัย” เป็นจดหมายหลอกลวง ทางระบบของมหาวิทยาลัยจะไม่ส่ง email แจ้งเตือนใดๆอย่างนี้ ข้อสังเกต ลิงค์ใน email ที่ให้คลิก จะเป็นอะไรที่ไม่ใช่ psu.ac.th (ทราบไม๊ครับ ? ว่าโดเมนเนมของมหาวิทยาลัยสงขลานครินทร์ คือ psu.ac.th ???) ถ้าเป็นเว็บไซต์ที่ถูกต้อง ของมหาวิทยาลัย จะต้องปรากฏ รูปกุญแจเขียว และ โดเมนเป็นของมหาวิทยาลัยสงขลานครินทร์ ซึ่งใช้โดเมนเนม…

การบริหารโครงการโดยใช้เครื่องมือ Team Foundation Server (Phase 2 : การบันทึกความต้องการ)

อ้างอิงจากบทความก่อนหน้าในหัวข้อ “เริ่มต้นกับการบริหารโครงการโดยใช้เครื่องมือ Team Foundation Server (Phase 1 : Overview)”  จากบทความดังกล่าว ผู้เขียนตั้งใจเกริ่นนำเพื่อให้ผู้อ่านเข้าใจเกี่ยวกับเครื่องมือ TFS เพื่อนำมาเป็นผู้ช่วยผู้จัดการโครงการ ในการบริหารโครงการมาแล้ว สำหรับใน Phase2 นี้ ผู้เขียนจะขออธิบายขั้นตอนและรายละเอียดของการบันทึกความต้องการ หรือที่เรียกว่า Backlog Items โดยใช้เครื่องมือ TFS ในกระบวนการ Software Process : SDLC ในขั้นตอน Planning หรือการวางแผน ผู้จัดการโครงการจะสามารถวางแผนได้ ก็ต่อเมื่อทราบรายละเอียดของความต้องการทั้งหมดหรือเกือบทั้งหมดของโครงการ ในที่นี่ขอเรียกว่า Backlog items  ดังนั้น TFS จะเป็นเครื่องมือที่ช่วยเก็บบันทึก รวบรวม Backlog items ต่างๆ…

เริ่มต้นกับการบริหารโครงการโดยใช้เครื่องมือ Team Foundation Server (Phase 1 : Overview)

บทความนี้เป็นลักษณะของการเล่าประสบการณ์ของการนำเครื่องมือ MS Team Foundation มาใช้เพื่อการบริหารโครงการ เพื่อให้ผู้อ่านหรือผู้สนใจได้เห็นภาพคร่าว ๆ หรือหากเป็นประโยชน์ก็สามารถนำไปใช้งานการทำงานได้จริง ^___^

Team Foundation Server หรือ TFS เป็นเครื่องมือช่วยในกระบวนการของการพัฒนาระบบ ผลิตโดยบริษัทไมโครซอฟท์ ซึ่งประกอบด้วยเครื่องมือต่างๆ ที่ช่วยในการพัฒนาระบบในหลายๆ ส่วน ตั้งแต่ส่วนการบริหารโครงการ ส่วนการพัฒนาระบบ เป็นต้น แต่ในครั้งนี้จะกล่าวถึงการนำ TFS มาช่วยผู้จัดการโครงการในการบริหารโครงการ ตั้งแต่ขั้นตอนการมอบหมายงาน ตลอดจนการติดตามงาน ซึ่งผู้เขียนขอแบ่งออกเป็น Phase ย่อย ๆ เพื่อไม่ให้ผู้อ่านเบื่อกันไปซะก่อนนะค่ะ โดย Phase 1 นี้จะขอเกริ่นนำเพื่อให้ผู้อ่าน เห็นภาพรวมกันก่อน และใน Phase ถัดๆ ไปจะแนะนำขั้นตอนการใช้งานนะค่ะ

เบื้องต้นให้ผู้อ่านคิดถึงกระบวนการการพัฒนาระบบสารสนเทศทั่วไป จะมีขั้นตอนต่างๆ ตามกระบวนการ SDLC ซึ่งจะมีขั้นตอนหลักๆ คือ

Software Process : SDLC

  • Planning
  • Requirement Analysis
  • Designing the product architecture
  • Building or Developing the Product
  • Testing the Product
  • Deployment and Maintenance

ในมุมองของผู้จัดการโครงการ ในการบริหารโครงการ TFS ก็สามารถนำมาเป็นเครื่องมือช่วยงานได้ตั้งแต่ขั้นตอนการเก็บความต้องการจากลูกค้า (Requirements) และนำมารวบรวมไว้ใน TFS หลังจากนั้นจะนำ Requirements ที่ได้เข้าสู่กระบวนการวางแผนต่อไป

เริ่มต้นมาทำความเข้าใจคำที่ใช้ใน TFS กันก่อนนะค่ะ ซึ่งจะเทียบให้เห็นกับคำทั่วๆ ที่ใช้กันในการพัฒนาระบบ นะค่ะ

  • Backlog items หมายถึง ความต้องการ หรือ Requirements
  • Sprint หมายถึง รอบระยะของโครงการย่อย หรือ รอบระยะเวลาของการพัฒนาระบบซึ่งแบ่งย่อยเป็นรอบๆ
  • Task หมายถึง งานย่อยๆ ที่จะมอบหมายให้สมาชิกดำเนินการ

อ่านครั้งแรก อาจจะยังไม่เข้าใจ ขออธิบายรายละเอียดเพิ่มเติมนะค่ะ กล่าวคือ

  1. ในขั้นตอนของการวางแผน หรือ Planning สำหรับการพัฒนาระบบสารสนเทศจะเริ่มต้นด้วยการเข้าไปเก็บ รวบรวมความต้องการ หรือ Requirements จากลูกค้า ซึ่ง Requirements นี้ใน TFS จะเรียกว่า Backlog item โดยผู้จัดการโครงการจะนำ Backlog ที่ได้จากการรวบรวม มาเก็บไว้ใน TFS เพื่อเข้าสู่กระบวนการคัดกรอง Backlog items อีกครั้ง
  2. การคัดกรอง Backlog items คือ การพิจารณา Backlog item ว่าจะให้ดำเนินการ หรือไม่ดำเนินการ ด้วยเหตุผลใด
  3. หลังจาก Backlog items ผ่านขั้นตอนการคัดกรอง ก็จะมี Backlog items ที่พิจารณาให้ดำเนินการ ผู้จัดการโครงการก็จะต้องนำ Backlog Items มาวางแผน โดยพิจารณาตามระยะเวลา ในกรณีที่มี Backlog items จำนวนมาก นั่นก็หมายถึงระบบก็จะมีขนาดใหญ่ไปด้วยเช่นกัน จำเป็นจะต้องมีการแบ่งโครงการเป็นโครงการย่อยๆ เพื่อป้องกันความเสี่ยงของการพัฒนาระบบไม่เสร็จตามแผนที่วางไว้ การแบ่งโครงการออกเป็นโครงการย่อยๆ ใน TFS เรียกว่า Sprint ใน Sprint จะต้องระบุวันที่เริ่มต้น และ วันที่สิ้นสุด ซึ่งก็คือระยะเวลาของโครงการนั่นเอง
  4. จากนั้นผู้จัดการโครงการจะต้องพิจารณาร่วมกับลูกค้าเพื่อเลือก Backlog items ที่จะทำให้แล้วเสร็จใน Sprint นั้นๆ ในการคัดเลือก ก็จะนำปัจจัยหลาย ๆ ปัจจัย มาพิจารณา ซึ่งได้แก่ Backlog item ที่เป็นฟังก์ชันหลัก หรือมีความสำคัญจำเป็นต้องทำก่อน ความเร่งด่วนของการใช้งาน เป็นตน ผลจากการคัดกรอง หรือคัดเลือก ผู้จัดการโครงการก็จะทราบว่าในแต่ละ Sprint มี Backlog items อะไรบ้างที่จะต้องดำเนินการ ซึ่งจะเข้าสู่กระบวนการวางแผนและมอบหมายงานต่อไป
  5. โดยในแต่ละ Backlog item ของแต่ละ Sprint นั้น ผู้จัดการโครงการ จะต้องดำเนินการกำหนด งานย่อยๆ ซึ่งเป็นงาน ตามขั้นตอน หรือกระบวนการที่จะทำให้ Backlog item อันนั้นสำเร็จนั่นเอง โดยงานย่อยดังกล่าวเรียกว่า Task ซึ่งผู้จัดการโครงการเอง จะทำการบันทึกงานย่อยๆ ดังกล่าวลงใน TFS เพื่อเข้าสู่ขั้นตอนการมอบหมาย Task ต่อไป

ตัวอย่าง รูปภาพ เพื่อความชัดเจนมากยิ่งขึ้นนะค่ะ

 

ในครั้งต่อไป จะมาอธิบายวิธีการใช้เครื่องมือ TFS เพื่อทำการบันทึกข้อมูล Backlog items และอธิบายขั้นตอนการคัดกรอง Backlog items กันนะค่ะ อย่าลืมติดตามอ่านกันต่อนะค่ะ

 

ข้อมูลอ้างอิง

Team Foundation Overview : https://msdn.microsoft.com/en-us/library/ms242904(VS.80).aspx

Software Process

การทดสอบแบบอัตโนมัติ ด้วย Robot framework กับ Selenium Library (ตอนที่ 1 การติดตั้ง)

วันนี้จะมาเล่าเรื่องการทดสอบแบบ Automate ด้วย Robot framework ค่ะ Robot framework ก็คือการทดสอบการทำงานของระบบที่สร้างขึ้น ให้ง่ายและรวดเร็วด้วยการทำ Automate Testing ซึ่งจุดขายของมันคือ Robot Framework สามารถ Test data , executes test cases ออกมาเป็น report และ logs ได้ Robot Framework implement มาจาก ภาษา Python ดังนั้นเราก็ต้อง install Python กันก่อน โดย Dowloadที่ https://www.python.org/ftp/python/2.7.8/python-2.7.8.msi  ติดตั้งง่าย…

Raspberry Pi 3 [Automated Relay Controller]

ตอนที่แล้วเราได้ทดลองทำการสั่งงานรีเลย์แบบ Manual ผ่านหน้าเว็บไปแล้ว ครั้งนี้เราลองสั่งให้รีเลย์ทำงานโดยผ่านการประมวลผลค่าที่ได้จากเซนเซอร์ เพื่อให้ก้าวไปอีกขั้นของ IoT   โดยเราจะใช้เซนเซอร์ที่เคยได้นำเสนอไปก่อนหน้านี้แล้ว นั่นคือ DHT22 Temperature & Humidity Sensor (ต่อที่ PIN: 32 [GPIO 12]) และรีเลย์ 4 Channel ซึ่งสามารถนำไปต่อกับอุปกรณ์เครื่องใช้ไฟฟ้าได้ ต่อ PIN เดิมจากตอนที่แล้ว   ความต้องการเบื้องต้นคือ 1. เมื่ออุณหภูมิต่ำกว่าหรือเท่ากับ 28 องศา ให้เปิดพัดลมระบายอากาศ 1 (ที่ต่ออยู่กับ Relay 1) 2. เมื่ออุณหภูมิสูงกว่า 28 องศา ให้ปิดพัดลมระบายอากาศ 1 และเปิดพัดลมระบายอากาศ…

Raspberry Pi 3 [Relay Control via Web Interface]

ตอนนี้เราจะมาสร้างหน้าเว็บสำหรับดูสถานะและควบคุมรีเลย์อย่างง่ายๆ   ก่อนอื่น ผมได้ทำการเปลี่ยน PIN ของ GPIO บน Raspberry Pi 3 เพื่อให้เป็นระเบียบมากขึ้นจากครั้งที่แล้ว โดยผมได้เลือกใช้ PIN: 12 (GPIO 18), PIN: 16 (GPIO 23), PIN: 18 (GPIO 24) และ PIN: 22 (GPIO 25) สำหรับสั่งงานรีเลย์ตัวที่ 1-4 ตามลำดับ ดังรูปด้านล่างนี้   หลังจากการทดสอบการทำงานของรีเลย์ทุกตัว (ในบทความที่แล้ว) จากนั้นเราจึงเริ่มขึ้นตอนการติดตั้ง Apache Web…

Raspberry Pi 3 [Relay Control]

จากตอนที่แล้ว เราได้ลองต่อเซนเซอร์ภายนอก ซึ่งเซนเซอร์จะเป็นประเภท Input เพื่อนำข้อมูลไปประมวลผลต่อตามที่เราต้องการ ยังมีอุปกรณ์บางตัวที่เราสามารถต่อเป็น Output จาก Raspberry Pi ได้ด้วย ซึ่งหนึ่งในนั้นจะเป็นอุปกรณ์หลักที่นำมาเชื่อมต่อกับอุปกรณ์อื่นๆ ได้อย่างหลากหลาย นั่นคือ รีเลย์ (Relay) – (ไม่ใช่ Delay นะครับ กรุณาอย่าสับสน)   Relay คืออะไร Relay ถ้าให้พูดจากความเข้าใจคือ สวิตซ์ ประเภทหนึ่งครับ ที่จะทำงานตามกระแสไฟ นั่นคือ เมื่อมีกระแสไฟไปเหนี่ยวนำภายใน สวิตซ์ก็จะทำงาน (Energize) (พูดให้เข้าใจอีกครั้งหนึ่งคือ เหมือนสวิตซ์ตามผนังนี่แหละครับ แต่แทนที่จะเอามือไปกด เราก็ใช้กระแสไฟเข้าไปให้มันทำงานแทนนั่นเอง) และในบางครั้ง ในระบบไฟฟ้ากำลัง อาจจะเรียกอุปกรณ์นี้ว่า Magnetic Contactor…