เลือกหน้าเว็บง่ายขึ้นด้วย Firetab

เผอิญได้ติดตั้ง FireFox Extension เพิ่มเติม จากเดิมที่ชอบใช้ชุดมาตรฐาน ตอนนี้คงต้องหัดใช้ Extension ใหม่ๆ กันบ้างแล้ว เรื่องก็มีอยู่ว่า tab บนหน้าจอผมมักจะเยอะและเวลาหาหน้าเว็บที่เปิดก็ต้องอาศัยการคลิกซ้ายคลิกขวา เพื่อหาหน้าเว็บที่เปิดอยู่ เรียกได้ว่างงกันพอสมควรเลยได้หา Extension ที่จะมาแก้ปัญหานี้ ค้นไปเจอ Firetab ซึ่งดูแล้วมีคุณสมบัติเหมาะสมแถมดูดีมีฐานะ เอ้าดูดียังไงดูจาก screenshot ข้างล่างครับ

ใช้ tab ธรรมดาๆ ก็งงๆ อย่างนี้ครับ Continue reading เลือกหน้าเว็บง่ายขึ้นด้วย Firetab

Rewrite URL ด้วย Apache mod_rewrite

คุณ Zee ส่งอีเมล์มาจากระบบติดต่อของ gotoknow.org มาถามเรื่อง DNS Wildcard จำได้ว่าเคยเขียนเรื่องนี้ใน ThaiOpenSource.Org มาแล้วแต่พอเข้าไปดู how-to ที่เคยเขียนเป็นกรณีที่เราสามารถแก้ไข DNS Record เองได้ในกรณีของคุณ Zee เช่าบริการโฮสติ้งแต่ทางผู้ให้บริการให้เพิ่ม subdomain ได้เพียง 1 ชื่อเท่านั้นดังนั้นการทำ DNS Wildcard จึงทำไม่ได้ คุณ Zee เลยเขียนจดหมายมาถามในทางกลับกันคือ ไม่ใช้ subdomain แต่อยากให้แบ่งคล้ายๆ กับ DNS Wildcard ได้มั๊ย
ผมมาพิจารณาดูจากกรณีของคุณ Zee เข้าใจว่าพยายามทำ Pritty URL ของเว็บไซต์ หรือ SEO ง่ายๆ จาก URL โดยคุณ Zee จะให้ชื่อ URL เป็น http://domain.com/yourname บอเบราส์ไปแล้วก็ไปเปิดหน้าของ yourname ซึ่งไม่มีไดเรคทอรี yourname อยู่จริงๆ ในเซิร์ฟเวอร์ เอ้าเอาเป็นว่าน่าจะพอเข้าใจปัญหาคร่าวๆ กันแล้ว หาใครเคยทำ Pritty URL หรือคุ้ยเคยกับ SEO มาบ้างก็จะบอกว่า Rewrite URL ใช่มั๊ยครับ
How-To วันนี้ก็จะเป็นเรื่อง Rewrite URL ให้สนับสนุนกับโค้ดของโปรแกรมที่พัฒนาครับ โดยปกติการเขียนโค้ดของโปรแกรมในแบบ dynamic เรามักเห็นตัวแปรยุบยับผ่านทาง URL เช่น http://domain.com/index.php?name=yourname เป็นต้น เรามาทำให้มันสวยอย่างนี้ http://domain.com/yourname ได้ ด้วยการ Rewrite URL ครับ แล้วจะทำอย่างไร? วิธีการง่ายๆ เราสามารถเขียนกฏการแปลง URL ผ่านทาง htaccess ได้ครับ เขียนอย่างนี้ครับ

# Don't show directory listings for URLs which map to a directory.
Options -Indexes
# Follow symbolic links in this directory.
Options +FollowSymLinks
# Customized error messages.
ErrorDocument 404 /index.php
# Set the default handler.
DirectoryIndex index.php
RewriteEngine on
#RewriteBase /mydir
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?name=$1 [L,QSA]

หลัง จากนั้นให้เขียน index.php ขึ้นมาไฟล์นึงแล้วตรวจสอบ ค่า $_GET[‘name’] ว่าเป็นค่าอะไร เช่น สมมุติ http://domain.com/anoochit ค่า $_GET[‘name’] ที่ได้คือ anoochit ใน Request URI จะเป็น index.php?name=/anoochit ให้อัตโนมัติ ง่ายๆ แค่นี้เองครับ

