สร้าง Dashboard ต้องคิดถึงอะไรบ้าง

Dashboard ทำขึ้นเพื่อ…ผู้ใช้ ไม่ได้ทำเพื่อแสดงข้อมูลทั้งหมดที่มี ทำเพื่อตอบคำถามผู้ใช้งานแต่สำหรับบางองค์กรที่ผู้ต้องการดูข้อมูลยังไม่รู้ว่าจะดูอะไรดี ขอแนะนำให้ตั้งโจทย์ขึ้นมาแล้วหาข้อมูลมาประกอบสร้างเรื่องราวจากโจทย์ขึ้นมาจากข้อมูล (การคิดโจทย์ขึ้นมาก็ต้องมาจากการคาดการณ์ความต้องการและเป้าหมายของผู้ใช้ เดาใจตามหน้าที่รับผิดชอบของผู้ใช้งาน) รูปแบบการวิเคราะห์ข้อมูลเบื้องต้น 1.ต้องการแสดงความสัมพันธ์ (Relationship) เพื่อเชื่อมต่อสองข้อมูลตัวแปรที่สนใจ หรือมากกว่านั้น เช่น จังหวัดที่เกิดกับวิทยาเขตที่เรียน 2.ต้องการเปรียบเทียบข้อมูล (Comparison) ใช้ Bar chart หรือ line chart เพื่อแสดงข้อมูลรับนักศึกษาในแต่ละปี 3.ต้องการแสดงการเปลี่ยนแปลงข้อมูลตามช่วงเวลา (Trend) 4.ต้องการแสดงการจ่ายของข้อมูล (Distribution) โดยการเอาข้อมูลมาจัดกลุ่ม (Grouping) หรือเรียง (Ranking) แล้วนับจำนวนเพื่อดูการกระจายของข้อมูลเช่น อายุงานบุคลากรแยกทุก 10 ปีของการทำงาน เพื่อดูว่าบุคลากรส่วนใหญ่อายุงานอยู่ที่กี่ปี เป็นต้น สิ่งที่ต้องเอาใจใส่ เลือก Data Visualization ให้ตรงกับจุดประสงค์ของการนำเสนอ และผู้ใช้งานต้องเข้าใจ Visualization ที่ใช้ด้วยเป็นสำคัญ โทนสีที่เลือกใช้งานควรจะไม่มากเกินไป และควรจะเป็นโทนเดียวกัน (ลองค้นหาตารางโทนสีใน Google ดูครับ) ควรจะคำนึงถึง ขนาด สี ที่มีความสัมพันธ์กัน เช่น ใน 1 Dashboard ใช้สีชมพูแทนเพศหญิง ก็ควรจะใช้สีชมพูในแต่ละ Visualization เพื่อแทนเพศหญิงเหมือนกัน ทำให้ผู้ใช้งานมองติดตามข้อมูลได้ง่ายและเข้าใจ การมีเส้นนำสายตาก็จะมีผลต่อการแบ่งกลุ่มข้อมูลโดยอัตโนมัติสำหรับผู้ใช้งาน (five-second rule) กฏ 5 วินาที Dashboard ควรจะตอบโจทย์ที่ได้รับมาโดยการมองเพียงแค่ 5 วินาที ซึ่งต้องได้คำตอบหลักแล้ว ส่วนถ้าต้องการหาสาเหตุหรือต้องการข้อมูลเชิงลึกก็จะเข้าส่วน ออกแบบแบบปรามิดคว่ำ คือส่วนบน เป็น indicators ส่วนที่ 2 เป็น Trends ส่วนที่ 3 เป็น รายละเอียด ใน 1 Dashboard ควรมี Visualization ประมาณ 5-9 Visualization (ตามข้อมูลการศึกษาการรับรู้ของสมองมนุษย์จะเข้าใจภาพได้ประมาณ 7 +- 2) จำไว้ว่าข้อมูลสมบูรณ์ครบถ้วน ไม่สู่ตอบโจทย์ที่ผู้ใช้ต้องการนะครับ เพราะเราต้องการตอบสนองผู้ใช้งานไม่ใช่ตอบสนองข้อมูลหรือตัวผู้จัดทำ Dashboard ทำแล้วใช่ว่าจะจบนะครับ ต้องคุยกับผู้ใช้อีกว่าเข้าใจตรงกันหรือไม่แล้วก็ปรับแต่งตามการพูดคุยทำความเข้าใจกัน อ้างอิง : https://www.sisense.com/blog/4-design-principles-creating-better-dashboards/https://realmonkey.co/web-design/principles-of-effective-dashboard-design/https://www.netsolutions.com/insights/good-dashboard-design-principles/https://wandr.studio/blog/dashboard-design-principles/https://medium.com/madt-and-bads-nida/4-principles-of-dashboard-design-%E0%B8%AB%E0%B8%B1%E0%B8%A7%E0%B9%83%E0%B8%88-4-%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AD%E0%B8%AD%E0%B8%81%E0%B9%81%E0%B8%9A%E0%B8%9A-dashboard-957b79e0179a

