Android Studio มีคุณสมบัติที่ได้รับมาจาก IntelliJ หลายอย่างและสิ่งที่พ่วงมาด้วยที่นักพัฒนาขาดไม่ได้คือการเชื่อมต่อกับ Version Control System อย่าง Git, GitHub, Mercurial และ Subversion ทำให้คุณสามารถ Share Project ไปยัง Source Code Respitory ที่คุณใช้งานได้ อีกทั้งยังสามารถจัดการ Code จากการ Checkout, Commit, Push ได้ในตัวโดยไม่ต้องติดตั้ง VCS Client เพิ่มเติมแต่อย่างใด

มาลองทดสอบกับ GitHub ให้สร้าง Project ขึ้นมาแล้วลองสั่ง Share Project ไปยัง GitHub โดยคลิกไปที่เมนู VCS > Import into Version Control > Share Project on GitHub โปรแกรมจะให้เราตั้งค่าการเชื่อมต่อกับ GitHub


Continue reading

DigitalOcean เป็นบริการ Cloud Hosting ที่ได้รับความนิยมรายหนึ่ง นอกจากเรื่องราคาถูกแค่ $5 ต่อเดือนแล้ว DigitalOcean ยังมีความน่าสนใจอื่นๆ อีกอย่างเช่น Service Catalog ที่มีชุด Application พร้อมให้ใช้งาน เพียงแค่เลือกและสั่งสร้าง Droplet เท่านั้น ก็ได้ใช้งานกันแล้ว

มาลองใช้งาน Docker Application บน DigitalOcean กัน เริ่มจากสร้าง Droplet กันก่อน


Continue reading

ปัญหาเรื่องการย้าย Application ข้าม Cloud Provider เป็นปัญหาปกติที่ต้องหาทางแก้ไข ซึ่งแต่ละ Cloud Provider มีช่องทางในการบริการที่ต่างกัน เทคโนโลยีต่างกัน เครื่องมือที่ใช้งานก็ต่างกัน เรียกได้ว่าถ้าจะย้าย instance จะทำได้ยากมาก ครั้งนี้จะให้แนวคิดเรื่องการย้าย Container จาก Cloud Provider ค่ายหนึ่งไปยังอีกค่ายหนึ่งหรือจาก Local ไปยัง Cloud Provider ก็ได้ ซึ่งทำได้หลายวิธี

จากภาพแนะนำการย้ายแบบง่ายๆ ผ่าน Docker อย่างเดียวไม่ได้ใช้เครื่องมือใดๆ เพิ่มเติม ถ้าจะให้สะดวกควรมี Orchestration Service อยู่ในแต่ละ Cloud Provider ด้วย ในเบื้องต้นทำความเข้าใจแบบง่ายๆ กันก่อน การทำ Migration ทำได้ 2 แบบ คือ

  1. Import / Export ไฟล์ Container ทั้งก้อนจาก Local ไปยัง Cloud วิธีนี้จะให้ความสะดวกมากกว่าแต่การสำรองข้อมูลและการย้ายไฟล์ Export จะช้าขึ้นอยู่กับความเร็วของเน็คเวิร์ก
  2. Push / Pull ให้ Commit Container State ปัจจุบันแล้ว push ขึ้น Docker Registry อาจจะเป็น Docker Hub (Private) หรือ Private Registry ที่ตั้งขึ้นเองก็ได้ จากนั้นค่อยสั่ง pull ไปยัง Cloud Provider ปลายทาง

สำหรับข้อมูลใน hipache ก็ต้องเปลี่ยนตาม เช่น จากเดิมอยู่ใน Local พอย้าย Container เสร็จจะต้องเปลี่ยน record ใน redis ชี้ไปที่ Container ที่อยู่บน Cloud จึงจะ route traffic ไปได้ถูกต้อง หากทำด้วยมือจะช้า ถ้าใช้ Orchestration Service จะเร็วและสะดวกกว่ามาก
Continue reading

