Phonegap เพิ่งเปิดตัวโครงการ Phonegap Developer App ช่วยให้นักพัฒนาได้ทดสอบ Application ได้บน Mobile และ Tablet ได้โดยตรง โดยไม่ต้อง Build และติดตั้ง App ที่กำลังพัฒนาอยู่แต่อย่างใด เพียงแค่ติดตั้ง Phonegap Developer App แล้ว browse ไปที่ App ของคุณเท่านั้น :) วิธีการใช้งานก็ง่ายๆ

ติดตั้ง Phonegap Developer App ลงใน Mobile, Tablet ให้เรียบร้อยก่อน

หากยังไม่ได้ติดตั้ง Phonegap ก็ติดตั้งผ่าน npm ได้

sudo npm install -g phonegap

สร้างโปรเจคที่ต้องการ testapp

phonegap create testapp

เปลี่ยน dir

cd testapp

จากนั้นก็สังให้ Phonegap ทำงานเป็น web server

phonegap serve


Continue reading

Thai Open Source เปิดบริการสอบถามปัญหาการใช้งานซอฟต์แวร์โอเพนซอร์สผ่านบริการใหม่ Ask! TOSS มีคำถามและคำตอบเกี่ยวกับการใช้งานซอฟต์แวร์โอเพนซอร์ส สามารถสอบถามปัญหาหรือค้นหาคำตอบของคำถามที่คุณสนใจได้ หากคุณคุณใช้ซอฟต์แว์โอเพนซอร์สแล้วติดปัญหาไม่รู้จะถามใคร ใช้บริการ Ask! TOSS ได้

ครั้งที่แล้วนำเสนอเรื่อง GitLab ไปมีพาดพิงเรื่อง CI (Continuous Integration) ไปนิดหน่อย ซึ่ง GitLab เองก็มีโครงการ GitLab CI เช่นกัน พูดถึง CI หลายท่านที่ใช้เครื่องมือแบบนี้อยู่แล้วก็คงต้องบอกว่า Jenkins เจ๋งสุด! แหมใช้ GitLab แล้วจะไปทำ CI ใน Jenkins ก็จะดูแปลกๆ มาใช้ GitLab CI กันดีกว่า :) GitLab CI แบ่งโครงการออกเป็น 2 ส่วน คือ

  • GitLab CI หน้าเว็บหลักของ GitLab CI
  • GitLab CI Runner เป็นส่วน Builder สามารถแยกหรืออยู่ร่วมกับ GitLab CI ได้

ครั้งนี้เราจะมาติดตั้ง GitLab + GitLab CI กัน โดยใช้วิธีที่ง่ายมากมากมาก โดยใช้ตัวติดตั้งของ Bitnami สำหรับวิธีปกติดูได้ที่เว็บโครงการ GitLab CI ครับ

ขั้นแรกดาวน์โหลด GitLab มาก่อน

wget http://downloads.bitnami.com/files/stacks/gitlab/6.9.2-1/bitnami-gitlab-6.9.2-1-linux-x64-installer.run

จากนั้น chmod ให้ execute ได้

chmod +x bitnami-gitlab-6.9.2-1-linux-x64-installer.run

ติดตั้งด้วยคำสั่ง

./bitnami-gitlab-6.9.2-1-linux-x64-installer.run


Continue reading

มีคำถามกลับมาเกี่ยวกับ Git อีกเรื่องคือจะหาเรียน Git ได้ที่ไหน จะทำงานกับ Git ได้ยังไง ทำงานแบบ Collaboration ได้อย่างไร ใช้ Workflow แบบไหนดี หากคุณมีคำถามเหล่านี้ แนะนำให้ไปเรียนเลยครับ น่าเสียดายที่หลายสถาบันการศึกษาไม่ได้สอน Git แต่ใช่ว่าจะไม่มีแหล่งเรียน Git นะครับ แหล่งเรียน Git ที่ผมแนะนำมีดังนี้

ได้แหล่งเรียนเยอะเลย อย่ารอช้าลองเข้าไปศึกษาดูนะครับ

แนะนำ GitLab ไปเมื่อครั้งที่แล้ว ก็มีคำถามกลับมาเกี่ยวกับ Git หลายคำถามเลย ก็เลยขอทะยอยตอบผ่าน Blog ละกันครับ เรื่องแรกที่มักจะถามเข้ามากันบ่อยมากคือ ใช้ Git Command ไม่คล่อง มีโปรแกรมคลิ๊กง่ายๆ มั๊ย เอ่อ… ปกติผมก็ใช้ Git Command นะครับ ไม่เคยใช้ GUI สักที ในเว็บ Git SCM ในหน้าดาวน์โหลดแนะนำ Git GUI อยู่หลายตัว ลองเข้าเลือกดูได้ครับ สำหรับผมแนะนำ 2 ตัวนี้ครับ

  • GitHub GUI มีเวอร์ชั่นบน Windows, Mac
  • SourceTree มีเวอร์ชั่นบน Windows, Mac เช่นกัน

