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

สำหรับปรัชญาของ Free Software สิ่งที่ RMS ต้องการ คือ การสร้างสังคมในอุดมคติ แต่สังคมนั้นไม่ได้อยู่ในสังคมจริงๆ ที่เราใช้ชีวิตกันอยู่นี้ สังคมที่ว่านี้คือ "ชุมชนนักพัฒนาซอฟต์แวร์" นั่นเอง การสร้างสรรค์ผลงานทางด้านซอฟต์แวร์แล้วให้กับสังคมหรือชุมชนใช้ แก้ไข ปรับปรุง และแจกจ่ายได้ กลายเป็นต้นแบบวิธีการพัฒนาซอฟต์แวร์ในรูปแบบใหม่ๆ หลากหลายตัว ไม่ว่าจะเป็น Apache, SAMBA, Linux รวมไปถึง Distribution อื่นๆ และซอฟต์แวร์โอเพนซอร์สที่เราใช้กันอยู่ จากชุมชนผู้พัฒนาที่ต้องการพัฒนาซอฟต์แวร์ออกมาให้ผู้อื่นได้มีโอกาสใช้ อย่างเสรี กลายเป็นประโยชน์มหาศาลในด้านการพัฒนาซอฟต์แวร์ใหม่ ซึ่งหมายรวมไปถึง นวตกรรมใหม่ๆ ด้วยเช่นกัน จากช่วงเวลาที่ผ่านมา 26 ปีมานี้ เราเห็นการเติบโตทางด้านซอฟต์แวร์พุ่งสูงขึ้นตลอดเกือบทุกปี และการยอมรับการใช้งานซอฟต์แวร์โอเพนซอร์สขององค์กรก็เพิ่มขึ้นทุกๆ ปี ในต่างประเทศการศึกษาสิ่งใหม่เป็นเรื่องที่ไม่ได้แตกต่างจาการเรียนรู้เรื่องง่ายๆ อย่างเป็นไข้ก็กินยาลดไข้ ในหลายประเทศใช้กลวิธีในการศึกษาเพื่อให้ประชากรมีสังคมการเรียนรู้อยู่ตลอดเวลา เป็น "มนุษย์คู่มือ" เป็น "หนอนหนังสือ" นั่นหมายความว่าการศึกษาสิ่งใหม่ๆ จะทำได้ง่ายมากขึ้น

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

บุคคลจะเริ่มมีชีวิตที่แท้จริงก็ต่อเมื่อเขาสามารถดำ เนินชีวิตโดยหลุดพ้นจากตัวเอง
A person starts to live when he can live outside himself.

มีเพียงชีวิตที่ทำเพื่อคนอื่นเท่านั้นที่มีคุณค่าแก่ การมีชีวิต
Only a life lived for others is a life worth while.

มีสองทางในการใช้ชีวิต คือทางหนึ่งไม่มีอะไรที่มหัศจรรย์เลย กับอีกทาง ทุกสิ่งล้วนเป็นความมหัศจรรย์
There are only two ways to live your life. One is as though nothing is a miracle. The other is as though everything is a miracle.

คุณค่าของมนุษย์อยู่กับสิ่งที่เขาให้ แต่ไม่ใช่ความสามารถในการแสวงหา
The value of a man resides in what he gives and not in what he is capable or receiving.

สิ่งที่เรารู้มีเพียง 1 ใน 1000 ของ 1%ของสิ่งที่ธรรมชาติเผยให้เราพบเห็น
We still do not know one thousandth of one percent of what nature has revealed to us.

มีความเป็นไปได้ที่จะอธิบายสรรพสิ่งด้วยวิทยาศาสตร์ แต่มันจะมีความหมายอะไรเหมือนกับที่ท่านอธิบายบทเพลง ซิมโฟนีของบีโธเฟนว่าเป็นความแปรเปลี่ยนของคลื่นเสีย ง
It would be possible to describe everything scientifically, but it would make no sense; it would be without meaning, as if you described a Beethoven symphony as a variation of wave pressure.

กฎ 3 ประการของการทำงาน ได้แก่ ภายใต้ความสลับซับซ้อนมีความเรียบง่ายแฝงอยู่ ภายใต้ความขัดแย้งไม่สอดคล้อง มีความเป็นเอกภาพแฝงอยู่ และท่ามกลางปัญหา อุปสรรคความยากลำบาก มีโอกาสและช่องทางออกใหม่ๆแฝงเร้นอยู่ด้วย
Three rules of work: Out of clutter find simplicity; from discord find harmony; in the middle of difficulty lies opportunity.

ข้าพเจ้าไม่เคยสอนลูกศิษย์ ข้าพเจ้าเพียงแต่สร้างบรรยากาศและสภาพแวดล้อมให้พวกเ ขาสามารถเรียนรู้ได้
I never teach my pupils; I only attempt to provide the conditions in which they can learn.

สิ่งที่เข้าใจได้ยากมากในโลกคือ -โลกเป็นสิ่งที่เราเข้าใจได้.
The most incomprehensible thing about the world is
that it is comprehensible

 

ช่วง 2-3 เดือนมีนี้มีข่าวดีในเรื่องการการลดราคาซอฟต์แวร์หลายตัวทั้งไทยและเทศ ที่บอกว่าทั้งไทยและเทศหลายคนอาจคิดว่า "คิดหรือว่าเขาจะลดจริง" จากที่สืบราคามาลดจริงๆ ครับที่เป็นเพียงแคมเปนจ์เริ่มแรกเพื่อกระตุ้นการซื้อซอฟต์แวร์ที่ถูกกฏหมาย และการหันมาใช้ซอฟต์แวร์ของคนไทยบ้าง มหกรรมลดราคาซอฟต์แวร์ตั้งแต่ 30-50% โดยหวังว่าจะช่วยลดการละเมิดลิขสิทธิ์ลดลง 20% และจะสามารถลดการละเมิดได้ถึง 50% ในอีก 2 ปีข้างหน้า นั่นมายความว่าตารางลำดับประเทศที่ละเมิดลิขสิทธิ์จากอันดับต้นๆ จะต่ำลงไปเรื่อยๆ ถือเป็นเรื่องที่ดีครับ การเจรจากับผู้ผลิตซอฟต์แวร์นำโดย SIPA ให้ผู้ผลิตซอฟต์แวร์เพิ่มจำนวนซอฟต์แวร์และเพิ่มสิทธิพิเศษให้มากขึ้นจะส่งผลดีกับผู้ใช้ที่จะมีโอกาส "เอื้อมถึง" ซอฟต์แวร์ที่ถูกกฏหมายเสียที สำหรับแคมเปนจ์นี้มีถึงวันที่ 30 มิถุนายนนี้เท่านั้นครับ รายละเอียดต่างๆ ติดตามได้ที่เว็บไซต์ SIPA ได้

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

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

