@gumara ชวนไปงานรับฟังความคิดเห็นหลักเกณฑ์การพิจารณาผู้เข้าร่วมโครงการซอฟต์แวร์ออนไลน์เพื่อการบริการภาครัฐ จัดโดย สำนักงานรัฐบาลอิเล็กทรอนิกส์ (องค์การมหาชน) ในงานมีการบรรยายสรุปความเป็นมาของ G Cloud และบริการยอดฮิตที่ G Cloud ให้บริการอยู่ในปัจจุบัน EGA เปิดให้บริการ Goverment Cloud สำหรับภาครัฐหรือ G Cloud มา 3 ปีแล้ว ส่วนใหญ่บริการ IaaS ตอนนี้เริ่มมีการให้บริการ SaaS กันบ้างแล้ว เช่น ระบบสารบัญอิเล็กทรอนิกส์ เป็นต้น ตอนนี้มีอยู่ 400 ระบบงาน โดยระบบยอดฮิตได้แก่

  • ระบบงานสารบัญอิเล็กทรอนิกส์
  • ระบบประชุมทางไกล (GIN Conference)
  • ระบบแจ้งเตือนผ่าน SMS

EGA ได้ทำแบบสำรวจความต้องการการใช้งาน Cloud Service ของภาครัฐ ว่าต้องการใช้ระบบอะไรในอนาคต ได้ผลตอบกลับมาดังนี้

  • E-Sarabun
  • GIN Conference
  • SMS
  • Online Office
  • Personal Storage
  • Website
  • GIN Conference (Premium)
  • SMART IVR
  • Video Streamming
  • Antivirus
  • PIM

3 ลำดับแรก ยอดฮิตอยู่แล้ว เนื่องจากการสำรวจตลาดของผู้ใช้งานภาครัฐทาง EGA เลยมีโครงการซอฟต์แวร์ออนไลน์เพื่อการบริการภาครัฐในรูปแบบร่วมโครงการ เน้นคัดเลือกผู้ประกอบการที่อยากให้บริการ SaaS กับภาครัฐ โดยไม่ต้องกังวลเรื่อง Infra, Operation, Marketting, Promotion ฯลฯ ทาง EGA จะจัดการให้ทั้งหมด โดยซอฟต์แวร์ที่ให้บริการอาจจะอยู่ในกลุ่มความต้องการข้างต้น ซึ่งไม่ได้ให้บริการเฉพาะของผู้บริการซอฟต์แวร์รายใดรายหนึ่ง แต่จะต้องผ่านตามข้อกำหนดของ G Cloud และตามความต้องการของผู้ใช้ภาครัฐ สำหรับข้อกำหนดและกฏเกณฑ์การคิดเลือกมีเอกสารกำกับอยู่ประมาณ 16 หน้า ถ้าคิดไปคิดมาก็ Win-Win ทั้ง 2 ฝ่าย ถ้าผู้ให้บริการซอฟต์แวร์รายใดสนใจถามหาเอกสารข้อกำหนดจากทาง EGA ได้ครับ

อีกโครงการนึงเปิดตัวไปเมื่อเดือนที่แล้วที่ Terminal 21 คือ Gov App Center รวบรวม Mobile App ของภาครัฐที่ให้บริการประชาชน กว่า 100 App แล้ว นอกจากนี้ยังมีการทำแบบสำรวจจากประชาชนว่าอยากได้ App แบบไหน ให้บริการประชาชน ทำให้การทำงานหรือการติดต่อกับภาครัฐดีขึ้น ทาง EGA จะรวบรวม requirement กลับไปให้กับหน่วยงานที่เกี่ยวข้องให้ทราบและดำเนินการต่อไป

เมื่อครั้งที่แล้ว blog เรื่อง Geard ไป เนื่องจากตัดสินใจว่า Geard ออกแบบมาได้ดีกว่า Docker link มาก เพราะสามารถเชื่อม container ระหว่าง Docker host ได้ในขณะที่ Docker link ทำได้แค่เชื่อม container ใน host เดียวกันได้เท่านั้น ซึ่งในการใช้งานจริงการเชื่อมโยงข้าม Docker host ดีที่สุด แต่ Geard ใช้ได้เฉพาะ RedHat, CentOS, Fedora และ Linux ที่ใช้ systemd จะได้ประโยชน์มาก คงต้องรออีกสักพักกว่า Geard จะ distribute ไปยัง Linux ค่ายอื่นๆ ยกเว้นจะใช้ kubernetes หรือ fleet แทน หากต้องการ link container จริงๆ แบบไม่ยุ่งยาก สามารถใช้ Docker link ได้

