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 กราฟิกปก/แผ่น ไว้ให้ท่านเรียบร้อยแล้ว ท่านสามารถดาวน์โหลดไฟล์ เขียนแผ่น พิมพ์แผ่นและพิมพ์ปก แจกเพื่อนๆ ได้เลย

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

ผมได้มีโอกาสไปร่วมงาน 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 ในชุมชน เพื่อสร้างสรรค์สิ่งที่ดีให้กับชุมชนและซอฟต์แวร์โอเพนซอร์สที่เขาใช้ต่อไป ซึ่งคงจะเป็นสิ่งที่หวังได้ในตอนนี้

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 ของคุณเป็นแล้วหรือยัง?

เขียนโปรแกรมแบบ GUI ด้วย Python + Glade

ปกติผมเขียน 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 ข้างบนไปพลางๆ ก่อนละกันครับ 🙂

ซอฟต์แวร์ผิดกฏหมายในต่างจังหวัด

เมื่อเสาร์อาทิตย์ที่ผ่านมาได้มีโอกาสไปต่างจังหวัด สาเหตุที่ไปก็เพราะว่าต้องไปซื้อเครื่องคอมพิวเตอร์2 เครื่อง เพื่อใช้ในร้านอินเทอร์เน็ตเล็กๆ หลังจากนับเงินในกระเป๋าและคิดว่าจะได้ซื้อเครื่องได้สัก 2 เครื่องพร้อมโต๊ะและเครื่องสำรองไฟ ก็คิดว่าราคาใช้ได้เลยทีเดียว เพียง 1 หมื่นต้นๆ หลังจากที่ทางร้านประกอบเครื่องเสร็จ ผมเดินขึ้นไปดู Windows XP Pro ที่ IT City เพราะลดราคาเหลืออยู่ 5 พันนิดๆ และราคาก็ไม่เกินงบมากนัก หลังจากที่เช็คราคารวมเครื่องพร้อม Windows แล้วก็เดินกลับมาที่ร้านเพื่อดูสภาพเครื่องว่าเป็นอย่างไรบ้าง ปรากฏว่าทางร้าน clone ฮาร์ดดิสพร้อมโปรแกรมสารพัดให้เรียบร้อยซะแล้ว หลังจากที่สอบถามทางร้านก็ได้ข้อมูลว่าทางร้านไม่ได้เป็นตัวแทนจำหน่าย Windows ที่มีลิขสิทธิ์ถูกต้อง และการ clone ฮาร์สดิสก็ทำกันอยู่แล้วทั้งห้าง เป็นเรื่องปกติ!
เผลอคุยกับแป๊ป เดียวช่างที่ร้านก็ pack กล่องเสร็จเรียบร้อยซะงั้น เอาเป็นว่าได้ Windows เถื่อนพร้อมโปรแกรมเถื่อน ราคาเครื่องรวมซอฟต์แวร์ก็ตก 10,350 บาท ถ้าซื้อ Windows XP Pro ที่ IT City เพิ่มอีกราคาเป็น 16,250 บาท ซึ่งราคาก็ไม่ได้เกินงบไปสักเท่าไรนัก เลยลองแอบถามว่า Windows ที่ติดตั้งให้เป็น Windows อะไร? ช่างตอบคำถามด้วยน้ำเสียงหนักแน่นว่า “รุ่น Master Phong” รุ่นนี้ไม่มีปัญหาใช้งานได้ดี ตอนนี้เครื่อง 2 เครื่องที่ได้มาก็เอาไปไว้ที่ร้านอินเทอร์เน็ตเล็กๆ เรียบร้อยแล้ว แต่ยังใช้อินเตอร์เน็ตไม่ได้เพราะไม่มีโทรศัพท์ พี่พนักงาน TOT ที่ทำหน้าที่บริการเรื่องโทรศัพท์กลับมาถามว่ามีเครื่องพร้อมแล้วหรือยัง? เพราะจะได้ทำเรื่องเดินสายโทรศัพท์พร้อม ADSL 3 Mbps มาให้ เลยได้แต่ตอบกลับไปว่าได้เครื่องมา 2 เครื่องแถมโปรแกรมอีกเพียบ พี่พนักงานพูดด้วยความเป็นห่วงกลัวจะโดนจับเรื่องลิขสิทธิ์ผิดกฏหมาย เลยอาสาจะมาติดตั้ง Linux TLE ให้ เอาเป็นว่าวันนี้น่าจะได้เดินเรื่องสายโทรศัพท์ และมีคนมาติด Linux TLE ให้ด้วยดีใจจัง 🙂 ว่าแต่ว่าใครเคยทำร้านอินเตอร์เน็ตที่มีเครื่องให้บริการ 2 เครื่องบ้าง? กลับมาคิดตัวเลขกันใหม่ ถ้าต่อรองราคาเครื่องจาก 10,350 เหลือ 10,000 ได้ก็คงจะดี เลขสวยกลมดิ๊ก แถมมีคนมาติด Linux TLE ให้ด้วย ลดรายจ่ายเรื่องเครื่องไปได้เยอะ เอาไปจ่ายค่าไฟกับค่า ADSL รายเดือนได้สบายๆ
เอาเป็นว่างานนี้พบปัญหาเรื่องซอฟต์แวร์ผิดกฏหมาย ในต่างจังหวัดซึ่งก็ไม่น่าแปลกใจนัก เพราะที่กรุงเทพเองก็มีตั้งหลายแหล่งอยากให้ร้านค้าหลายแห่งลองมาตรึกตรองดู โจรขโมยซอฟต์แวร์มาแคร็ก,แฮ็กก็เป็นซอฟต์แวร์โจร ซื้อเครื่องที่มีซอฟต์แวร์ผิดกฏหมายก็เหมือนกับซื้อของโจร หากใช้ซอฟต์แวร์โจรก็เหมือนกับรับของโจร แคมเปนจ์นี้ก็เข้าท่าดีแฮะ

เรื่องยุ่งๆ ของ Package Manager

ผมพยายามหา 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 ผมยังไม่ได้ดูเลยครับว่าเป็นยังไง ใครพอจะทราบก้อบอกเล่าแลกเปลี่ยนความรู้กันได้ครับ 🙂