กรณีศึกษาที่ได้พบเห็นกับซอฟต์แวร์โอเพนซอร์สตัวหนึ่ง ทุกวันนี้เมื่อมีเวอร์ชั่นใหม่ออกเขาจะขายในราคา 7USD ก็ราวๆ 250 บาท จนกระทั่งเวอร์ชั่นถัดไปถึงจะให้ดาวน์โหลดได้ฟรีไม่เสียค่าใช้จ่าย กรณีที่สมัครสมาชิกรายปีจะได้สิทธิพิเศษอื่นๆ อีกมากมาย ปรากฏว่าคนไทยนี่แหละสั่งซื้อซอฟต์แวร์นี้ทุกเวอร์ชั่นแล้ว ปล่อยให้ดาวน์โหลดกันในชุมชนผ่านทางเว็บบอร์ดและบิทโทเรน แล้วอย่างนี้ราคาจะเป็นกุญแจหลักของการละเมิดอยู่หรือไม่? หรือเพราะเพียง "อยากได้ของฟรี" เท่านั้นที่ทำให้เกิดการละเมิดลิขสิทธิ์ มีเพื่อนผมหลายคนที่ทำงานกับ Microsoft และ IBM มองว่าการละเมิดลิขสิทธิ์เกิดได้หลายแบบ ซึ่งต่างฝ่ายต่างก็ส่งเสริมการละเมิดลิขสิทธิ์ ไม่ได้แก้ไขอะไร การปลูกจิตสำนึกในการเคารพสิทธิ ของบ้านเราน้อยมาก ต่างคนต่างก็โทษกันไปมา แล้วก็แก้ไขอะไรกันไม่ได้

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

ในแง่มุมของโอเพนซอร์สเอง ซอฟต์แวร์โอเพนซอร์สไม่ใช่ซอฟต์แวร์ทางเลือก แต่เป็นซอฟตแวร์ธรรมดาๆ นี่แหละที่ชุมชนและนักพัฒนาอนุญาติให้เอาไปใช้งานได้อย่างเสรี แก้ไข ปรับปรุง และแจกจ่ายได้ อย่างอิสระ ไม่ใช่ซอฟต์แวร์ทางเลือกหรือเผื่อเลือกแต่อย่างใด การที่จะบอกว่าซอฟต์แวร์โอเพนซอร์สเป็นซอฟต์แวร์ "ทางเลือก" คงเป็นเพราะไม่มี "สิทธิ์เอื้อม" ซอฟต์แวร์ตัวอื่น แลัวมาเลือกใช้ซอฟต์แวร์โอเพนซอร์สเสียมากกว่า แล้วบอกว่า "ซอฟต์แวร์โอเพนซอร์สมันเป็นแค่ซอฟต์แวร์ทางเลือก" คงไม่มี "ซอฟต์แวร์ทางเลือก" เพื่อให้แทนกันได้ทุกตัวหรอกครับ อันนี้เป็นเรื่องที่น่าขบขันของหลายๆ คนที่อยู่ในชุมชนโอเพนซอร์ส เอาละ หากมองว่า ซอฟต์แวร์โอเพนซอร์สเป็นซอฟต์แวร์ตัวนึงละ คนจะใช้ซอฟต์แวร์อะไรก็เป็นสิทธิ์ของคุณเอง จะเลือกใช้ Microsft Windows, Jet Audio หรือจะเลือกใช้ Linux, Amarok ก็เป็นเรื่องของคุณเอง เพียงแต่ให้คุณทำตัวให้ถูกกฏหมาย ไม่ละเมิดลิขสิทธิ์หรือสัญญาอนุญาติของซอฟต์แวร์นั้นๆ ก็พอ เขียนมายืดยาวทั้งหมดก็เป็นเรื่องของคุณธรรม จริยธรรม และ ทัศนคติ เสียมากกว่า การลดการละเมิดลิขสิทธิ์ทำได้ด้วยตัวคุณเอง ไม่ใช่ใครอื่นไกล

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

