• มาจัดการข้อมูลซ้ำ ๆ และเอาข้อมูลล่าสุดกัน ใน Excel


    สืบเนื่องจากเมื่อ 2-3 เดือนก่อน มีโอกาสได้ทำแบบสอบถาม เก็บข้อมูลนักศึกษา แล้วนักศึกษากรอกข้อมูลมาซ้ำ ๆ กันหลายคน และเราจะเอาแค่ข้อมูลล่าสุดเท่านั้น ทำไงกันดีนะ….. ในเมื่อแบบสอบถาม export ออกมาเป็น excel ได้ เราก็มาลองดูว่าทำไงได้บ้าง เล่นไปเล่นมา เฮ้ย ง่ายจุง ได้ข้อมูลตามต้องการด้วยสิ มาดูกัน จากภาพ เราต้องทำการ Sort รหัสนักศึกษาและ Timestamp ล่าสุด สุ่มดูคร่าว ๆ รหัสนักศึกษา 6110610025 มีรายการซ้ำ เมื่อจัดการข้อมูลซ้ำและให้เหลือเฉพาะข้อมูลล่าสุด ต้องเป็นแถวที่ 42 จากนั้นคลิกแท็บ Data –> Remove Duplicates เลือกเลือกเฉพาะ รหัสนักศึกษา ซึ่งมันซ้ำกันอยู่ เมื่อเรียบร้อยแล้วจะแสดง Dialog แจ้งบอก มี 28 รายการที่ซ้ำและได้ลบออกไปแล้ว 165 รายการที่ไม่ซ้ำ สุ่มดู รหัส 6110610025 จะพบแค่รายการล่าสุดเท่านั้น…

    >> Read More <<

  • Robot Framework Puppeteer


    Robot Framework Puppeteer คืออะไร เป็น Library ที่ทำมาครอบ Puppeteer เพื่อให้ Robot framework ใช้งานได้ง่าย โดย Keyword ต่างๆจะเหมือนกับการใช้งาน Selenium Library ทำให้ใครที่ใช้งาน Selenium Library อยู่แล้วสามารถปรับตัว รวมไปจนถึง การเปลี่ยนมาใช้ Puppeteer ทำได้ง่ายเลยค่ะ และหมดปัญหาการที่เราต้องมาคอยอัพเดต Web driver อยู่ตลอด ๆ การติดตั้งง่ายมาก ๆ ดูให้ทันหล่ะ 555 รัน Command เดียวเลยจบ ไม่ต้องโหลด Chrome driver หรือ Setup Path เพิ่มเติมให้ปวดหัว เปิด Command line มาเลยค่ะ แล้วพิมพ์คำสั่ง pip install –upgrade robotframework-puppeteerlibrary การใช้งาน เราลองมารัน…

    >> Read More <<

  • Windows Terminal (3)


    https://github.com/ohmyzsh/ohmyzsh/wiki/Themes สวยงามอล่างฉ่าง

    >> Read More <<

  • Windows Terminal (2)


    Q: วันก่อนติดตั้ง WSL2 แล้วอยากใช้งาน bash บน Windows Terminal ด้วยทำไง? A: กด แล้วเลือก Ubuntu 20.04 ไงล่ะ!! Q: ไม่อยากกดเอาแบบเปิดมาแล้วเป็น ubuntu เลยอ่ะ A: แก้ Settings คลิก เลือก Settings จะเป็นการเปิดการตั้งค่าต่างๆ ด้วย Text Editor ที่ชื่นชอบ เลื่อนลงมาดูเรื่อยๆ จะเจอว่ามี Ubuntu-20.04 อยู่ สนใจบรรทัดที่เขียนว่า “guid”: ให้ copy ข้อความที่อยู่ภายใน “{ }” มาทั้งหมด จากตัวอย่างคือ 07b52e3e-de2c-5db4-bd2d-ba144ed6c273 แล้วให้เลื่อนจอขึ้นไปด้านบนจนเห็นบรรทัดที่มีข้อความว่า “defaultProfile”: แทนที่ข้อความที่อยู่ภายในเครื่องหมาย “{ }” ด้วยข้อความที่ copy ไว้ เปลี่ยนเป็น แล้ว save…

    >> Read More <<

  • [กันลืม] ปรับแต่ง MySql/Mariadb ให้โหลดข้อมูลได้เร็วขึ้น


    เพื่อให้ดาต้าเบส (Database) ทำงานได้อย่างเต็มประสิทธิภาพและสามารถใช้ทรัพยาการของเครื่องเซิร์ฟเวอร์ (Server) ได้เต็มศักยภาพของเครื่องเมื่อติดตั้งเสร็จก็จะควรมีการปรับแต่งค่าให้เหมาะสมกับการใช้งาน สำหรับ Linux ให้แก้ไขไฟล์ /etc/mysql/my.cnf สำหรับ Windows (XAMPP) ให้แก้ไขไฟล์ C:\xampp\mysql\bin\my.ini มาเริ่มกันเลย! ปัจจุบัน MySql/Mariadb เวอร์ชั่นใหม่จะใช้เอนจินแบบ InnoDB เป็นค่าเริ่มต้น ฉะนั้นเราจะโฟกัสความสำคัญเฉพาะการตั้งค่า InnoDB โดยเฉพาะค่า innodb_buffer_pool_size ควรกำหนดให้ไม่เกิน 70-80% ของขนาด RAM มีตัวย่างการค่าคอนเฟิกดังนี้ (สมมุติสเปกเครื่องเซิร์ฟเวอร์ CPU 4 core  RAM 4 GB) คำสั่งคิวรีที่ใช้ตรวจสอบค่าที่เหมาะสมของ innodb_buffer_pool_size เมื่อใช้ดาต้าเบสไปได้ 1-2 สัปดาห์ ให้ใช้คำสั่งคิวรีนี้เพื่อใช้ตรวจสอบว่าหน่วยความจำ GB จริงที่ถูกใช้โดย InnoDB Data ใน InnoDB Buffer Pool ในขณะนี้ถูกใช้งานไปเท่าไร และมีค่าอื่นๆ อีกเช่น เสร็จแล้วให้บักทึก และ…

    >> Read More <<

  • [กันลืม] Elasticsearch API พื้นฐาน


    INDEX วิธีดูว่ามี index อะไรบ้าง GET /_cat Response เมื่อทราบว่ามี index อะไรบ้าง ต้องการดูรายละเอียด ใส่ query string parameter (qrs) “v”‘ GET /_cat/indices?v Response ต้องการทราบว่า แต่ละ Fields มีความหมายอย่างไร ใช้ qrs ‘help’ GET /_cat/indices?help Response ต้องการแสดงเฉพาะบาง Fields ใช้ qrs ‘h=’ GET /_cat/indices?h=idx,dc,ss&v Response ต้องการดูขนาดจัดเก็บ ใช้ qrs ‘bytes=’ GET /_cat/indices?h=idx,dc,ss&bytes=b&v Response ต้องการเรียงลำดับ ใช้ qrs ‘s=’ และ สามารถกำกับ ‘:desc’, ‘:asc’ GET /_cat/indices?h=idx,dc,ss&bytes=b&s=ss:desc&v…

    >> Read More <<

  • รู้จักเอแจ๊กซ์ (AJAX) และการใช้งาน


    AJAX ย่อมาจากคำว่า Asynchronous JavaScript and XML ซึ่งหมายถึงการพัฒนาเว็บแอพพลิเคชั่นที่ประมวลผลในเบื้องหลังเป็นเทคนิคในการพัฒนาเว็บแอปพลิเคชันเพื่อให้สามารถโต้ตอบกับผู้ใช้ได้ดีขึ้น ทำให้ความรู้สึกการใช้งานโปรแกรมเหมือนกับเดสก์ท็อปแอปพลิเคชัน ปกติแล้วในภาษาสคริปต์ที่ใช้งานกับเว็บไซต์จะมีการทำงานประมวลผลแบบเป็นลำดับ (synchronous) โดยที่คำสั่งแรกจะต้องประมวลผลให้เสร็จสิ้นก่อนแล้วถึงจะทำงานในคำสั่งถัดไป แต่กระบวนการทำงานแบบเอแจ๊กซ์เมื่อบราวเซอร์ (Browser) ร้องขอข้อมูลไปยังเซิร์ฟเวอร์ (Server) บราวเซอร์จะไปทำงานคำสั่งถัดไปทันที (asynchronous) โดยที่ไม่ต้องรอการตอบกลับจากเซิร์ฟเวอร์ก่อน ทำให้การตอบสนองต่อผู้ใช้งานดูรวดเร็วขึ้น และเมื่อเซิร์ฟเวอร์ประมวลผลเสร็จแล้วถึงจะส่งข้อมูลกลับมาที่เอแจ๊กซ์และให้เอแจ๊กซ์ทำงานกับข้อมูลที่ส่งกลับมาอีกทีซึ่งสามารถเขียนโค้คการทำงานดังนี้ ตัวอย่างโค้คการทำงาน AJAX ของโดยใช้ jQuery และปัจจุบันในการเขียน JavaScript เพื่อเรียกใช้งาน AJAX นั้นเราไม่จำเป็นต้องพึ่งพา jQuery อีกต่อไปแล้วซึ่งสามารถเขียนโค้ดการทำงานได้ดังนี้ วิธีที่ 1  ใช้ XMLHttpRequest [1] วิธีที่ 2 ใช้ Fetch API [2] อ้างอิง: https://tutorialzine.com/2014/06/10-tips-for-writing-javascript-without-jquery [1] https://developers.google.com/web/updates/2015/03/introduction-to-fetch [2] https://www.javascripttutorial.net/javascript-fetch-api/   วิดีโอ: https://www.youtube.com/watch?v=F1TECaRf-uA&feature=youtu.be&t=2375

    >> Read More <<

  • รู้จักการจัดการข้อมูล JSON และการใช้งาน


    รูปแบบข้อมูล JSON เป็นมาตรฐานในการแลกเปลี่ยนข้อมูลระหว่างเซิฟเวอร์และไคลเอนต์ที่ได้รับความนิยมในปัจจุบันซึ่งได้ถูกนำไปใช้งานอย่างแพร่หลายเช่นการเขียนโปรแกรมโดยใช้เทคนิค AJAX, RESTFul, เขียนคอนฟิกไฟล์ หรือการพัฒนา API เป็นต้น ด้วยคุณสมบัติของ JSON ที่เป็นไฟล์ประเภทข้อความ (Text based) ขนาดเล็กน้ำหนักเบา เป็นมาตรฐานกลางทุกภาษาสามารถใช้งานได้ง่ายทั้งการอ่านและเขียนที่มนุษย์สามารถอ่านเข้าใจได้ง่าย อักขระมาตารฐานของ JSON เครื่องหมาย “:” ใช้สำหรับแยกค่า name และ value เครื่องหมาย “,” ใช้สำหรับแยกข้อมุล name-value ในแต่ละคู่ เครื่องหมาย “{” และ “}” ระบุว่าข้อมูลเป็นออบเจ็ค เครื่องหมาย “[” และ “]” ระบุว่าข้อมูลเป็นอาเรย์ เครื่องหมาย “” (double quotes) ใช้เขียนค่า name-value ใน JSON ตัวอย่างการเขียนค่า Json – จำนวน 1 คู่ – หากมีมากกว่า…

    >> Read More <<

  • ขั้นตอนการขอใช้บริการ PSU Groupmail


    กรุณาดำเนินการกรอกเอกสาร ตามขั้นตอนต่อไปนี้ครับDownload เอกสาร http://group.psu.ac.th/docs/F_SD13.pdf วิธีกรอก https://sysadmin.psu.ac.th/2017/01/05/acrobat-reader-dc-free-but-sufficient/ วิธีการใช้งานเบื้องต้น http://group.psu.ac.th/docs/MailingList-20090625.pdf แล้วส่งกลับมาทาง email ได้เลยครับ  () PSU Groupmail ตั้งต้นจะเป็น @group.psu.ac.th นะครับหากต้องการให้แปลงเป็น @psu.ac.th ช่วยแจ้งด้วยส่วนการส่ง Email ออกไปในนามหน่วยงาน ให้ทำตามนี้ วิธีส่ง email ออกไปในนามหน่วยงาน ด้วย PSU Webmailhttps://sysadmin.psu.ac.th/2020/03/27/psu-webmail-sent-email-on-behalf-of/ วิธีส่ง email ในนามหน่วยงาน ที่ออกจาก Gmail ให้เป็น @psu.ac.th หรือ @group.psu.ac.th https://sysadmin.psu.ac.th/2018/01/26/send-gmail-in-the-name-of-psu/

    >> Read More <<