Read More »

การสร้างรหัสผ่านให้ไฟล์ PDF

หลายท่านอาจจะมีไฟล์ PDF บางไฟล์ที่ค่อนข้างจะเป็นความลับ หรือไม่อยากเปิดเผยให้ใครคนอื่นทราบ เรามีวิธีการสร้างรหัสผ่านให้ไฟล์ PDF โดยที่ไม่ต้องลงโปรแกรมใด ๆ ให้เสียเวลาค่ะ เพียงทำตามขั้นตอนดังต่อไปนี้ 1. เข้าเว็บ https://www.ilovepdf.com/protect-pdf 3. เลือกไฟล์ PDF ที่ต้องการสร้างรหัสผ่าน 4. ระบุรหัสผ่านให้เหมือนกันทั้ง 2 ช่อง จากนั้นกดปุ่ม Protect PDF 5. ระบบจะสร้างรหัสผ่าน ให้กดปุ่ม Download protected PDFs เพื่อ Download เอกสารไปใช้งาน 6. เมื่อ Download เรียบร้อยแล้ว ทดลองเปิดไฟล์ PDF จะพบว่า ไฟล์ของเราปรากฏให้ใส่รหัสผ่านก่อน 7. เมื่อใส่รหัสผ่านที่เราได้ตั้งค่าไว้ ก็จะสามารถเปิดไฟล์ PDF ได้

Read More »

การสร้าง GenericList Component (Blazor) ตัวช่วยแสดงผลรายการข้อมูล

การสร้าง User Interface สำหรับแสดงผลลัพธ์จากการ Query ข้อมูลในฐานข้อมูลนั้น โดยปกติ UI จะต้องสามารถกำหนดการแสดงผลเพื่อตอบสนองต่อเหตุการณ์ที่เกิดขึ้น 3 สถานะได้ คือ ระหว่างที่กำลังรอผลการ Query ข้อมูล UI ควรแสดงให้เห็นว่ากำลังประมวลผล โดยแสดงเป็นข้อความหรือรูปภาพ Loading ก็ได้ กรณี Query แล้วไม่พบข้อมูล ความแสดงผลให้ทราบว่าไม่พบข้อมูล กรณี Query แล้วพบข้อมูล จะนำข้อมูลมาแสดงผลด้วย Table หรือ List หรือ อื่นๆ ตามความเหมาะสม ตัวอย่างเช่น ต้องการสร้างหน้าจอแสดงผลรายการข้อมูลสินค้าโดย Query ข้อมูลเก็บไว้ในตัวแปรชื่อ ProductList จะมีค่าในสถานะต่าง ๆ ดังนี้ ระหว่างที่กำลังรอผลการ Query จะมี ProductList == null กรณี Query แล้วไม่พบข้อมูล ค่า ProductList.Count == 0 กรณี Query แล้วพบข้อมูล ค่า ProductList.Count > 0 จะเป็นว่าเราสามารถสร้าง Component พื้นฐานไว้ใช้งาน (Reuse) เพื่อตอบสนองต่อสถานะทั้ง 3 ได้ ในที่นี่จะตั้งชื่อว่า GenericList Component (GenericList.razor) มีโค้ดดังนี้ วิธีการใช้งาน GenericList Component ทำได้โดยการกำหนด Parameter ชื่อ List และ WholeListTemplate ก็จะสามารถแสดงผลข้อมูลได้ตามต้องการ

Read More »

เล่าเรื่องเกี่ยวกับ cloning Windows (Windows 11)