เอาล่ะมีโรงพิมพ์สมัยใหม่มีบริการ POD หรือ Print On Demand ก็เป็นทางเลือกหนึ่งที่นักเขียนอิสระสามารถสร้างสรรผลงานหนังสือทำมือสุดสวยได้เช่นกัน ซึ่งคุณสามารถเลือกกระดาษ เลือกรูปเล่ม ฯลฯ นั่นทำให้การจัดพิมพ์หนังสือสักเล่มไม่ใช่เรื่องง่ายอีกต่อไป ว่าแต่ว่ามันเกี่ยวข้องกับโอเพนซอร์สหรือซอฟต์แวร์โอเพนซอร์สอย่างไร? ทุกวันนี้เรายังต้องเดินไปร้านเหล่านี้กันมั๊ยครับ? นั่นคือคำถาม คำตอบง่ายๆ ไม่ต้องก็ได้ ส่ง e-mail หรือแผ่น CD ไปให้ก็ได้ แล้วก็รอตรวจงาน ก็แค่นั้น อืมม… แหมรู้สึกจะง่ายไปหน่อย เดี๋ยวจะลองยกตัวอย่างโรงพิมพ์หนึ่งที่ผมเองชอบมาก แต่ไม่ได้ใช้บริการสักที โรงพิมพ์นี้มีบริการแบบ POD ด้วยครับ ซึ่งแนวคิดง่ายๆ คือสมัครสมาชิกบนเว็บไซต์ ส่งไฟล์ผ่านหน้าเว็บโดยไฟล์ที่ส่งเป็นไฟล์ Microsoft Word, PDF, Zip ก็ได้ ระบบจะส่งไฟล์ พร้อม Memo ถึงสำนักพิมพ์ว่าจะให้ทำอะไรกับไฟล์เหล่านี้ สำนักพิมพ์จะเห็นงานของลูกค้าแต่ละคนเป็นถังๆ แยกกันไป ไม่ปนกัน ทีนี้ก็ขึ้นอยู่กับเจ้าหน้าที่แล้วล่ะว่า เจ้าหน้าที่คนไหนว่างก็จัดการงานลูกค้าที่ส่งไฟล์เข้ามาได้เลย ไม่ว่าจะสั่งพิมพ์ จัดทำรูปเล่ม จัดเลย์เอาท์หน้า ทำต้นฉบับ ฯลฯ แต่ที่น่าตื่นเต้นมากกว่านั้น ทางโรงพิมพ์สุดเจ๋งนี้สนับสนุนให้ลูกค้าส่งไฟล์ในรูปแบบ PDF ครับ ซึ่งเป็น PDF ที่สั่งพิมพ์ผ่านโปรแกรมที่ชื่อว่า GhostScript ซึ่งเจ้า GhostScript นี้จะทำหน้าที่เป็นตัวจัดการเอกสารจาก Microsoft Word, WordPad ให้เป็นเอกสาร PDF ได้อย่างง่ายดาย และใช้งานเจ้า PDF นี้ไปจัดการ Layout ในโปรแกรมอื่นๆ ต่อได้เลย เจ๋งมั๊ย เอาล่ะ หากนักเขียนอิสระชอบจัดรูปแบบหน้าหนังสือของตัวเองแล้วล่ะก็สามารถพิมพ์ออกมาเป็น PDF แล้วอัพโหลดไปให้ทางโรงพิมพ์ได้เลย ทีนี้ก็เหลือเพียงหน้าปก การเลือกคุณภาพของกระดาษ และรูปแบบรูปเล่ม ที่จะต้องติดต่อกับโรงพิมพ์ให้ออกแบบและจัดพิมพ์ให้

หากมาพิจารณากระบวนการคร่าวๆ ที่ยกตัวอย่างในธุรกิจบริการการพิมพ์แบบ POD คุณสามารถใช้ซอฟต์แวร์โอเพนซอร์สได้เลย ไม่ว่าจะเป็นเว็บไซต์ (CMS) อย่างมากก็ 5 หน้า, ระบบส่งไฟล์เอกสาร (Uploader), โปรแกรมแปลงเอกสารเป็น PS/PDF (Ghostscript), โปรแกรมตกแต่งภาพ (GIMP และ Inkscape), โปรแกรมจัดการสิ่งพิมพ์ (Scribus), โปรแกรมจัดการเอกสาร (OpenOffice.Org) แค่นี้เอง หลังจากนี้ก็คงต้องพึ่งเครื่องพิมพ์แบบออฟเซ็ต เครื่องพับกระดาษ เครื่องเข้าเล่ม ฯลฯ หากมามองการลดต้นทุนในธุรกิจสิ่งพิมพ์แบบ POD นี้แล้ว คุณก็สามารถทำธุรกิจแบบนี้ได้ง่ายๆ ทีนี้คุณก็สามารถรับงานพิมพ์ตั้งแต่ใบปลิวเงินด่วน ไปจนถึง backdrop ขนาดใหญ่ๆ ได้เช่นกัน หากคุณมีเจ้าหน้าที่มากพอ อาจมีบริการจัดส่งถึงที่ก็ดีไปอีกแบบครับ สำหรับชื่อโรงพิมพ์ที่ยกตัวอย่างไม่ขอเอ่ยนามนะครับ แต่โรงพิมพ์นี้ก็เป็นโรงพิมพ์แรกที่ให้บริการลูกค้าได้ครบวงจร และให้โอกาสนักเขียนอิสระได้มีหนังสือเล่มสวยวางบนแผงขายหนังสือ :)

มหาวิทยาลัยเทคโนโลยีสุรนารี จัดสัมมนาเชิงปฏิบัติการการใช้งานระบบสอบออนไลน์เคลื่อนที่ (SUT-MOTS: SUT Mobile Online Test system) ณ ห้องคอมพิวเตอร์ ชั้นสอง อาคารสุรพัฒน์ 1 เทคโนธานี มหาวิทยาลัยเทคโนโลยีสุรนารีวัตถุประสงค์ เพื่อเผยแพร่ความรู้เกี่ยวกับระบบการสอบเคลื่อนที่ สำหรับครู-อาจารย์เพื่อนำไปใช้สำหรับการวัดผลแบบออนไลน์ สร้างเครือข่ายความร่วมมือทางวิชาการระหว่างมหาวิทยาลัยและสถาน ศึกษาอื่นๆ อีกทั้งยังเป็นการเผยแพร่การใช้ระบบปฏิบัติการและโปรแกรมที่เป็นโอเพ่นซอร์สให้มากขึ้น

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

กลุ่มเป้าหมายผู้เข้าร่วมการอบรมเป็น ครู อาจารย์  หรือเจ้าหน้าที่จากสถาบันการศึกษาทั่วประเทศ ที่มีความพร้อมในการสอบแบบออนไลน์ จำนวน 55 คน ต่อรุ่น ผู้เข้าร่วมอบรมไม่ต้องเสียค่าใช้จ่ายใดๆ  มีการแจกแผ่นโปรแกรมท่านละ 1 ชุด เลี้ยงอาหารว่างและอาหารกลางวัน สนใจติดต่อสอบถาม และลงทะเบียนสำรองที่นั่งได้ที่ http://linux.sut.ac.th/training/trainmots/

