Alfresco เป็นระบบจัดการเอกสารระดับ Enterprise ที่ได้รับความนิยมอย่างแพร่หลายด้วยความสามารถในการจัดการเอกสารที่เรียกได้ว่าครบวงวรตั้งแต่การจัดการเอกสารพื้นฐาน รวมไปถึงระบบ workflow ที่กำหนดเส้นทางของเอกสาร การยืนยันเอกสาร นอกจากนี้ยังสามารถประยุกต์ใช้ในงานด้าน collaboration, record management, knowledge management, web content management หรือแม้กระทั่ง image management เรียกได้ว่า Alfresco อยู่ในระดับต้นๆ ของโปรแกรมจัดการงานเอกสารที่เป็นโอเพนซอร์สกันเลยทีเดียว

สำหรับการติดตั้ง Alfresco Community ในครั้งนี้ให้คุณติดตั้ง Ubuntu Server ให้เรียบร้อยพร้อมทั้งเรียกใช้ partner repository ใน /etc/apt/sources.list เพื่อใช้ติดตั้งแพคเกจ sun-java6-jdk ได้ ผมใช้ dms.example.com เป็น hostname มี IP Address เป็น 192.168.1.1/255.255.255.0 เปลี่ยนค่าข้างต้นตามค่าของคุณนะครับ เอาล่ะมาเริ่มติดตั้ง Alfresco กันเลย

แปลงร่างเป็น root กันก่อน

sudo -s

ติดตั้งโปรแกรมที่ต้องใช้

apt-get install mysql-server sun-java6-jdk imagemagick swftools openoffice.org-core openoffice.org-java-common openoffice.org-writer openoffice.org-impress openoffice.org-calc

คอนฟิดค่า JAVA_HOME ใน environment variable ที่ /etc/environment ดังนี้

JAVA_HOME="/usr/lib/jvm/java-6-sun/"

เรียกใช้ environment variable โดยไม่ต้อง logout แล้ว login ใหม่โดยใช้คำสั่ง

source /etc/environment

กำหนดค่า default character set เป็น UTF-8 เพื่อใช้ภาษาที่ซับซ้อน ป้องกันการแสดงผลภาษาอื่นๆ ที่ไม่ใช้ภาษาอังกฤษเป็นตัวอักษร ????? แก้ไขไฟล์ /etc/myql/my.cnf แก้ไขตรง [mysqld] ดังตัวอย่างข้างล่าง

[mysqld]
#
# * Basic Settings
#
#
# * IMPORTANT
# If you make changes to these settings and your system uses apparmor, you may
# also need to also adjust /etc/apparmor.d/usr.sbin.mysqld.
#
default-character-set = utf8

จากนั้น restart MySQL โดยใช้คำสั่ง

/etc/init.d/mysql restart

จากนั้นตั้งค่าฐานข้อมูล MySQL ให้กับ Alfresco

mysql -u root -p

สร้างผู้ใช้ สร้างฐานข้อมูล alfresco และกำหนดสิทธิ์เข้าถึง ดังนี้

CREATE DATABASE alfresco DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
GRANT ALL PRIVILEGES ON alfresco.* TO alfresco@localhost IDENTIFIED BY 'alfresco';
GRANT SELECT,LOCK TABLES ON alfresco.* TO alfresco@localhost IDENTIFIED BY 'alfresco';
FLUSH PRIVILEGES;
quit;

เมื่อได้ฐานข้อมูลแล้วสร้างที่เก็บ alfresco กันครับ

mkdir -p /opt/alfresco

จากนั้นดาวน์โหลดและคลี่ไฟล์ลงในไดเรคทอรีที่สร้างขึ้น

cd /opt/alfresco
wget http://dl.alfresco.com/release/community/build-2765/alfresco-community-tomcat-3.3.tar.gz?dl_file=release/community/build-2765/alfresco-community-tomcat-3.3.tar.gz -O alfresco-community-tomcat-3.3.tar.gz
tar zxvf alfresco-community-tomcat-3.3.tar.gz
rm -f alfresco-community-tomcat-3.3.tar.gz