วิธีการ link container ก็ไม่ได้ยุ่งยากมากนัก เพียงแค่กำหนดชื่อให้ container และอ้างอิงการ link ของ container ให้ถูกต้องก็พอ ตัวอย่าง เช่น webapp ที่ต้องมี database เราก็จะมี 2 container คือ webapp และ database ขั้นตอนก็ง่ายๆ มีดังนี้

สั่ง start container database ก่อน

docker run -itd --name db dockerfile/mongodb

จากนั้นก็สั่ง link กับ webapp ของเรา

docker run -itd -p 80:8080 --name webapp --link db:mongodb anoochit/keychain

ข้างหลังบ้าน Docker จะสร้าง environment variable ไว้ข้างหลังบ้าน ลองทดสอบดูได้จากคำสั่ง env ดังนี้

docker run -it -p 80:8080 --name webapp --link db:mongodb anoochit/keychain env

Geard เป็นเครื่องมือสำหรับจัดการ Docker container,เชื่อม container ระหว่าง ​Docker host และช่วยให้จัดการ Container ผ่าน systemd ทำให้จัดการ container เป็นเรื่องง่ายมากขึ้น Geard ใช้ได้บน RedHat Enterprise, Centos และ Fedora มาลองเล่น Geard กัน เริ่มจากติดตั้ง Docker กันก่อน ใน Centos 7 มี package docker ใน extra repository แต่เป็นรุ่นเก่ายังไม่ใช้รุ่น 1.0 แต่ใน RPEL repository มี Docker 1.x ดังนั้นเราจะติดตั้งจาก EPEL repository กัน

yum install http://download.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm

yum install docker-io

จากนั้นสั่งให้ Docker deamon ทำงานดังนี้

systemctl start docker

สั่งให้ docker ทำงานทุกครั้งหลังจาก boot เครื่อง

systemctl enable docker

Continue reading

ใช้ MacBook Air มาจะครบ 1 ปีแล้ว ไม่เคยเขียน Blog เลยว่าผมใช้ software อะไรบ้างบน OSX และบน Ubuntu เลยมาไล่ดูว่าใช้ software อะไรบ่อยๆ บ้าง ได้ตารางดังนี้

ครั้งที่แล้วได้ใช้ aREST บน Arduino กันไปแล้ว ครั้งนี้มาลองเล่น Xively กันดูบ้าง Xively เป็นบริการ PaaS สำหรับ Internet of Things คุณสามารถเขียน/อ่านข้อมูลที่ได้จาก sensor ไปเก็บไว้ที่ Xively ได้ และข้อมูลสามารถเก็บได้หลายแบบไม่ว่าจะเป็นค่าตัวเลข, พิกัด GPS และสามารถทำ Triggers ผ่าน HTTP POST ได้ หากค่าที่อ่านได้จาก sensor ตรงกับเงื่อนไขที่คุณตั้งไว้ เช่น แดดออก อุณหภูมิมากกว่า 35 องค์ศาเซลเซียส ให้เปิด sprinkler ถ้าอุณหภูมิลดลงเหลือ 30 ให้ปิด sprinkler เป็นต้น

ไหนๆ ยกตัวอย่างเรื่องอุณหภูมิแล้ว มี sensor ที่เกี่ยวกับ อุณหภูมิอยู่หลายตัว เช่น TMP35 เป็น Temperature Sensor แบบ Analog มี 3 ขา ใช้งานง่ายๆ เอาไฟ 2.7-5.5V ต่อเข้าขา V in และอ่านค่าจาก V out แล้วเอาค่าที่ได้จาก V out มาคำนวณเพื่อหาค่า Temperature ตัวอย่างการคำนวณ ดังนี้

  • VOLT_OUT = 100*5/1024.0
  • TEMP_CEL = (VOLT_OUT-0.5)*100
  • TEMP_FAR = (TEMP_CEL * 9/5) + 32;

Continue reading

ช่วงนี้ไล่ blog ที่ยังค้างอยู่ ตั้งใจว่าจะเขียนให้ครบเพื่อกันลืม จำได้ว่าช่วงปีที่แล้วเป็นยุคเริ่มต้นของ Orchestration Tools สำหรับ Docker และอีกเรื่องนึงที่ขาดไม่ได้คือ Docker GUI ซึ่งก็มีโคงการโอเพนซอร์สหลายตัวพัฒนา Docker GUI ขึ้นมา ไม่ว่าจะเป็น Docker UI, Shipyard ฯลฯ แต่ที่ดูใช้งานง่ายและติดตั้งง่าย มีการเชื่อมต่อที่หลากหลายทั้ง Web GUI และ REST API ก็คงเป็น Shipyard และที่สำคัญ Shipyard มีบริการทุกอย่างที่ต้องการ แบ่งออกเป็น service ที่ชัดเจน และมีเอกสารที่อ่านแล้วเข้าใจรวดเร็ว มาลองเล่น Shipyard กันครับ