ผมได้ทำ google form สอบถามเกี่ยวกับการ cloning ต้นฉบับ Windows เพื่อนำไป cloned ลงยังเครื่องอื่น ๆ ในห้องปฏิบัติการหรือสำนักงาน ได้ข้อสรุปและคำถามมาดังนี้ มีผู้เข้ามาตอบจำนวน 14 คน ได้ผลสรุปตามรูปภาพo มีผู้ที่ตอบว่าใช้ PSU12-Sritrang (opensource.psu.ac.th) จำนวน 7 คนo มีผู้ที่ตอบว่าใช้ โปรแกรมอื่น จำนวน 4 คนo มีผู้ที่ตอบว่าใช้ FogProject (fogproject.org) จำนวน 2 คนo มีผู้ที่ตอบว่าใช้ PSU12-Fog (opensource.psu.ac.th) จำนวน 1 คน โปรแกรมอื่นที่เลือกใช้ในการ cloning Windows มีดังนี้o Clonezillao Aomei backuppero Acronis True Image ทำทีละเครื่องo Acronis True Image 2014 premium (ใช้ในการ clone เครื่องในสำนักงาน)o Norton Ghost with Windows 7 PE ใช้งานร่วมกับ PSU12-Sritrango Norton ghost ความคิดเห็นอื่น ๆ ที่เกี่ยวกับการเตรียม Windows ห้องคอมพิวเตอร์ มีดังนี้1.การติดตั้ง Windows11 และการปรับแต่งให้เหมาะสมสำหรับใช้ในห้องปฎิบัติการคอมพิวเตอร์2.ทั้ง PSU12-Sritrang และ PSU12-fog ใช้โคลน windows 10 ได้ดี และทั้งการโคลนและสูตรการจัดการให้บริการห้องแลปด้วย PSU 12 Sritrang สามารถใช้บริหารจัดการห้องแลปคอมที่ใช้ windows 10 ได้ดีครับ โดยเฉพาะเรื่องการจัดการเลือกบูต OS ได้ แต่การเลือก Boot OS ด้วย windows 11 จากการทดลองไม่สามารถทำได้แล้วเพราะมีการจัดการ Partition ในรูปแบบใหม่3.อยากให้เปิดการอบรมPSU12-Sritrang(opensource.psu.ac.th)อีกครั้งครับเพราะทำกับเครื่องจริงแล้วมีปัญหาหลายอย่าง4.ปัญหาการ Cloning Windows กับ SSD ssd nvme m.25.ปัญหาเกี่ยวกับต้องใส่ cd key เสมอเวลา cloning windows ใหม่6.อยากทราบว่ามีท่านใดใช้โปรแกรมใดในการ clone harddisk ที่เป็น ssd เพราะ software รุ่นเก่าจะมองไม่เห็น เท่าที่ดู พาทของ /dev/sda ก้จะเปลี่ยน7.PSU12-Sritrang Support Windows11 มั้ยคับ ผมจะขอให้ข้อมูลเท่าที่พอจะมีความรู้นะครับ O เกี่ยวกับ PSU12-Sritrang (opensource.psu.ac.th) เนื่องจากผมทำชุดติดตั้งสำหรับ cloning Windows คือ PSU12-Sritrang (opensource.psu.ac.th) นั่นคือ ต้องมี server 1 ตัว ผมเลือกใช้ ubuntu server ทดสอบล่าสุดใช้ได้เพียง ubuntu server 20.04 เมื่อทดสอบกับ ubuntu server 22.04 จะเริ่มมีปัญหาในขณะ Boot client จึงยังคงไว้ที่รุ่นนี้ มาพูดถึงการ cloning Windows นั้น ชุดติดตั้งนี้รองรับเพียงแค่ Windows ที่สามารถจัดการ partition แบบ MBR ได้เท่านั้น เมื่อดู Windows 11 แล้วจะพบว่า ทำไม่ได้ แล้ว หากว่าเครื่อง clients ที่ลง Windows ยังสามารถทำ partition แบบ MBR ได้ ไม่ว่าจะเป็น disk ชนิด SATA หรือ SSD nvme M.2 ชุดติดตั้งนี้รองรับครับ ตั้งแต่รุ่น sysresccd-5.1.2-16.04-dvd-psu12-sritrang-server-autopartition-offline-2019-12-13.iso ครับ

Read More »

Blazor Server Application : วิธีการ Export ข้อมูลเป็นไฟล์ XML

แนะนำวิธีการ Export ข้อมูลเป็นไฟล์ XML วิธีการเขียน Code1) สร้าง Folder xml สำหรับเก็บไฟล์ xml ในกรณีนี้อยู่ใน (wwwroot/files/xml) 2) สร้าง Razor Component ชื่อ ExportXML.razor ในกรณีนี้อยู่ใน (Pages/ExportXML.razor)3) จากนั้นเขียน Code ดังนี้ 4) ผลลัพธ์จากการ Export ข้อมูลเป็นไฟล์ XML 4.1) กรอกข้อมูล และกดปุ่ม Export XML 4.2) จะได้ไฟล์ person.xml 4.3) เมื่อเปิดไฟล์ person.xml จะแสดงข้อมูล ดังนี้

Read More »