Category: Operating System

  • แลกเปลี่ยนเรียนรู้ 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 Client กับ PC
    • ประหยัดพลังงาน เมื่อเทียบระหว่าง Zero Client กับ PC
    • ลดอุณหภูมิภายในห้อง LAB Computer เมื่อเทียบระหว่าง Zero Client กับ PC
    • มีความยืดหยุ่นในการใช้งานทรัพยากร เมื่อเทียบระหว่าง Zero Client กับ PC
    • ประหยัดพื้นที่บนโต๊ะภายในห้อง LAB Computer เมื่อเทียบระหว่าง Zero Client กับ PC
    • การ Backup ข้อมูลทั้งระบบทำได้ง่าย เมื่อเทียบระหว่าง Zero Client กับ PC

    ถาม-ตอบ ที่พอจะประมวลได้จากการพูดคุย

    ถาม: วิทยาเขตตรัง มีนโยบายการให้บริการห้องคอมพิวเตอร์สำหรับการเรียนการสอน กี่แบบ
    ตอบ: มีแบบเดียว คือ มีเครื่องให้ใช้ร่วมกัน เก็บบันทึกไฟล์ไว้เอง เนื่องจากระบบ VDI ที่จัดซื้อทรัพยากรไม่เพียงพอที่จะสร้าง VM แยกให้นักศึกษาหรือให้แต่ละวิชา

    ถาม: ระบบนี้มีค่าใช้จ่ายเท่าไร แยกเป็นค่าอะไรบ้าง ขอทราบ specification ที่ใช้งานอยู่
    ตอบ: ไม่สามารถระบุเฉพาะระบบ VDI ได้ เพราะเป็นการเช่ารวมกับ PC และ Notebook อีกจำนวนหนึ่ง (ประมาณหยาบ ๆ ได้เครื่องละ 20,000 บาท/3ปี หรือ คิดเป็นค่าใช้เครื่อง 18 บาท/วัน) ส่วนการกำหนด VDI specification ได้คำนวณจากปริมาณ (PC, RAM และ Disk) ที่ต้องการใช้งาน บวกส่วนเผื่อไว้อีก 25%

    ถาม: ระบบนี้น่าจะเหมาะกับคณะที่ให้บริการห้องคอมพิวเตอร์สำหรับการเรียนการสอนการติดตั้งโปรแกรมหรือไม่
    ตอบ: ทำได้เพราะเปิดสิทธิ Administrator เหมือนกับ PC

    ถาม: ระบบนี้น่าจะเหมาะกับหน่วยงานที่ให้บริการฝึกอบรมหรือไม่
    ตอบ: ขึ้นอยู่กับความพร้อมของ data center ให้บริการได้ต่อเนื่องหรือไม่ และโปรแกรมที่อบรมได้ทดสอบติดตั้งใช้งานแบบ VDI ได้

    ถาม: ระบบนี้ดีกว่าระบบเก่าอย่างไร
    ตอบ: มีความยืดหยุ่นในการเพิ่มทรัพยากรให้ zero client ที่ต้องการใช้มาก ๆ ปรับเปลี่ยนได้สะดวก การ cloning สามารถ remote เข้าทำได้ที่ server ไม่ต้องทำที่ห้องคอม

    ถาม: ตั้งแต่เริ่มใช้ระบบนี้มีการประเมินการใช้งานแล้ว คุ้มหรือไม่คุ้ม ดีหรือไม่ดี อย่างไร
    ตอบ: ยังไม่ได้ประเมิน

    ขอขอบคุณข้อมูลที่ได้รับจาก presentation ของคุณพงษ์พันธ์ ประพันธ์ หัวหน้าฝ่ายสารสนเทศและทรัพยากรการเรียนรู้ มหาวิทยาลัยสงขลานครินทร์ วิทยาเขตตรัง

  • 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 ในมุมต้องการได้นะค่ะ บางครั้งในการทำข้อมูลอาจจะต้องมีการประยุกต์นำเทคนิคนี้นิด อันนี้หน่อยมาช่วยๆ กัน ถึงจะได้ผลลัพธ์ตามต้องการนะค่ะ หวังว่าบทความนี้พอจะเป็นแนวทาง สำหรับผู้อ่านได้บ้าง ไม่มากก็น้อยนะค่ะ…ขอบคุณค่ะ

  • สร้าง 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 reference และ initial ภายใน project ให้สามารถรองรับการคอมไพล์ code ที่มาจาก share project ได้ โดยภายในโครงสร้าง project จะมี MainActivity.cs ที่ภายในมีการ initial Xamarin.form เอาไว้ และมีไฟล์ AndroidManifest.XML,Assets, Resource file ต่างๆ ที่คล้ายกับโครงสร้าง android project ทั่วไป ซึ่งหากเราต้อง specific code เฉพาะ platform เราก็สามารถมาเขียน code เพิ่มเติมที่ project นี้ได้ค่ะ
    3. HelloWorld.iOS คือ iOS platform project ที่มีการ add reference และ initial ภายใน project ให้สามารถรองรับการคอมไพล์ code ที่มาจาก share project ได้ เช่นเดียวกันกับ android ซึ่งภายในโครงสร้าง iOS project จะมีไฟล์หลักๆ AppDelegate.cs, Assets,Resource, Info.plist เช่นเดียวกับโครงสร้าง iOS project ที่เขียน native app ด้วย XCode ซึ่งหากเราต้อง specific code เฉพาะ platform เราก็สามารถมาเขียน code เพิ่มเติมที่ project นี้ได้เช่นเดียวกัน

    เมื่อเราได้ทราบ solution structure คร่าวๆ แล้ว เราจะมาทดลองเขียน code และ run แอปกันดูนะคะ หลักๆ เลย เราจะเขียน UI ด้วย XAML ไฟล์ และ code behind เป็น .cs จากรูปด้านล่าง ที่ solution explorer สังเกตจะมีไฟล์ App.xam.cs ซึ่งจะเป็นไฟล์หลักในการ start แอปขึ้นมา


    ซึ่งในไฟล์ ส่วนหลักที่เรียก load หน้าแรกของ app ขึ้นมา คือ การ set หน้า page แรกให้กับ MainPage properties โดย default จะ set ไปที่ MainPage ซึ่งเป็น Page ที่เราสร้างขึ้น และมี override method หลัก 3 method คือ OnStart(), OnSleep() และ OnResume() แต่ละ method การทำงานก็ตามชื่อเลย หากเราต้อง handle code อะไรที่จะให้แอปทำงานเพิ่มเติมก็ใส่ code เพิ่มเติมได้เลย ดังรูป


    ทีนี้เราลองมาแก้ code ที่หน้า MainPage.xaml กันดูบ้าง ทดลองเปลี่ยนข้อความและขยาย Font ดังรูป

    เสร็จแล้วก็ได้เวลา run app ขึ้นมาซะที หากใครติดตั้งตัว Emulator มาด้วยแล้ว ตรง tab bar ที่รัน ก็จะ default Emulator ตัวนั้นขึ้นมาให้ทันที ซึ่งผู้เขียนไม่ได้ติดตั้งไว้ เนื่องจากกินพื้นที่เยอะและเวลา run เนี่ยกินแรมเยอะมากกกก โดยผู้เขียนจะใช้วิธีเสียบสาย usb ต่อเข้ากับมือถือ android เพื่อที่จะได้ run บน device จริงๆเลย (ปล. มือถือต้องเปิด Developer mode และ USB Debugging mode ก่อนนะคะ ซึ่งวิธีเปิดลองหาดูตาม google ค่ะ เพราะแต่ยี่ห้อ แต่ละรุ่นมีวิธีกดเปิดไม่เหมือนกัน) ถ้าหา device เจอแล้ว ตรง tab bar ที่รัน จะขึ้นรุ่นมือถือมาให้เห็นดังรูป


    กดปุ่ม run เลยค่ะ ผลลัพธ์ที่ได้บนหน้าจอมือถือของเราก็จะประมาณนี้ โดย app จะถูก build และติดตั้งบนเครื่องให้เรียบร้อยค่ะ หลังจากนั้นเราสามารถเรียกดู app ได้โดยไม่ต้องเสียบสายจากการแตะ icon บนหน้าจอเหมือนแอพทั่วไปบนเครื่องได้เลยค่ะ


    เป็นอันเสร็จเรียบร้อยค่ะ ^^ ฝากบทความถัดไปของซีรีย์นี้ด้วยนะคะ => Xamarin.Form Binding ข้อมูลด้วย MVVM pattern

  • ทำความรู้จัก Xamarin.Forms + วิธีติดตั้งบน Windows

    การพัฒนา Mobile Application ปัจจุบันมีหลากหลาย solution ให้เลือกใช้ ไม่ว่าจะเป็นการพัฒนาแบบ native แยกตามแต่ละแพลตฟอร์ม , พัฒนาแบบ hybrid และแบบ cross platform นอกจากจะมีรูปแบบการพัฒนาให้พิจารณาเลือกแล้ว ยังมี Mobile framework ที่หลากหลายที่เรานำมาใช้ในการพัฒนา app ไม่ว่าจะเป็น React Native, Ionic, Fluter,Android Studio, Xcode, Xamarin เป็นต้น โดยบทความนี้ผู้เขียนจะมาแนะนำ Xamarin.Forms ซึ่งเป็น framework หนึ่งที่นิยมใช้ในการพัฒนา mobile app กัน พร้อมทั้งแนะนำวิธีติดตั้งเครื่องมือเพื่อใช้งาน

    Xamarin คืออะไร?

    Xamarin คือ framework หนึ่งในการพัฒนา mobile app แบบ cross platform ของค่าย Microsoft ที่สามารถเขียน code ด้วยภาษา C# แล้วคอมไพล์เป็น native app ให้สามารถรันบน ios , android และ windows platforms ได้ ซึ่งปัจจุบันตัว Xamarin เองก็มีรูปแบบการพัฒนาออกเป็น 2 แนวทาง คือ Xamarin Native และ Xamarin.Forms

    แล้ว Xamarin.Forms กับ Xamarin Native ต่างกันยังไง?

    Xamarin Native หรือที่ฝรั่งเรียก Traditional Xamarin Approach เนี่ยเป็นรูปแบบที่ทาง Xamarin ได้พัฒนาออกมาใช้เป็นรูปแบบแรก (ปัจจุบันก็ยังมีให้ใช้อยู่) ซึ่งเป็น shared code platform concept โดยเราสามารถใช้ code ฝั่ง business logic ร่วมกันได้ แต่ code ฝั่ง UI เราก็ต้องเขียน code แยกตาม sdk ของแต่ละ platforms ซึ่งผู้พัฒนาต้องรู้จักการใช้ control ต่างๆ การวาง layout ของแต่ละ platform มาพอสมควร

    Xamarin.Forms เป็น concept และ tools รูปแบบใหม่ของ Xamarin ที่สามารถแชร์ code ระหว่าง platform ได้ 100% คือสามารถเขียน code เพียงครั้งเดียวทั้งฝั่ง business logic และ UI แล้วคอมไพล์เป็น native app ให้รันได้ทุก platforms (ios, android และ windows) ในส่วนของ UI จะเขียนด้วย XAML เช่นเดียวกับ WPF แต่ต่างกันที่การจัด layout และ control UI ที่มีแตกต่างกัน ซึ่งหากนักพัฒนาคนไหนเคยเขียน WPF มาแล้วก็สามารถเขียน mobile app ด้วย Xamarin.Forms ได้ง่ายขึ้น

    เปรียบเทียบ Xamarin Native (Traditional) กับ Xamarin.Forms
    ที่มารูป :
    https://xamarinhelp.com/xamarin-forms-making-traditional-xamarin-obsolete/

    Xamarin.Forms เหมาะกับ?

    1. Developer ที่คุ้นเคยกับ .NET framework เนื่องจากจะคุ้นเคยกับ Tools ที่ใช้งานและทำให้เข้าใจ concept และสามารถพัฒนา app ได้รวดเร็วยิ่งขึ้น
    2. พัฒนา Data Entry app เนื่องจาก Xamarin.Forms มี Simple UI control ให้พร้อมใช้งาน
    3. ต้องการ app ที่คุ้มค่าแต่ใช้ budget น้อย เนื่องจาก Xamarin.Form เขียน code ครั้งเดียวสามารถ run ได้ทั้ง 3 platform ได้แก่ Android, IOS และ Windows ทำให้ประหยัดงบในการ implement แต่ละ platform

    Xamarin.Forms ไม่เหมาะกับ?

    1. ผู้ที่ไม่คุ้นเคยกับ .NET Framework และภาษา C# เนื่องจากจะต้องศึกษาทำความเข้าใจใหม่มากพอสมควร ซึ่งหากถนัด FrontEnd web หรือ java script อาจพิจารณาเลือกใช้ framework อื่น เช่น React Native, Ionic หรือ Fluter จะพัฒนา app เสร็จได้รวดเร็วกว่า
    2. ไม่เหมาะกับ app ที่มี UI ซับซ้อนหรือ specific UI เฉพาะแต่ละ platform

    วิธีติดตั้ง Xamarin.Forms บน Windows

    System Requirement

    1. Windows 10 ขึ้นไป
    2. Microsoft Visual Studio โดยเวอร์ชันที่รองรับการใช้งาน Xamarin.Forms ต้องเป็น Microsoft Visual Studio 2017 version 15.8 ขึ้นไป

    วิธีติดตั้ง

    1. Download Visual Studio และ double click ไฟล์เพื่อ install แต่หากใครมี Visual Studio อยู่แล้ว ให้เปิด Visual Studio Installer ขึ้นมา แล้วเลือก Modify ดังรูป

    2. ที่โมดูล Mobile & Gaming เลือก Mobile development with .NET ดังรูป

    3. สังเกตที่ Installation Detail ฝั่งด้านขวา จะแสดงรายละเอียด package ที่ติดตั้ง ให้สังเกตุที่ Optional จะ default package มาให้ ซึ่งจะเห็นว่ากิน space มากพอสมควร ซึ่งตัวที่กินพื้นที่เยอะสุดคือตัว Google Android Emulator

      โดยหากใครจะประหยัดพื้นที่ แล้วเสียบสาย run ด้วย android device เลย ก็ให้ติ๊กถูกที่หน้า Google Android Emulator ออกได้เลย ซึ่งทำให้ space ลดลงไปเกือบครึ่งนึงเลยค่ะ

    4. จากนั้นกดปุ่ม Install หรือ Modify (กรณีลง VS ไว้แล้ว)
    5. จากนั้นก็ Take a coffee รอจนเสร็จค่า ^^

    เป็นอันเสร็จสิ้นการติดตั้งเครื่องมือเตรียมพร้อมสำหรับการสร้าง Mobile application ด้วย Xamarin.Forms ซึ่งจะเห็นว่าขั้นตอนการติดตั้งง่ายไม่ซับซ้อนเลยถ้าเทียบกับ mobile framework อื่นๆ นะคะ บทความหน้าจะมาแนะนำเริ่มต้นการสร้าง app ด้วย Xamarin.Forms กันค่า

  • วิธีสร้างสมุดโทรศัพท์ของหน่วยงานด้วย Google Contact

    เคยเป็นไม๊ จะโทรศัพท์หาเพื่อนร่วมงาน แต่ไม่รู้ว่า เบอร์มือถือ เบอร์ที่โต๊ะ หรือ Email อะไร วิธีการที่บางหน่วยงานทำ คือ ทำแผ่นพับเป็นสมุดโทรศัพท์เก็บใส่กระเป๋าตังค์บ้าง เป็นกระดาษแปะบ้าง บางทีก็หาย บางทีก็ไม่ได้พกบ้าง หรือ บางทีทำเป็นเว็บให้ค้นหาบ้าง … บางแห่งถึงกับต้องลงแรงเรียน Mobile App ก็มี (อิอิ)

    จะดีกว่าไม๊ ถ้าแค่ฝ่ายบุคคล แค่รวบรวม ชื่อ นามสกุล ชื่อเล่น เบอร์มือถือ เบอร์โต๊ะ และ Email ใส่ Excel แล้วจากนั้น ใครใคร่จะ Import ใส่ Google Contact ของตนเองได้เลย แล้วหลังจากนั้น จะโทร จะค้นหา ก็สามารถทำในมือถือของตนเองได้เลย !!! ไม่ต้องพก ไม่ต้องติดตั้ง App เพิ่ม ใช้ได้ทั้ง iOS, Android และบน Computer ก็ยังได้

    มาดูกัน

    สร้าง Excel เก็บข้อมูล

    การนำเข้า (Import) ข้อมูลเข้า Google Contact มีทริคนิดเดียว คือ บรรทัดแรกของไฟล์ จะต้องเป็น Header ที่กำหนดชื่อตามรูปแบบมาตราฐาน กล่าวคือ ตั้งหัวข้อว่า “ชื่อ”, “นามสกุล”, “ชื่อเล่น”, “มือถือ”, “เบอร์โต๊ะ” อะไรอย่างนี้ +++ไม่ได้+++

    ต้องตั้งเป็น

    "Given Name","Family Name", "Name Suffix","Phone 1 - Type","Phone 1 - Value","Phone 2 - Type","Phone 2 - Value","Group Membership"

    Given Name = ชื่อ
    Familay Name = นามสกุล
    Name Suffix = ใช้เป็นชื่อเล่นก็ได้
    Phone 1 – Type = ประเภทโทรศัพท์อันที่ 1 (เช่น Mobile)
    Phone 1 – Value = หมายเลขโทรศัพท์อันที่ 1 (เช่น เบอร์มือถือ)
    Phone 2 – Type = ประเภทโทรศัพท์อันที่ 2 (เช่น Work)
    Phone 2 – Value = หมายเลขโทรศัพท์อันที่ 2 (เช่น เบอร์โต๊ะ)
    Group Membership = จะให้ Label ว่าอย่างไร

    ดังตัวอย่างนี้

    จากนั้น Save เป็นแบบ CSV File สมมุติชื่อว่า contact.csv

    นำเข้า Google Contact

    เปิด Gmail/Google Mail แล้วคลิกที่ App > Contacts
    ใน Google Contact คลิกที่ More > Import
    เลือกไฟล์

    เสร็จแล้ว ก็จะได้ใน Google Contact มี Label ตามภาพ (1 contact มีหลาย ๆ label ได้)
    ในภาพ จะเห็นว่า Contact ที่เพิ่งนำเข้าไป จะปรากฏใน Label cc2019, myContact และ Imported on 5/7 ซึ่งเป็น Default

    วิธีการนี้ มีข้อดีคือ แม้จะมี contact ที่ซ้ำกัน ก็ไม่เป็นไร เราสามารถ Merge ทีหลังได้ หรือ เลือกลบที่เป็น Label ของปีก่อน ๆ ได้ ถ้าต้องการ


    พร้อมใช้งานทันที

    เมื่อ Import เสร็จแล้ว ในมือถือที่ Sync กับ Google Account ที่เราเอา Contact ใส่เข้าไปก็จะสามารถค้นหาได้ทันที

    หาตามเบอร์โทรศัพท์ก็ได้

    เย ๆ

  • อัปเดต Apache2 ให้ได้เวอร์ชั่นล่าสุดด้วย Third-Party PPA ของ ondrej

    พบว่า ubuntu 16.04 จะใช้ apache2 v 2.4.18 แม้ว่าเราจะสั่ง apt update; apt upgrade แล้วก็ตามเมื่อเช็คด้วยคำสั่ง apache2 -v จะพบว่ายังคงเป็นเวอร์ชั่น 2.4.18 เช่นเดียวกับ ubuntu 18.04 จะใช้ apache2 v 2.4.29 เท่านั้น หลังจากหาข้อมูลอยู่ทั้งวัน มีผู้ให้ข้อมูลใน google search ว่า ทีมพัฒนาจะไม่เปลี่ยนเวอร์ชั่นใน ubuntu ตาม upstream developer จนกว่าจะทดสอบและออก ubuntu next release

    หากต้องการเป็นเวอร์ชั่น 2.4.39 ณ วันนี้ (4 เม.ย. 62 หลังจากข่าวช่องโหว่ apache2 2 วัน) ก็ต้องใช้ Third-Party PPA ของ ondrej (ผู้พัฒนาคนหนึ่งที่ทำ Debian Package)

    เพิ่มเติมล่าสุด (5 เม.ย. 62) ทำใน ubuntu server อีกเครื่องที่ยังไม่ได้ทำแบบ PPA

    $ sudo apt-get update ; sudo apt-get dist-upgrade
    $ apache2 -v
    Server version: Apache/2.4.18 (Ubuntu)
    Server built: 2019-04-03T13:34:47

    $ dpkg -l | grep apache2
    ii apache2 2.4.18-2ubuntu3.10 amd64 Apache HTTP Server

    พบว่ามีการปรับปรุงเวอร์ชั่น Server built 2019-04-03 ซึ่งตามหลัง patch PPA ไม่กี่ชั่วโมง ใครยังไม่สนใจจะเปลี่ยนเป็นเวอร์ชั่น 2.4.39 ก็น่าจะไม่ต้องทำแบบ PPA ตามข้อมูลใน link นี้
    https://usn.ubuntu.com/3937-1/ และ
    https://launchpad.net/ubuntu/xenial/+source/apache2/+changelog

    ข้อควรระวัง ให้ตรวจสอบว่ามีการเข้าไปปรับแต่งไฟล์ apache2.conf ไว้หรือไม่ ต้องมีการทำ backup ไว้ก่อนอัปเดต เช่น บางท่านอาจไปเขียน Rewrite Rule ในไฟล์นี้ เป็นต้น ก็ต้องแก้ไขหลังจากอัปเดต รวมถึง Apache configuration files อื่น ๆ ที่เราใช้ เราต้องมี backup

    อย่างไรก็ตามก่อนทำอัปเดต ต้องมั่นใจว่าถ้า server เราเป็น VM ก็ต้องมีการ backup VM ไว้ก่อน จะอุ่นใจขึ้น

    sudo add-apt-repository ppa:ondrej/apache2
    sudo apt-get update
    sudo apt-get upgrade

    หลังจากอัปเดต เช็คเวอร์ชั่นด้วยคำสั่ง apache2 -v ได้เวอร์ชั่นล่าสุด

    Server version: Apache/2.4.39 (Ubuntu)
    Server built: 2019-04-02T20:30:08

    หากพบว่า ยังคงได้ version เดิม ตรวจสอบดู output จะพบว่า

    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    Calculating upgrade… Done
    The following packages have been kept back:
    apache2 apache2-bin apache2-data apache2-utils libaprutil1
    libaprutil1-dbd-sqlite3 libaprutil1-ldap openssl
    0 upgraded, 0 newly installed, 0 to remove and 8 not upgraded.

    ทำคำสั่งนี้แทน

    sudo apt-get dist-upgrade
    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    Calculating upgrade… Done
    The following package was automatically installed and is no longer required:
    liblua5.1-0
    Use 'apt autoremove' to remove it.
    The following NEW packages will be installed:
    libbrotli1 libjansson4 liblua5.2-0 libnghttp2-14 libssl1.1
    The following packages will be upgraded:
    apache2 apache2-bin apache2-data apache2-utils libaprutil1
    libaprutil1-dbd-sqlite3 libaprutil1-ldap openssl
    8 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
    Need to get 4,628 kB of archives.
    After this operation, 6,757 kB of additional disk space will be used.
    Do you want to continue? [Y/n]

    กด Enter (เพื่อเลือก Y) แล้วจะมีการติดตั้งให้

    ตอนนี้ก็เฝ้าระวังกันต่อไปว่า หลังจากทำวิธีนี้จะมีผลกระทบอะไรตามมาในอนาคตบ้างมั้ย หวังว่าจะไม่มี เพราะพยายามหาข้อมูลว่ามีใครแจ้งปัญหาจากวิธีการนี้ก็ไม่พบ พบแต่คำแนะนำวิธีนี้

    ผมคงไม่สามารถรับประกันความปลอดภัยใด ๆ หรือผลที่ตามมาจากการทำขั้นตอนในโพสต์นี้นะครับ


    สำหรับวิธีไม่ใช้ PPA จะกลับไปใช้ของเดิม

    sudo apt-get install ppa-purge
    sudo ppa-purge ppa:ondrej/apache2

    ตรวจสอบ version ของ apache2

    apache2 -v
    dpkg -l | grep apache2

    และล้างไฟล์ใน sources.list.d

    ls -l /etc/apt/sources.list.d/
    sudo add-apt-repository --remove ppa:ondrej/apache2

    ลิงค์ที่เกี่ยวข้อง

  • แนะนำการใช้เครื่องมือ Quick Analysis ใน Excel 2016 : ชุดคำสั่ง “Text”

    สำหรับ Excel 2016 ที่เราใช้งานอยู่เป็นประจำในชีวิตประจำวันนั้น มีเครื่องมือที่ช่วยอำนวยความสะดวกมากมาย จนบางครั้งเราจะลืมไปว่า มันสามารถช่วยอำนวยความสะดวกอะไรได้บ้าง สำหรับบทความนี้ จะกล่าวถึงคำสั่ง “Quick Analysis” ซึ่งอาจจะไม่ได้เป็นความรู้ใหม่สำหรับผู้ที่ได้ใช้อยู่เป็นประจำ หรือใช้อยู่แล้ว แต่ก็เพื่อเป็นความรู้ เป็นข้อมูลให้กับสำหรับคนที่ยังไม่เคยใช้แล้วกันนะค่ะ

    ก่อนอื่นเรามาสร้างข้อมูลสมมุติใน Excel ก่อนนะค่ะ ในที่นี้ทำการสร้างข้อมูลตารางการออกกำลังกาย และการพักผ่อน ในเดือนมีนาคมกันค่ะ ตามข้อมูลในรูปนะค่ะ

    การใช้ Quick Analysis ในชุดคำสั่ง “Text”
    ตั้งโจทน์กันก่อน เราจะมาหา Record ที่มีคำที่สนใจกันนะค่ะ
    สามารถทำได้โดย เลือกช่วงของข้อมูลที่ต้องการright click >> ทำการ right click >> เลือก Quick Analysis


    เลือก Formatting >> เลือก Text

    จะปรากฎหน้าจอ เพื่อให้กำหนดเงื่อนไข
    Format cell that contain the text : ให้ระบุคำที่ต้องการหา ในที่นี้ระบุ “Run”
    with : เป็นการดำเนินการ กรณีที่พบข้อมูลตามที่ต้องการ ในที่นี้จะเลือก “Yellow Fill with Dark Yellow Text”
    จากนั้นกดปุ่ม “OK” เพื่อยืนยันเงื่อนไขที่ระบุ

    ผลลัพธ์ที่ได้จะเป็นดังนี้

    ข้อมูลที่มีคำว่า “Run” อยู่ก็จะมีพื้นเป็นสีเหลือง ง่าย ๆ ใช่ไม๊ค่ะ

    สำหรับในชุดคำสั่ง “Formatting” ก็ยังมีคำสั่งอีกนะค่ะ ได้แก่
    Duplicate : หา Record ที่มีข้อความซ้ำกับกัน
    Unique : หา Recored ที่มีข้อความไม่ซ้ำกับ Record อื่น
    Equal To : หา Record ที่มีข้อความเหมือนกับคำที่ต้องการค้นหา ซึ่งจะคล้ายกับคำสั่ง “Text” ต่างกันที่ คำสั่ง “Equal To” จะต้องเหมือนเท่านั้น แต่ “Text” คือมีคำที่ต้องการอยู่ในข้อความ

    เอาแบบเริ่มต้นกันแค่นี้ก่อนนะค่ะ วันหลังจะมาบรรยายในชุดคำสั่งต่อไปให้ดูกันอีกนะค่ะ….ติดตามชมกันนะค่ะ

  • ติดตั้ง Let’s Encrypt Certificate สำหรับ SSL Sites บน IIS

    หลังจากที่พี่หนุ่ม คณกรณ์ หอศิริธรรม  ได้เขียนเรื่อง วิธีติดตั้ง HTTPS ด้วย Certificate ของ Let’s Encrypt ไปแล้วนั้น ก็จะมาถึงทางฝั่ง Windows กันบ้าง ซึ่งจะติดตั้งผ่านเครื่องมือ บน Command Line ครับ

    ตัวอย่างนี้จะเป็นวิธีการติดตั้งโดยใช้เครื่องมือที่ชื่อว่า WinACME ซึ่ง ดาวน์โหลดได้ที่นี่ (จริงๆ มีหลายตัวให้เลือกใช้ครับ ซึ่งส่วนใหญ่จะเป็นการพัฒนาผ่าน ACME API มีทั้งแบบเป็น Command Line, Power shell และเป็น GUI ครับ)

    หลังจากดาวน์โหลดไฟล์มาแล้ว ผม Extract ไปไว้ที่ C:\LetsEncryptSSL

    จากนั้นก็เปิด Command Prompt ด้วยสิทธิ Administrator
    (เปิดด้วยสิทธิ Administrator เพื่อให้มีการสร้าง Schedule Task ในการ Renew Cert. โดยอัตโนมัติครับ)

    จากนั้นทำการเรียกด้วยคำสั่ง letsencrypt จะพบกับเมนูดังภาพนี้ครับ

    ผมเลือกตอบตัว “n” จะพบกับเมนูให้เลือกด้านล่างนี้ (สำหรับผู้ที่มีความชำนาญ สามารถเลือก M เพื่อเปิด advanced option ได้ครับ)

    และเนื่องจากเครื่องที่แสดงอยู่นี้ เป็น multiple site และผมจะทำการติดตั้งลงไปเพียง 1 site ตามนี้ครับ

    เลือก site จากนั้นกด Enter จะพบว่าโปรแกรมเริ่มทำการ Generate SSL Cert. และ Assign ไปยัง Site ของเรา พร้อมทั้งกำหนด Schedule Task เรียบร้อยแล้ว

    ลองดูผลลัพธ์ใน II

    ลองเปิดเว็บดู ผ่าน Google Chrome ปรากฎว่ามีรูปกุญแจขึ้นแล้วและเป็น Cert. ของ Let’s Encrypt ตามที่ต้องการ

    กลับไปตรวจสอบ Schedule Task พบว่ามีการสร้าง Task เพื่อ Renew Cert. เอาไว้แล้ว

    จบปิ๊ง…

  • Protect Windows Computer LAB using Toolwiz Time Freeze and Cygwin

    Toolwiz Time Freeze เป็น open source software freeware ติดตั้งเพิ่มใน Windows 10 สำหรับจัดการเครื่องคอมพิวเตอร์ในห้องบริการ ซึ่งจะทำให้เมื่อ restart เครื่อง จะกลับคืนสู่สภาพเหมือนครั้งที่ติดตั้งเสร็จไว้ให้บริการในตอนแรก Toolwiz Time Freeze ไม่ได้ให้ซอฟต์แวร์ควบคุมรวมศูนย์กลางแบบโปรแกรมอื่นประเภทเดียวกันนี้ เราจะต้องทำการเดินไปปลด Lock ที่หน้าเครื่อง Windows ทีละเครื่องเอง แต่อย่างไรก็ตาม Toolwiz Time Freeze ก็ให้คำสั่งรันแบบ command line มาด้วย

    http://www.toolwiz.com/lead/toolwiz_time_freeze.php

    ผมจึงลองเสนอไอเดีย วิธีใช้ linux ubuntu ในการควบคุมไม่ต้องเดินไปทำหน้าเครื่อง นั่นคือ ใช้คำสั่ง ssh ในการรัน ToolwizTimeFreeze.exe ด้วย option /freeze หรือ /freezealways หรือ unfreeze

    หลักการคร่าว ๆ
    ซอฟต์แวร์ที่เครื่องคอมพิวเตอร์ที่จะให้บริการ
    1.ติดตั้ง Windows 10
    2.login เข้าใช้งานด้วยบัญชีผู้ใช้ (user) สิทธิเทียบเท่า Administrator
    3.ติดตั้ง Cygwin for Windows จะได้ Linux emulator โดยเลือกติดตั้ง service sshd ทำงานอัตโนมัติเมื่อเปิดเครื่อง Windows
    4.ติดตั้ง Toolwiz Time Freeze ตั้ง Lock พร้อมตั้งค่า password ป้องกันการเปิดเข้าโปรแกรม

    ซอฟต์แวร์ที่เครื่องของ admin ผู้ดูแล
    1.ติดตั้ง Ubuntu server หรือ Desktop เพิ่ม 1 เครื่อง เพื่อที่จะสร้าง ssh key ด้วยคำสั่ง sshkeygen จะได้ key file ชื่อ id_rsa.pub และ id_rsa.key อยู่ในไดเรกทอรี .ssh
    2.ทำขั้นตอนส่ง id_rsa.pub ไปใส่เพิ่มต่อท้ายไฟล์ authorized_keys ของ user ที่ติดตั้ง Cygwin for Windows 10
    3.ตอนนี้ เราจะสามารถ ssh user@ip (IP ของ Windows 10) ได้แล้วโดยไม่มีการถาม password ทดสอบดู

    เมื่อต้องการปลด Lock (Unfreeze) Windows 10 ก็ใช้คำสั่งนี้ได้
    คำสั่งเขียนต่อกันเป็นบรรทัดเดียว

    ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $user@$ip  "/cygdrive/c/Program\ Files/Toolwiz\ Time\ Freeze\ 2017/ToolwizTimeFreeze.exe /unfreeze /usepass=$password" > /dev/null 2>&1 &

    โดยให้แทนที่ $user ด้วย ชื่อบัญชีผู้ใช้ที่ติดตั้ง Cygwin ให้แทนที่ $ip ด้วยไอพีแอดเดรสของ Windows 10 และให้แทนที่ $password ด้วย password ของโปรแกรม Toolwiz Time Freeze

    เมื่อรันคำสั่งนี้แล้ว Windows 10 จะ restart เมื่อตรวจสอบดูจะพบว่า Toolwiz Time Freeze อยู่ในสถานะ unprotect

    เมื่อต้องการ Protect Windows 10 (Freeze) ก็ใช้คำสั่ง 3 คำสั่งนี้ ต้องทำตามลำดับ คำสั่งเขียนต่อกันเป็นบรรทัดเดียว

    คำสั่งที่ 1/3

    ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $user@$ip "/cygdrive/c/Program\ Files/Toolwiz\ Time\ Freeze\ 2017/ToolwizTimeFreeze.exe /freeze /usepass=$password" > /dev/null 2>&1 &

    คำสั่งที่ 2/3

    ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $user@$ip "/cygdrive/c/Program\ Files/Toolwiz\ Time\ Freeze\ 2017/ToolwizTimeFreeze.exe /freezealways /usepass=$password" > /dev/null 2>&1 &

    คำสั่งที่ 3/3

    ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $user@$ip "shutdown -r -f -t 0" > /dev/null 2>&1 &

    เมื่อรันคำสั่งนี้แล้ว Windows 10 จะ restart เมื่อตรวจสอบดูจะพบว่า Toolwiz Time Freeze อยู่ในสถานะ protect

    ดังนั้น หากเรานำคำสั่งเหล่านี้มาเรียงเข้าเป็น shell script หรือ scripting language ที่ call คำสั่ง ssh ได้ ก็จะทำให้เราสั่ง Lock และ ปลด Lock เครื่องจำนวนมากได้อย่างง่ายขึ้น

    การ Lock หรือ Unlock ด้วย script จะมี process stopped ของ ssh ที่ไปสั่ง Toolwiz ให้ลบ process ด้วยวิธีนี้

    ps a | grep Toolwiz | awk '{print $1}' | xargs kill -9 > /dev/null 2>&1

    หมายเหตุ (ข้างล่างนี้คือตัวอย่าง)

    1.คำสั่งที่แนะนำ อ้างถึง path ที่ใช้ในการติดตั้งโปรแกรมแบบ default คือ

    c:\Program Files\Toolwiz Time Freeze 2017

    2.การตั้งค่าในโปรแกรม Toolwiz Time Freeze

    Download จาก ftp server โดยใช้ไฟล์นี้ Setup_TimeFreeze.exe

    ขั้นตอน installation จะมีตัวเลือกที่เป็นค่า default
    Use disk caching for the Time Freeze Engine (MB.): 5120 (ตัวเลขนี้คงต้องทดสอบกันเอาเอง)
    [ ] Enable Time Freeze on your system partition (C:) every time:
    [/] Disable Time Freeze while in Windows Safe-mode.
    [ ] Enable Password Protection

    ขั้นตอนตั้งค่า จะมีตัวเลือกที่ผมได้ทดลองใช้
    แท็บ Toolwiz Time Freeze
    In Time Freeze mode, your system will be protected from any changes. ให้คลิกปุ่ม Start Time Freeze
    [/] Enable Time Freeze automatically when Windows starts.
    [/] Enable Folder Exclusion when Time Freeze is ON
    และเลือกบาง folder ให้เก็บไฟล์ได้ เช่น c:\mywallpaper

    แท็บ Setting and Help
    [/] Enable Password Protection for the control
    [ ] Hide the tray icon
    [ ] Show toolbar on your Desktop

    3.การตั้งค่า Cygwin for Windows ให้มี service sshd

    ขั้นตอนติดตั้งโปรแกรม Cygwin
    login ด้วย user ชื่อ Administrator หรือ login ด้วย user ที่มีสิทธิเทียบเท่า Administrator ก็ได้
    ติดตั้ง cygwin ให้คลิกขวาที่ Link ข้างล่างนี้และเลือก Save as เพื่อ download ไว้ แต่ไม่ต้องสั่งรัน
    ไฟล์สำหรับ Windows 64 bit http://cygwin.com/setup-x86_64.exe
    แล้วออกไปที่ Windows CMD แบบ Run as Administrator
    ให้ทำคำสั่ง ณ ตำแหน่งโฟลเดอร์ที่ download ไฟล์ เช่น Downloads ดังนี้

    cd %HOMEPATH%/Downloads 
    setup-x86_64.exe -q -s http://mirrors.psu.ac.th/cygwin -P openssh,curl,wget,dialog,vim 

    หรือ

    cd %HOMEPATH%/Downloads 
    setup-x86_64.exe -q -s http://cygwin.mirror.constant.com/ -P openssh,curl,wget,dialog,vim 
    

    รอนานสักนิด เมื่อเสร็จจะมีข้อความ Ending cygwin install ให้กด Enter

    ขั้นตอนติดตั้ง script เพื่อจัดการเรื่องควบคุมเครื่อง
    เปิดโปรแกรม Cygwin Terminal แบบ Run as Administrator เพราะว่าจะมีการเข้าไปแก้ registry

    การตั้งค่า cygwin เพื่อจัดการเรื่องควบคุมเครื่อง ทำดังนี้

    wget -N ftp://ftp.psu.ac.th/pub/psu12-sritrang/cygwin/cygwin-config-sshd.sh
    bash -o igncr cygwin-config-sshd.sh

    script ติดตั้งจะถามยืนยันว่าจะติดตั้ง ให้กด y และ Enter
    จะเริ่มต้นด้วย
    (1)การติดตั้ง user ชื่อ cyg_server ให้ตั้ง password
    (2)program จะ run ไปเรือย ๆ จนเสร็จ (จะมีแวะระหว่างทาง ให้ใส่ password = ให้ใส่ตัวเดียวกับข้อ (1) (การติดตั้ง user ชื่อ cyg_server) และจะมีถาม reenter = ใส่ซ้ำอีกครั้งให้เหมือนกัน) Cygwin3.0.7(14พ.ค.62)ไม่มีหยุดถาม password แล้ว
    (3)program จะมาหยุดที่คำถาม Cygwin3.0.7(14พ.ค.62)ไม่มีหยุดถามแล้ว
    Warning: Registering the Cygwin LSA authentication package requires administrator privileges! You also have to reboot the machine to activate the change.
    Are you sure you want to continue? (yes/no)
    ให้ตอบ yes
    (4)เมื่อเสร็จจะมีข้อความ cygwin-config-sshd.sh finished เมื่อเสร็จจะออกสู่ prompt

    การตรวจสอบ cygwin มี sshd พร้อมให้บริการให้ทำดังนี้
    ให้ reboot Windows หลังจากติดตั้ง cygwin เพื่อให้มีการ start service sshd ขึ้นมาก่อน
    ให้ login ด้วย user สิทธิ Administrator
    เปิด program cygwin64 terminal โดยคลิกขวาเลือก Run as Administrator
    พิมพ์คำสั่ง ssh 127.0.0.1 ผลลัพธ์จะต้องมีคำถามให้ตอบ Yes และ ถาม password

    ในกรณี cygwin มีปัญหา ให้ทำดังนี้
    ให้ login ด้วย user สิทธิ Administrator
    เปิด program cygwin64 terminal โดยคลิกขวาเลือก Run as Administrator
    รัน script cygwin-uninstall.sh ดังนี้
    bash -o igncr cygwin-uninstall.sh
    ออก (exit) จาก cygwin terminal
    แล้วเข้า Windows Explorer ลบ c:\cygwin64 ทิ้ง
    ต่อไปก็ย้อนไปทำการติดตั้ง (reinstall) cygwin ใหม่ จนเสร็จ

    References: