แลกเปลี่ยนเรียนรู้ Virtual Desktop Infrastructure (VDI)

ผมได้จัดแลกเปลี่ยนเรียนรู้ เรื่อง “การจัดการห้องบริการคอมพิวเตอร์ในแนวทาง Virtual Desktop Infrastructure” เมื่อวันที่ 11 มิถุนายน 2562 ณ ห้องปฏิบัติการคอมพิวเตอร์ 3 งานเทคโนโลยีสารสนเทศ ฝ่ายสารสนเทศและทรัพยากรการเรียนรู้ อาคารวิทยบริการ ชั้น 3 มหาวิทยาลัยสงขลานครินทร์ วิทยาเขตตรัง คิดว่านำมาเล่าสู่กันฟังในที่นี้น่าจะเกิดประโยชน์ คุณลักษณะของระบบ VMware vSphere ESXi 6.7 เป็น software จัดการ server Dell EMC PowerEdge Systems เป็น hardware ชนิด Rack Server จำนวน 5 เครื่อง แต่ละเครื่องมี RAM 512 GB มี GPU ชนิด NVIDIA Tesla M10 32 GB และมี SAN Storage ขนาด 50 TB L2/3 network switch ที่มี 10 G Base-T จำนวน 2 ตัว VMware Horizon 7 เป็น software สำหรับทำ VDI เครื่องที่ให้ใช้งานเป็น PCoIP zero client จำนวน 480 ชุด user account เป็น Local Microsoft AD สำหรับห้องคอม ประโยชน์ที่ได้รับจากการแลกเปลี่ยนเรียนรู้ในครั้งนี้ ได้ทดลองใช้งานเป็นผู้ใช้งาน ได้รับข้อคิดเห็นจากประสบการณ์ใช้งานตั้งแต่จัดซื้อเป็นเวลาเกือบ 1 ปีแล้ว ได้เห็นวิธีการ cloning VM ทำภายใน server สะดวกมาก เพราะ zero client ไม่มี hard disk เป็นแค่จอภาพ+อุปกรณ์เชื่อมต่อกับ server สิ่งที่ต้องเตรียมพร้อมในการนำระบบ VDI ไปใช้งาน ผู้ดูแลต้องมีความรู้เกี่ยวกับระบบ Virtualization Technology ผู้ดูแลต้องมีความรู้เกี่ยวกับ DHCP Sever, DNS Server ผู้ดูแลต้องมีความรู้เกี่ยวกับ Microsoft AD ผู้ดูแลต้องมีความรู้พื้นฐานการจัดการ PC , Windows ผู้ดูแลควรมีการติดตั้งและทดสอบโปรแกรมที่จะนำมาใช้กับระบบ VDI ผู้ดูแลต้องมีความรู้เกี่ยวกับระบบ Server และ Network ระบบไฟฟ้าและเครื่องปรับอากาศภายในห้อง Data Center ที่มีประสิทธิภาพ ปัญหาที่เจอในการใช้งานระบบ VDI vcenter ล่ม (ระบบไฟฟ้าภายในห้อง Data Center มีปัญหา,ไฟล์สำคัญโดนลบ) การ Clone เครื่อง (ใช้งานได้ไม่ครบทุกเครื่อง) ค่า Error ไม่สื่อความหมาย (Clone แล้วเครื่องไม่พร้อมใช้งาน) ข้อมูลทั้งระบบมีขนาดที่โตขึ้น (การเก็บข้อมูลในเครื่องผู้ใช้งาน Drive C,D) ทรัพยากรไม่เพียงพอเมื่อมีการสร้างเครื่องใช้งานเยอะเกินไป ต้องประเมิน Disk Storage ให้เพียงพอ ปัญหาเกี่ยวกับ user account ที่จะใช้ VM ในตอนแรกจะให้ใช้ Microsoft AD ของมหาวิทยาลัย แต่เนื่องจาก AD ของมหาวิทยาลัยไม่ได้ออกแบบมาให้คอนฟิกได้ง่าย จึงเปลี่ยนเป็นสร้าง Local AD ผูกกับ zero client เป็นเครื่อง ๆ ไป เปิดเครื่อง กด Enter ก็เข้าถึงหน้าต่าง Windows ราว ๆ 30-40 วินาที ข้อดีของการนำระบบ VDI มาใช้งาน การบริหารจัดการเครื่องมีประสิทธิภาพขึ้น เมื่อเทียบระหว่าง Zero