มาคอนฟิก Alfresco กันต่อ เปิดไฟล์ alfresco-global.properties มาแก้ไขด้วยคำสั่ง

nano /opt/alfresco/tomcat/shared/classes/alfresco-global.properties

มาดูส่วนตั้งค่าพื้นฐานกันก่อน เปลี่ยนค่าจาก

###############################
## Common Alfresco Properties #
###############################
#
# Sample custom content and index data location
#-------------
dir.root=./alf_data
#
# Sample database connection properties
#-------------
db.name=alfresco
db.username=alfresco
db.password=alfresco
db.host=localhost
db.port=3306
#
# External locations
#-------------
#ooo.exe=soffice
#ooo.enabled=false
#img.root=./ImageMagick
#swf.exe=./bin/pdf2swf

เป็นค่าดังนี้

###############################
## Common Alfresco Properties #
###############################
#
# Sample custom content and index data location
#-------------
root.dir=/opt/alfresco/alf_data
#
# Sample database connection properties
#-------------
db.name=alfresco
db.username=alfresco
db.password=alfresco
db.host=localhost
db.port=3306
#
# External locations
#-------------
ooo.exe=/usr/lib/openoffice/program/soffice
ooo.enabled=true
img.root=/usr
swf.exe=/usr/bin/pdf2swf

ถ้าต้องการใช้ Alfresco ผ่านทาง Windows Share ให้ตั้งค่า CIFS โดยเพิ่มค่า config ดังนี้

#
# CIFS Support
#------------------------
cifs.enabled=true
cifs.serverName=dms
cifs.ipv6.enabled=false
cifs.tcpipSMB.port=1445
cifs.netBIOSSMB.namePort=1137
cifs.netBIOSSMB.datagramPort=1138
cifs.netBIOSSMB.sessionPort=1139

เริ่ม Alfresco และเรียกใช้ OpenOffice.org แบบ services

/usr/lib/openoffice/program/soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -nologo -headless -nofirststartwizard &

จากนั้น อัพเดท firewall เพื่อ forward port ไปยัง Alfresco CIFS (กรณีที่ไม่ใช้ CIFS ไม่ต้องตั้งค่าก็ได้ครับ)

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 445 -j REDIRECT --to-ports 1445
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 139 -j REDIRECT --to-ports 1139
iptables -t nat -A PREROUTING -p udp -m udp --dport 137 -j REDIRECT --to-ports 1137
iptables -t nat -A PREROUTING -p udp -m udp --dport 138 -j REDIRECT --to-ports 1138

จากนั้น start Alfresco ดังนี้

cd /opt/alfresco
./alfresco.sh start

เข้าใช้งาน Alfresco DMS ผ่านทาง browser ที่ http://192.168.1.1:8080/alfresco
เข้าใช้งาน Alfresco Share ผ่านทาง browser ที่ http://192.168.1.1:8080/share
ล็อกอินด้วยชื่อผู้ใช้ admin และรหัสผ่าน admin
สำหรับการเรียกใช้งานผ่าน CIFS Share บน Windows เรียกใช้ดังนี้ \dmsalfresco

ที่มา – How To Install Alfresco Community 3.3 On Ubuntu Server 10.04 (Lucid Lynx)

หลังจากที่ได้เสนอชื่อกันไปแล้ว ก็ถึงเวลาโหวดชื่อกันแล้วครับ ซึ่งชื่อที่เข้าชิงมีดังนี้ Straw Hat Luffy (Monkey D. Luffy), Thief-Cat Nami (Nami), King of Snipers Sogeking (Usopp), Black Leg Sanji (Sanji), Cotton Candy Lover (Tony Tony Chopper), Demon Child (Nico Robin), Cyborg Franky (Franky), Dead Bones Brook (Brook) และ Buggy the Clown (Buggy) ในช่วงนี้เรามาโหวดชื่อกันก่อนเลยน่าจะดีกว่า สำหรับ Release Schedule อยู่ที่ Wiki ที่หน้าโครงการ Suriyan ครับ

จาก Quiz#10 คงจะได้ทราบแล้วว่าผมกำลังทำ 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 ได้ครับ :)