ทำไมนักศึกษาควรพัฒนาซอฟต์แวร์โอเพนซอร์ส

เรื่องของเรื่องไม่ได้ตั้งใจอยากเขียนเรื่องนี้ อีกอย่างหัวข้ออาจออกแนวสมัครงานแต่บทความที่จะเขียนต่อไปนี้น่าจะมี ประโยชน์กับนักเรียนนักศึกษาที่กำลังจะจบการศึกษาหรือศึกษาอยู่ได้เป็นอย่าง ดี บทความนี้มีแรงบันคาลใจหลายอย่างที่ปัญหาที่พบในอุตสาหกรรมซอฟต์แวร์ ทั้งที่เป็นโอเพนซอร์สและไม่เป็นโอเพนซอร์ส เดี๋ยวคงได้แจงรายละเอียดให้ได้ทราบกันอีกที หากพูดถึงซอฟต์แวร์โอเพนซอร์สหลายคนก็มักจะคิดถึงเรื่องไม่มีค่าใช้จ่าย ฟรี พัฒนาต่อได้ ฯลฯ ซึ่งเป็นประโยชน์ในแง่ผู้ใช้ ในแง่นักพัฒนาซอฟต์แวร์ แต่หากมองให้ลึกกว่านั้น นักเรียน หรือนักศึกษาที่พัฒนาซอฟต์แวร์แบบโอเพนซอร์สจะได้อะไรบ้าง มีประโยชน์ในการหางาน หรือโอกาสที่จะได้รับการจ้างงานมีมากน้อยเพียงไร ในแง่มุมนี้ยังไม่มีใครกล่าวถึงกันมากนัก บทความนี้จึงขออธิบายและสรุปจากประสบการณ์ของนักพัฒนาในชุมชนโอเพนซอร์สและ รวมถึงผู้เขียนเอง
หากมาพิจารณาว่าผู้ว่าจ้างหรือบริษัทมองเห็น ประโยชน์จากประสบการณ์ที่ได้จากโอเพนซอร์สหรือเปล่า? คำตอบคงขึ้นอยู่กับผู้ว่าจ้างหรือบริษัทนั้นๆ แต่หากคุณเคยทำงานร่วมกับโครงการโอเพนซอร์สมาบ้าง โอกาสที่จะได้รับการจ้างงานก็มีสูงมากขึ้น ทำไมถึงเป็นเช่นนั้น มาลองดูเหตุผลลึกๆ และประโยชน์ที่จะได้จากการร่วมพัฒนาซอฟต์แวร์โอเพนซอร์ส Continue reading ทำไมนักศึกษาควรพัฒนาซอฟต์แวร์โอเพนซอร์ส

Feedback ของ Chantra 4 หลังจาก 9 วันที่แล้ว

