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

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

ถ้าไม่มีคนริเริ่มอย่างโอเพนซอร์ส อย่างอื่นก็ไม่เกิด

ผมได้มีโอกาสไปร่วมงาน Grand Openning Science Park ของมหาวิทยาลัยเทคโนโลยีสุรนารีที่ The Mall โคราช ซึ่งงานนี้เป็นงานเปิดตัว Science Park และหน่วยงานอื่นๆ ใน Science Park ซึ่งได้รับความสนใจจากผู้เข้าชมงานพอสมควร แต่ที่น่าตกใจคือไม่ค่อยมีการเปิดตัวของกลุ่มผู้ประกอบการซอฟต์แวร์มากนัก กลับมีเพียงแต่งานด้านเกษตรกรรมและงานด้านนวตกรรมยานยนต์ซึ่งเล่นทำให้ผม กร่อยเลย งานวันแรก ฯพณฯ ดร.คุณหญิงกัลยา โสภณพนิช รัฐมนตรีว่าการกระทรวงวิทยาศาสตร์และเทคโนโลยีไปเปิดงาน เหมือนท่านอยากจะดูว่า Science Park ที่นี่มีอะไรบ้าง บังเอิญได้สนทนากับท่านสัก 2-3 ประโยค ท่านบอกว่า ถ้าไม่มีคนริเริ่มอย่างโอเพนซอร์สอย่างอื่นก็ไม่เกิด โอเพนซอร์สเป็นฐานการพัฒนาอีกหลายอย่าง ซึ่งผมแปลกใจมากที่ท่านพูดกับผมแบบนี้แทงใจมากครับ ที่ผ่านมาผมพยายามเขียนบอกเล่าในเว็บไซต์นี้และพยายยามกระตุ้นเตือนเสมอว่า เราสร้างสิ่งใหม่ๆ ให้กับซอฟต์แวร์ได้ ทำไมเราต้องเป็นผู้ตามอยู่เสมอ ทั้งด้าน open source software หรือแม้กระทั่ง propietary software ก็ตาม
สิ่ง ที่ผมจะบอกก็คือในประเทศไทยมีนักพัฒนาซอฟต์แวร์โอเพนซอร์สในประเทศน้อยลงมาก ที่น้อยลงก้อเพราะความสนใจในการพัฒนาซอฟต์แวร์ในรูปแบบโอเพนซอร์สนั้นไม่น่า เย้ายวนใจอีกต่อไป อีกอย่างการพัฒนาซอฟต์แวร์ในรูปแบบของผลิตภัณฑ์แต่ทำรายได้จากการบริการนั้น หมายความถึงต้องทำงานหนักถึง 2 เท่า ซึ่งไม่ยากและไม่ง่ายเลยที่จะมีคนมาทำแบบนี้ ด้วยสาเหตุนี้เองทำให้เกิดการหยิบยืมเอาซอฟต์แวร์โอเพนซอร์สที่มีอยู่แล้วมา แต่งหน้าปั๊มตรา ออกจำหน่ายกันเกลื่อนกลาด และสร้างวัฒนธรรมในลักษณะนี้มายาวนานถึง 7 ปี ผมคงไม่ได้บอกว่า 7 ปีนั้นเป็นเวลาสั้นๆ นะครับ แต่ด้วยการเดินตามๆ กัน และไม่มีใครที่คิดจะเป็นผู้สร้างนั้นน่าเป็นห่วงมาก ผมพยายามศึกษาและทดลองจากชุมชนโอเพนซอร์สในประเทศไทย 2-3 ชุมชน ซึ่งพบว่ากระแสการอยากพัฒนาซอฟต์แวร์แบบโอเพนซอร์สนั้นน้อยมาก น้อยจนน่าตกใจ ผมมักจะถาม @gumara ว่าทำยังไงดี ทำอย่างไรถึงจะมีพัฒนาเพิ่มมากขึ้น เพราะเรื่องนี้น่าเป็นห่วงมาก เรื่องการนำเอาซอฟต์แวร์โอเพนซอร์สมาใช้งานนั้นง่ายกว่าการพัฒนาซอฟต์แวร์ แล้วเปิดเป็นโอเพนซอร์สจริงไหมครับ
อยากเขียนให้ยาวกว่านี้แต่เขียน ไปเรื่อยๆ แล้วรู้สึกหดหู่ใจครับ เพราะหน่วยงานเอกชนก้อจ้องแต่แสวงหาผลกำไร ส่วนภาครัฐก็หวังแต่ผลประโยชน์ไม่ได้มีการส่งเสริมหรือกระตุ้นอย่างจริงจัง จริงใจ ทุกวันนี้ผมเฝ้าหวังว่าคนที่อยู่ในชุมชนโอเพนซอร์สที่เป็น user จะกลายมาเป็น power-user ส่วน power-user ในปัจจุบันจะกลายมาเป็น developer ในชุมชน เพื่อสร้างสรรค์สิ่งที่ดีให้กับชุมชนและซอฟต์แวร์โอเพนซอร์สที่เขาใช้ต่อไป ซึ่งคงจะเป็นสิ่งที่หวังได้ในตอนนี้