Read More »

Quick Analysis ใน Excel 2016 : ชุดคำสั่ง “Formatting”

จากบทความที่เคยเขียนไปก่อนหน้านี้ เรื่อง แนะนำการใช้เครื่องมือ Quick Analysis ใน Excel 2016 : ชุดคำสั่ง “Text” สำหรับโจทย์ที่เป็นตัวอักษร แต่ครั้งนี้จะมาเล่าต่อของ Quick Analysis ในชุดคำสั่ง “Formatting” เหมือนเดิมนั่นแหละ แต่โจทย์จะเปลี่ยนไปเป็นตัวเลขบ้าง มาดูกันสิว่ามันสามารถทำอะไรได้บ้าง สำหรับรอบนี้ได้สมมุติข้อมูลเป็นข้อมูลเวลาการทำงานในแต่ละวันของพนักงานที่ทำงานเป็นกะ เป็นรายชั่วโมง โดยคนคนนี้ทำงาน ได้กี่ชั่วโมงในแต่ละวัน ดังรูป มาดูว่าจะมีลูกเล่นอะไรบ้างค่ะ ส่วน Data bar เป็นการแสดง Bar หรือแท่งของข้อมูลนั่นเองค่ะถ้าไม่เห็นภาพ มาปฏิบัติกันดีกว่าค่ะ โดยเลือกช่วงของข้อมูล และเลือก Formatting เลือก Quick Analysis จากนั้นเลือก Data bar ตามขั้นตอนดังรูป ผลลัพธ์ที่ได้ ดังรูปด้านล่างค่ะ เป็นการแสดง Bar ให้เห็นถึงปริมาณของชั่วโมงการทำงานนั่นเอง ส่วน Greater จะเลือกข้อมูลที่มีข้อมูลที่สูงกว่า ที่เรากำหนด สามารถทำได้ดังนี้ค่ะโดยเลือกช่วงข้อมูลที่ต้องการ เลือก Quick Analysis และเลือก Formatting จากนั้นเลือก Greater จะปรากฎ Dialog ขึ้นมาเพื่อให้ใส่ จำนวนที่จะให้ว่าให้เลือกข้อมูลที่ดีกว่าอะไร ในที่นี้ระบุเป็น “8” จากนั้น จะให้แสดงข้อมูลที่เข้าเงื่อนไขเป็นอย่างไร ในที่นี่เลือกเป็น “Light Red Fill with Dark Red Text” คือให้ cell และอักษร ที่เข้าเงื่อนไขเป็นสีแดง นั่นเอง (สามารถทำตามได้จากรูปด้านล่างค่ะ) และผลลัพธ์ คือใน Column C จะทำการ เปลี่ยนสีของ cell และ อักษร เป็นสีแดง สำหรับ วันที่มีการทำงานมากกว่า 8 ชั่วโมงนั่นเอง ส่วน Color จะแสดงข้อมูลในลักษณะของสี เพื่อแสดงถึงข้อมูลด้วยสีต่าง ๆ โดยตัวเลขน้อยสุดจะเป็น สีแดง เลขสูงสุดจะเป็นสีเขียว สำหรับข้อมูลตัวเลขกลาง ๆ จะเป็นสีที่แตกต่างออกไป มาทำเพื่อให้เห็นภาพดีกว่าค่ะ โดยเลือกช่วงข้อมูล จากนั้นเลือก Quick Analysis และเลือก Color ผลลัพธ์ จะเป็นดังรูปด้านล่างค่ะ ค่ะ จากที่แสดงมาทั้งหมด อาจจะพอช่วยให้เห็นภาพ เพื่อนำไปประยุกต์ใช้ในการจัดการข้อมูลด้วย Excel ในมุมต้องการได้นะค่ะ บางครั้งในการทำข้อมูลอาจจะต้องมีการประยุกต์นำเทคนิคนี้นิด อันนี้หน่อยมาช่วยๆ กัน ถึงจะได้ผลลัพธ์ตามต้องการนะค่ะ หวังว่าบทความนี้พอจะเป็นแนวทาง สำหรับผู้อ่านได้บ้าง ไม่มากก็น้อยนะค่ะ…ขอบคุณค่ะ