หลังจากออก Chantra 4 มาได้ 9 วัน ผมได้รับ feedback มากมายจากกลุ่ม community ในประเทศ และต่างประเทศซึ่งเป็น feedback ที่มีคุณค่ามากในแง่การพัฒนาในเวอร์ชั่นถัดไปและการสนับสนุน บางท่านติงว่ามีบางโปรแกรมที่เป็นที่ชื่นชอบของเด็กๆ อย่าง stellarium ไม่ได้อยู่ในแผ่น Chantra 4 แล้วซึ่งก็น่าเสียดาย หลายท่านก็บอกว่าน่าจะมีวิธีการกระจายแผ่นให้ถึงมือผู้รับได้ทั่วถึง เอาเป็นว่าคงต้องมาดูกันว่าเราจะช่วยเหลือได้อย่างไร
สำหรับโปรแกรม บางโปรแกรมที่ไม่ได้อยู่ในแผ่น Chantra 4 น้องนิว นักศึกษาฝึกงานช่วยพัฒนา “โปรแกรมสร้างแผ่น Chantra” เอาไว้ที่เว็บไซต์โครงการบน GoogleCode ซึ่งตอนนี้ทำงานได้ระดับหนึ่งสามารถสร้างโครงสร้างแผ่นได้แต่ขาดส่วนการ ดาวน์โหลดโปรแกรมที่อัพเดทใหม่ๆ เท่านั้น คงต้องหาคนช่วยพัฒนากันต่อไปครับ (ตอนนี้น้องนิวหมดชั่วโมงฝึกงานไปแล้ว)
สำหรับการจัดส่งทางไปรษณีย์ คงต้องมาพิจารณากันครับ เนื่องจากในเวอร์ชั่นแรกๆ มีการจัดส่งแผ่น Chantra ผ่านทางไปรษณีย์เพราะมี “ผู้รับจ้าง” จัดส่งให้ ซึ่งในเวอร์ชั่นนี้ไม่มี ทำให้ผู้ที่ต้องการแผ่นต้องมารับด้วยตนเองที่สำนักงานใหญ่ หรือติดต่อที่สำนักงานสาขาทั้ง 3 สาขาตามภาคต่างๆ ได้ครับ
การพัฒนา Chantra 4 ในเวอร์ชั่นนี้มีความหมายหลายๆ ด้าน ด้านการแสดงให้เห็นว่ากว่าจะมาเป็น Chantra 4 ด้ารการทำงานของทีมงานพัฒนา ทีมงานพัฒนาทำอะไรกันบ้าง? มีใครบ้างที่ร่วมพัฒนา แผนงานการพัฒนา ซึ่งคุณสามารถดูจาก change log บน GoogleCode ได้โดยตรง ซึ่งในเวอร์ชั่นก่อนๆ คุณจะไม่ทราบเลยว่านักพัฒนาทำอะไรกันบ้าง การเปลี่ยนแปลงรูปแบบการพัฒนาและการเปลี่ยนรูปแบบการบริหารจัดการโดยใช้ บริการเปิดอย่าง GoogleCode เป็นจุดเริ่มให้นักพัฒนาภายในของเราเองรวมทั้งนักศึกษาฝึกงาน “รู้จัก” การทำงานเป็นทีม การทำงานร่วมกันโดยใช้ Source Code Management System อย่าง SVN การติดตามโครงการผ่านทาง change log ฯลฯ ถึงแม้ว่าการทำแบบนี้จะไม่ได้ช่วยให้ทุกอย่างที่ตั้งใจไว้ได้ผลครบร้อยเบอร์ เซนต์แต่ก็หวังว่าจะสร้างประสบการณ์ และ “ตัวอย่างเล็กๆ” ในการพัฒนาซอฟต์แวร์แบบโอเพนซอร์สได้สักตัวอย่างหนึ่ง
สำหรับในเวอร์ชั่นถัดไปเราคงใช้รูปแบบการพัฒนาแบบเดิมแต่เปลี่ยนเป็นการใช้ ChantraHelper ของน้องนิว (นักศึกษาฝึกงาน) และอาจมี Chantra DVD ออกมาก็เป็นได้ ทั้งนี้ทั้งนั้นคงต้องดูเวลาและโอกาสกันต่อไปครับ และที่ได้เขียนไว้ข้างต้นว่า Chantra เป็นโครงการโอเพนซอร์ส ท่านที่มี Google Account สามารถช่วยเราในการพัฒนาได้ ไม่ว่าจะเป็นงานด้านกราฟิก ออกแบบปก/แผ่น หรือแม้กระทั่งการออกแบบหน้าจอการเลือกติดตั้งโปรแกรม รวมไปถึงการสร้างชุดติดตั้งของโปรแกรมโอเพนซอร์สตัวใหม่ๆ สร้าง add-on ช่วยคัดเลือกโปรแกรมใน Chantra รุ่นต่อไป หรือแจ้งข่าวการอัพเดทโปรแกรมใน issue ซึ่งเราเปิดไว้ให้บริการเรียบร้อยแล้ว หากท่านเข้าไปยังหน้าโครงการของ Chantra ท่านจะพบว่าทีมงานได้รวบรวมข้อมูลในการ distribute แผ่น Chantra ในรูปแบบ iso image กราฟิกปก/แผ่น ไว้ให้ท่านเรียบร้อยแล้ว ท่านสามารถดาวน์โหลดไฟล์ เขียนแผ่น พิมพ์แผ่นและพิมพ์ปก แจกเพื่อนๆ ได้เลย

Wikibook, Free Knowledge ที่แท้จริง