มาทำภาพแสตมป์ด้วย Inkscape กัน

นึกถึงตอนสะสมแสตมป์สมัยเป็นเด็กๆ เวลาหาแสตมป์ที่เราต้องการทีไรมักจะหายาก หรือได้มาแล้วไม่ค่อยคุ้มค่ากับการรอคอยสักเท่าไร หรือมีภาพสวยๆ อยู่แล้วแต่อยากทำเป็นแสตมป์ไปปั๊มออกมาเป็นแผ่นๆ ฉีกแจกเพื่อนมันก้อยังไงอยู่ครับ เอา Inkscape มาทำภาพแสตมป์กันดีกว่าครับ อืมมทำภาพแสตมป์น้องหมีโคอาล่าน่ารักๆ ดีกว่าครับ มาดูวิธีการกันดีกว่า

Continue reading มาทำภาพแสตมป์ด้วย Inkscape กัน

ผลทดสอบประสิทภาพ Ubuntu 8.10, Linux Mint 6 และ gOS 3.1

gOS และ Linux Mint เป็นดิสทริบิวชั่นที่เป็นที่จับตามองซึ่งทั้งคู่พัฒนามาจาก Ubuntu โดยทั้งคู่พัฒนาสิ่งใหม่ๆ เพิ่มเติมเข้าไปเพื่อตอบสนองการใช้งานของผู้ใช้ gOS มาพร้อมกับ WINE และ Google Grear ซึ่งเน้นความง่ายในการใช้งานเชื่อมโยงกับ Web 2.0 ในขณะที่ Linux Mint มาพร้อมกับชุดปรับแต่งพร้อมใช้เน้นความง่ายในการใช้งานทางด้านเดสท็อป โดยใช้ user interface ที่เหมือนกันทั้งชุด แถม driver, plug-ins, media codec และ package อื่นๆ หากถามเรื่อง performance ก้ออาจจะสงสัยกันอยู่ว่าลินุกซ์ 2 ตัวนี้เมื่อเปรียบเทียบกับ ubuntu ต้นฉบับแล้วตัวไหนดีกว่ากัน มาลองดู performance test ของ Ubuntu 8.10, gOS 3.1 และ Linux Mint 6 กันครับ

สำหรับการทดสอบ เราใช้โน๊ตบุค Lenovo ThinkPad T400 ใช้ CPU Intel Core 2 Duo T9600 ความเร็ว 2.80GHz ฮาร์ดดิสก์ความจุ 160GB ใช้ชิบประมวลผลกราฟิก Intel GMA 4500 แสดงผลความละเอียดหน้าจอที่ 1440×900 pixels มาดู Linux ที่ใช้ทดสอบแต่ละตัวกันบ้างครับเริ่มที่ Ubuntu 8.10 ใช้ Kernel เวอร์ชั่น 2.6.27, X Server 1.5.2, xf86-video-intel 2.4.1, Mesa 7.2 และ GCC 4.3.2 ใน gOS 3.1 Gadgets ใช้ Kernel เวอร์ชั่น 2.6.24 , GNOME 2.22.2, X Server 1.4.0.90, xf86-video-intel 2.2.1, Mesa 7.0.3-rc2, and GCC 4.2.4. และ Linux Mint 6 ใช้ package จาก Ubuntu 8.10 ซึ่งข้อมูลพื้นฐานเหมือนกันกับ Ubuntu 8.10 Continue reading ผลทดสอบประสิทภาพ Ubuntu 8.10, Linux Mint 6 และ gOS 3.1

