VDO conference for http://dlfp.in.th
เว็บไซท์ http://www.dlfp.in.th ซึ่งเป็นเว็บสำหรับการศึกษาทางไกล จะต้องมีงานลักษณะคล้ายกับ Video conference แต่ต้องใช้งานง่าย ไม่ซับซ้อน มีเครื่องมือที่พอช่วยได้คือ
เปรียบเทียบคุณสมบัติมือถือแอนดรอยด์
กำลังคิดอยู่ว่าจะหารายละเอียดมือถือที่เป็นแอนดรอยด์หลาย ๆ รุ่น นำมาเปรียบเทียบกัน เพื่อเป็นข้อมูลประกอบการตัดสินใจว่าจะซื้อดีหรือไม่ หรือจะซื้อรุ่นไหนดี
ก็พบว่ามีคนทำไว้ให้แล้ว ไม่ต้องเหนื่อยเอง ดูได้จาก Android Battle: CLIQ edition ได้เลย หรือที่ ประชัน 6 มือถือแอนดรอยด์ในรอบ 11 เดือน ก็ได้
ราคาคงลดลงเรื่อย ๆ แต่ยังไม่เห็นมีขายที่ร้านในหาดใหญ่เลย
รุ่นที่น่าสนใจก็เป็นรุ่นใหม่ ๆ เช่น CLIQ , Galaxy , Tattoo
เมื่อไหร่ของจีนจะออกมาบ้างนะ ราคาจะได้ถูก ๆ หน่อย
Hello Twetter from SoftGanz
ได้ PHP Script ในการส่ง Twitter เลยเอามาลองใส่เพิ่มใน CMS ที่ผมเขียนใช้เอง
อันสืบเนื่องมาจากผมเขียน CMS ขึ้นมาใช้เอง และได้เห็น CMS ดัง ๆ หลายตัวสามารถส่งข้อความ Twit ได้ อยากได้บ้าง แต่เพิ่งได้มาจากเว็บ Scriptdd.com เลยเอามาดัดแปลงใช้กับ CMS ของตนเองให้สามารถส่งหัวข้อที่สร้างใหม่ไปไว้ใน Twitter
Twitter ของผมคือ @softganz ครับ
ผมสร้างไว้เป็น class api เขียนด้วย PHP ตามตัวอย่าง
เที่ยวสวนสัตว์
ไปเที่ยวสวนสัตว์กันในวันเที่ยวของครอบครัวเมื่อเดือน มิ.ย. 52 เด็ก ๆ ให้อาหารนกกระจอกเทศกัน
Advanced Bash-Scripting Guide
อาจจะต้องเขียน bash scripting มากขึ้น หลังจากต้องดูแล server เอง เลยขอเก็บคู่มือ - reference ของการเขียน bash scripting มาเก็บไว้เพื่อศึกษาในภายหลัง
อยู่ที่ Advanced Bash-Scripting Guide - An in-depth exploration of the art of shell scripting
Mimo 710-S - Mobile Slider จอสำหรับพกพาไปนอกบ้าน
เก็บ log httpd ของ DirectAdmin Control Panel ให้เก็บได้ 90 วัน
พรบ.คอมพิวเตอร์บังคับให้เก็บ log ไว้อย่างน้อย 90 วัน
ขอเก็บรายละเอียดการทำไว้ก่อน ได้มาจาก แนะนำเก็บ log httpd ของ DirectAdmin Control Panel ให้เก็บได้ 90 วัน แบบง่าย ๆ
Shoutcast radio status
ปัญหาเกิดมาจาก script สำหรับตรวจสอบสถานะและแสดงชื่อเพลงที่กำลังเปิดอยู่นั้นกิน CPU time เยอะมาก และ script นั้นยังถูกกำหนดให้ refresh ทุก 30 วินาที เมื่อมีคนเปิดฟังวิทยุพร้อมกับดูสถานะเป็นจำนวนมาก จะทำให้เกิดปัญหากับ CPU load
เลยศึกษา script นั้นดูและเปลี่ยนวิธีการเพื่อไม่ให้เกิด CPU load
แนวทางการทำงานของ script เดิมที่เป็นอยู่
- จะดึงข้อมูลของ Shoutcast จาก host ด้วย fsocket method GET จำนวน 2 ครั้ง คือ ชื่อเพลง กับจำนวนคนฟัง โดยกำหนด timeout ไว้ที่ 6 วินาที
- ตัดข้อความที่ไม่ต้องการออกและแยกแยะเอาข้อความที่ต้องการออกมา
- แสดงผลในหน้าเว็บโดยให้ refresh ทุก ๆ 30 วินาที
ปัญหาที่เกิดขึ้นคือ
- การดึงข้อมูลผ่าน fsocket แต่ละครั้งใช้เวลาพอสมควรเนื่องจาก script อยู่คนละที่กับ Shoutcast server
- เกิด CPU load ในกระบวนการไหนไม่แน่ใจ
- จำนวน request ที่เยอะมากเกิดจาก จำนวนคนฟังหรือหน้าเว็บที่เปิดดูสถานะ x 2 คร้ง/นาที เช่น 150x2=300 ครั้ง/นาที = 5 ครั้ง/วินาที ทำ script ทำงานไม่ทัน
แนวทางใหม่ที่คิดคือ
แทนที่จะให้ทุกคน request แล้วต้องอ่านข้อมูลทุกครั้ง ก็ให้ script ทำงานอัตโนมัติทุก ๆ 30 วินาที ไปดึงข้อมูลจาก Shoutcast แล้วบันทึกเก็บไว้ในไฟล์ แล้วให้ทุกคนอ่านจากไฟล์นี้แทน
ดูตัวอย่าง script ได้จากด้านในนะครับ
Owner ของไฟล์ที่ upload ด้วย script เป็นของ Apache
หาวิธีแก้ปัญหาเรื่อง owner/group ของไฟล์ที่ upload ด้วย php script ให้เป็นของ ftp user ยังไม่ได้ จากที่ค้นหาดูเจอว่าจะต้องเปลี่ยนไปใช้ php-cgi ซึ่งทำแล้วซับซ้อนพอสมควร และอาจจะมีผลกระทบบางอย่างได้ เลยยังไม่กล้าทำ
วิธีแก้ปัญหาอีกวิธีคือ ให้กำหนดค่า safemode ของ php ให้เป็น off ซึ่งผลกระทบคือทำให้สามารถ include ไฟล์ที่มาจากการ uplaod ได้ ทำให้ความปลอดภัยลดลง แต่ว่าใน PHP6 นั้นจะทำการยกเลิก safemode ซึ่งหมายความว่าอย่างไร มันยังคงปลอดภัยอยู่เหมือนเดิมใช่ไหม? และเท่าที่ดูจากหลาย ๆ host เขาก็กำหนด safemode=off ทำให้ไม่ค่อยมั่นใจว่าควรกำหนดค่า safemode เป็น on หรือ off ถึงจะดี...
ตอนนี้เลยแก้ไขเฉพาะหน้าไปก่อนด้วยการเปลี่ยน owner/group ด้วยคำสัง
#cd /home/(user)/domains
#find . -user apache -exec chown (user) {} \;
#find . -group apache -exec chgrp (user) {} \;
ซึ่งเมื่อมีปัญหา ก็ต้อง ssh เข้าไป run script ไม่สะดวกเลย
จนกว่าจะหาทางแก้ไขที่ถาวรได้
dir ที่สามารถ upload file ได้ให้ทำการป้องกันไม่ให้ php perl ทำงานได้
dir ที่สามารถ upload file ได้ให้ทำการป้องกันไม่ให้ php perl ทำงานได้ เพราะว่าถ้าเกิดหลุดขึ้นมา จะอันตรายมาก ๆ วิธีการป้องกันก็คือ ไปกำหนดเพิ่ม ใน httpd.conf ดังต่อไปนี้ สมมติว่า /home/webmaster/public_html/webboard/file เป็นส่วนที่ใช้เก็บรูปของบอร์ดเวลา post ขึ้นไป ผมก็จะกำหนดเพิ่มดังนี้
< Directory "/home/webmaster/public_html/webboard/file"> Options Indexes MultiViews -ExecCGI AllowOverride None Order allow,deny Allow from all php_flag engine off < /Directory>
เท่านี้ก็ปลอดภัยอีกระดับนึงครับ ถ้าเกิด script เราหลุด hacker สามารถ upload file ขึ้นไปได้ แต่เค้าก็จะไม่สามารถสั่งให้ทำงานได้ครับ ..