ไม่คิดว่าจะเขียนเรื่องนี้เพราะเรื่องโอเพนซอร์สซอฟต์แวร์และวงจรเชิงบวก สมบูรณ์ หรือ Completeness Positive Cycle for Open Source Software นี้เป็นเรื่องที่เข้าใจได้ยาก ออกจะขวางโลกธุรกิจ ขวางโลกในมุมมองของคนในธุรกิจซอฟต์แวร์พอสมควร เพราะธุรกิจซอฟต์แวร์ที่เอาซอฟต์แวร์โอเพนซอร์สไปใช้หรือนำไปจำหน่ายมักเน้น ไปในแนวทางธุรกิจในแบบที่เห็นแก่ตัว บางคนก้อเรียกให้สวยหรูว่ามันเป็น Business Model อย่างหนึ่ง ซึ่งผมเองไม่ค่อยเห็นด้วยสักเท่าไร หากคุณยังนึกภาพไม่ออกผมจะยกตัวอย่างง่ายๆ ให้ทำความเข้าใจกัน

สมมุติ ว่ามีชุมชนหนึ่งหรือนักพัฒนากลุ่มหนึ่งพัฒนาซอฟต์แวร์แล้วเปิดเป็นโอเพน ซอร์ส (ใช้ License แบบโอเพนซอร์ส) แต่มีกลุ่มคนอีกกลุ่มหนึ่งที่ไม่ได้เกี่ยวข้องอะไรกับชุมชนนั้น หยิบเอาซอฟต์แวร์นั้นไปเปลี่ยนชื่อและจำหน่าย โดยที่ชุมชนและกลุ่มนักพัฒนาก้อยังพัฒนาอยู่เรื่อยๆ โดยไม่รู้เรื่องอะไรเลย และกลุ่มคนกลุ่มนั้นก้อไม่คิดที่จะซัพพอร์ทชุมชนและกลุ่มนักพัฒนาเลยแม้แต่ น้อย หากซอฟต์แวร์มีปัญหาก้อจะโยนกลองให้ชุมชนและกลุ่มนักพัฒนาแก้ไขกันต่อไป สิ่งเหล่านี้เกิดขึ้นจริงและน่าละอายมากที่คนไทยเราก้อทำธุรกิจหากินกับ ชุมชนและกลุ่มนักพัฒนาเช่นนี้เหมือนกับตัวอย่าง

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

โอเพนซอร์ส ซอฟต์แวร์และวงจรเชิงบวกสมบูรณ์ในระดับชุมชนและนักพัฒนาจะเกิดขึ้นอย่าง สมบูรณ์ ผมขอยกตัวอย่างที่เห็นได้ชัดซึ่งเกิดเมื่อไม่นานมานี้ Ubuntu Intrepid Ibex ในรุ่น Beta ไม่สามารถพิมพ์ภาษาไทยโดยลำดับของการพิมพ์อักขระจะผิดเพี้ยนไป บักนี้ถูกแจ้งไปยังกลุ่มนักพัฒนาซึ่งนักพัฒนาก้อได้รับไปแก้ไข ซึ่งคาดว่าจะแก้ไม่ทันในรุ่น release อย่างแน่นอน แต่ชุมชนผู้ใช้ต่างพยายามอธิบายในกรณีต่างๆ ว่าเกิดเหตุการณ์เช่นนี้ได้อย่างไร ก้อทำให้นักพัฒนาสามารถปะติดปะต่อหาจุดแก้ไขจนเจอและแก้ไขได้ทันท่วงที นี่เป็นตัวอย่างที่สื่อถึงวงจรเชิงบวกสมบูรณ์ในระดับชุมชนและนักพัฒนาเห็น ได้ชัดเจน ในปัจจุบันโอเพนซอร์สซอฟต์แวร์ไม่ได้มองในระดับระดับชุมชนและนักพัฒนา เท่านั้น ยังมีกลุ่มธุรกิจที่ต้องการเข้ามาหยิบนวตกรรมใหม่ที่เกิดจากชุมชนโอเพนซอร์ส โดยใช้หลากหลายวิธีการซึ่งวิธีการยอดนิยมก้อคงเป็นการเอาโอเพนซอร์ส ซอฟต์แวร์มาใช้ ประยุกต์ แก้ไข ปรับแต่ง เปลี่ยนเป็นบริการและโซลูชั่น ต่างๆ โดยที่ชุมชนและนักพัฒนาไม่ได้มีส่วนในซอฟต์แวร์นั้นเลย นวตกรรม (หรืออาจไม่มีนวตกรรมเลยก้อได้) ที่กลุ่มธุรกิจเอาไปแสวงหาผลประโยชน์ไม่ได้ถูกนำมาป้อนกลับให้ชุมชนและนัก พัฒนาแข็งแรงมากขึ้นแต่กลับอ่อนแอลง เพราะการทำแบบนี้เป็นการฆ่าชุมชนและนักพัฒนาทางอ้อม