การใช้งาน Container สามารถประยุกต์เข้ากับการพัฒนาร่วมกับ CI/CD ได้ โดยใช้เครื่องมือเพิ่มเพียงเพิ่มความสามารถในการเชื่อมต่อกับ Docker เพื่อสั่ง Deploy Container ไปยังเครื่องปลายทาง หรือ Build Dockerfile แล้ว push image ไปยัง Docker Registry ภายใน แล้วแต่ความต้องการใช้งาน ยกตัวอย่างการใช้งาน Gitlab CI หากท่านใดใช้ CI ตัวอื่นๆ ก็เอาไปประยุกต์ใช้กันได้

ตัวอย่างจากภาพ

  • นักพัฒนา commit code เข้าไปที่ git repository
  • build script ใน ci runner จะทำหน้าที่ build docker image แล้ว push image ไปยัง local registry
  • deploy docker image จาก local registry ไปยังเครื่อง development หรือเครื่อง production


Continue reading

GitHub เป็นบริการ git repository เราสามารถสร้างและใช้งาน git repository ได้ผ่านบริการของ GitHub ได้ง่ายๆ ซึ่งมีรายละเอียดค่าใช้งานทั้งแบบไม่มีค่าใช้จ่ายเลย (โครงการโอเพนซอร์ส) และแบบมีค่าใช้จ่ายสำหรับ Private Repository นอกจากนี้ GitHub ยังให้บริการแบบ Organization ด้วย คุณสามารถสร้าง repository ภายใต้โครงการ นักพัฒนาใช้วิธีการเดิมในการจัดการ release ขึ้นอยู่กับ workflow ที่ใช้ การสร้าง GitHub Organization ก็ง่ายมากๆ คลิกสร้างได้จากเมนูข้างบน ดังนี้


Continue reading

การเชื่อมต่อกับ Swift ทำได้หลายวิธีตั้งแต่ใช้งาน client ผ่าน python-swift ใช้งานผ่าน SDK ของภาษาต่างๆ แต่วิธีที่ง่ายสะดวกในการใช้งานคงเป็น cURL ธรรมดาๆ ที่เราใช้กัน เนื่องจาก Swift เป็น object storage การสื่อสารผ่าน REST API เป็นช่องทางหลักสำหรับการทำงานกับ storage ประเภทนี้อยู่แล้ว ดังนั้นใช้ cURL สั่งงานผ่าน HTTP Request ก็ใช้งาน Swift ได้เช่นกัน มาลองดูคำสั่ง cURL กันก่อน

cURL เป็นคำสั่งที่ใช้งานกับ HTTP เป็นหลัก ถ้าท่านที่ใช้ OSX จะคุ้นเคยกับคำสั่งนี้ดีเพราะไม่มี wget ต้องใช้ cURL สำหรับดาวน์โหลดไฟล์ นั่นก็คือใช้ GET Method แล้วเรียกผ่าน URL นั่นเอง ครั้งนี้ก็จะใช้งานคล้ายๆ กัน แต่จะต้องสั่ง HTTP Request หลายแบบเพื่อสั่งงาน Swift รูปแบบของ Option ที่เราต้องใช้เพิ่มมีดังนี้

  • -X METHOD ระบุว่าจะใช้ HTTP request method อะไร เช่น HEAD, GET, PUT, DELET เป็นต้น
  • -i แสดง HTTP response header
  • -H HEADER ระบุ HTTP Header ที่ใช้ใน request


Continue reading

PIM Module (Personnel Information System Module)
เป็นส่วนของการจัดการฐานข้อมูลของพนักงานในองค์กร ซึ่งผู้ดูแลระบบหรือ Admin สามารถทำการสร้างพนักงานที่มีอยู่ภายในองค์กรได้ และเมื่อสร้างแล้ว เราสามารถเข้าไปเพิ่ม ลบ แก้ไข รายละเอียดส่วนตัวของพนักงานได้ ภายใน PIM Module นี้ จะสามารถทำงานได้ท 3 Tab ดังต่อไปนี้
1. Configure ทำการกำหนดค่าว่าต้องการจะให้แสดงข้อมูลบางอย่างหรือไม่ เช่น ชื่อเล่น, สูบบุหรี่หรือไม่ เป็นต้น หากต้องการให้แสดงข้อมูลดังกล่าวให้คลิกเครื่องหมายถูก และทำการ save
2
Continue reading