เห็น SIPA จะออกหนังสือ 3 เล่มใหม่ซึ่งออกเป็นหนังสือเล่มๆ และออกเป็น wikibook ซึ่งในกรณีหลังน่าสนใจมากครับ wikibook เป็น on line Free Knowlegde อย่างแท้จริง ซึ่งหนังสือบางเล่มน่าสนใจมาก (ของต่างประเทศนะครับ) wikibook เป็นแหล่งค้นหาความรู้อีกแหล่งหนึ่งที่น่าสนใจ นอกจากจะมีหนังสือที่ชุมชนช่วยกันเขียนยังมีหนังสือที่ไม่ได้การตีพิมพ์แต่ ตั้งใจสื่อสารออกมาในรูปแบบ wiki การอ่านหนังสือใน wikibook คงเทียบไม่ได้กับการอ่านบน scribd หรือ issu เนื่องจากการนำเสนอข้อมูลคนละแบบสีสรรค์คงได้ไม่เท่ากับสื่อมัลติมีเดียแบบ นั้น แต่การอ่านและการเขียนร่วมกันสามารถสร้างสรรค์องค์ความรู้ได้มากมายกว่า อย่างแน่นอน สำหรับหนังสือทั้ง 3 เล่มของ SIPA คงจะมาอยู่ใน wikibook นี้หละครับ สำหรับท่านที่ชอบหนังสือเป็นเล่มๆ พกพาได้สะดวกก็คงต้องอดใจรอที่แผงหนังสือครับ สำหรับวันเวลาการวางแผงนี่ยังไม่มีข่าวออกมาครับ
ไหนๆ ก็เขียนเรื่อง wikibook มาแล้วมาดูสถานะของ wikibook ภาษาไทยกันดีกว่าครับ ผมสังเกตมา 2 วันว่า wikibook ภาษาไทยไม่ค่อยได้รับความสนใจจากกลุ่มผู้ท่องเว็บคนไทยสักเท่าไร สังเกตจากจำนวนหนังสือ 750 เรื่องแต่ส่วนใหญ่มีการเขียนเพียง 25% ของเนื้อหาของผู้เขียนแต่ละท่านตั้งใจไว้ สรุปแล้วไม่ค่อยมีความก้าวหน้าด้านเนื้อหา และผู้เข้าชมสักเท่าไรครับ 2 วันมานี้ผมอ่านและเขียน wikipedia และเขียนหัวข้อสำหรับ wikibook ไว้สัก 2 เล่ม คิดว่าจะได้เขียนเร็วๆ นี้ครับ หากไม่มีงานอื่นมาแย่งเวลาผมไปนะครับ (ตอนนี้ผมค้างงาน thaiopensource.org กับ bloodmoon ไว้ยังไม่ได้ทำอะไรต่อ)
ข้อ ดีของการเขียนสไตล์ wiki คือใครๆ ก็เขียนได้ ใครๆ ก็แก้ไขได้ แต่เท่าที่ผมดูใน wikibook กลายเป็นว่าใครๆ ก็วางโครงเรื่องได้ ส่วนเนื้อหาก็ค่อยมาว่ากันอีกที กลายเป็นว่าพากันมาวางหัวเรื่องแล้วรอคนเขียนซะงั้น ก็แปลกดีครับ เอาเป็นว่าอยากให้ท่องคำว่า “อยากได้อะไรก็ต้องทำเอง” ของ mk เข้าไว้ ซึ่ง “โดน” มาก จะรอคนอื่นมาเขียน มาทำให้ คงเป็นไปไม่ได้ครับ หากไม่มีคนเริ่มเดินก่อนเป็นตัวอย่าง ก็คงไม่มีคนเดินตามต่อไปเรื่อยๆ ล่ะครับ ผมติดตามเรื่อง Free Knowledge มาสักระยะหนึ่งซึ่งคิดว่าแนวคิดแบบนี้ทำให้เราพัฒนาไปได้ไกลมากขึ้น ใครมีความรู้ความสามารถเอามาถ่านทอดให้คนที่สนใจได้อ่าน ได้ศึกษา สิ่งเหล่านี้เป็นสิ่งที่ดีครับ การจะไล่อ่านตามกระทู้ หรืออ่านตาม blog ของเหล่า bloger ก็คงเป็นอีกทางเลือกหนึ่ง สำหรับการเขียนและการสร้างสรรค์ความรู้ร่วมกัน wikibook เป็นจุดเริ่มต้นที่ดีครับ
วิกิตำรา – http://th.wikibooks.org