ความสมดุลและ วงจรป้อนกลับเชิงบวกแบบสมบูรณ์จะเกิดขึ้นได้เมื่อกลุ่มธุรกิจ ป้อนกลับนวตกรรม ความช่วยเหลือ เพื่อให้ชุมชนและนักพัฒนาให้อยู่ได้ โดยพึ่งพาอาศัยซึ่งกันและกัน สิ่งเหล่านี้จะทำให้เกิดความสมดุล เขียนมายาวมากแล้วหากท่านใดอยากทราบข้อมูล เพิ่มเติมก้อฝากความคิดเห็นข้างล่างไว้ได้ครับ

คิดว่าจะไม่มาเขียนเรื่องนี้อีกก้ออดไม่ได้ครับ เพราะว่าแนวคิดในบ้านเรามันออกจะขัดกับแนวคิดโอเพนซอร์สและหลักปรัชญาที่ควรจะเป็นเสียมากซึ่งผมมองว่าอุตสาหกรรมซอฟต์แวร์ในบ้านเราจะไม่ได้อะไรเลยนอกจากการดาวน์โหลดโค้ดแล้วปะยี่ห้อใหม่ขายหรือทำได้เท่าที่มีคนทำให้ ไม่เกิดสิ่งใหม่ไม่เกิด innovation ใหม่ๆ ซึ่งเป็นเรื่องที่น่าเสียดาย ผมได้พูดคุยกับผู้ประกอบการหลายรายที่อยู่ใน Software Park ซึ่งส่วนใหญ่เป็น Tailor-Made หรือรับจ้างทำของตั้งแต่ต้นเริ่มจากศูนย์ บางรายก้อ reuse โครงการของอีกที่นึงมา modified ให้ใช้ได้กับอีกที่หนึ่ง บางรายก้อใช้โอเพนซอร์สซอฟต์แวร์นี่แหละเอาไปทำให้ดูค้า เช่น เว็บไซต์ ระบบงานเอกสาร ระบบคลังความรู้ ฯลฯ เอาล่ะคุณน่าจะมองเห็นภาพของธุรกิจอุตสาหกรรมซอฟต์แวร์ใมนบ้านเราบ้างนิดๆ หน่อยๆ พอหอมปากหอมคอ อ้อ อันนี้ไม่รวมถึงพวก partner จากบริษัทยักษ์ใหญ่ข้ามชาตินะครับ ฮะๆ ธุรกิจซอฟต์แวร์ในบ้านเรามีคู่แข่งเยอะจริงๆ