Read More »

สร้าง Hello World app ง่ายๆด้วย Xamarin.Forms

สวัสดีค่ะ จาก post ที่แล้วได้แนะนำ วิธีติดตั้งเครื่องมือที่ใช้พัฒนา app ด้วย Xamarin.Forms ไปแล้ว บทความนี้เราจะมาเริ่มสร้าง app ง่ายๆ นั่นก็คือ Hello World app หรือ แอพสวัสดีชาวโลก นั่นเองค่ะ เพื่อเรียนรู้การทำงานและทำความเข้าใจ solution/project structure ของ Xamarin มาเริ่มกันเลยค่า…1. ก่อนอื่นเราต้องสร้าง project ขึ้นมาก่อน เปิด Visual Studio แล้วเลือก Create New Project ดังรูป 2. เลือก Cross Platform และเลือก Mobile App (Xamarin.Forms) template หลังจากนั้น ตั้งชื่อ Project และระบุ path ของ project ตามต้องการแล้วกด OK ดังรูป 3. หน้า Select template จะมี template ให้เลือก 3 แบบ คือ Blank, Master-Detail และ Tabbed– Blank คือ project เปล่าๆ ว่างๆ ไม่มี page ใดๆ generate มาให้– Master-Detail คือ project ที่ generate page ในลักษณะ Mater Detail เป็นตัวอย่างมาให้พร้อม– Tabbed คือ project ที่ generate page ในลักษณะ Tab menu มาให้เลือกได้ตามสะดวก ขึ้นอยุ่กับ app ว่าเป็นแบบไหน ผู้เขียนเลือก Blank template ไปก่อน อยากเพิ่มอะไรค่อยเพิ่มทีหลังได้ค่ะ ส่วนของ Platform ก็เลือกเลยว่าอยากให้คอมไพล์เป็น app ของ platform ไหนบ้าง และในส่วนของ Code Sharing Strategy จะมีให้เลือก 2 รูปแบบ คือ .NET Standard กับ Share Project ให้กดเลือก .NET Standard ซึ่งเป็นCode Sharing รูปแบบใหม่ที่ทาง Microsoft แนะนำ แล้วกด OK ดังรูป 4. เสร็จแล้วจะได้หน้าตา project ที่มีโครงสร้างแบบนี้ พร้อมให้เราเขียน code พัฒนา app แล้วค่ะ ก่อนที่เราจะทดลอง run ดูผลลัพธ์ เรามาดู Solution/Project structure กันคร่าวๆ ก่อนว่าประกอบด้วยอะไรบ้าง เราต้องเขียน code ลงตรงไหน ยังไงบ้าง Solution/Project Structure ใน solution ที่เราสร้างขึ้นมาจะประกอบไปด้วย share project และ project ตาม platform ที่เราได้เลือกไว้ที่หน้า template จากตัวอย่างข้างบนจะประกอบด้วย 1. HelloWord คือ share project ที่เราสามารถเขียน code ทั้งหมดภายใต้ project นี้ ทั้งส่วน UI ที่เขียนด้วย XAML และส่วน business logic ต่างๆ ที่เขียนด้วย C#2. HelloWorld.Android คือ android platform project ที่มีการ add

Read More »

เมื่อฉัน “แหก” (ใบแจ้งค่าน้ำประปา) การประปาส่วนภูมิภาค

