ขั้นเวลา ในการที่จะเล่าเรื่องราวเกี่ยวกับเส้นทางเดินสู่โลกโอเพนซอร์สของผมก่อน ด้วยเรื่องการของนำซอฟต์แวร์โอเพนซอร์ส มาใช้งาน แล้วผมรุ้สึกขัดๆ ใจ อย่างบอกไม่ถูก ในฐานะของคนพัฒนาโอเพนซอร์ส และทำบริษัทที่ทำธุรกิจในการให้บริการเกี่ยวกับโอเพนซอร์ส  พอดีวันนี้ ได้มีโอกาสเปิดไปดูเว็บไซต์ของ สำนักงานส่งเสริมอุตสาหกรรมซอฟต์แวร์แห่งชาติ หรือ ซิป้า แล้วเกิดสะดุดตาจาก URL ของเว็บไซต์ ว่านี่น่าจะเป็น CMS ที่เราคุ้นเคย  โดยเมื่อหลายปีก่อนแรกเริ่มของเว็บไซต์ เท่าที่ผมจำได้  ซิป้า ใช้ Mambo ในการขับเคลื่อนเว็บไซต์ ซึ่งทำโดยเจ้าหน้าที่ภายในขององค์กรเอง เพราะไม่ได้จัดสรรงบประมาณในการจัดทำเว็บไซต์ไว้  ยุคต่อมาก็มีการปรับปรุงเว็บไซต์ใหม่ จะด้วยการจัดจ้างหรือความร่วมมือจากบริษัทคู่ค้าหรืออย่างไรก็ไม่อาจทราบได้ แต่เว็บใหม่พัฒนาด้วย JSP ซึ่งก็เหมือนทำออกมาแล้วก็ยังไม่สมบูรณ์หรือเสร็จดี (เมื่อครั้งที่ผมเคยเปิดดูในตอนนั้น)  มาวันนี้เว็บไซต์เปลี่ยนไปครับ ใช้ Joomla !  ในการขับเคลื่อนเว็บไซต์โดยบริษัทเอกชนแห่งหนึ่งได้นำ Joomla! มาใช้ในการ Implement และมีการพัฒนาและหยิบเอา Extensions มาติดตั้งเพิ่มเติมเพื่อให้ตรงกับ Requirement ของผู้ว่าจ้าง (ผมไม่คิดว่างานเยอะขนาดนี้จะเป็นงานฟรี ครับ ซึ่งผมอาจจะผิดก็ได้)   อ่านมาถึงตรงนี้หลายท่านคงสงสัยว่า แล้วมันผิดปกติตรงไหน? เดี๋ยวผมจะลงลึกในแต่ละประเด็นว่าสิ่งไหนทำได้ สิ่งไหนไม่ควรทำ ซึ่งจะโทษผู้รับทำฝ่ายเดียวก็คงพูดได้ไม่เต็มที่นัก  เพราะไม่มีข้อมูลของทั้งสองฝ่าย ในการเขียน Blog เกี่ยวกับประเด็นนี้ผมไม่ได้มีเจตนามุ่งร้ายใดๆ  เพียงแต่ต้องการยกมาเป็น เคสในการเรียนรู้ ให้คนท่านอื่นๆ หรือบริษัทอื่นๆ ที่จะก้าวเข้ามาสู่วงจรของโอเพนซอร์สอย่างสร้างสรรค์

เอาละมาดูกรณีตัวอย่าง ในการหยิบเอา Joomla! มาใช้งาน ซึ่งผมเองพัฒนาอยู่ในโปรเจคนี้มาตั้งแต่ต้น ปัจจุบันเป็นกรรมการบอร์ดของ  OpenSource Matters Inc. เป็นหน่วยงานที่เป็นเจ้าของเครื่องหมายการค้าคำว่า Joomla! และดูแลบริหารโครงการนี้

เทมเพลต หรือ หยิบมาตั้งต้นพัฒนาใหม่  – Template or Fork

2Fellows CMS

2Fellows CMS 1.0?

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

ในไฟล์ Code นี้ปกติแล้วการใช้งานบนเว็บไซต์ ผู้ที่เข้ามาใช้งานเว็บไซต์ก็ไม่สามารถเข้าถึงหรือเปิดไฟล์นี้ได้อยู่แล้ว และถ้าหากเราไม่ได้พัฒนาอะไรเพิ่มเติมเข้าไปในไฟล์นั้นๆ ก็ไม่ควรไปแก้ไขเปลี่ยนแปลงตรง Header ของไฟล์  (ไม่ได้หมายถึงกรณี Fork Project)