ใช้เครื่อง 3 เครื่องดังนี้

  • Shipyard –> 172.16.30.34
  • Docker01 –> 172.16.28.97
  • Docker02 –> 172.16.30.8

สำหรับ IP Address นี่แล้วแต่สะดวก ใช้อ้างอิงเฉยๆ ถ้ามี DNS ก็อ้างอิงจาก Domain Name จะสะดวกมากกว่า ได้เครื่องครบ 3 เครื่องแล้ว ติดตั้ง Ubuntu Server 14.04 LTS 64 bits แล้วติดตั้ง Docker ทั้ง 3 เครื่องดังนี้ Continue reading

เนื่องจากซื้อ Arduino UNO กับ Wifi Shield ของ Tony Labs เอาไว้คิดว่าน่าจะได้เอามาทำอะไรสนุกๆ แต่ทิ้งไว้นานมากจนลืม พอนึกได้ก็ลองเล่นสักหน่อย จะได้อยู่ในกระแส Internet of Things (IoTs) บ้าง ฮาร์ดแวร์ประเภท Embedded และ Linux Embedded มีอยู่หลากหลายค่าย ที่เป็นที่นิยมก็ได้แก่ Arduino, Raspberry Pi, Beagle Board เป็นต้น การประยุกต์ใช้งานสามารถทำได้หลายอย่าง ต่อเซนเซอร์เพื่อรับค่า หรือควบคุมอุปกรณ์ต่างๆ ได้ ถ้าเป็น Linux Embedded ก็สามารถติดตั้งโปรแกรมใน SD Card ได้ หรือติดตั้ง server service ต่างๆ ก็ได้ เป็นคอมพิวเตอร์ตัวเล็กๆ ให้ใช้งานได้เลย แต่ต้องมี package ใน Repository ให้ติดตั้งนะครับ Linux Embedded ส่วนใหญ่จะใช้ CPU แบบ ARM ฉะนั้นจะติดตั้งอะไรก็ดูสักนิดว่ามี package สำหรับ CPU Architecture ที่เราใช้หรือเปล่า

แต่สำหรับ Arduino UNO ต้องเขียนโปรแกรมฝังเข้าไปอย่างเดียว อย่าหวังว่าจะ apt-get install apache php mysql อะไรเข้าไปได้ ต้องเขียน service เหล่านั้นขึ้นมาเอง…น่าสงสาร แต่ Arduino เป็น Open Embedded Board ใช้แนวคิดโดยเพิ่มคุณสมบัติใหม่ผ่าน Shield จึงทำให้มีคนทำ Shield เพื่อมาต่อกับ Arduino เยอะมากขึ้น ตัวอย่าง เช่น Wifi Sheild, Ethernet Shield, Data Logger Shield, GSM Shield เป็นต้น เรียกได้ว่าอยากได้อะไรก็ซื้อ Shield มาเสียบ นอกจาก Shield แล้วก็ยังมี Module แบบปกติที่ใช้งานกันทั่วไปอีกด้วย

Continue reading

งาน Google I/O 2014 ที่ผ่านมาทาง Google เปิดโค้ดโครงการ Kubernetes ทำหน้าที่เป็น Orchestration, Health Monitoring, HA เบื้องต้นใช้กับ lmctfy ซึ่งเป็น container ของ Google เอง และ cAdvisor เป็น resources และ performance monitor ของ lmctfy เช่นกัน แต่สามารถใช้งานร่วมกับ Docker ได้ ก็ขอเอาเรื่องนี้มาเขียน Blog ไว้ก่อน ส่วน Kubernetes ค่อย Blog อีกทีครับ

cAdvisor หรือ Container Advisor ไม่ได้ทำหน้าที่ Lease Monitoring เหมือนกับ Haizea แต่ทำหน้าที่แต่ Resource / Performance Monitoring เท่านั้น สามารถบอกได้ว่า Docker ใช้ Resource ไปเท่าไร เช่น CPU, RAM, Network ฯลฯ และสามารถบอกรายละเอียดการใช้ resource ของแต่ละ Container ได้ การดูข้อมูลสามารถดูผ่านหน้าเว็บหรือใช้ REST API ดูได้ แนวทางของการใช้ cAdvisor จะเอาไปประกอบกับ Kubernetes เพื่อทำ HA ให้กับ Container ได้ หรือเอาไปทำ Performance Monitor ดูกราฟแบบ real time ได้ หรืออาจจะเอาไปประยุกต์ใช้ทำ Charge back ได้อีกด้วย เพราะสถิติการใช้ Resource เก็บไว้เป็นรายวินาทีทีเดียว
Continue reading

