มาเล่น Raspberry Pi กัน

ผมซื้อ Raspberry Pi B+ ไว้เนื่องจากอาจจะได้มีโอกาสเล่นบ้าง แต่ก็ลืมไปว่า Raspberry Pi เป็นคอมพิวเตอร์จิ๋ว ต้องใช้ระบบปฏิบัติการ, จอ และ คีย์บอร์ด กว่าจะได้เล่นก็ใช้เวลาพอสมควร เพราะต้องทำ SD Card สำหรับบูตระบบปฏิบัติการและหาคีย์บอร์ดมาต่อใช้งาน เอาเป็นว่าได้เล่นละ ก็เลยมา blog สักหน่อยว่าเจออะไรบ้าง มาดูของที่ผมซื้อมาก่อนครับว่ามีอะไรบ้าง

  • Raspberry Pi B+
  • Crystal Clear Case
  • USB Wi


ก่อนจะเล่น Raspberry Pi ได้ต้องหา SD Card กันก่อน ใช้ SD Card ขนาด 4-8GB ขนาดใหญ่กว่านั้นไม่แนะนำครับ ดาวน์โหลด OS  ผมแนะนำ Raspbian หรือใครจะใช้ตัวอื่นก็ได้ครับ อาจจะอยากลองหลายตัว

จากนั้นใช้เครื่องมือสำหรับแตก image ลงใน SD Card อันนี้ขึ้นอยู่กับระบบปฏิบัติการที่คุณใช้แล้วครับ ถ้าเป็น Linux ก็ง่ายหน่อยใช้ dd ปกติ ถ้าใช้ Windows ก็ใช้ Win32DiskImager สำหรับ OSX ใน Mavericks ใช้ dd แบบปกติอาจงงกับการเรียกชื่อ device ผมแนะนำให้ใช้ Raspberry PI SD Installer OS X ผมใช้ OS X อยู่ก็จำเป็นต้องใช้เจ้าตัวนี้ครับ

หลังจากได้ SD Card สำหรับบูตกันแล้วก็จัดการเสียบเข้ากับ Raspberry Pi ต่อจอ ต่อ keyboard เสียบ usb adaptor เล่นได้เลย 🙂 เกือบลืมไป username / password สำหรับ login คือ pi / raspberry สำหรับท่านที่ใช้ USB Wifi ก็อย่าลืมไป config interface ด้วยดังนี้
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-ssid "WIFI-SSID"
wpa-psk "PASSWORD"
หลังจาก config แล้วก็สั่ง restart network กันได้เลย
/etc/init.d/networking restart
สิ่งที่ต้องทำถัดมาคือการ enable openssh service เพราะ Raspbian ไม่ได้ enable มาให้ วิธีการเปิด service ssh ของ Raspbian ก็ง่ายมากจะใช้คำสั่ง
sudo raspi-config
จะมี menu สำหรับ config ได้หลายอย่างเลย เข้าไปที่ Advanced Options แล้วเลือก SSH เท่านี้ก็ใช้ได้แล้ว


จากนี้ไปเราก็สามารถ ssh เข้าไปที่ Raspberry Pi ของเราได้ แบบไม่ต้องใช้จอและคีย์บอร์ด 🙂

ทำ USB Boot ติดตั้ง OSX Mavericks