ตัวอย่างเช่น
/**
* @version $Id: globals.php 7424 2007-05-17 15:56:10Z robs $
* @package Joomla
* @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* Joomla! is free software and parts of it may contain or be derived from the
* GNU General Public License or other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

จากรูปตัวอย่าง เป็นหน้า Login เข้าหน้า Admin ของเว็บไซต์ ท่านเห็นแล้วเข้าใจว่ามันคือ ระบบอะไรครับ 2Fellows CMS 1.0 ?

มันคือ CMS ตัวใหม่ ที่ชื่อ 2Fellows?  หรือ แค่ทำ Template มาครอบเพื่อสวมรอย?

คำถามเหล่านี้ ผมฟันธงตอบไม่ได้ครับคงต้องเป็นคนทำตอบ แต่ผมบอกได้ว่า CMS ตัวนี้คืออะไร  เว็บ SIPA ใช้ CMS Joomla เวอร์ชั่น JIE (Joomla International Edition) พื้นฐานคือ Joomla 1.0.x โดยผมร่วมกับเพื่อนทีมประเทศมองโกเลีย ทำจูมล่า 1.0 ให้เป็น UTF-8 มีไฟล์ภาษา รองรับทั้งด้านหน้าและด้านของผู้ดูแลระบบ ซึ่งในเวอร์ชั่นปกติไม่รองรับ

JIE Admin

Joomla International Edition Admin Screen

ลองเทียบดูรูปด้านบนนี้ กับ รูป Admin ที่ชื่อ 2fellows CMS 1.0 ดูว่าเปลี่ยนง่ายแค่ไหน?  ในกรณีนี้ สมมุติว่า เป็น requirement ของผู้จ้างว่าไม่ต้องการให้แสดงโลโก้ Joomla! ตรง header หน้านี้ สิ่งที่ทำได้ ก็คือทำ Template สำหรับ Admin ขึ้นมาให้เขาใหม่ จะใส่โลโก้ลูกค้า หรือจะลดคำเหลือเพียง “ส่วนบริหารจัดการเว็บไซต์”  โดยไม่ต้องแสดงโลโก้ Joomla! ก็ได้ครับ  แต่ในความเป็นจริง เราควรต้องช่วยกันสร้างความเข้าใจให้กับลูกค้ามากกว่า เพราะถ้าคุณยอมรับว่าใช้ CMS ที่เป็น Open Source ไม่ได้ก็ควรจ่ายในราคาของการเขียนหรือพัฒนาโค้ดทั้งหมดใหม่เอง  บริษัทที่หยิบมาใช้ Implement งานให้ลูกค้าก็เช่นกัน ก็ควรต้องทำให้ถูกต้องอย่ามักง่่าย รู้จักเคารพให้เครดิต กับคนพัฒนาด้วยเช่นกัน

กรณีนี้ที่ผมสนใจเป็นพิเศษเพราะว่า ซิป้า คือหน่วยงานที่ต้องทำหน้าที่ในการส่งเสริมอุตสาหกรรมซอฟต์แวร์ หากไม่มีความเข้าใจ ที่ถูกต้องเกี่ยวกับซอฟต์แวร์แล้ว จะไปส่งเสริมได้อย่างไร  ผมเองก็เคยเจอ Request แบบนี้เช่นกันเมื่อไม่นานมานี่เอง เป็นโปรเจคที่บริษัทอื่นรับงานมาแล้ว Sub มาให้เราทำอีกที เรานึงต้องเก็บปากเก็บคำ ทำเฉพาะ Scope ที่เราเขาให้เราทำเท่านั้น หน้า Admin ก็ทำ Template ขึ้นมาโดยไม่แสดงโลโก้ Joomla ทำให้เป็นหน้าตาบริหารจัดการระบบของเขาโดยเฉพาะ  ไม่ได้ทำให้เขา เข้าใจผิดว่านี่คือ CMS ตัวใหม่  หากท่านกังวลกับหน้านี้ไม่อยากให้ใครรู้ มันก็มีวิธีป้องกัน Directory ได้อีกที่ ไม่ให้คนอื่นสามารถเข้ามาเห็นหน้านี้ได้

ทำความเข้าใจเรื่องขอบเขตในสัญญาอนุญาตให้ดี อย่ามักง่าย!

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

มาเถอะครับมาช่วยกันสร้างวัฒนธรรมการใช้งานโอเพนซอร์สที่ถูกต้องกันดีกว่า
ใช้ซอฟต์แวร์โอเพนซอร์ส อย่างถูกต้อง ถูกลิขสิทธิ์ไม่ต้องหลบๆ ซ่อนๆ
แต่จงอายที่จะใช้ ซอฟต์แวร์ละเมิดลิขสิทธิ์