Disclaimer: คำเตือน บทความนี้ ผู้เขียนมีจุดประสงค์ “แค่” นำเสนอ วิธีการแก้ปัญหาเมื่อจ่ายค่าน้ำประปา ผ่านทาง Mobile Application ไม่ได้เท่านั้น ปัญหา: ทุก ๆ เดือน เจ้าหน้าที่การประปาจะมาจดมาตรวัตน้ำ และปริ้นท์ใบเสร็จมาใส่กล่องจดหมายหน้าบ้าน และก็สามารถจ่ายผ่าน True Money Wallet ได้ทุกครั้ง … แต่มาครั้งนี้ จ่ายไม่ได้ จากภาพ จะเห็นว่า ใบเสร็จประกอบด้วยข้อมูลต่าง ๆ แต่ที่น่าสนใจ ได้แก่– เลขที่ใบแจ้งค่าน้ำ: 1227620229846– เลขที่ผู้ใช้น้ำ: 1227052xxxx– หน่วยงาน: 1227-21– วันที่อ่าน: 09/06/62– รวมเงินที่ต้องชำระทั้งสิ้น: 353.10 คราวนี้ … ใบแจ้งนี้ จะมี QR Code และ Barcode ซึ่ง ทดลองใช้ Google Lens อ่านพบว่า ได้ค่าออกมาเป็น |09940001649041111227052xxxx1906621227620229846000930000035310 นับแล้ว ได้ความยาว 62 ตัวอักษร ลองแล้วลองอีก ก็ไม่สามารถจ่ายได้ โทรไปถามการประปา ท่านก็ว่า ให้ไปที่สำนักงาน ซึ่ง … ไกลมวากกกกก คิวก็ยาวววววว จ่ายผ่านบัตรเครดิตไม่ได้ด้วย ก็เลย ไปที่ 7-Eleven ผลคือ ก็ยิง Barcode ได้ แต่ไม่สามารถจ่ายเงินได้อยู่ดี !!! พอดีสาขาที่ไป ช่วงนั้นลูกค้าไม่คับคั่ง จึงสอบถามพนักงานว่า ไม่ทราบมีวิธี Manual ไม๊ จะได้ทราบว่า มี โดยที่ Counter สามารถ Key เลขที่ใบแจ้งค่าน้ำ, เลขที่ผู้ใช้น้ำ, หน่วยงาน ได้ แต่ …. เมื่อ Key ตามช่องที่ระบบมีให้นั้น ปรากฏว่า ตั้งแต่ เลขที่ใบแจ้งค่าน้ำ ระบบก็บอกว่าไม่ถูกต้อง ก็เลย ขอรบกวนเค้า ให้ลอง Key ตัวเลขใต้ Barcode ขนาดความยาว 58 ตัวอักษร ลงไป ในช่อง เลขที่ใบแจ้งค่าน้ำ เลย ผลปรากฏว่า จ่ายได้ !!! 12276202298461227052xxxx122721190662000035310 อึ่มมมมม มันต้องมีอะไรแน่ ๆ …. ก็เลขมาสังเกตดู ถ้าเอา เลขที่ใบแจ้งค่าน้ำ, เลขที่ผู้ใช้น้ำ, หน่วยงาน มาต่อกัน จะได้ 1227620229846 1227052xxxx 122721 ส่วนต่อมา 190662 น่าจะเป็น 19/06/62 ซึ่ง ก็คือ 10 วัน หลังจาก วันที่อ่าน (09/06/62) และ000035310 น่าจะเป็น จำนวนเงิน หลักล้าน ทศนิยม 2 ตำแหน่ง Padding ด้วย 0 ด้านหน้า 0,000,353.10 อย่ากระนั้นเลย ไหน ลองเอาของเดือนที่แล้วมาดูซิ ซึ่งเคยจ่ายผ่าน App ได้ 09940001649041111227052xxxx2105621227620148723000930000037343 เปรียบเทียบ 2 เดือน |09940001649041111227052xxxx1906621227620229846000930000035310 09940001649041111227052xxxx2105621227620148723000930000037343 อ่อ เพราะเดือนที่ยิงไม่ได้ มีเครื่องหมาย | ข้างหน้า และ มีเลข 0994000164904111UPDATE: 0994000164904 คือ เลขที่ผู้เสียภาษี (Tax ID) ส่วน 111 อาจจะเอาไว้คั่น มั้ง สรุป เดือนไหนจ่ายไม่ได้ ลองเอาเลขใต้ Barcode ให้ 7-Eleven คีย์เข้าไปดูในช่อง “เลขที่ใบแจ้งค่าน้ำ” ก็จะจ่ายได้จร้า แล้ว …. ถ้าเอา 09940001649041111227052xxxx1906621227620229846000930000035310

Read More »

WPF Layout (Part II)