เอาล่ะจากการโหมโรงเมื่อหลายปีก่อนเกี่นสกับโอเพนซอร์สได้มีการนำเอาซอฟต์แวร์โอเพนซอร์สไปใช้งานกันมากขึ้น ไม่ว่าจะเป็นธุรกิจซอฟต์แวร์แบบจ้างทำของ หรือการบริการแบบครบวงจรอย่างธุรกิจบริการพื้นที่เว็บไซต์ รับทำเว็บ ฯลฯ เท่าที่สังเกตจากช่วงเปลี่ยนผ่านของ CMS รายหนึ่งในต่างประเทศ ไม่ต้องอ้อมค้อมละกัน จาก Mambo ไปเป็น Joomla การเปลี่ยนผ่านครั้งนั้นสร้างผลกระทบหลายอย่างซึ่งไม่ได้เป็นผลกระทบทางตรงแต่เป็นทางอ้อม คือแนวทางการพัฒนา component ของ Mambo ก่อปัญหาเกิดช่องโหว่ของ component หลายตัวทำให้เกิดการ crack เว็บครั้งใหญ่โดยการยิง script ไปยังเว็บต่างๆ ที่ใช้ Mambo เรียกได้ว่าเจ็บตัวกันไปหลายรายเลยทีเดียว และที่แน่นอนผู้ประกอบการหลายรายในไทยก้อโดนโวยจากลูกค้าที่ส่งมอบงานไปแล้ว ซึ่งผู้ประกอบการหลายรายก้อได้มาปรึกษาผมเช่นกัน (ไม่ขอเอ่ยชื่อละกันนะ) ถามไปถามมาปรากฏว่าผู้ประกอบการเองก้อยังไม่เข้าใจการพัฒนาซอฟต์แวร์แบบโอเพนซอร์ส และยังไม่เข้าใจโอเพนซอร์สเสียด้วยซ้ำซึ่งเป็นเรื่องน่าตกใจ เขาเพียงบอกกับผมว่ามันมีให้ดาวน์โหลดมาใช้ มันง่ายดี แต่ไม่รู้ทำไมโดนแฮ็ก

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

แล้วผู้ประกอบการในประเทศไทยที่ใช้ซอฟต์แวร์โอเพนซอร์สหรือเราเอาซอฟต์แวร์โอเพนซอร์สมาทำเป็นผลิตภัณฑ์และบริการ พวกเขาจะทำอะไรได้บ้างจะช่วยต้นน้ำที่พัฒนาซอฟต์แวร์ที่เขานำมาขายเป็นบริการอย่างไรได้บ้าง เอาล่ะผมจะบอกขั้นตอนจากง่ายไปยากให้กับผู้ประกอบการที่อยากมีส่วนร่วมในการพัฒนาผลิตภัณฑ์และบริการของตนเองและเป็นการช่วยหมุนวงจรป้อนกลับเชิงบวกให้ชุมชนและกลุ่มนักพัฒนาต้นน้ำได้ มาดูวิธีการต่างๆ ดังนี้

1. เข้าร่วมกลุ่มเมล์ หรือ เมลลิงลิส เพื่อดูความเคลื่อนไหวของโครงการ แสดงความเห็น หรือแนวคิดใหม่ในกลุ่มเมล์
2. เข้าร่วมกลุ่มฟอรัม อาจเป็นฟอรัมของผู้ใช้ หรือผู้พัฒนาตามความต้องการหรือความสามารถที่จะช่วยเหลือได้
3. เข้าร่วมงานประชุมสัมนาหรืองานที่จัดโดยชุมชนเพื่อคุณจะได้พบตัวเป็นๆ ของนักพัฒนา หรือคนที่อยู่ในชุมชน คุณจะได้กลุ่มเพื่อนนักพัฒนาและกลุ่มผู้ใช้ที่เห็นหน้าเห็นตากันอย่างชัดเจน
4. รายงานข้อผิดพลาดต่างๆ ผ่านทาง bug tracker และติดตามการแก้ไขอย่างใกล้ชิด
5. หากทีมพัฒนาของคุณสามารถแกะโค้ด ดีบักในจุดบกพร่องต่างๆ ควรแจ้งวิธีการแก้ไข หรือ patch ของคุณให้กับทีมพัฒนาต้นน้ำ ไม่ต้องกลัวว่าโค้ดไม่สวย หากคุณสามารถอธิบายได้ว่าปัญหาเกิดจากอะไร และจะแก้ไขโดยวิธีใดได้บ้าง ทีมนักพัฒนาต้นน้ำจะสามารถไล่ปัญหาและ submit patch ของคุณได้ทันท่วงที
6. หากคุณไม่ต้องการลงแรงมาก สามารถลงขันเป็น sponsor ของชุมชนซอฟต์แวร์นั้นๆ ในการจัดกิจกรรมต่างๆ
7. หากคุณไม่อยากลงขัน คุณสามารถช่วยกระจายความรู้โดยการถ่ายทอดความรู้ให้กับ user group โดยการอบรม การบรรยายพิเศษ ฯลฯ