มาทำ extension template สำหรับ OpenOffice.org กัน

ผมกำลังทำ extension เทมเพลตเอกสารภาษาไทยของ OpenOffice.Org ซึ่งมีที่มาที่ไปคือผมรอผู้ประกอบการที่ทำธุรกิจที่เกี่ยวข้องกับ OpenOffice.Org ไม่ไหวรอมานานและไม่ได้เทมเพลตสักที ตั้งใจมานานแล้วก็รอมานานแล้วยังไม่ได้เทมเพลตสักตัว เอาเป็นว่าทำเองดีกว่า อยากได้ต้องทำเองใช่มั๊ย ผมนั่งค้นหาข้อมูลจากการทำ template แป๊บเดียว ก็ง่ายๆ เปิดไฟล์เอกสารพิมพ์ข้อความ แล้วก็บันทึกเป็น template ง่ายมากๆ แต่ว่าการทำแบบนี้ไม่เหมาะสมเวลาเอาไปใช้งาน อ่ะต้องมาเลือกๆ คลิกๆ แก้ไข ฯลฯ และอีกอย่างหากผมทำแจกเวลามีเทมเพลตรูปแบบใหม่ หรือแก้ไขแบบฟอร์มใหม่ คนที่ใช้เทมเพลตเวอร์ชั่นเดิมอยู่จะไม่ทราบเลยว่ามีของใหม่ออกแล้ว ทำให้ใช้ของเก่าอยู่ extension manager ของ OpenOffice.Org ออกแบบมาเพื่อแก้ปัญหาเวลามี “ของใหม่” ตัว extension manager จะทำหน้าที่อัพเดทเทมเพลตชุดใหม่ให้ ดังนั้นการเลือกทำเทมเพลตให้อยู่ในรูปแบบของ extension จะดีกว่ามากครับ 😉 อ้อองค์กรหรือสำนักงานที่ชอบเปลี่ยนแปลงรูปแบบเอกสารบ่อยๆ ควรใช้วิธีนี้ครับ 🙂
สำหรับวิธีการคงไม่อ้างอิงมากมายนักนะครับ แต่จะขออธิบายแบบสั้นๆ กระชับๆ จะได้ไม่งง ก่อนจะเริ่มขั้นตอนการทำ เราต้องเริ่มจากการทำความรู้จัก OpenOffice.Org extension กันก่อน ใน OpenOffice.Org เริ่มมีการใช้งาน extension ใช้นามสกุลของไฟล์ว่า .oxt หากเจอไฟล์ .oxt ก็เดาได้เลยว่าเป็น OpenOffice.Org extension ง่ายมั๊ย เจ้าไฟล์ .oxt นี่เป็นไฟล์แบบ archive หรือไฟล์บีบอัดนั่นแหละครับ สามารถใช้ WinZip, 7zip และโปรแกรมบีบอัดคลี่ไฟล์ออกมาได้ ในไฟล์ก็จะมีโครงสร้างง่ายๆ ดังนี้
1. ไฟล์อธิบายรายละเอียดของ extension
2. ไฟล์ icon สวยๆ เอาไว้แสดงผลในหน้าจอ extension manager
3. ไฟล์เทมเพลตของเรา 🙂
นึกไม่ออกดูตัวอย่าง Extension Description ที่ http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Extensions/Example 🙂 เพื่อความรวดเร็วเราจะใช้โครงที่ผมวางไว้เรียบร้อยแล้วที่ GoogleCode เริ่มต้นจากการ check out ไฟล์จาก trunk กันก่อน ใช้ SVN ครับ ใครไม่มี SVN ก็หาได้จากแผ่น Chantra 3.2 หรือหากใช้ Linux อยู่แล้วก็ติดตั้งผ่าน Package Manager ของ Linux Distro ที่คุณใช้อยู่ URL ที่ใช้ในการ check out คือ http://ooo-thai-document-template.googlecode.com/svn/trunk/ เอาล่ะเมื่อ check out มาได้ ก็จะได้หน้าตาไดเรคทอรีดังนี้