พัฒนาซอฟต์แวร์เป็นโอเพนซอร์สทำไม?

คนไทยเก่งๆ มีเยอะ แต่ที่น่าแปลกที่คนไทยไม่ค่อยเปิดเผยโค้ด เป็นคำพูดจากเพื่อนที่อยู่แดนไกลถึงประเทศอินเดีย เขาชอบประเทศไทยเพราะคิดว่าการทำงานด้านซอฟต์แวร์กับคนไทยสบายใจมากกว่าการ พัฒนาซอฟต์แวร์กับคนประเทศอื่นๆ ผมไม่ทราบว่าทำไม แต่คำถามที่เพื่อนของผมมักถามจนผมมองเห็นว่าเป็นประเด็น คือ พัฒนาซอฟต์แวร์แล้วเปิดเป็นโอเพนซอร์สทำไม? นั่นสิ คำตอบคงหลากหลาย บ้างก้อว่า เอามันส์ ทำเป็นงานอดิเรก ทำเพื่อการค้า หวังรวย ฯลฯ ทุกๆ คำตอบที่ได้ยินมาไม่เห็นมีคำตอบไหนที่โดนประเด็นและจุดมุ่งหมายของการพัฒนา ซอฟต์แวร์แบบโอเพนซอร์สเลยสักคำตอบเดียว คุณล่ะพัฒนาซอฟต์แวร์แล้วเปิดเป็นโอเพนซอร์สทำไม?
เบื้องหลัง ซอฟต์แวร์โอเพนซอร์สส่วนใหญ่พัฒนามาจากนักพัฒนาหลายคน อย่างมากก็นับพันคน โครงการใหญ่ๆ อย่าง Linux Kernel, Debian, Fedora เป็นต้น ขอยกตัวอย่างเฉพาะ Real Open Source Software นะครับ ด้วยกระแสการพัฒนาซอฟต์แวร์แบบนี้หลายคนมองเห็นข้อดี ข้อเสีย แตกต่างกันไป ลองไปอ่านในหนังสือ The Cathedral and the Bazaar ของ ESR ดูนะครับ จะพบว่าการเปลี่ยนแปลงจาก propietary เป็น open source มันมีเหตุผลที่หนักแน่นชัดเจน ส่วนใหญ่เหตุผลเหล่านี้มักถูกลืมเลือน ทุกวันนี้คำว่าโอเพนซอร์ส (Open Source) กลายเป็นจุดขายทางการตลาด เอาจุดเด่นของโอเพนซอร์ส มาสร้างคุณค่าให้กับผลิตภัณฑ์ ซึ่งคุณค่าเหล่านี้เป็นกระแสเสียมากกว่า แล้วคุณค่าของการพัฒนาซอฟต์แวร์แบบโอเพนซอร์สคืออะไร? Continue reading พัฒนาซอฟต์แวร์เป็นโอเพนซอร์สทำไม?

Linux ทำเครื่องคุณเจ๊ง?