เอา 7 ข้อง่ายๆ แค่นี้คุณก้อสามารถเป็นส่วนหนึ่งของวงวรป้อนกลับเชิงบวกสมบูรณ์ได้แล้วครับ มาลงในรายละเอียดใน 7 ข้อข้างต้นกันดีกว่าครับว่าคุณจะได้เรียนรู้อะไรบ้างจาก 7 ข้อนี้

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

ตอนนี้ Suriyan 53.04 ยังไม่ออกแต่ขอโหวดชื่อรุ่นใหม่กันเลยดีกว่า หลังจาก Suriyan รุ่น Roronoa Zoro อยู่ในระหว่างรอประกอบส่วนที่ขาด คือหนังสือและมัลติมีเดีย ในช่วงนี้เรามาโหวดชื่อกันก่อนเลยน่าจะดีกว่า Suriyan กำหนดชื่อรุ่นตามชื่อตัวละครในการ์ตูนเรื่อง One Piece ผมเสนอชื่อตัวละครที่อยู่ในลิสดังนี้

  1. Straw Hat Luffy (Monkey D. Luffy)
  2. Thief-Cat Nami (Nami)
  3. King of Snipers Sogeking (Usopp)
  4. Black Leg Sanji (Sanji)
  5. Cotton Candy Lover (Tony Tony Chopper)
  6. Demon Child (Nico Robin)
  7. Cyborg Franky (Franky)
  8. Dead Bones Brook (Brook)
  9. Buggy the Clown (Buggy)

ใครอยากโหวดชื่อเพิ่มเติมใส่ลงใน comment ด้านล่างได้เลยครับ :)

Mekha (เมฆา) เป็นโครงการรวมเกมส์โอเพนซอร์สกว่า 12 เกมส์ที่ได้รับรางวัล พร้อมเครื่องมือพัฒนาเกมส์ที่ครอบคลุมงานด้านแอนิเมชัน 3 มิติ เสียง ภาพ และ game engine ที่สามารถเรียนรู้ด้วยตนเองได้ง่าย เหมาะสำหรับผู้ที่สนใจในการออกแบบพัฒนาเกมที่ยังไม่มีความรู้ด้านการพัฒนาซอฟต์แวร์เกมส์มาก่อน Mekha เป็นแผ่นซีดีรวมซอฟต์แวร์เกมที่น่าเล่นและซอฟต์แวร์พัฒนาเกมสำหรับวินโดวส์ คุณสามารถติดตั้งโปรแกรมใน ซีดีนี้โดยไม่ต้องลบโปรแกรมอื่นๆ ที่อยู่ในเครื่องออก

แผ่นที่ 1 ประกอบด้วยเกมส์สนุกๆ ที่คุณพลาดไม่ได้

Arcade
– Egoboo
– Fret On Fire
– Wormux

Puzzle
– Neverball

Racing
– Ultimate Stunts
– XMoto

Shooting
– AssaultCube
– Blockality

Simulation
– Danger from the deep

Sport
– Slam Soccer

Strategy
– Glest

แผ่นที่ 2 ประกอบด้วยโปรแกรมและเครื่องมือพัฒนาเกมส์

Game Engine
– SIPA 3D Game Creation System

3D Authoring tools
– K3D – Modeling
– Misfit 3D – Animation
– Meshlab – Texturing

2D Art tools
– GIMP – Bitmap Graphic

Sound tools
– Audacity – Sound Editing
– MuseScore – Music Composing