จากคราวที่แล้วไดเขียนถึงเรื่องการสร้าง HA Storage ด้วย GlusterFS ไปแล้ว ในครั้งที่แล้วเรานำเอาพื้นที่จาก 2 Server มาทำ Replication กัน ซึ่งก็จะได้พื้นที่เท่าเดิมเพราะเสียพื้นที่ในการทำ Mirroring และ Replication ครั้งนี้จะมารวมพื้นที่จาก Server 4 เครื่องเพื่อสร้าง Distributed Storage กันในแบบจริงๆ จังๆ ครับ และที่สำคัญใน How-to นี้ไม่ได้ทำ HA หรือ fault tolerance นะครับ หากต้องการทำ HA และ Replication ให้อ่านจากบทความในตอนที่แล้ว ก่อนลงมือทำมาทำความเข้าใจกันก่อน ครั้งนี้จะเป็นการนำเอา พื้นที่ Storage ทั้ง 4 Server มารวมกัน โดยนัยคือการแบ่งไฟล์ออกเป็นส่วนๆ กระจายเก็บลงไปใน Server ในเครือข่าย ซึ่งถ้าเครื่องใดเครื่องหนึ่งตาย ข้อมูลก็จะมีไม่ครบครับ สำหรับงานจริงควรใช้เน็ตเวิร์คขนาด 10 GigE ขึ้นไป ใช้ฮาร์ดแวร์แบบ x86_64 servers พร้อม SATA-II RAID และ Infiniband HBA. จึงจะได้ประสิทธิภาพสูง :)

มาดูโครงสร้างกัน เรามีเครื่อง Server ทั้งหมด 4 เครื่อง และเครื่อง Client 1 เครื่องดังนี้

Server 1 IP Address : 172.16.16.10 Domain Name : server1.example.com
Server 2 IP Address : 172.16.16.11 Domain Name : server2.example.com
Server 3 IP Address : 172.16.16.12 Domain Name : server3.example.com
Server 4 IP Address : 172.16.16.13 Domain Name : server4.example.com
Client 1 IP Address : 172.16.16.14 Domain Name : client1.example.com

เครื่องทุกเครื่องเชื่อมต่อกันในเครือข่ายอ้างอิงผ่าน hostname/domain name ได้ถูกต้อง Linux Distribution ที่ใช้เป็น Ubuntu 10.10 ใครใช้ Debian ก็จะสามารถใช้วิธีการเดียวกันได้ครับ :) เมื่อเตรียมทุกอย่างครบแล้วลงมากันได้!

เครื่อง Server 1-4 ให้ติดตั้ง GlusterFS Server ดังนี้

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

sudo -s

จากนั้นติดตั้ง glusterfs-server ดังนี้

aptitude install glusterfs-server

จากนั้นสร้างไดเรคทอรีสำหรับเก็บข้อมูลดังนี้

mkdir /data/export
mkdir /data/export-ns

กรณีที่แบ่งพาร์ทิชั่นสำหรับเก็บข้อมูลให้ mout เป็น /data แล้วสร้างไดเรคทอรี /export แบะ /export-ns ขึ้นมา จากนั้นแก้ไข config ในส่วน glusterfs deamon ในไฟล์ /etc/glusterfs/glusterfsd.vol ดังนี้

volume posix
type storage/posix
option directory /data/export
end-volume

volume locks
type features/locks
subvolumes posix
end-volume

volume brick
type performance/io-threads
option thread-count 8
subvolumes locks
end-volume

volume server
type protocol/server
option transport-type tcp/server
option auth.addr.brick.allow 172.16.*
subvolumes brick
end-volume

ในส่วน option auth.addr.brick.allow 172.16.* หมายถึงให้เครื่องที่อยู่ในเครือข่าย 172.16.* สามารถ mount มายังเครื่องนี้ได้ เมื่อตั้งค่าได้แล้วให้ start services ของ glusterfs ดังนี้

/etc/init.d/glusterfs-server start

เมื่อติดตั้ง GlusterFS ได้ครบทุกเครื่องแล้ว มาดูต่อที่เครื่อง Client เพื่อใช้ในการ mount ใช้งานพื้นที่ Storage กันครับ เริ่มต้นด้วการติดตั้ง glusterfs srever และ gluster client ดังนี้

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

sudo -s

จากนั้นติดตั้ง package ดังนี้

aptitude install glusterfs-client glusterfs-server

สร้างไดเรดทอรีที่กำหนดจุด mount ดังนี้

mkdir /mnt/glusterfs

แก้ไขไฟล์ /etc/glusterfs/glusterfs.vol เพื่อกำหนดรูปแบบในการทำงานของ glusterfs client ดังนี้

volume remote1
type protocol/client
option transport-type tcp/client
option remote-host server1.example.com
option remote-subvolume brick
end-volume

volume remote2
type protocol/client
option transport-type tcp/client
option remote-host server2.example.com
option remote-subvolume brick
end-volume

volume remote3
type protocol/client
option transport-type tcp/client
option remote-host server3.example.com
option remote-subvolume brick
end-volume

volume remote4
type protocol/client
option transport-type tcp/client
option remote-host server4.example.com
option remote-subvolume brick
end-volume

volume stripe
type cluster/stripe
option block-size 1MB
subvolumes remote1 remote2 remote3 remote4
end-volume

volume writebehind
type performance/write-behind
option window-size 1MB
subvolumes stripe
end-volume

volume cache
type performance/io-cache
option cache-size 512MB
subvolumes writebehind
end-volume

เมื่อได้ config แล้วเราสามารถ mount เจ้า GlusterFS ได้ 2 วิธีครับ คือ

glusterfs -f /etc/glusterfs/glusterfs.vol /mnt/glusterfs

หรือ

mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs

เมื่อ mount ได้แล้วจะพบว่า เรามีพื้นที่เพิ่มเข้ามาในระบบดังนี้

/etc/glusterfs/glusterfs.vol 103G 3.2G 95G 4% /mnt/glusterfs

จาก config ข้างต้นผมมีพื้นที่เอาไว้สำหรับ GlusterFS อยู่ 26GB ทั้ง 4 Server ดังนั้นผมลัพท์การรวมพื้นที่จึงเป็น 26GB x 4