สดๆ ร้อนๆ เมื่ออาทิตย์ที่ผ่านมาหลังจากไปงาน Grand Openning Korat Science Park เครื่อง labtop คู่ใจดันเกิดอาการเดี้ยงเหมือนเดิมที่เคยเป็นคือเปิดเครื่อง ไฟติด แต่ไม่ boot ซะงั้น ซึ่งอาการแบบนี้เป็นครั้งที่ 3 ในรอบ 2 ปีมานี้ ซึ่งก็เช่นเคยเอาเครื่องไปซ่อมครับ หอบเครื่องไปศูนย์บริการที่ใกล้บ้านที่สุด IT Square เป็นทางออกที่ดีที่สุดของผมตอนนี้ เดินแว๊บเข้าไปที่ศูนย์บริการของร้านสีฟ้าๆ ซึ่งเขาขาย HP, Acer ฯลฯ และเพิ่งเปิดศูนย์บริการได้ไม่นาน จอง counter แรกเลยครับ แผนกซ่อม ช่างห้อยสายคล้องคอ TOT (คิดว่าน่าจะเป็นพนักงาน TOT มารับจ๊อบวันหยุด) ผมบอกเล่าอาการของเครื่อง ช่างเปิดปิดเครื่องอยู่หลายรอบ จนกว่าเครื่องมันจะ boot ได้ โอ้ววว สาวน้อยของผมโดนปู้ยี่ปู้ยำแล้ว! พอ boot เครื่องขึ้นมาได้ มีหน้าจอให้เลือก OS ช่างทำหน้างงๆ แล้วถามผมว่าลง Linux ด้วยหรือ? ผมเลยบอกไปว่าผมต้องใช้ Linux ทำงานเพราะเปิดใช้ Windows ทำงานที่ office ไม่ได้ ไวรัสมันเยอะ ฯลฯ ผมเลยเลือกเข้า Windows เพื่อชี้ให้เห็นว่าผมมี Windows นะไม่ได้ลง Linux อย่างเดียว
ช่าง พิจารณาอยู่หลายรอบ บอกผมว่าเป็นที่ software ต้องลง windows ใหม่ เป็นเพราะ Software เหมือนจะแถไปทาง Linux อะจ๊ากกก!! ผมติดตั้งซอฟต์แวร์ลิขสิทธิ์อยู่ในเครื่องซึ่งเยอะมาก รวมราคาได้เกือบๆ 1 ล้าน ซึ่งส่วนใหญ่เป็นซอฟต์แวร์ที่ผู้ว่าจ้างเป็นคนซื้อให้และกล่องซอฟต์แวร์ไม่ ได้อยู่ที่ผมซะด้วย การลง windows ใหม่จะสร้างปัญหาการทำงานให้ผมเยอะมาก ซึ่งการทำแบบนี้ทำให้ผมลำบาก 10 เท่าเพราะผมเขียนโปรแกรมทั้งบน Linux และ Windows พอผมทำหน้างงๆ กลับกลายเป็นว่าปัญหากลับมาตกที่ผมซะงั้น ช่างตัดบทบอกให้ผมเอาเครื่องเข้าศูนย์ซ่อมที่ HP ที่ตึก เหงียนๆ อะไรสักอย่าง? ฮะๆ ผมไปไม่ถูกหรอก ก็เลยเก็บเครื่องเดินมาร้านตรงข้ามที่มีป้ายสีเขียวๆ เอาเครื่องให้เขาดู บอกเล่าอาการเช่นเดิม น้องผู้หญิงร้องอ๋อ เป็นอาการปกติของมันค่ะพี่ คือ ชิป VGA มันเสื่อม!! ซีรี่นี้อาการเหมือนกันหมด!! พี่อยู่ในกลุ่มคนหมู่มาก เพราะนี่ก็มาซ่อมเหมือนกัน น้องผู้หญิงดึง Compaq V3000 ออกมาให้ผมดู 5 ตัวได้
อ่ะจ๊ากกก!! หนักกว่าเดิมอีกแฮะ น้องเขาแนะนำทางแก้คือ 1. เอาเครื่องไปอบ? ค่าใช้จ่าย 1,200 บาท หรือ 2. แก้ปัญหาอย่างถาวรคือเปลี่ยนซิปตัวใหม่ ค่าใช้จ่าย 3,500 บาท ผมเป็นประเภทต้องการให้มันเคลียเพราะผมมีเครื่อง labtop เครื่องเดียว และไม่มีเครื่อง desktop ใช้ ก็ต้องเลือกอย่างหลัง เสียไป 3,500 บาท เอาล่ะ คิดว่าน่าจะดีขึ้น ผมถามข้อข้องใจว่าเป็นกับ OS หรือเปล่าที่ทำให้มันเจ๊ง น้องเขาบอกว่าไม่ได้เป็นกับ OS ลุกค้าที่ใช้ Windows หรือ Linux ก็เป็นอาการเดียวกัน นั่นหมายความว่าที่ผมเคยเอาเครื่องเข้าศูนย์มา 3 รอบเขาไม่ได้แก้อะไรให้ผมเลยเหรอ? น้องผู้หญิงเขาก็บอกว่าที่ศูนย์เขาเปลี่ยน board ใหม่ให้ 2 ชิ้นใช่มั๊ยคะ มีส่วนของการ์ดจอด้วย 1 ชิ้นค่ะ ซึ่งก้อมาจากโรงงานเหมือนๆ กับที่โรงงานผลิต และมันก้อมีปัญหาเหมือนเดิม!! ผมถึงบางอ้อ อย่างน้อย Ubuntu ก้อไม่ได้ทำให้เครื่องผมเจ๊งอ่ะนะ สรุปแล้วก็เลยเสียค่าเปลี่ยนชิปไป 3,500 บาท กลับมาลองทดสอบดูก็ใช้ได้ดีไม่มีปัญหา แต่คงต้องรอดูอาการอีกสัก 2-3 เดือนว่าจะเกิดอาการเดิมอีกหรือเปล่า?