Popular layout panels of WPF 1. StackPanel StackPanel ของ WPF เป็น panel ที่เรียบง่ายและมีประโยชน์ในการนำมาใช้งาน โดยรูปแบบการจัดวางของ element ที่เป็น child จะวางอยู่ในรูปแบบซ้อนจากบนลงล่างหรือเรียงไปทางด้านซ้ายไปขวา ขึ้นกับการกำหนดค่าของ orientation StackPanel เหมาะสำหรับการจัดวางในรูปแบบที่มีลักษณะเป็น List โดย ItemsControls ของ WPF ทั้งหมด ที่เป็นลักษณะของ ComboBox, ListBox หรือ Menu จะใช้ StackPanel เพื่อจัดรูปแบบภายในของ Control ตัวมันเอง ดังตัวอย่าง Stack Items horizontally จากภาพตัวอย่างจะแสดงในส่วนของการใช้ horizontal stack panel คือจะประกอบด้วย ปุ่ม “OK” และ ปุ่ม “Cancel” ใน window โดยเมื่อมีการเปลี่ยนขนาดของตัวอักษรหรือเปลี่ยนภาษา โดยที่เราไม่จำเป็นต้องกำหนดขนาดของปุ่ม แต่ stack panel จะทำหน้าที่ในการจัดเรียงปุ่มตามขนาดของปุ่มทั้งสองให้โดยอัตโนมัติ ดังตัวอย่าง 2. Wrap Panel Wrap panel เหมือนกับ Stack Panel แต่ต่างกันที่ Wrap panel คือจะไม่บรรจุ child ทั้งหมดใน 1 แถว แต่ตัดส่วนที่เกินและขึ้นบรรทัดใหม่ กรณีที่ไม่มีพื้นที่ว่างเหลือพอบรรจุอยู่ โดยทิศทางการจัดวางสามารถกำหนดเป็น Horizontal หรือ Vertical Wrap panel เคยใช้จัดวาง tabs ของ tabs control, itemของเมนูใน toolbar หรือ item ใน Windows Explorer ในรูปแบบ list โดย Wrap panel จะถูกนำมาใช้บ่อยกับitem ที่มีขนาดเท่ากัน แต่ในส่วนนี้ไม่ใช่ข้อกำหนดของ Wrap panel 3.  Dock Panel Dock panel คือรูปแบบในการจัดวางเรียง elements ของ panel นั้นๆ ได้ 4 ด้าน คือ  ซ้าย ขวา บน และ ล่าง หรือจะจัดเรียงไว้ตรงกลางก็สามารถทำได้ โดยแต่ละทิศทางการจัดเรียงจะสามารถกำหนดได้นั้นต้องระบุที่ DockPanel.Dock  กรณีที่ต้องการจัดวางเรียงให้อยู่ตรงกลางของ panel จำเป็นต้องให้ child ที่ต้องการจัดเรียงไว้ตรงกลางนั้นจัดวางอยู่ในตำแหน่งสุดท้าย แล้วต้องกำหนด panel  นั้น ให้ มี LastChildFill property = true ดังตัวอย่าง Multiple elements on one side Dock panel รองรับการมี elements ได้หลายตัวในแต่ละด้าน โดยแต่ละ element ต้องระบุ DockPanel.Dock ให้ตรงกับทิศทางที่ต้องการจัดเรียง ดังตัวอย่าง Change the stacking order ลำดับการจัดเรียงพื้นที่ให้กับ element คือ มันจะกำหนดพื้นที่การจัดเรียงคือ elements ตัวแรก จะได้พื้นที่ทั้งหมดตามความยาวหรือความสูงของตัวมันเอง ในส่วนของ elements อื่นๆจะได้พื้นที่เหลือจาก elements ตัวแรก และ elements ตัวอื่นๆที่จัดวางเรียงต่อๆกัน 4. Canvas Panel Canvas คือ panel ที่มีรูปแบบพื้นฐานที่ธรรมดาที่สุดใน WPF  โดย elementภายใน panel   จะมีพิกัดที่ชัดเจน โดยสามารถระบุพิกัดที่ต้องการจัดเรียงด้านต่างๆโดยใช้  Canvas.Left, Canvas.Top, Canvas.Bottom และ Canvas.Right โดยระบุใน properties ของ element นั้นๆ Canvas เป็น Panel ที่ใช้สำหรับจัดกลุ่ม

Read More »