เครื่องมือ 2 ตัวนี้ฟรีครับ ยกเว้น SourceTree จะมีให้ลงทะเบียนนิดหน่อย แต่ไม่ยุ่งยาก ข้อดีของการใช้ GUI คงเป็นในเรื่องของการจัดการไฟล์ การ merge ไฟล์ และดู branch ครับ ถ้าชอบใช้ GUI ก็ลองติดตั้งใช้กันดูได้ :)
Continue reading

ผมมักโดนถามคำถามเกี่ยวกับเครื่องมือที่ผมใช้งานอยู่บ่อยครั้ง ผมมักก็ตอบว่า Git, GitHub และตามด้วยประโยคที่ว่า “Private Project ต้องเสียเงิน ถ้าเป็น OpenSource Project ใช้ฟรี” ก็เลยมีหลายท่านถามว่า ​”เอาแบบ Private Project ไม่ต้องเสียเงินได้ไหม” งั้นแนะนำให้ใช้ GitLab เลยครับ เจ้า GitLab เหมาะสำหรับคนที่ใช้ GitHub มาก เพราะการใช้งานบนเว็บเหมือนกัน ไม่นับบน command line นะครับ :P นอกจากจะติดตั้งในหน่วยงานได้แล้วยังสามารถสร้าง Private Project ได้แบบไม่ต้องเสียเงินด้วย ตอบโจทย์เลยใช่มั๊ยครับ GitLab มีด้วยกัน 2 รุ่น คือ

  • GitLab Comminuty
  • GitLab Enterprise

ดูความแตกต่างของแต่ละรุ่นได้ที่หน้าเว็บ GitLab กันได้ นอกจากนี้ยังมี Jitlab CI ด้วย ซึ่งเราสามารถผูก GitLab กับ GitLab CI ได้ด้วย เอาไว้วันหลังจากมาเล่าให้ฟังว่าเล่นยังไง สำหรับวิธีการติดตั้ง GitLab นั้นมีหลายวิธี แต่ผมขอเลือกวิธีง่ายระดับมาก โดยใช้ GitLab Omnibus (มีวิธีแบบง่ายมากๆ อยู่ขอไม่กล่าวถึงละกันนะครับ) ลองมาติดตั้ง GitLab Community เล่นกันครับ


Continue reading

edX เป็นคอร์สเรียนออนไลน์จากมหาวิทยาลัยชั้นนำต่างๆ ที่เปิดโอกาสให้ผู้เรียนนอกจากคอร์สปกติได้มีโอกาสเรียนผ่านระบบอินเตอร์เน็ต ซึ่งปัจจุบันมีมหาวิทยาลัยชั้นนำอย่าง MIT, Stanford, Harvard หรือแม้กระทั่ง Linux Foundation ก็เปิดหลักสูตร Intro to Linux บน edX เช่นกัน นอกจากการให้บริการคอร์สเรียนออนไลน์แล้ว edX ยังเปิดโค้ดของระบบหลังบ้านทั้งหมดเป็นโอเพนซอร์สโดยใช้สัญญาอนุญาติแบบ AGPL ภายใต้โครงการ OPEN edX โครงการนี้มีมหาวิทยาลัยหลายแห่งร่วมกันพัฒนานา เช่น Stanford University, MIT, The University of Queensland, Tsinghua University, UC Berkeley Harvard University และ Google ทำให้โครงการ OPEN edX มีการพัฒนาอย่างต่อเนื่อง

สำหรับผู้ที่สนใจ OPEN edX สามารถทดลองใช้งานกันได้ผ่าน

หรือติดตั้งแบบ

อันนี้แล้วแต่เลือกครับ ใครมี AWS ก็ใช้ Cloud Formation Template ช่วยได้ แต่คนที่ไม่ทีแล้วอยากติดตั้งเล่นเอง ไม่อยากเล่นผ่าน vagrant ก็สามารถติดตั้งเองได้ครับ


Continue reading