Admin Module
เป็น Module ที่ใช้งานได้เฉพาะ Admin และมีความสำคัญในระบบของ OrangeHRM เนื่องจากมีหน้าที่กำหนดสิทธิ์ในการใช้งานต่างๆ สำหรับ User และใช้ในการกำหนดข้อมูลต่างๆ ที่จำเป็นต้องใช้งานภายใน Module อื่นๆ โดย Module Admin จะมี tab ให้เลือกใช้งานทั้งหมด 11 tab ซึ่งในบทความนี้ ขอแนะนำจำนวน 6 Tab ด้วยกัน ได้แก่
1. Nationality & Race เป็นการกำหนดข้อมูลเกี่ยวกับสัญชาติและเชื้อชาติของบุคลากรที่มีอยู่ภายในองค์กร โดยมีข้อมูลให้กรอกทั้งหมด 2 tab คือ
– Nationality เป็นการกำหนดข้อมูลของสัญชาติต่างๆ ของพนักงานภายในองค์กร สามารถกด add เพื่อเพิ่ม หรือ delete เพื่อลบข้อมูลที่ต้องการได้
27
Continue reading

Admin Module
เป็น Module ที่ใช้งานได้เฉพาะ Admin และ มีความสำคัญในระบบของ OrangeHRM เนื่องจากมีหน้าที่กำหนดสิทธิ์ในการใช้งานต่างๆ สำหรับ User และใช้ในการกำหนดข้อมูลที่จำเป็นต้องใช้งาน ภายใน Module อื่นๆ โดย Module Admin จะมี tab ให้เลือกใช้งานทั้งหมด 11 tab ซึ่งในบทความนี้ ขอแนะนำจำนวน 5 Tab ด้วยกัน ได้แก่
1. Company Info โดยในส่วนนี้จะเป็นการใส่รายละเอียดข้อมูลต่างๆ เกี่ยวกับองค์กรของเรา โดยจะมีให้กรอกข้อมูลทั้งหมด 4 tab ด้วยกัน
– General เป็นการใส่รายละเอียดต่างๆ เกี่ยวกับองค์กรของเรา โดยเราจำเป็นต้องใส่ชื่อขององค์กรในช่องที่เป็นดอกจันสีแดง ในส่วนอื่นๆ สามารถเว้นไว้เพื่อเพิ่มเติมในภายหลังได้ หากต้องการล้างข้อมูลให้คลิกที่ปุ่ม Reset หรือต้องการกลับมาแก้ไขภายหลังให้คลิกที่ปุ่ม Edit
2
– Location เป็นการใส่รายละเอียดเกี่ยวกับที่ตั้งขององค์กร หากว่าองค์กรของเรามีที่ตั้งขององค์กรอยู่หลายๆ สาขา โดยการคลิกที่ Add เพื่อเพิ่มสาขาและคลิก Delete หากต้องการลบข้อมูลของสาขาที่เราต้องการ


Continue reading

สำหรับบางองค์กรอาจมีนโยบายให้ทุกคนที่ใช้อีเมลองค์กรมีลายเซ็นต์เหมือนกัน อาจจะเป็นลายเซ็นต์องค์กร หรือคำลงท้ายอะไรก็ตาม เราสามารถสร้าง Signatures สำหรับทุกคนภายใต้โดเมนเดียวกันได้โดย
เข้าระบบด้วย Zimbra user โดย
su - zimbra
สำหรับค่าที่เกี่ยวข้องมีดังนี้

  • zimbraDomainMandatoryMailSignatureEnabled (TRUE/FALSE) ถ้าต้องการเปิดฟีเจอร์นี้ก็ตั้งเป็น TRUE
  • zimbraDomainMandatoryMailSignatureText สำหรับการสร้างลายเซ็นแบบข้อความ (Text)
  • zimbraDomainMandatoryMailSignatureHTML สำหรับการสร้างลายเซ็นแบบ HTML


Continue reading