ทีนี้ให้ลองทดสอบ สร้างไฟล์เปล่าๆ ขึ้นมาสัก 1 ไฟล์ใหญ่ๆ ดังนี้

dd if=/dev/zero of=/mnt/glusterfs/test.img bs=1024k count=1000

จากคำสั่งข้างต้นเราสร้างไฟล์ขนาด 1 GB ขึ้นมา ให้ดุที่เครื่อง Server 1, 2, 3 และ 4 จะพบว่ามีไฟล์ test.img ในทุกเครื่องแต่ขนาดไฟล์ไม่เท่ากัน ซึ่งขึ้นอยู่กับการ strip ของ GlusterFS เอง ในครั้งหน้าเราจะมาใช้งาน Gluster Platform กันครับ ;)

ผมได้มีโอกาสได้ไปเรียน Hadoop กับทีมงาน ThaiGird ที่ SiPA แต่ไม่ได้เรียนจบคอร์สเพราะมีเวลาน้อยมากในการเข้าฟังบรรยายและทำ lab สุดท้ายก็ได้เพียงแนวความคิดของ Hadoop ซึ่งมีบางอย่างที่น่าสนใจ ซึ่งไม่ใช่เครื่อง HPC ซะทีเดียว แต่เป็นเรื่อง Distributed Storage ที่ใช้ HDFS ซึ่งสร้างความประทับใจมากๆ แนวคิดของ HDFS ง่ายๆ คือการสร้าง Storage ขนาดใหญ่โดยใช้ Storage ที่ติดอยู่กับเครื่องโหนดหลายๆ เครื่อง เอามารวมกัน ซึ่งคุณสามารถสร้าง Storage ขนาด PetaByte ได้สบายๆ แต่ HDFS ใช้กับ Hadoop เท่านั้น! เอามาใช้งานแบบปกติๆ ไม่ได้ จากแนวคิดเรื่อง Distributed Storage ที่ได้มาจาก Hadoop File System ทำให้นึกขึ้นได้ว่า เราสามารถสร้าง Distributed Storage แบบ HDFS ได้ง่ายๆ เช่นกัน โดยใช้ GlusterFS เจ้า GlusterFS นี้ช่วยให้เราสร้าง Storage ผ่านจากเครือข่ายเน็ตเวิร์คได้ง่ายๆ และใช้แนวคิดเดียวกันกับ HDFS แต่เราสามารถเรียกใช้งานได้เหมือนกันการใช้งาน Storage ปกติ และนั่นก็หมายความว่าคุณสามารถเอาเครื่องคอมพิวเตอร์มาต่อๆ กันเพื่อสร้าง Stroage ขนาดใหญ่แบบ PetaByte ได้สบายๆ How-To นี้จะพูดถึงวิธีการติดตั้ง GlusterFS บนเครื่อง 2 เครื่องพร้อมทำ HA (High-Availability) โดยใช้คุณสมบัติ Automatic File Replication ของ GlusterFS เอง มาลงมือกันเลย

ก่อนลงมือทำมาทำความเข้าใจกันก่อน เราต้องมีเครื่อง Server อย่างน้อย 2 เครื่องในการทำ Replication หรือที่เรียกกันง่ายๆ ว่า Mirroring และเครื่อง Client อย่างน้อย 1 เครื่องสำหรับเรียกใช้งาน Storage สำหรับงานจริงควรใช้เน็ตเวิร์กขนาด 10 GigE ขึ้นไปจึงจะได้ประสิทธิภาพสูง เข้าใจกันแล้วมาลงมือทำกันเลย

Server 1 ของผมมี IP Address : 172.16.16.11 Domain Name : server1.example.com
Server 2 ของผมมี IP Address : 172.16.16.12 Domain Name : server2.example.com
Client 1 ของผมมี IP Address : 172.16.16.13 Domain Name : client1.example.com

เครื่องทุกเครื่องเชื่อมต่อกันในเครือข่ายอ้างอิงผ่าน hostname/domain name ได้ถูกต้อง Linux Distribution ที่ใช้เป็น Ubuntu 10.10 ใครใช้ Debian ก็จะสามารถใช้วิธีการเดียวกันได้ครับ :) เมื่อเตรียมทุกอย่างครบแล้วลงมากันได้!

ติดตั้ง GlusterFS Server ที่เครื่อง Server1 และ Server 2 ดังนี้

กระโดดเป็น root ก่อนครับ

sudo -s

จากนั้นติดตั้ง package ที่ชื่อ glusterfs-server ดังนี้

aptitude install glusterfs-server

จากนั้นสร้างไดเรคทอรีสำหรับเก็บข้อมูลผ่านเครือข่าย ดังนี้

mkdir -p /data/export
mkdir -p /data/export-ns

กรณีที่แบ่งพาร์ทิชั่นสำหรับเก็บข้อมูลให้ mout เป็น /data แล้วสร้างไดเรคทอรี /export แบะ /export-ns ขึ้นมา จากนั้นแก้ไข config ในส่วน glusterfs deamon ในไฟล์ /etc/glusterfs/glusterfsd.vol ดังนี้

volume posix
type storage/posix
option directory /data/export
end-volume

volume locks
type features/locks
subvolumes posix
end-volume

volume brick
type performance/io-threads
option thread-count 8
subvolumes locks
end-volume

volume server
type protocol/server
option transport-type tcp
option auth.addr.brick.allow 172.16.*
subvolumes brick
end-volume

ในส่วน option auth.addr.brick.allow 172.16.* หมายถึงให้เครื่องที่อยู่ในเครือข่าย 172.16.* สามารถ mount มายังเครื่องนี้ได้ เมื่อตั้งค่าได้แล้วให้ start services ของ glusterfs ดังนี้

/etc/init.d/glusterfs-server start

เมื่อติดตั้ง GlusterFS ทั้ง 2 เครื่องเรียบร้อยแล้ว ให้คุณกลับมาที่เครื่อง Client ของเราเพื่อทำการ mouth file system แบบ GlusterFS กัน เริ่มต้นด้วการติดตั้ง glusterfs srever และ gluster client ดังนี้

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

sudo -s