Chantra 53.05 Wildvine ออกแล้ว หลังจากที่ตัดสินใจกันหลายรอบเรื่องความจุของแผ่นและจำนวนแผ่น สำหรับรุ่นนี้เป็นรุ่นพิเศษออกมาพร้อมกับ Artwork ใหม่ เป็นชุดเดียวกันกับแผ่นอื่นๆ เหมาะแก่การใช้งานและสะสม :P สำหรับจำนวนโปรแกรมก็เพิ่มขึ้นจากเดิม 36 โปรแกรมเพิ่มเป็น 39 โปรแกรมอัดมาเต็มแผ่นซีดีกันเลยทีเดียว สำหรับท่านที่ต้องการแผ่น Chantra สามารถดาวน์โหลดได้ที่ http://chantra.in.th/download หรือใช้กติกาการรับแผ่นกับทาง ThaiOpenSource.org ดังนี้

  1. เป็นสมาชิกเว็บไซต์ thaiopensource.org
  2. กรอกข้อมูลลงในแบบฟอร์มนี้ครบถ้วน
  3. เลือกวิธีการรับแผ่นได้ 2 ช่องทาง
  • รับด้วยตัวท่านเองที่ สำนักงานส่งเสริมอุตสาหกรรมซอฟต์แวร์แห่งชาติ (องค์การมหาชน) ชั้น 9 อาคารรวมหน่วยงานราชการ บี ศูนย์ราชการเฉลิมพระเกียรติ 80 พรรษา 5 ธันวาคม 2550 ถนนแจ้งวัฒนะ

  • รับทางพัสดุไปรษณีย์ ให้คุณส่งซองเปล่าขนาดที่ใส่แผ่น CD ได้ ติดแสตมป์ 12 บาท จ่าหน้าซองถึงตัวเอง มุมซอง วงเล็บชื่อสมาชิกของเว็บไซต์ thaiopensource.org ไว้ด้วยครับ ส่งมาที่ ฝ่ายโอเพนซอร์ส สำนักงานส่งเสริมอุตสาหกรรมซอฟต์แวร์แห่งชาติ (องค์การมหาชน) 120 หมู่ที่ 3 ชั้น 9 อาคารรวมหน่วยงานราชการ บี ศูนย์ราชการเฉลิมพระเกียรติ 80 พรรษา 5 ธันวาคม 2550 ถนนแจ้งวัฒนะ แขวงทุ่งสองห้อง เขตหลักสี่ กรุงเทพมหานคร 10210

หลักสูตรวิศวกรรมศาสตรมหาบัณฑิต สาขาวิชาเทคโนโลยีสารสนเทศ ( M.S.IT .) ร่วมกับ สาขาวิชาระบบสารสนเทศคอมพิวเตอร์ (M.S.CIS.) มหาวิทยาลัยศรีปทุม จัดสัมมนาวิชาการ SPU ICT FORUM 2010 ในหัวข้อ “สร้างโรดแม็พวิถีชีวิตบนเครือข่ายสังคมออนไลน์ (Create a Strategic Social Networks Roadmap for Life)” ขึ้น ในวัน พฤหัสบดี ที่ 10 มิ.ย.2553 เวลา 08.30-12.00 น. ณ ห้อง 5-901 อาคาร 5 มหาวิทยาลัยศรีปทุม โดยมี รศ.ดร ครรชิต มาลัยวงศ์ ราชบัณฑิต สาขาวิชาคอมพิวเตอร์ เป็นประธาน งานนี้ผู้ที่สนใจในเครือข่ายสังคมหรือ Social Networking พลาดไม่ได้ครับ สำรองที่นั่งโดยไม่มีค่าใช้จ่ายได้ที่ http://msit.spu.ac.th/msit13

บังเอิญได้รวบรวมหลายความคิดเห็นและผมได้จับเป็นประเด็นได้เป็น 7 ข้อหลักๆ ซึ่งคนทั่วไปมักให้เหตุผลและความเห็นเกี่ยวกับ Suriyan และ Linux Desktop ซึ่งผมเองก็อยากทราบว่าชุมชนหรือผู้ที่ได้ทดสองใช้ Suriyan มาอย่างน้อยก็ 2 รุ่นแล้วมีความคิดเห็นอย่างไร ตอบตามความคิดเห็นของท่านครับ ไม่ต้องเอาใจทีมงาน ThaiOpenSource.org ครับ ปิดรับการโหวดปลายเดือนหน้าครับ

ปิดรับการโหวดปลายเดือนหน้าครับ สำหรับผลการโหวดอย่างไม่เป็นทางการดูต่อข้างล่างครับ ;)