Alfresco ECM ในมุมที่คุณมองข้าม

ผมเคยพัฒนาซอฟต์แวร์ประเภท Groupware และ Collaboration System มาระยะหนึ่งได้เห็นจุดเด่นและจุดด้อยของซอฟต์แวร์ประเภทนี้ ทั้งในเรื่องที่ผู้ใช้ต้องการเช่น Work Flow, Privillege System และที่สำคัญคือ Document Management ตัวนี้ถือเป็นจุดขาดของซอฟตืแวร์ประเภทนี้เลยก้อว่าได้ แต่ปัญหามันไม่ได้เกิดแค่ Document Management ปัญหาที่ทุกคนมองข้ามคือ คุณมี Collaboration System หรือ DCM อยู่ในองค์กรคุณใส่ข้อมูลเข้าไปในระบบได้ด้วยวิธีไหน? อัพโหลดผ่านเว็บหรือ? ถ้าคุณมีไฟล์สัก 50 ไฟล์คุณก้อคงคลิกจนมือหงิกเลยก้อได้
ผมก้อเจอ ปัญหานี้กับซอฟต์แวร์ของผมเช่นเดียวกัน แต่ก้อไม่ได้หาทางแก้ไขอะไร เพราะด้วยความคิดที่ว่ายังไงๆ เขาก้อต้องใช้ในองค์กรอยู่แล้ว แต่เราลืมไปว่ามันขึ้นอยู่กับว่าเขาจะไป deploy ใช้กันยังไง ซึ่งส่วนใหญ่คนที่เอาซอฟต์แวร์ของผมไปใช้ก้อมันจะเช่าพื้นที่กับผู้ให้ บริการโฮสติ้งแล้วก้อเอาซอฟต์แวร์ผมไปติดตั้งใช้งานกันทั้งออฟฟิตนั่น หมายความว่าพวกเขากำลังโยนเอกสารผ่าน Internet ไม่ใช่ผ่านบนเว็บเซิร์ฟเวอร์ใน Local Network นี่แหละจึงเกิดปัญหากับคนที่ใช้งานระบบพวกนี้อย่างจริงๆ จังๆ
ผมเอง เป็นพวกบ้าพลังเรื่อง Office Automation, Paperless, Virtual Office เป็นเรื่องที่ผมให้ความสนใจมาก เพราะมันเจ๋ง ผมคิดว่าทุกวันนี้ไม่จำเป็นต้องมาทำงานที่ office ก้อได้อยู่ที่ไหนก้อได้ ต่อ net ผ่าน GPRS/Edge หรือ Wifi ที่ร้านกาแฟ คุณก้อสามารถสื่อสารและทำงานกับเพื่อนร่วมงานผ่านระบบ Collaboration System ได้ วกกลับเรื่องคุณใส่ข้อมูลเข้าไปในระบบได้ด้วยวิธีไหน? จากปัญหาข้างต้นซอฟต์แวร์ประเภท Collaboration System และ Document Management System มักจะถูกพัฒนาเป็น Web Application ซึ่งทำให้วิธีการนำข้อมูลเข้าไปยังระบบถูกแช่แข็งไว้ที่ HTTP เป็นหลัก และนั่นแหละที่เกิดปัญหา Internet คุณเร็วแค่ไหน? หรือ เซอร์ฟเวอร์ที่คุณใช้ busy มากมั๊ย ให้บริการกับผู้ใช้ทั้งองค์กรได้หรือไม่? นั่นคือปัญหาที่ตามมาจาก คุณเอาข้อมูลเข้าไปยังระบบยังไง และความเร็วในการเอาข้อมูลเข้า เอาข้อมูลออกมากน้อยแค่ไหน?
ที่ทำงานผมคลั่ง Alfresco ECM กันมาก เรียกได้ว่าอะไรๆ ก้อ Alfresco ผมยังจำได้ตอนที่ผมพัฒนาระบบ Collaboration System ในช่วง 7 ปีที่แล้วใครๆ ก้อคลั่ง OSP ก้อคงจะอารมณ์เดียวกัน ซึ่งผมเองก้อคงไม่เอา OSP ไปเทียบกับ Alfresco ECM หรอกนะครับ แต่ที่น่าเป็นห่วงคือ พฤติกรรมการใช้งานไม่ว่าจะผ่านไปถึง 7 ปี พฤติกรรมการใช้งาน Collaboration System หรือ Enterprise Content Management ก้อเหมือนเดิมคือเอาข้อมูลขึ้นผ่าน HTTP อยู่เช่นเดิม แล้วความเร็วในการเอาข้อมูลเข้าเอาข้อมูลออก มีความเร็วมากน้อยแค่ไหน? ก้อคงขึ้นอยู่กับความเร็วอินเตอร์เน็ตขององค์กรนั่นเอง นั่นหมายความว่าในช่วง 7 ปีที่ผ่านมา พฤติกรรมของผู้ใช้ไม่ได้มีอะไรเปลี่ยนแปลงเลย น่าสนใจมากครับ
แต่ว่า Alfresco ECM ไม่ได้เปิดช่องทางในการนำเข้าข้อมูลเพียงแค่ผ่านหน้าเว็บเท่านั้น (คุณรู้บ้างมั๊ย) คุณยังสามารถนำเอาข้อมูลเข้าทางระบบเน็ตเวิร์คอย่าง CIFS หรือ SMB ได้เช่นกัน ลองนึกถึงตอนที่เราแชร์ไฟล์บน Windows หรือพิมพ์ smb://myserver/my-user-account/myfolder เป็นต้น นั่นหมายความว่าคุณสามารถใช้โปรแกรมง่ายๆ อย่าง Exploror, File Manager, Nautilus, Dolphin โยนไฟล์ผ่าน CIFS หรือ SMB เข้าไปยัง Alfresco ได้โดยตรงโดยไม่ต้องผ่านหน้าเว็บแต่อย่างใด ทีนี้คุณจะเอาไฟล์เข้าไปสักที่ไฟล์ก้อได้ หรือเอาไฟล์ออกจากระบบสักกี่ไฟล์ก้อได้ ในเวลาที่เร็วกว่า 🙂 สำหรับออฟฟิตที่มีเครื่องถ่ายเอกสารตัวใหญ่ๆ ที่สามารถ Scan/FAX/Copy ผ่าน Network ได้ และรองรับ protocal CIFS หรือ SMB คุณก้อสามารถถ่ายเอกสารแล้วนำข้อมูลเข้าไปยัง Alfresco ECM ได้โดยตรง เจ๋งมั๊ย 🙂
เรื่อง Work Flow, Collaborative Working, Document Repository, Document Management มันก้อเป็นเรื่องปกติที่ ECM ส่วนใหญ่มีกัน แต่ที่สำคัญวันนี้คุณใช้ Alfresco ECM ของคุณเป็นแล้วหรือยัง?