เนื่องจากมีหลายท่านสงสัยว่าอยากจะเรียนเขียนโปรแกรมต้องไปเรียนที่ไหน ซื้อหนังสือเล่มไหนดี ดูวิดีโอที่ไหนดี ทำไมมีแต่เรียนที่กรุงเทพ ต่างจังหวัดเดินทางไม่สะดวกจะเรียนยังไง ดูเหมือนมีปัญหาเยอะแยะ และผมก็ชอบบอกว่าให้ไปอ่าน ให้ไปดู เสียเป็นส่วนใหญ่ เห็นหลายท่านถามมากันเยอะก็เลยถือโอกาสรวบรวมลิงค์วิดีโอ คิดว่าเป็นประโยชน์สำหรับผู้เริ่มต้นและสำหรับท่านที่สนใจเรียนด้วยตนเองที่บ้าน วิดีโอที่รวบรวมมาให้ มีหลายคอร์ส เช่น การเขียนโปรแกรมภาษาต่างๆ, การใช้ Cloud Computing, Bootstrap 3, HTML5, CSS3, Mobile Application Development, Web Application Development เป็นต้น สำหรับผู้ที่สนใจ ก็อย่ารอช้าเข้าไปที่ http://thaiopensource.org/video ได้เลยครับ

หลังจากย้ายเว็บ ThaiOpenSource จาก Drupal มาเป็น WordPress นอกจากจะมีปัญหาเรื่องการย้ายข้อมูลจากเว็บเดิมเพราะไฟล์ import/export มี schema ไม่เหมือนกัน เรื่องที่น่าปวดหัวที่สุดคือเรื่อง URL เพราะ URL ของแต่ละหน้าเปลี่ยนไปทำให้การอ้างอิงหน้าเว็บเก่ามีปัญหา แต่ WordPress ก็ช่วยได้ระดับนึงเท่านั้น ไม่ได้ช่วยได้ 100% การกำหนด Redirect URL ใน htaccess ช่วยได้บ้าง หลังจากอัพเดทเว็บใหม่ทำให้ URL ที่เป็น Referer เกือบ 80% วิ่งไปที่หน้า 404 Not Found แต่ก็ใช้วิธีการให้ข้อมูลเพิ่มเติมในหน้า 404 นี้แทน กรณีที่ไม่รู้ว่าจะ Redirect ไปที่ไหนจริงๆ ซึ่งส่วนใหญ่คนที่เข้าเว็บมาจะเข้ามาดาวน์โหลดไฟล์หนังสือ Blender, GIMP ฟอนต์ไทย เป็นต้น

หลายท่านอาจะสงสัยว่าทำไมถึงทราบว่าคนเข้ามาดูเว็บมีกิจกรรมอะไรกับเว็บเราบ้าง เข้าหน้าผิดไปบ้างไหม เราจะรับมืออย่างไร เครื่องมือง่ายๆ ในการดูกิจกรรมเหล่านี้แบบ Real Time และแบบย้อยหลังได้ คือ Google Analytics ถ้าท่านเป็นคนทำเว็บก็ควรจะหัดใช้ไว้สักหน่อย

เรื่องถัดมาคงเป็นเรื่อง Theme และ Plugin เว็บ ThaiOpenSource เปลี่ยนแปลงตามกาลเวลา ตามสถานการณ์การเมืองและสถานการณ์การเงิน เนื้อหาที่ดูทันสมัยอาจจะไม่ค่อยมีแต่จะเป็นเรื่อง Blog และ How-To เป็นหลักซึ่งก็ได้ แรงบันดาลใจจากคำถามต่างๆ ที่อยู่ใน ask.thaiopensource.org นั่นเอง ในเรื่อง Theme ก็ยังคงอิง Bootstrap เช่นเคย เหมือนกับที่ใช้ใน Drupal ดังนั้นหน้าตาจะคล้ายๆ เว็บเดิม ส่วนที่เพิ่มลูกเล่นเข้ามาก็คงเป็น font face เพื่อให้ดูมีความแตกต่างเรื่องรูปแบบตัวอักษรบ้าง และเขียน Sub Theme เพิ่มขึ้นมาอีกนิดหน่อย

สำหรับเรื่อง Plugin ใน WordPress ใช้น้อยกว่าที่ใช้ใน Drupal มากๆ เพราะเว็บไม่มีอะไรมี Blog อย่างเดียว ตอนนี้ใช้ Akismet, Google Analytics Dashboard, Google XML Sitemaps, Related Posts via Taxonomies, Shareaholic, WP Super Cache, Youtube Channel Gallery มีเท่านี้ครับ