วิธีใช้ Google Calendar เพื่อบันทึกปฏิบัติงาน และใช้ Google Sheets เพื่อรายงานผลการปฏิบัติงาน

บทความนี้ นำเสนอแนวทางที่ผมใช้ในการ “บันทึกการปฏิบัติงาน” และ “รายงานผลการปฏิบัติงาน” เพื่อนำไปกรอกในระบบ TOR ของมหาวิทยาลัยสงขลานครินทร์ เครื่องมือที่ใช้ Google Calendar Google Sheets Google Sheets Add-ons ชื่อ “Timesheet” Google Keep เป้าหมาย การบันทึกผลปฏิบัติงาน เพื่อ รายงานผลการปฏิบัติงานในระบบ TOR ระบบ TOR ของมหาวิทยาลัยสงขลานครินทร์ ผู้ปฏิบัติงาน จะต้องตกลงกับหัวหน้าฝ่าย ว่า รอบ TOR นี้ เราจะทำอะไร และมีเป้าหมายอย่างไรบ้าง เอาเป็นว่า … จะกำหนดเป็น “ภาระงาน” แบ่งเป็น 3 ด้าน ได้แก่1. งานประจำ2. งานเชิงพัฒนา/งานพิเศษ3. ผลงานอื่นๆ(ตามที่คณะกำหนด) ในแต่ละ หัวข้อใหญ่ ก็จะแจกแจงว่า ทำอะไร เป็นสัดส่วนเท่าไหร่ เช่น 1.1 5ส1.2 ประชุมติดตามงานของทีมงาน อะไรทำนองนั้น ซึ่ง นอกจากต้องทำงานในหน้าที่ ประชุม ๆ ตอบคำถาม แก้ไขปัญหา กิจกรรรม … ฯลฯ ก็ต้อง บันทึกว่า ทำอะไรลงไปบ้าง มีเอกสารอ้างอิง และ ต้องสามารถ ให้หัวหน้า (และคณะกรรมการประเมิน) สามารถเข้าไปดูได้ด้วย ขอยกตัวอย่าง หัวข้อ “ภาระงาน” ของผมใน TOR ปี 2562( TwT ) แล้วเราจะบันทึกผลการปฏิบัติงานอย่างไร ให้ ง่าย และสามารถ นำมากรอกใน TOR ได้ด้วย เริ่มจาก Google Keep เอาข้อหัวย่อย ของภาระงานข้างต้น มาสร้างเป็น Note ใหม่ใน Google Keep ตั้งหัวข้อว่า TOR 2562 (หรือใครอยากจะทำไว้ใช้ของ TOR 2563 ก็ค่อยลองทำดู) ต่อไป เราจะสร้าง Label ของแต่ละหัวข้อย่อย โดยการใส่ # ไว้ด้านหน้า หัวข้อย่อย เช่น 1.10 โครงการพัฒนาอะไรสักอย่าง เป็น[Update – สำหรับให้รายงานสวยงามยิ่งขึ้น แนะนำให้ Replace ” ” ด้วย “_”]#1.10_โครงการพัฒนาอะไรสักอย่าง พอใส่ # หน้า 1.10 แล้ว Google Keep จะขึ้น Popup ให้สร้าง Label “1.10” เราก็สร้างไว้ (มันมีเหตุผล ทำตามไปก่อน เดี๋ยวเล่าให้ฟัง) ทำจนครบทุกข้อ เราจะได้ Note ใน Google Keep อย่างนี้จากนั้น ให้คลิก รูป Pin เพื่อปักหมุดเอาไว้แล้วกดปุ่ม Close ด้านล่างได้เลย [Update: ใน Google Keep สามารถเอาภาพ เช่น เกณฑ์การประเมิน การพิจารณาว่าเรื่องนี้ เข้าในส่วน งานประจำ หรือ งานเชิงพัฒนา เพื่อประกอบการตัดสินใจได้ จะได้ไม่ต้องไปค้นหาหลาย ๆ ที่] บันทึกการปฏิบัติงานใน Google Calendar ใน Google Calendar จะมี Panel ด้านขวามือ จะเห็น Icon ของ Google Keep สีเหลือง ๆ คลิกสิครับ รออะไร เราก็จะเห็น Note ของ Google Keep ที่เรา Pin ไว้ตะกี้ อยู่บนสุด