ในบรรดาปัญหาต่างๆ สำหรับ Drupal ที่ผู้ดูแลเว็บไซต์ต้องเจอ ปัญหาอันดับต้นๆ ที่ทุกคนต้องปวดหัวคงหนีไม่พ้นเรื่องของการจัดการสแปม วันนี้ก็เลยจะมาแนะนำเครื่องมือที่น่าจะเอามาลองพิจารณาดูครับ

  1. Policy ครับ นโยบาย อันนี้ไม่มีเป็นโมดูลครับ ต้องจัดการเอง เริ่มจากกำหนดให้ดีว่าใครจะสามารถใส่เนื้อหาลงในเว็บได้บ้าง (ทุกคน หรือเฉพาะสมาชิก) ถ้าเปิดให้สมาชิกโพสได้ แล้วใครสมัครสมาชิกได้บ้าง การอนุมัติการเป็นสมาชิกจะทำด้วยวิธีไหน อันนี้สำคัญมาก
  2. reCAPTCHA เป็นตัวช่วยในการชืนยันความเป็นมุษย์ของผู้เข้าใช้งานเว็บ โดยจะแสดงข้อความยึกยือขึ้นมาให้เราพิมพ์ตาม ว่าเราอ่านรู้เรื่องหรือไม่
  3. http::BL HTTP Black List ตัวนี้จะคอย Block IP ของสแปมเมอร์ให้ครับ เป็นตัวที่ควรมีไว้
  4. Bad Behavior จะคอยตรวจสอบพฤติกรรมการเข้าใช้งานเว็ย ว่าเป็นคนหรือเป็นหุ่นโดยการวิเคราะห์จาก HTTP
  5. Mollom เป็นตัวที่หลายคนแนะนำ แต่หลังๆ ทำงานไม่ค่อยดี ผมเลยถอดไปแล้ว (ไม่แน่ใจว่าถ้าใช้แบบเสียเงินจะดีไหม) ตัวโปรแกรมจะมีบริการสำหรับวิเคราห์สแปม แล้วก็สั่งบล๊อกให้อัตโนมัติครับ

ส่วนตัวก็ยังไม่เจอโซลูชั่นที่สมบูรณ์แบบครับ เพราะสแปมเมอร์ก็ฉลาดมาก ยังต้องคอยไล่ลบด้วยมือเป็นระยะๆ ยังไงแล้วถ้าได้เทคนิควิธีการที่ดีกว่านี้จะนำมาฝากครับ

ผมเองเป็นคนที่ใช้ Chrome browser มาหลายปีมาก จนล่าสุดหลังจากขยับมาใช้ Ubuntu 14.04 ก็เลยพยายามจะลองใช้ Firefox ดู เพราะชอบเครื่องมือ Webdeveloper ของ Firefox มากกว่า แต่ใช้ได้ไม่กี่วันก็ต้องกลับมาตายรังที่ Chrome อีกอยู่ดี แล้วปล่อยให้มันสูบพลังของ CPU ต่อไป

เหตุที่ใช้ Firefox ไม่รอดเพราะติดที่ความสามารถบางอย่างของ Firefox นั้นไม่ตอบสนองต่อความต้องการครับ วันนี้ก็เลยจะมาแนะนำความสามารถอย่างหนึ่งของ Chrome กัน คือ การจัดการตัวเสริช

โดยปกติเวลาเราจะเสริชอะไรใน Browser เราก็จะพิมพ์คำค้นลงไปใน Address bar เลย แล้ว Browser จะโดดเข้าไปที่หน้า Google search ให้เอง แต่นั่นยังไม่เป็นที่พอใจครับ มันช้าไป เลยต้องมาปรับแต่งหน่อย

สิ่งที่จะทำคือ ตั้งค่าให้เวลาที่เราพิมพ์คำค้นแล้วกด Enter ตัวโปรแกรมจะดึงผลลัพธ์ขึ้นมาให้เลย โดยอาศัยตัวเสริชของ Google ที่ชื่อว่า I’m feeling lucky

วิธีตั้งค่า ไปที่หน้าตั้งค่าของ Chrome ที่ส่วนของ “เครื่องมือค้นหา” ให้คลิกที่ “จัดการเครื่องมือค้นหา”

Imgur

เราจะพบส่วนจัดการเครื่องมือค้นหา

Imgur

เพิ่มค่าของ I’m feeing lucky ลงไป แล้วใส่ค่าตามบรรทัดข้างล่างลงในช่องดังภาพ

http://www.google.com/search?hl=en&q=%s&btnI=I%27m+Feeling+Lucky&aq=f&oq=

เพียงเท่านี้ในครั้งต่อไปที่เสริชก็จะได้ผลการค้นหาในทันทีแล้ว ไม่ต้องเข้าไปหน้า Google อีกต่อไป

