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

MEAN.IO เป็น Full Stack Javascript Framework รวมเอาเครื่องมือในการพัฒนา Web Application ยุคใหม่เข้าไว้ด้วยกัน MEAN ประกอบไปด้วย MongoDB, Express, Angular JS และ Node.JS MEAN.IO จะช่วยในคุณเริ่มสร้าง Web Application ได้เร็วมากขึ้น ก่อนจะใช้เครื่องมือของ MEAN.IO เราต้องติดตั้งเครื่องมือที่จำเป็นก่อนดังนี้

ติดตั้ง MongoDB

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/10gen.list
sudo apt-get update
sudo apt-get install mongodb-10gen


Continue reading

​จากรายงานการสำรวจการใช้ซอฟต์แวร์ละเมิดลิขสิทธิ์ใน 110 ประเทศทั่วโลก ในปี 2013 ของ BSA ซึ่งจัดทำร่วมกับ IDC ประกาศเมื่อเดือนมิถุนายน 2014 ที่ผ่านมา ประเทศไทยถูกจัดอยู่ในอันดับที่ 17 ของโลก มีอัตราการละเมิดอยู่ที่ 71% มูลค่าการละเมิดลิขสิทธิ์ $M 869 อัตราการละเมิดลิขสิทธิ์ลดลง 1% จากการละเมิดลิขสิทธิ์ในปี 2011 (ปี 2012 BSA/IDC ไม่มีการสำรวจ) เฉลี่ยลดลง 0.5% ต่อปี

สาเหตุประการเดียวที่อัตราการละเมิดลิขสิทธิ์ซอฟต์แวร์ในประเทศไทยลดลงในอัตราที่น้อยมาก เนื่องจากหน่วยงานภาครัฐส่วนใหญ่ ยังคงทำการเผยแพร่ข้อมูลข่าวสารด้วยไฟล์ข้อมูลที่ไม่เป็นมาตรฐานเปิด ทำให้ประชาชนและหน่วยงานภาคเอกชน ต้องจัดหาซอฟต์แวร์เฉพาะซึ่งมีราคาแพงมาเปิดเอกสารดังกล่าว ซึ่งมากกว่า 70 % ได้มาด้วยวิธีการที่ไม่ถูกต้อง ดังนั้นเพื่อเป็นการแก้ไขปัญหาดังกล่าวข้างต้น หน่วยงานภาครัฐจะต้องเผยแพร่ข้อมูลข่าวสารในรูปแบบของไฟล์ตามมาตรฐานเปิดเท่านั้น
Continue reading

ครั้งที่แล้วได้ใช้ 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 ได้เลยครับ

เผอิญมีปัญหาเกี่ยวกับเครื่อง Mac Book Air เกี่ยวกับ HDD ไม่พอใช้และใกล้จะเต็มแล้ว ก็เลยพยายามหาวิธีแก้ไขว่าจะทำยังไงดี ตอนแรกพยายามหา Mini Disk มาเสียบแต่ก็ได้แค่ 64GB เพราะ Mini SD Card มีขนาดความจุเท่านี้ และขนาด 128GB ยังไม่มีขายในราคาถูก ทางเลือกมีอยู่ไม่กี่ทางคือใช้ Time Capsule, NAS, External HDD ซึ่งก็ยังสงสัยในเรื่อง Time Capsule อยู่ว่าจะเล่นยังไง จะไปขอลองเล่นที่ iStudio เดี๋ยวจะโดนดุเอา ก็เลยหาวิธีลองทำ Time Capsule เล่นเอง หลักๆ ของ Time Capsule ไม่มีอะไรมาก แค่ใช้ afpd ผ่าน Nettatalk โดยทฤษฎี ถ้าเรามีเครื่องคอมพิวเตอร์ขนาดเล็กที่เสียบสาย LAN หรือต่อ Wireless ได้ เราก็น่าจะใช้ Time Machine สำรองข้อมูลและใช้เป็น File Server ได้ มาลองกันดีกว่า

ขั้นแรกติดตั้ง netatalk กันก่อน

sudo apt-get install netatalk

แก้ไข /etc/netatalk/afpd.conf ลบ comment บรรทัดสุดท้ายออกตรง

- -tcp -noddp -uamlist uams_dhx.so,uams_dhx2_passwd.so -nosavepassword

สร้าง backup ไดเรคทอรีที่เราต้องการ

sudo mkdir /backup/tm_backup


Continue reading

หลังจากย้ายเว็บ 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 มีเท่านี้ครับ