Read More »

Hello…Flatpickr!!

หลายคนอาจะเคยพบปัญหาการเลือก วัน เดือน ปี ในcalendar การกรอกข้อมูลที่เป็นวันที่ใน web ต่างๆ การเลือกช่วงวันที่ใช้งานยาก โดยเฉพาะในการเลือก ช่วงเวลา ที่ย้อนหลัง ไปหลายปี บาง web อาจต้องกดเลื่อนเดือนที่ละเดือนไปเรื่อยๆ ต้องใช้เวลานาน ทำให้รู้สึกเบื่อ… วันนี้เราจะมานำเสนอ Flatpickr ที่เป็นไลบรารี่ javascript ใช้สำหรับรับ input ที่เป็น datetime picker ที่ยืดหยุ่น มีขนาดเล็กและใช้ง่าย โดย output ที่ได้จะเป็น String ตาม format ที่เราต้องการ Flatpickr js รูปแบบจะเป็นแนว Lean กับ UX-driven สามารถใช้งานได้กับ JS ธรรมดาหรือ jQuery โดย Flatpickr รองรับภาษาไทยได้โดยเลือก Localization เป็นไทยเพื่อให้สามารถแสดงเป็นภาษาไทย และรองรับรูปแบบเวลาที่แสดง 24 ชม. เพราะจะเข้าใจง่ายกว่า AM กับ PM ซึ่ง library อื่นๆ อีกหลายตัวยังไม่สามารถรองรับ จุดเด่น คือ มีความสวยงาม ไม่ต้องการ dependencies ใดๆ สามารถใช้งานได้ทันที การใช้งานสามารถใช้ได้ง่ายๆ โดยใช้แค่ 2 ไฟล์ ก็สามารถใช้ option ได้เกือบครบ ซึ่งไฟล์ ที่จำเป็นประกอบด้วย ไฟล์ js 1 ไฟล์ และ ไฟล์ css 1 ไฟล์ <link rel=”stylesheet” href=”flatpickr.css”> <script src=”flatpickr.js”></script> ถ้าใช้งานร่วมกับ jquery ก็ต้อง เพิ่ม library jquery เข้ามาด้วย   <script src=”jquery.min.js”></script> การใช้งาน $(“.selector”).flatpickr( optional_config ); ตัวอย่างกล่อง input ที่ใช้เลือก วันที่  <input type=”text” id=”timePicker” placeholder=”Please select Time”> การแสดงเวลาแบบ Basic $(“#basicDate”).flatpickr({ enableTime: true, dateFormat: “F, d Y H:i”, time_24hr: true }); เราสามารถกำหนดช่วงของวันที่ค้นหาได้ง่ายขึ้น เนื่องจากมี Range Calendar (ภาพที่ 2) ให้ใช้งาน หรือจะเป็นเลือกแบบ Multiple เลือกทีละหลายๆวันก็ได้ และยังมี Plugin หรือ Theme ให้เลือกใช้งานอีกด้วย การแสดงเวลาแบบ Range Datetime $(“#rangeDate”).flatpickr({ mode: ‘range’, dateFormat: “Y-m-d” });

Read More »

Xamarin Essentials : Easy access Native feature Platforms

ในบางครั้งการเขียน app เพื่อ access location ปัจจุบันของผู้ใช้ หรือต้องการสั่งให้โทรศัพท์สั่นตาม activity ที่ตั้งไว้ หรือแม้แต่จะ access ข้อมูล device information ของอุปกรณ์ ไม่ใช่เรื่องง่ายเลยสำหรับเหล่า developer ที่เขียน mobile app ยิ่งมีหลาย platform ไม่ว่าจะเป็น android , iOS, Windows ก็มีวิธีการเขียน code การขอ Access permission คนละรูปแบบไปอีก ซึ่งบทความนี้ผู้เขียนจะมาแนะนำให้รู้จักกับ Xamarin Essentials ที่จะมาเป็นตัวช่วยให้ผู้พัฒนาเขียน code แก้ปัญหาเหล่านี้ได้ง่ายขึ้นนั่นเอง Xamarin.Essentials คืออะไร? คือ  official library ที่ทาง Microsoft ได้พัฒนาและรวบรวม library ที่เป็น cross-platform APIs สำหรับให้นักพัฒนา mobile app ที่พัฒนาด้วย Xamarin.Forms ได้ใช้งานในการเข้าถึง native features ของแต่ละ platforms ด้วยการเขียน code จากที่เดียว มีอะไรให้เรียกใช้บ้าง ปัจจุบันมีทั้งหมด 33 feature ให้เรียกใช้งาน อ้างอิงจาก Microsoft Doc ซึ่งมีดังนี้ Accelerometer – Retrieve acceleration data of the device in three dimensional space. App Information – Find out information about the application. Barometer – Monitor the barometer for pressure changes. Battery – Easily detect battery level, source, and state. Clipboard – Quickly and easily set or read text on the clipboard. Color Converters – Helper methods for System.Drawing.Color. Compass – Monitor compass for changes. Connectivity – Check connectivity state and detect changes. Detect Shake – Detect a shake movement of the device. Device Display Information – Get the device’s screen metrics and orientation. Device Information – Find out about the device with ease. Email – Easily send email messages. File System Helpers – Easily save files to app data. Flashlight – A simple way to turn the flashlight on/off. Geocoding – Geocode and reverse geocode addresses and coordinates. Geolocation – Retrieve the device’s GPS

Read More »

การเชื่อมต่อฐานข้อมูล Oracle ผ่าน Access office 365

สำหรับหลาย ๆ ท่านนอกเหนือจากที่ต้องมีหน้าที่ในการพัฒนาโปรแกรมเป็นหลักแล้ว อาจจะต้องมีหน้าที่ในการนำเข้าข้อมูลด้วย ตัวเองก็เช่นกันต้องทำหน้าที่ในการนำเข้าข้อมูลเข้าฐานข้อมูล Oracle อยู่เป็นประจำ จริงๆ มีหลายเครื่องมือในการนำเข้าข้อมูล เช่น SQL Developer , Toad for Oracle เป็นต้น แต่บางครั้งก็ไม่สะดวกเพราะบางข้อมูลต้องผ่านการจัดการก่อนถึงจะสามารถถ่ายโอนได้ ตัวเองก็มีอีกวิธีคือ ถ่ายโอนผ่าน Access office 365 สำหรับบทความในครั้งนี้ ขอนำเสนอวิธีการเชื่อมต่อฐานข้อมูล Oracle ผ่าน Access office 365 เผื่อใครจะใช้เป็นทางเลือกในการจัดการข้อมูลของ Oracle กันค่ะ โดยทำตามขั้นตอนดังต่อไปนี้ STEP 1 ติดตั้ง  Oracle Database 12c Release 2 Client for Microsoft Windows (32–bit) ตั้งค่า TNS Service name ในการเข้าถึงฐานข้อมูล Oracle ผ่าน Oracle Net Manager โดยมีขั้นตอนดังนี้ เปิดโปรแกรม Net Manager คลิกที่ Local -> Service Naming คลิกเครื่องหมาย + ระบบแสดงหน้าต่าง Net Service Name Wizard ขั้นตอนที่ 1 ตรงช่อง Net Service Name ป้อนชื่อที่ต้องการ เช่น TEST_DB คลิกปุ่ม ถัดไป ขั้นนตอนที่ 2 คลิกเลือก TCP/IP (Internet Protocol)  คลิกปุ่ม ถัดไป ขั้นตอนที่ 3 ตรงช่อง Host Name: ป้อนชื่อฐานข้อมูล Oracle ที่ต้องการ เช่น TEST.PSU.AC.TH  ระบุ Port Number: 1521 ขั้นตอนที่ 4 ตรงช่อง Service Name ให้ใส่ชื่อ Service Name ของ Database ที่ระบุในขั้นตอนที่ 3 คลิกปุ่ม ถัดไป ขั้นตอนที่ 5 ซึ่งเป็นขั้นตอนสุดท้าย เราสามารถคลิกปุ่ม Test เพื่อทดสอบการ connect กับฐานข้อมูล และคลิกปุ่ม เสร็จสิ้น เพื่อสิ้นสุดการการสร้าง Service Naming STEP 2 เปิดโปรแกรม ODBC Data Sources (32-bit) คลิกเลือกแท็บ System DSN คลิกปุ่ม Add… คลิกเลือก driver : Oracle in OraClient 12Home1_32bit ในหน้าต่าง Create New Data Source คลิกปุ่ม Finish ระบบแสดงหน้าต่าง Oracle ODBC Driver Configuration กำหนด Data Source Name และ Description เลือก TNS Service Name จากที่สร้างไว้ในขั้นตอนการตั้งค่า TNS Service name ขั้นตอนที่ 2 (กรณีไม่มีให้เลือกสามารถพิมพ์เองได้) ตรงช่อง User ID ระบุ user / schema  เพื่อ connect เข้าฐานข้อมูล Oracle คลิกปุ่ม OK STEP 3 เปิดโปรแกรม Access office 365 คลิกเลือกเมนู External

Read More »

Xamarin.Forms : Binding ข้อมูลด้วย MVVM pattern

“MVVM is the best way to architecture mobile apps” Asfend Yar Hamid ซึ่งเป็น Microsoft MVP developer ท่านหนึ่งได้กล่าวไว้ เค้าคือใครน่ะเหรอ ผู้เขียนรู้จักเค้าผ่าน Udemy (คอร์สเรียนออนไลน์ที่เค้ากำลังฮอต ราคาถูก คุณภาพดี แอบรีวิว 555) ซึ่งวันนี้ผู้เขียนจะมาแนะนำการ Binding ข้อมูลของ Xamarin.Form app ด้วย MVVM pattern กันนะคะ MVVM pattern คืออะไร MVVM หรือ Model View ViewModel เป็น design pattern หรือรูปแบบในการวาง architecture ในการเขียน code นั่นเอง โดย Model คือ ส่วนที่เก็บข้อมูลของ Application เรา ตัวอย่างเช่น Entity Class หรือไฟล์ POCO Class ของ object ต่างๆ ที่เกี่ยวข้องกับข้อมูลจะอยู่ที่ส่วนนี้ View คือ ส่วนที่ติดต่อกับ user ซึ่งเป็นส่วนไว้แสดงหน้า app ของเรานั่นเอง ซึ่งView จะไม่รู้อะไรเลยนอกจากการแสดงผล ส่วน Logic อื่นๆจะอยู่ใน ViewModel ViewModel คือ ส่วนที่ทำหน้าที่เก็บข้อมูลทั้งหมดที่ View ต้องการ โดย View จะติดต่อ ViewModel ผ่าน Data-binding ซึ่งหาก View มีการเปลี่ยนแปลงก็จะส่งผลต่อ ViewModel ในทางกลับกันหาก ViewModel มีการเปลี่ยนแปลงก็จะส่งผลถึง View ด้วยเช่นกัน ทำไมต้องใช้ MVVM กับ mobile app ? MVVM ทำให้เราสามารถ separate หรือแยกส่วนการทำงานของ code ออกจากกันได้ชัดเจนตามหน้าที่ของมัน ซึ่งทำให้ง่ายต่อการจัดการ รองรับต่อการเปลี่ยนแปลง เหมาะสำหรับการพัฒนา Application ที่มีการเปลี่ยนแปลง UI บ่อยครั้ง เนื่องจากทุกการเปลี่ยนแปลงในส่วน view จะไม่กระทบต่อ ViewModel ที่เป็น business logic และยังมี Binder ซึ่งเป็นตัวช่วยจัดการการเปลี่ยนแปลงของข้อมูลใน View หรือใน ViewModel ทำให้ไม่จำเป็นต้องเขียน Code ในการควบคุม View เพื่อให้เปลี่ยนแปลงตาม เริ่มกันเลยดีกว่า เกริ่นไปเยอะแล้ว เรามาลองสร้าง app เพื่อ binding ข้อมูลในรูปแบบ MVVM ดูกันเลยค่ะStep 1 : สร้าง Xamarin.Forms project ขึ้นมาก่อน (วิธีสร้างและเลือก template สามารถอ่านได้จากบทความที่แล้ว => สร้าง Hello World app ง่ายๆด้วย Xamarin.Forms) ซึ่งจะได้ project structure ดังรูป ทีนี้เราจะไม่ไปยุ่งในส่วน specific platform project (Android และ iOS) เราจะมาสร้าง MVVM ที่ share project กัน Step 2 : สร้างโฟลเดอร์ Model, View และ View Model ขึ้นมา ดังรูป Step 3: สร้าง class ชื่อ Employee.cs ลงในโฟลเดอร์ Model โดย code ข้างในมีดังนี้

Read More »