นอกจากนี้เรายังสามารถเพิ่มตัวค้นหาอื่นๆ ได้อีกด้วย โดยกำหนดคีย์เวิร์ดลงไป แล้วก็ใส่ค่าลงไปตามนี้

  • google translate: http://translate.google.com/?source=osdd#auto|auto|%s
  • youtube: http://www.youtube.com/results?search_query=%s&page={startPage?}&utm_source=opensearch
  • facebook: http://www.facebook.com/search/?src=os&q=%s

วิธีใช้งานเราก็พิมพ์คำหลักลงไปก่อน ตามด้วยสเปซบาร์ และคีย์เวิร์ดที่ต้องการ

เนื่องจากมีผู้รู้แนะนำให้ลองเล่น Logstash. ElasticSearch และ Kibana เมื่อช่วงปลายปี 2013 มาวันนี้เพิ่งจะได้มาล่องเล่นดู เรื่องการจัดการ log ไฟล์ หลายคนอาจเคยได้ยิน syslog-ng หรืออะไรนองนั้น ซึ่งการเก็บ log ส่วนใหญ่เก็บลงไฟล์ เก็บไว้อย่างนั้นไม่ได้เอามาใช้ประโยชน์อะไร มันก็น่าเสียดาย เพราะ log เหล่านี้สามารถนำมาวิเคราะห์แบบ real time ได้ หากพบปัญหาที่ตรวจพบได้จาก log ก็สามารถแก้ไขได้ทันท่วงที Logstash และ ElasticSearh ต้องใช้ Java ดังนั้นติดตั้ง Java กันก่อน

apt-get install openjdk-7-jdk

จากนั้นดาวน์โหลด logstash และติดตั้งลงในเครื่อง

curl -O https://download.elasticsearch.org/logstash/logstash/logstash-1.4.1.tar.gz

tar zxvf logstash-1.4.1.tar.gz

cd logstash-1.4.1

ทดสอบการทำงานดูสักหน่อย

bin/logstash -e 'input { stdin { } } output { stdout {} }'

คุณจะพบว่า logstash ให้คุณพิมพ์อะไรลงไปก็ได้ จากนั้นก็จะ return log ออกมาดังภาพ

ติดตั้ง elasticsearch เราจะเอา log ที่ได้ไปเก็บไว้ในนี้

curl -O https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.1.1.tar.gz

tar zxvf elasticsearch-1.1.1.tar.gz

cd elasticsearch-1.1.1

./bin/elasticsearch

ทดสอบการทำงานดูสักหน่อย

bin/logstash -e 'input { stdin { } } output { elasticsearch { host => localhost } }'

logstash จะให้คุณพิมพ์อะไรสักอย่างลงไป จากนั้นให้คุณใช้ curl ลองดูใน ES ว่าเก็บข้อมูลจาก logstash จริงหรือไม่

curl 'http://localhost:9200/_search?pretty'

จะได้ผลลัพท์ดังนี้

ทีนี้มาลอง ส่ง log ของ Apache ไปเก็บไว้ใน ES กันบ้าง ให้เขียน config ไฟล์ ดังนี้

input {

file {

path => "/var/log/apache2/access.log"

start_position => beginning

}

}

filter {

if [path] =~ "access" {

mutate { replace => { "type" => "apache_access" } }

grok {

match => { "message" => "%{COMBINEDAPACHELOG}" }

}

}

date {

match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]

}

}

output {

elasticsearch {

host => localhost

}

stdout { codec => rubydebug }

}

จากนั้นใช้คำสั่ง

bin/logstash -f logstash-apache.conf

รอสักครู่ logstash จะอ่านไฟล์ log แล้วส่งข้อมูลไปยัง ES ให้เรื่อยๆ ครับ ข้อมูลที่เก็บใน ES จะเป็นข้อมูลแบบ json ถ้าต้องการ Query ก็สามารถ Query ผ่าน ES ได้ แต่เราจะมาใช้ เครื่องมืออีกตัวหนึ่งเพื่อให้ชีวิตง่ายขึ้น คือ Kibana

curl -O https://download.elasticsearch.org/kibana/kibana/kibana-3.1.0.tar.gz

tar zxvf kibana-3.1.0.tar.gz

cd kibana-3.1.0/

แก้ไขไฟล์ config.js กำหนด ES Server ให้ถูกต้อง จากนั้นคัดลอกไฟล์ไปยัง Document Root ของ Web Server ที่เราใช้งานอยู่ จากนั้นเปิดเบราเซอร์ขึ้นมา เราจะได้หน้าจอดังนี้

ถ้ายังคิดอะไรไม่ออก คลิกไปที่ Link ที่เขียนว่า Logstash Dashboard คุณจะได้หน้าจอ Dashboard สำเร็จรูปมา 1 หน้าจอ

จากนี้คุณก็สามารถปรับแต่ง Dashboard ตามใจคุณได้แล้ว