ปกติไม่ได้ blog เกี่ยวกับ OSX ที่ใช้อยู่เลย เพราะไม่ค่อยมีปัญหาจุกจิกกวนใจ ระยะหลังเริ่มวิตกว่าถ้าเกิดผมซนมากกว่านี้อาจจะทำ OSX พังได้ ก็เลยหาวิธี backup อยู่หลายอย่าง ใช้ Time Machine สำรองข้อมูลไปไว้ใน External Storage บ้าง แต่ System Image ของ OSX ไม่มี และถ้าเกิดพังขึ้นมา ก็ไม่รู้จะทำยังไง T_T ก็เลยไปลองศึกษาจากคู่มือที่วางขายตามท้องตลาดพบว่า สมัยก่อนมี OSX USB Thumbdrive แถมมากับเครื่องด้วย แต่ในระยะหลังไม่มีแถมแล้วก็เลยสงสัยว่าจะทำยังไง พอไปถาม iStudio เขาก็บอกแค่ว่าต้องติดตั้งผ่าน Internet เอาซึ่งก็คือ Net Install นั่นเอง แต่ OSX ทั้งตัวก็ประมาณ 5G ได้ จะเอา net เร็วๆ มาจากไหนกัน สุดท้ายก็ต้องมาพึ่ง Knowledge Base ของ Apple ลองค้นดู พบว่ามีวิธีทำ USB Boot จากตัวติดตั้ง ของ Mavericks ได้ เย้… ปัญหาคือจะเอาตัวติดตั้ง Mavericks มาจากไหน เพราะ OSX สั่งอัพเดทจาก AppStore คำตอบก็คือ ดาวน์โหลดจากหน้า AppStore นั่นแหละครับ
จากนั้นเราจะได้ OSX Installer ในหน้า Dashboard ดังนี้


ในตัว OSX Installer จะมีเครื่องมือชื่อ createinstallmedia สามาถสั่งสร้าง USB Boot ได้เลย ดังนี้
sudo /Applications/Install\ OS\ X\ Mavericks.app/Contents/Resources/createinstallmedia \
--volume /Volumes/MyVolume --applicationpath /Applications/Install\ OS\ X\ Mavericks.app

จากนั้น createinstallmedia ก็จะทะยอยคัดลอกไฟล์ disk image และตัวติดตั้งลงไปใน USB Thumbdrive ของเรา สำหรับวิธีการใช้งาน ก็เพียงแค่กดปุ่ม Option (Alt) ตอนเริ่มเปิดเครื่อง แล้วเลือก Boot จาก USB Drive เท่านี้เอง 🙂

มาเล่น CoreOS กัน

มีหลายท่านถามถึง CoreOS ผมก็เข้าใจว่าเคย blog เรื่องนี้ไปแล้ว พอไปค้นดูอีกทีก็พบว่าไม่ได้ blog เรื่อง CoreOS ไว้เลย T_T ถือโอกาส CoreOS ออกรุ่น stable แล้วก็มาลองเล่นกัน CoreOS พัฒนาขึ้นมาโดยใช้แนวคิด ระบบปฏิบัติการขนาดเล็ก สามารถอัพเดทแบบ distributed update เหมือนกับ ChromeOS ใช้ systemd เป็นหลัก และยังมีเครื่องมือที่น่าสนใจอีกหลายอย่างเช่น fleet และ etcd เป็นต้น อ้อเกือบลืม CoreOS มี Docker ติดมาให้ด้วย คุณสามารถย้าย container จากเครื่องอื่นๆ มาทำงานบน CoreOS ได้เลย
CoreOS ได้ชื่อว่าเป็นระบบปฏิบัติการสำหรับ Cloud เลยก็ว่าได้ เพราะมีขนาดเล็ก บูตเร็ว จัดการง่ายใช้ systemd, fleet, kubernetes, cloud-config และรองรับ Docker อีกด้วย สำหรับท่านที่ต้องการใช้งาน CoreOS สามารถใช้งานได้บน
Cloud Provider

Continue reading มาเล่น CoreOS กัน

เก็บตกงานรับฟังความคิดเห็นหลักเกณฑ์การพิจารณาผู้เข้าร่วมโครงการซอฟต์แวร์ออนไลน์เพื่อการบริการภาครัฐ

@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 กลับไปให้กับหน่วยงานที่เกี่ยวข้องให้ทราบและดำเนินการต่อไป

มาเชื่อม Docker container กัน

เมื่อครั้งที่แล้ว 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 กัน

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 มาเล่น Geard กัน

มาใช้ Xively บริการ PaaS สุดเจ๋ง สำหรับ IoTs กัน

ครั้งที่แล้วได้ใช้ 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 มาใช้ Xively บริการ PaaS สุดเจ๋ง สำหรับ IoTs กัน