จากนั้นติดตั้ง package ดังนี้

aptitude install glusterfs-client glusterfs-server

สร้างไดเรดทอรีที่กำหนดจุด mount ดังนี้

mkdir /mnt/glusterfs

แก้ไขไฟล์ /etc/glusterfs/glusterfs.vol เพื่อกำหนดรูปแบบในการทำงานของ glusterfs client ดังนี้

volume remote1
type protocol/client
option transport-type tcp
option remote-host server1.example.com
option remote-subvolume brick
end-volume

volume remote2
type protocol/client
option transport-type tcp
option remote-host server2.example.com
option remote-subvolume brick
end-volume

volume replicate
type cluster/replicate
subvolumes remote1 remote2
end-volume

volume writebehind
type performance/write-behind
option window-size 1MB
subvolumes replicate
end-volume

volume cache
type performance/io-cache
option cache-size 512MB
subvolumes writebehind
end-volume

เมื่อได้ config แล้วเราสามารถ mount เจ้า GlusterFS ได้ 2 วิธีครับ คือ

glusterfs -f /etc/glusterfs/glusterfs.vol /mnt/glusterfs

หรือ

mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs

หากต้องการให้ mount ตั้งแต่ตอนเครื่อง boot ให้เพิ่มลงใน /etc/fstab ดังนี้

/etc/glusterfs/glusterfs.vol /mnt/glusterfs glusterfs defaults 0 0

เมื่อ mount ได้แล้วจะพบว่า เรามีพื้นที่เพิ่มเข้ามาในระบบดังนี้

/etc/glusterfs/glusterfs.vol 18G 848M 16G 5% /mnt/glusterfs

จาก config ข้างต้นผมมีพื้นที่เอาไว้สำหรับ GlusterFS อยู่ 18GB ทั้ง 2 Server แต่พื้นที่ที่เราจะได้นั้นไม่ได้เป็น 18GB x 2 แต่จะได้เพียง 18GB เท่านั้นเพราะเราทำ Mirroring พร้อม Replication ครับ :)

ทีนี้ให้ลองทดสอบ สร้างไฟล์เปล่าๆ ขึ้นมาสัก 3 ไฟล์ดังนี้

touch /mnt/glusterfs/test1
touch /mnt/glusterfs/test2
touch /mnt/glusterfs/test3

แล้วกลับไปดูที่เครื่อง Server 1 และ Server 2 เราจะพบไฟล์ test1, test2 และ test3 อยู่ใน /data/export ให้ทดสอบกรณี Replication เมื่อเครื่องใดเครื่องหนึ่งตาย ให้คุณปิดเครื่อง Server 2 แล้ว เขียนไฟล์เปล่าๆ ลงไปเพิ่ม

touch /mnt/glusterfs/test4
rm -rf /mnt/glusterfs/test1
rm -rf /mnt/glusterfs/test2

จากนั้นกลับไปดูเครื่อง Server 1 จะพบไฟล์ test3 และ test4 เท่านั้น จากนั้นให้ Start Server 2 ขึ้นมา แล้วดูไฟล์ไดเรคทอรี /data/export อีกรอบจะพบไฟล์เดิมอยู่ยังไม่มีการ replication ให้คุณเรียกดูไฟล์ใน /mnt/glusterfs อีกครั้ง แล้วกลับไปดูที่ Server 2 ก็จะพบว่ามีไฟล์เท่ากันแล้ว คือ test3 และ test4 :) ในครั้งหน้าเราจะมารวมพื้นที่ (Strip) เพื่อสร้าง Storage ขนาดใหญ่กันครับ :)

ตำรวจเข้าตรวจค้นองค์กรธุรกิจ 10 แห่ง พบใช้ซอฟต์แวร์ละเมิดลิขสิทธิ์รวมมูลค่า 11.9 ล้านบาท องค์กรธุรกิจที่ถูกตรวจค้นมีสินทรัพย์รวม 117 ล้านบาท และยอดขายทั้งปีรวม 740 ล้านบาท เมื่อวันที่ 10 พฤศจิกายน ที่ผ่านมา มีรายงานว่า จากความพยายามครั้งล่าสุดในการลดอัตราการละเมิดลิขสิทธิ์ซอฟต์แวร์ในประเทศ ไทยดำเนินไปได้หนึ่งสัปดาห์แล้ว โดยเจ้าหน้าที่ตำรวจประสบผลสำเร็จเป็นอย่างดีในการเข้าตรวจค้นองค์กรธุรกิจ ที่ต้องสงสัยว่าละเมิดลิขสิทธิ์ซอฟต์แวร์ ในการบังคับใช้กฎหมายลิขสิทธิ์ไทยระลอกแรกนี้ เจ้าหน้าที่ตำรวจจากกองบังคับการปราบปรามการและกระทำความผิดเกี่ยวกับ อาชญากรรมทางเศรษฐกิจ (บก. ปอศ.) เข้าตรวจค้นองค์ธุรกิจจำนวน 10 แห่ง และพบซอฟต์แวร์ละเมิดลิขสิทธิ์รวมมูลค่า 11.9 ล้านบาท

“นับเป็นการเริ่มต้นที่ดีแต่เป็นเพียงการเริ่มต้นเท่านั้น การเข้าตรวจค้นจะยังคงดำเนินต่อไปจนถึงสิ้นปีนี้” พ.ต.อ. ชัยณรงค์ เจริญไชยเนาว์ รองผู้บังคับการ บก. ปอศ. กล่าว “เราประกาศไว้ว่าจะกวาดล้างการละเมิดลิขสิทธิ์ซอฟต์แวร์ทั่วประเทศในวันที่ 1 พฤศจิกายนที่ผ่านมา และเราจะทำตามนั้น” องค์กรธุรกิจแต่ละแห่งที่ถูกตรวจค้นในสัปดาห์ที่ผ่านมาเป็นบริษัทเอกชนไทย สินทรัพย์รวมของบริษัทเหล่านี้มีมูลค่าเกือบ 717 ล้านบาท และยอดขายรวมในปีพ.ศ. 2552 ของบริษัทเหล่านี้สูงถึง 740 ล้านบาท