เอาล่ะมาอธิบายกันก่อน ผมแบ่งโครงสร้างไดเรคทอรีย่อยๆ เอาไว้ดังนี้ description, licenses, readme, template, description.xml, icon.png, Paths.xcu สำหรับไฟล์ ooo-thai-document-template-update.xml เป็นไฟล์ข้อมูลการอัพเดทของ extension เดี๋ยวค่อยมาอธิบายครับ เอาอย่างนี้มาดูไดเรคทอรี template กันก่อน

ในไดเรคทอรีนี้ จะมีไดเรคทอรีย่อยๆ ซึ่งตรงกับกลุ่มเทมเพลตของ OpenOffice.Org ลองดูในไดเรคทอรี forms จะพบไฟล์เทมเพลตที่ผมทำไว้แล้วคือ thai-gov.ott และ thai-gov-memo.ott เป็นเอกสารเทมเพลตของ Writer เอาล่ะหากคุณมีเทมเพลตดีๆ ก็ใส่แยกไปตามกลุ่มเทมเพลตของเอกสาร สำหรับท่านที่ต้องการสร้าง extension เทมเพลตของสำนักงานตัวเองก็เข้าไปดูที่ไฟล์ description.xml กันก่อนครับ ดูตรง <identifier value=”org.thaiopensource.templates.th-TH.unified” /> เปลี่ยน identifier ให้แตกต่างจากนี้นะครับ วิธีการง่ายๆ ใช้ domain เว็บไซต์ของสำนักงานของคุณก็ได้ครับ เช่น template.mict.go.th ตั้งชื่อย้อยหลังได้เป็น th.go.mict.template เราก็จะได้เป็นอย่างนี้ครับ <identifier value=”th.go.mict.template” /> ที่นี้มาลองดูตรง
<update-information>
<src xlink:href=”http://www.thaiopensource.org/pub/OpenOffice.org/extension/ooo-thai-document-template-update.xml” />
</update-information>
ในส่วน update-information จะกำหนด url สำหรับอ่านไฟล์ข้อมูลการอัพเดทของผมอยู่ที่เว็บไซต์ http://www.thaiopensource.org/pub/OpenOffice.org/extension/ooo-thai-document-template-update.xml เอาล่ะอันนี้คงต้องแก้ไขให้เป็น url ของเว็บไซต์ของคุณเองเช่น http://template.mict.go.th/ooo-thai-document-template-update.xml คุณก็จะได้ข้อมูลในส่วน update-information เป็น
<update-information>
<src xlink:href=”http://template.mict.go.th/ooo-thai-document-template-update.xml” />
</update-information>
ในส่วนที่เหลือ เช่น version, simple-license, extension-description, release-notes และ publisher ก็แก้ไขตามที่คุณต้องการ อย่าลืม upload ไฟล์ ooo-thai-document-template-update.xml ไปไว้ที่เว็บของคุณนะครับ เอาล่ะมาสร้างไฟล์ .oxt กัน วิธีง่ายที่สุดในการสร้างไฟล์ .oxt คือใช้ WinZip, 7zip ก็ได้ โดยบีบไฟล์ทั้งหมดที่อยู่ใน folder ที่ checkout มา จากนั้นเปลี่ยนชื่อไฟล์เป็น th.go.mict.template-เลขเวอร์ชั่น.oxt เช่น th.go.mict.template-1.0.oxt เท่านี้ก็เรียบร้อยแล้วครับ 🙂

จากนั้นเราก็ติดตั้ง extension ของเราได้แล้ว เกือบลืมไปหากมีการแก้ไขหรือเปลี่ยนเวอร์ชั่นใหม่ของไฟล์ extension ให้แก้ไขเลขเวอร์ชั่นในไฟล์ description.xml และชื่อไฟล์ที่ต้องการอัพเดทใน ooo-thai-document-template-update.xml ด้วยครับ เวลาอัพเดทตัว extension manager จะได้รู้ว่าจะ download ไฟล์ได้จากที่ไหน ลองสร้าง extension เทมเพลตในองค์กรหรือสำนักงานของคุณดูสิครับ ง่ายแค่นี้เอง ท่านใดได้ประสบการณ์ในการใช้เทมเพลตและ extension ใน OpenOffice.Org ก็เขียนจดหมายมาเล่าสู่กันฟังได้ครับ ที่หน้า contact ได้ครับ 🙂