“บริษัทเหล่านี้ มีฐานะทางการเงินที่แข็งแกร่งพอที่จะปฏิบัติให้เป็นไปตามกฎหมายลิขสิทธิ์ไทย ได้” พ.ต.อ. ชัยณรงค์ กล่าวในการเข้าตรวจค้น เจ้าหน้าที่ตำรวจพบมีการใช้ซอฟต์แวร์ละเมิดลิขสิทธิ์จำนวน 409 โปรแกรม ทั้งโปรแกรมของออโต้เดสค์ (Autodesk) ไมโครซอฟต์ (Microsoft) และไทยซอฟต์แวร์ เอ็นเตอร์ไพรส์ (Thai Software Enterprise) ในพีซีจำนวน 69 เครื่อง

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

“ความพยายามลดการละเมิดลิขสิทธิ์ซอฟต์แวร์ของเราในปีนี้ ดำเนินไปอย่างต่อเนื่องและสม่ำเสมอ เราเข้าตรวจค้นองค์กรธุรกิจต้องสงสัยหลายแห่งทุกสัปดาห์” พ.ต.อ. ชัยณรงค์ กล่าว “เมื่อเข้าสู่ไตรมาสสุดท้ายของปี เราต้องเร่งปฏิบัติงาน เนื่องจากเรามีหน้าที่โดยตรงในการบังคับใช้กฎหมายลิขสิทธิ์ไทยเพื่อประโยชน์ ด้านการค้าระหว่างประเทศ และเพื่อยกระดับภาพลักษณ์ของไทย” อัตราการละเมิดลิขสิทธิ์ซอฟต์แวร์บนพีซีในประเทศไทยปัจจุบันอยู่ที่ร้อยละ 75 และมีแนวโน้มลดลงอย่างต่อเนื่องจากการบังคับใช้กฎหมายอย่างต่อเนื่อง โดยเข้าตรวจค้นองค์กรธุรกิจต้องสงสัยทุกสัปดาห์ ผู้มีอำนาจของกรรมการขององค์กรธุรกิจที่ละเมิดลิขสิทธิ์ต้องรับโทษตามกฎหมาย ทั้งโทษปรับและโทษจำตลอดทั้งปีนี้ เจ้าหน้าที่ตำรวจตรวจพบการละเมิดลิขสิทธิ์ซอฟต์แวร์ในองค์กรธุรกิจ มูลค่าทั้งสิ้นเกือบ 400 ล้านบาท

เจ้าหน้าที่ตำรวจย้ำว่า การเข้าตรวจค้นการละเมิดลิขสิทธิ์ซอฟต์แวร์มุ่งเป้าไปที่องค์กรธุรกิจ เท่านั้น การกล่าวอ้างว่ามีการเข้าตรวจค้นโรงเรียน สถาบัน และองค์กรสาธารณะต่างๆ นั้นไม่เป็นความจริง

ที่มา – opensource2say

ผมพยายามหา package manager เจ๋งๆ มาใช้งานทั้งตัว package และตัวโปรแกรมที่ทำหน้าที่ sync และ update package บนเครื่อง server และเครื่อง desktop ได้ซึ่งตอนนี้ผมจับ 4 distro หลักคือ openSolaris, Debian, Ubuntu และ Fedora เอาเป็นว่ายุบรวมเหลือเพียง 2 package manager ละกันครับ ซึ่งลักษณะการ fetch package คล้ายคลึงกันคือ การสร้าง database repo (meta data ของ package ที่มีอยู่ใน repo server ที่เราเลือกเอาไว้) อยู่ในเครื่องเรา กับไม่ได้สร้าง database repo ในเครื่องเรา วิธีการสังเกตง่ายๆ คือ การค้นหาหรือติดตั้งโปรแกรมที่เคยติดตั้งไปแล้ว (กรณีที่เก็บ package เป็น archive ไว้) package manager จะติดตั้งหรือค้าหาได้ทันที ไม่จำเป็นต้องเชื่อมต่อ internet เพื่อเข้าไป fetch ของ database repository อีกรอบหนึ่ง

ซึ่ง aptitude เป็น package manager ที่ชอบเก็บ database repo ข้อดีก้อคือกรณีเกิดการ broken database บน repo server เราสามารถใช้ repo database ในเครื่องเราสืบค้นข้อมูล package ได้ ซึ่งแตกต่างจาก yum ซึ่งพบใน fedora และ delivered distro ของ fedora เจ้าโปรแกรม yum เป็นส่วนเสริมในการจัดการ package rpm ซึ่ง yum ไม่เก็บข้อมูล repo database ในเครื่องเรา เวลาติดตั้งหรือค้นหา package ต้อง fetch หาจาก repo server ซึ่งค่อนข้างจะมีน้อยและกระจัดกระจาย ด้วยการจัดการ repo database แบบนี้ทำให้ yum ก้อมีข้อดีอย่างหนึ่งคือเราจะได้ข้อมูล package ที่สดใหม่อยู่ตลอดเวลา และรู้ว่าอะไรควรจะอัพเดทหรือไม่อัพเดท แต่ข้อเสียคือมันต้องใช้ internet คลอดเวลาค้นหา package ที่เราจำชื่อไม่ค่อยจะได้ อันนี้ผมเป็นบ่อยเพราะผมชอบค้นใน repo มากกว่าการนั่งเดาชื่อ package หรือชื่อโปรแกรมที่ผมจะติดตั้ง ซึ่งกรณีเกิด broken repo database บน repo server ก้อเตรียมทำใจได้เลยครับ เพราะจะ fetch อะไรไม่ได้และก้อต้องจำใจใช้ โปรแกรมเก่าๆ ต่อไป

เอาล่ะแล้วจะมี package manager ที่ผมชอบบ้างมั๊ย เท่าที่ลองเล่น หลายๆ distro รวมถึง opemSolaris ด้วยแล้วก้อมีจุดดีจุดเด่นแตกต่างกัน ด้วยลักษณะการจัดการ repo server และข้อมูล meta data ที่เก็บด้วย แต่ผมมีโครงสร้าง meta data ที่น่าสนใจอยุ่ตัวหนึ่งลองมาดูกันมั๊ยครับ

<dict>
    <key>bundleIdentifier</key>
    <string>com.nullriver.iphone.Launcher</string>
    <key>name</key>
    <string>Launcher</string>
    <key>version</key>
    <string>0.2</string>
    <key>location</key>
    <string>http://iphone.nullriver.com/zips/Launcher-0.2.zip</string>
    <key>size</key>
    <string>14581</string>
    <key>description</key>
    <string>A simple third party application launcher.</string>
    <key>scripts</key>
    <dict>
        <key>preflight</key>
        <array>
            <array>
                <string>If</string>
                <array>
                    <array>
                        <string>InstalledPackage</string>
                        <string>com.kroo.mobilelauncher</string>
                    </array>
                </array>
                <array>
                    <array>
                        <string>AbortOperation</string>
                        <string>Please uninstall MobileLauncher first.</string>
                    </array>
                </array>
            </array>
        </array>
        <key>install</key>
        <array>
            <array>
                <string>CopyPath</string>
                <string>Launcher.app</string>
                <string>/Applications/Launcher.app</string>
            </array>
            <array>
                <string>CopyPath</string>
                <string>DisplayOrder.plist</string>
                <string>/System/Library/CoreServices/SpringBoard.app/DisplayOrder.plist</string>
            </array>
        </array>
        <key>uninstall</key>
        <array>
            <array>
                <string>RemovePath</string>
                <string>/Applications/Launcher.app</string>
            </array>
        </array>
    </dict>
</dict>

ข้างบนเป็นกรณีศึกษาของผมคือ plist ของ Nullriver Installer บน iPhone นะครับ เจ้า Nullriver Installer นี้ฮิตมากเพราะทำงานคล้ายๆ กับ synaptic คือติดโปรแกรมผ่านทาง internet ได้อ้อถ้ามีเครื่องใน office ก้อติดผ่าน wifi ได้ครับ เจ๋งมั๊ย และที่สำคัญไฟล์ package ที่เอามาติดตั้งไม่จำเป็นต้องอยู่ที่เครื่อง repository ก้อได้ (ตัวหนา) คือเครื่อง repo server ที่อยู่ใน office เป็นเพียง meta data (repo database) เท่านั้น จะติดตั้งก้อวิ่งไป download package เพื่อเอามาติดตั้งอีกที แต่ Nullriver Installer ไม่ได้ทำงานแค่นี้มันยังสามารถเก็บ repo database ในเครื่อง iPhone ด้วย นั่นหมายความว่าคุณสามารถ browse repo ได้โดยไม่ต้องเชื่อมต่อ internet อันนี้สิครับเจ๋งจริง แต่ด้วยความที่โครงสร้างของตัว repo server และ package list (plist) สามารถสร้างและแก้ไขได้ง่าย ทำให้เกิดธุรกิจทำ repo ของ iPhone โดยใช้โครงสร้าง repo ของ Nullriver เยอะมาก ปัญหาที่ตามมาคือ package ซ้ำซ้อนกันไงครับ เอาล่ะปัญหานี้กำลังถูกแก้ไขโดยโครงการ AppTapp ของ Nullriver นั่นแหละครับ ซึ่งอาจแฝงการตลาดเข้าไปด้วยก้อได้อันนี้ผมไม่ทราบนะครับ :) ว่าจะมีหรือเปล่า แต่ที่แน่นอนคือ Nullriver Installer หรือ AppTpp ในอนาคตเป็นที่น่าจับตามองครับ สำหรับ package manager บน android ผมยังไม่ได้ดูเลยครับว่าเป็นยังไง ใครพอจะทราบก้อบอกเล่าแลกเปลี่ยนความรู้กันได้ครับ :)

 

ปกติผมเขียน GUI โปรแกรมบน .NET แต่พอมาเขียนโปรแกรมบน Linux ต้องบังคับตัวเองให้เขียน C# บน Mono ซึ่งก้อไม่ได้ต่างจาก C# สักเท่าไร แต่ Widget มันเป็น gtk นี่ล่ะสิ เขียน Mono gtk ก้อเล่นเอามึนไปเหมือนกัน อีกอย่าง IDE เจ๋งๆ อย่าง Microsoft Vistual Studio ไม่มีใน Linux หวังพึ่ง Mono Dev ไม่ค่อยจะได้เท่าไร อ้อผมเคยเขียน Kylix มาพักนึงแต่ก้อตายสนิท ก้อเลยลองหาภาษาที่ศึกษาได้เร็วๆ และไม่ต้องติดตั้งอะไรเพิ่มมากมายก้อสามารถเอาโปรแกรมไป run ได้เลย ทำให้ได้มาจับ python ดูบ้าง ศึกษา python พื้นฐาน จาก codenone ไปพลางๆ แล้วก้อมาหัดเขียน PyGtk ต่อโดยออกแบบ GUI โดยใช้ Glade ซึ่งทำให้เรา ออกแบบหน้าจอโปรแกรมได้เร็วดี และเอา Python เรียกใช้ GUI จาก glade ได้เลย โดยใช้ PyGtk นี่แหละครับ เมื่อวันก่อนเจอ Video ใน Google เห็นว่าเข้าท่าดีเอามาแปะได้ได้ศึกษากัน

** ผมไม่ได้เป็นแฟน Python นะครับ แต่หาทางเขียนโปรแกรมแบบ GUI บน Linux ไม่ได้สักที สงสัย Python + PyGtk + Glade คงเป็นทางรอดของผมล่ะ เอาไว้ให้ผมศึกษามากกว่านี้ก่อนแล้วจะมาทะยอยเล่าให้ฟังอีกทีว่าเขียน GUI Application บน Linux แบบง่ายๆ ทำกันยังไง ตอนนี้ก้อดู Google Video ข้างบนไปพลางๆ ก่อนละกันครับ :)

 

ผมเคยพัฒนาซอฟต์แวร์ประเภท 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 ของคุณเป็นแล้วหรือยัง?