Theppitak's blog

My personal blog.

30 กันยายน 2547

ระบำมยุราภิรมย์

ในบรรดาเพลงไทยเดิมที่ฟังแล้วสนุก ก็คงมีเพลงชุดระบำสัตว์ของครูมนตรี ตราโมช อยู่ในอันดับต้นๆ อย่างเช่นเพลง “อัศวลีลา” หรือม้าย่องที่กลายเป็นเพลงประจำตัวของ “แก้วหน้าม้า” ของเด็กๆ ไปแล้ว หรือเพลง “ระบำมยุราภิรมย์” ที่ถูกนำมาเล่นใหม่เสียอลังการ ถ้าใครยังนึกไม่ออก ถ้าบอกว่าคือเพลงโหมโรงละครฟอร์มยักษ์ “สี่แผ่นดิน” ที่เข้าฉายทางช่อง 9 เมื่อช่วงปีกลายต่อต้นปีนี้ ก็คงร้องอ๋อ เพราะผมเองก็เพิ่งรู้จักชื่อเพลงนี้ก็ตอนช่วงนั้นแหละ เป็นเพลงที่ฟังดูสง่างามมาก ได้ยินเพลงนี้บนเครื่องบินการบินไทยตอนขึ้นเครื่องไปต่างประเทศแล้ว รู้สึกรักบ้านเกิดเมืองนอนขึ้นอีกเป็นกอง แต่เพลงที่ฟังแล้วสง่างามที่สุด ผมยกให้เพลงประจำเรื่อง “ลูกทาส” ที่ผมเองยังไม่รู้จักชื่อ ยิ่งเมื่อละครสี่แผ่นดินเอามาบรรเลงช่วงที่บรรยายถึงพระมหากษัตริย์แล้ว รู้สึกได้ถึง “His/Her Majesty” จริงๆ ใครรู้ชื่อช่วยบอกผมหน่อย เพลงนี้เป็นทำนองของเพลงธรรมศาสตร์เพลงหนึ่งด้วย (ใครบางคนในบอร์ด pantip เคยบอกว่าชื่อไทยเดิมคือ “ต้นวรเชษฐ์” แต่ผมว่าไม่ใช่ เพราะเท่าที่ค้นมา เพลงต้นวรเชษฐ์ หรือชมแสงจันทร์ เป็นทำนองที่ สายัณห์ สัญญา เอามาร้องเป็นเพลง “กินอะไรถึงสวย” ต่างหาก คนละอารมณ์กันเลย)

อารัมภบทมาเสียยืดยาว ตั้งใจจะมาบ่น ว่าทำไมเดี๋ยวนี้รายการทีวีต่างๆ ที่นำเสนอเรื่องไทยๆ ชอบเอาเพลงมยุราภิรมย์นี้มาใช้กันเกร่อจัง บางรายการพยายามจูนจังหวะเนื้อหา ให้ลงท้ายพร้อมกับเพลง เพื่อจะได้ใช้ท่อนจบที่อลังการจบเรื่องเท่านั้น แต่ก่อนหน้านั้น จังหวะเพลงที่เร็ว เอามาเล่นเป็น background ของการบรรยายเนื้อหาที่พยายามใช้คำละเมียดละไม มันทำให้ background ฟังดูลุกลี้ลุกลน ไม่ได้เข้ากับเนื้อหาเลย ทำอย่างกับว่า เพลงไทยมีเพลงนี้อยู่เพลงเดียวอย่างนั้นแหละ ถ้าเอาเพลง “ค้างคาวกินกล้วย” ถึงจะเป็นเพลงเร็ว แต่ดนตรีมันเบา ยังพอเป็นเพลงคลอได้ดีกว่าเป็นไหนๆ หรือถ้าจะเอาเพลงนี้จริงๆ ก็น่าจะเลือกเอาแต่ท่อนแรกๆ ที่ยังจังหวะช้าอยู่ หรือถ้ามีความรู้เพลงไทย ก็อาจจะเลือกเพลงอื่นได้เหมาะสมยิ่งขึ้น ไม่ใช่เอาเพลงร็อคเพลงมาร์ชมาคลอคนเจียนใบตองแกะสลักผลไม้แบบนี้

28 กันยายน 2547

Lao Pango

กิจธุระของครอบครัวยังไม่จบ.. ยิ่งเป็นวันหยุด ครอบครัวก็ยิ่งต้องการเวลาจากเรามากขึ้น สุดสัปดาห์ที่ผ่านมาเลยทำได้แค่รีลีส thailatex 0.3.3 เท่านั้น (เขียนไฟล์วันอาทิตย์ commit วันจันทร์)

วันจันทร์ รีบฉกฉวยช่วงเวลาทำงานมานั่ง hack pango ภาษาลาว ตามที่เพื่อนชาวลาวติดต่อเข้ามา ก็ดีเหมือนกัน จะได้ถือโอกาส generalize มอดูลไทยตามที่เคยคิดไว้ตั้งแต่ตอนที่คุยกันใน gtk-i18n mailing list เมื่อหลายปีก่อนนู้น ว่าจะออกแบบเผื่อภาษาลาวด้วย แต่ยังไม่ได้ทำเสียที

ภาษาลาวนั้น ไม่ได้มีมาตรฐานของชาติเป็นอันหนึ่งอันเดียวกัน ในวินโดวส์เอง ก็ใช้ implementation หลากหลาย ตามแต่โปรแกรมเมอร์จะคิด ทำให้มีปัญหาในการแลกเปลี่ยนข้อมูลพอสมควร เท่าที่ไปเห็นมา ส่วนมากจะใช้การแก้ฟอนต์ตรงตำแหน่งอักขระภาษาอังกฤษ ให้แสดงตัวอักษรลาวที่ตรงกันในแป้นพิมพ์ เวลาเปลี่ยนภาษา ก็เปลี่ยนฟอนต์เอา ดังนั้น ข้อมูลที่เก็บจริงจึงเป็นข้อมูลภาษาอังกฤษ และต้องใช้ Word สร้างเอกสารเท่านั้น ไม่มี plain text

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

ในขั้นแรกที่ผ่านมา Laonux ได้ซ่อมแซม bug เล็กน้อยใน Qt ที่ทำให้การแสดงผลภาษาลาวเพี้ยน และแปลข้อความต่างๆ ใน KDE เป็นภาษาลาว จนสามารถใช้ KDE เป็นเดสก์ทอปหลัก สำหรับเชื่อมต่อกับอินเทอร์เน็ตไร้สายในหมู่บ้าน ล่าสุด ตามที่ได้คุยกับหัวหน้าโครงการ Laonux ได้เริ่มมองมาที่ GNOME บ้างแล้ว

เนื่องจากภาษาลาวใช้ Unicode + OpenType เป็นเทคโนโลยีหลัก การทำ pango module ง่ายๆ ที่เรียกใช้ OpenType ก็ดูจะทำงานได้ (ใช้ฟอนต์ Saysettha OT):

Lao text screenshot

แต่เพื่อใช้ประโยชน์จากความคล้ายคลึงของภาษา ก็เลยคิดว่าจะเริ่มจาก generalize มอดูลไทย แล้วเพิ่มภาษาลาว โดยภาษาลาวอาจได้ใช้การวิเคราะห์ cluster จากกลไก วทท ของไทยด้วย แต่ทั้งนี้ ต้องปรึกษากับเจ้าของภาษาอีกทีในรายละเอียด

25 กันยายน 2547

FOSS in Thailand

เมื่อวานวุ่นวายกับกิจธุระในครอบครัวนิดหน่อย เลยไม่ได้ทำอะไรมากกับการโค้ดหรือดูแลระบบ นอกจากการรีลีส Pango-LibThai 0.1.3 (สำหรับคนที่เพิ่งได้ยินชื่อนี้เป็นครั้งแรก Pango-LibThai เป็นการเชื่อมฟังก์ชันการวาดข้อความและตัดคำไทยใน libthai เข้ากับ Pango text rendering engine หลักของ GNOME/GTK+ โดยทำเป็น third-party plug-in สามารถใช้แทน Thai module ที่อยู่ใน Pango core ได้ โดยจะได้ความสามารถเรื่องการตัดคำเพิ่มเข้ามา)

วันนี้อยากจะ blog เกี่ยวกับแนวคิดโอเพนซอร์สอีกสักครั้ง แนวคิดตามบทความชุด The Cathedral and the Bazaar ของ ESR นั้น อธิบายการทำงานของ “gift culture” ที่สมาชิกของสังคมนี้จะได้รับการยอมรับ ก็ด้วยการ “ให้” และสังคมนี้ก็อาศัยเศรษฐศาสตร์ที่ต่างจากระบบ “แลกเปลี่ยน” ที่เราใช้กันอยู่ในทุนนิยม แต่ความจริงก็คือ เรายังอยู่ในโลกทุนนิยม เวลาถูกใครถามในชีวิตจริง ว่าผมกำลังทำอะไรอยู่ ผมไม่สามารถตอบได้อย่างเต็มภาคภูมิเท่าไร ว่ากำลังทำงาน FOSS แต่จะต้องเลี่ยงไปพูดถึงงานอื่นๆ ที่จุดประสงค์คือเพียงหารายได้มาค้ำจุนงานหลัก คือ FOSS เท่านั้น ทำไมจึงเป็นเช่นนั้น? และถ้านักพัฒนาทั้งหลายต้องเจอแบบผมอย่างนี้ FOSS จะมีวันเติบโตอยู่รอด และได้รับการยอมรับจากสังคมไทยหรือไม่?

สรุปสักเล็กน้อย กับชุดบทความพลิกโลกของ ESR ที่ยากที่คนในระบบเดิมจะเข้าใจ FOSS ได้โดยไม่อ่าน (บทความของ RMS นั้น แต่ละเรื่องกระตุ้นมโนสำนึกอุดมคติทั้งนั้น แต่คุณจะหลุดพ้นจากโลกแห่งความฝัน แล้วเชื่อมโยงกับโลกแห่งความเป็นจริงได้มากกว่า ด้วยบทความของ ESR อย่างน้อยมันก็ทำให้ Netscape ตัดสินใจเปิดซอร์ส Mozilla ได้ก็แล้วกัน)

ปัจจัยต่อไปนี้ ทำให้แนวคิดโอเพนซอร์สเป็นไปได้ในทางปฏิบัติ:

  • ปรัชญา free software ข้อนี้ขาดไม่ได้ สำนึกในเสรีภาพของการแบ่งปัน ร่วมมือกันอย่างไร้พรมแดนที่เริ่มโดย RMS นั้น คือธงชัยที่ทำให้ทุกคนคิดหาหนทางที่จะบรรลุ ไม่ว่าจะเป็นสายปริยัติอย่าง free software หรือสายปฏิบัติอย่าง open source ก็ตาม
  • โอเพนซอร์ส กระจายภาระการทำงานไปยังคนจำนวนมาก ทำให้แต่ละคนเสียสละเพียงคนละเล็กละน้อยเท่านั้น แต่ผลที่มารวมกันกลับมหาศาล ผมเคยอธิบายให้เด็กคนหนึ่งฟังเมื่อถูกถาม ว่าทำงานโอเพนซอร์สแล้วเอาอะไรกิน ว่า “ผมมีต้นทุนที่ต่ำ ผมสามารถเอาของที่มีอยู่แล้วฟรีๆ มาบริการลูกค้าได้ โดยคิดแต่ค่าแรงกับเขา สำหรับการติดตั้ง และการเพิ่ม feature ตามต้องการ ลูกค้าแฮปปี้ที่ได้บริการที่ถูกลง และสามารถ customize เพิ่มได้ พอผมแก้แล้ว เพื่อลดภาระของตัวเอง (และลูกค้า) ในการ sync กับซอฟต์แวร์รุ่นใหม่ๆ ที่ออกมา ผมก็ผลักภาระนั้นให้กับ repository กลาง ด้วยการ check-in พอรุ่นใหม่ออกมา ก็มี feature ที่ผมต้องการทันที โดยไม่ต้องตาม patch เพิ่ม ขณะเดียวกัน ทุกคนต่างก็ทำเหมือนผม คือผลักดัน patch เล็กๆ ของตัวเองเข้า repository กลาง ผลก็คือ repository กลางก็แฮปปี้ ที่ได้ patch ทั้งหลายเข้ามา ทำให้มีการพัฒนาด้วยอัตราที่สูง และถ้าคนทำเช่นนี้มากพอ อัตราการพัฒนาก็จะสูงกว่าซอฟต์แวร์เชิงพาณิชย์ที่ดูแลโดยคนหยิบมือเดียวด้วยซ้ำ ซึ่งผลก็คือ ทุกคนได้ซอฟต์แวร์ดีๆ ใช้ โดยไม่ต้องออกแรงอะไรมากเลย”
  • โอเพนซอร์ส มีระบบกลั่นกรอง patch ก่อนที่จะ check-in และมีระบบการให้เครดิตผู้ร่วมสมทบ patch ต่างๆ ทำให้สามารถควบคุม patch จำนวนมากไม่ให้ยุ่งเหยิงได้ รวมทั้งระบบการให้เครดิต ก็ทำให้ patch แต่ละ patch มีผู้รับผิดชอบ ผู้ที่ร่วมสมทบก็จะระมัดระวังมากขึ้นที่จะตรวจสอบ เพราะทุกอย่างมีผลต่อชื่อเสียงของตัวเอง (ข้อนี้ สามารถตอบผู้สงสัยเกี่ยวกับหลักวิศวกรรมซอฟต์แวร์ในการบริหารโครงการขนาดใหญ่ได้)
  • โอเพนซอร์ส มีระบบเกมแห่งชื่อเสียง ที่เป็นส่วนสำคัญที่กำหนดทิศทางของการดำเนินไปของสังคม การกระทำของทุกคนที่มีคุณูปการต่อโครงการจะถูกบันทึกไว้ใน ChangeLog หรือไฟล์ CREDITS, README แล้วแต่กรณี การมีส่วนร่วมใน bugzilla หรือ mailing list แต่ละครั้ง ถูกเก็บบันทึกไว้หมด และบางครั้งจะมีการสดุดีในข่าวประกาศ สำหรับคนที่มี contribution มากพอ การบันทึกเครดิตอย่างละเอียดถูกต้องเช่นนี้ ก็เหมือนกับระบบนรก-สวรรค์ในศาสนา ที่ทำให้ทุกคนพยายามทำความดี ละความชั่ว และพยายามทำตัวให้เป็นประโยชน์มากที่สุด โดยพิถีพิถันกับ patch มากขึ้น ไม่โพสต์มั่วซั่ว ไม่ป่วน forum หลีกเลี่ยงการ fork โครงการโดยไม่จำเป็น ทั้งหมดนี้ ถึงจะไม่มีพญามัจจุราชคอยตัดสินความดี-ความชั่ว แต่กฎแห่งกรรมจะทำงานของมันเอง โดยมีสังคมเป็นผู้ตัดสิน นอกจากนี้ ระบบการให้เครดิตยังช่วยกระตุ้นให้เกิดการร่วมสมทบมากขึ้นอีกด้วย โดยเฉพาะสำหรับบริษัทที่ทำธุรกิจ เพราะเครดิตที่ได้ ส่งผลที่ดีต่อการประชาสัมพันธ์บริษัท ส่งเสริมความเชื่อถือของลูกค้าได้เป็นอย่างดี

ปัจจัยเหล่านี้ จะเกิดขึ้นในสังคมไทยได้เพียงไหน? อาจจะขึ้นอยู่กับปัจจัยต่อไปนี้:

  • ความรู้-ความเข้าใจในปรัชญาโอเพนซอร์ส ที่ผ่านมา คนไทยส่วนใหญ่จะมองลินุกซ์เป็นของฟรีเพียงอย่างเดียว ซึ่งส่งผลกระทบหลายอย่าง เช่น
    • ไม่มีความกระตือรือร้นที่จะสร้างชุมชนผู้ใช้-ผู้พัฒนา แต่ยังใช้ลินุกซ์ในกรอบของ freeware หรือซอฟต์แวร์เชิงพาณิชย์เดิมๆ คือผู้ใช้ก็ดาวน์โหลดใช้อย่างเดียว มี bug ก็บ่น-ด่า โดยไม่ได้ตระหนักว่า ตนเองนั้น มีสิทธิที่จะทำได้มากกว่านั้น ด้วยการร่วมรายงาน bug หรือร่วมปรับปรุงถ้าทำได้ ในแนวทางของโอเพนซอร์ส
    • ธุรกิจยังไม่ตระหนักถึงช่องทางการทำงานในแบบโอเพนซอร์ส ยังคงคิดในกรอบเดิมๆ ที่ยังต้องรักษาความลับทางการค้า ไม่คิดที่จะใช้ contribution สร้างภาพพจน์ของบริษัท หรือบางรายไม่แม้แต่คิดว่าลินุกซ์จะช่วยธุรกิจได้อย่างไร ยังคงคิดว่าการพัฒนา FOSS เป็นกิจกรรมการกุศลเพียงอย่างเดียว
  • ความพร้อมของเทคโนโลยี ข้อนี้เป็นปัญหาใหญ่แต่แก้ไขได้ การขาดนักพัฒนาที่มีความรู้จำนวนมากพอ ทำให้อัตราการพัฒนาของ FOSS ในเมืองไทยเชื่องช้ากว่าที่ควร หลายคนมุ่งตำหนิความเชื่องช้านี้ไปที่ประสิทธิภาพการทำงานของภาครัฐ ซึ่งความจริงแล้ว มันไม่ใช่ประเด็นเลย ตามแนวคิดของ ESR นั้น โอเพนซอร์สสามารถเกิดได้ในภาคเอกชนล้วนๆ โดยไม่มีการเอ่ยถึงคำว่า government เลย (grep -i government ดูในบทความทั้ง 5 เรื่อง พบอยู่สี่แห่ง แต่ไม่ได้เกี่ยวกับการแสดงบทบาทโอเพนซอร์สเลย) แต่ทั้งนี้ ก็มีสมมติฐานอยู่ว่าเทคโนโลยีพร้อม แฮ็กเกอร์มีเยอะพอจะแบ่งปันโค้ดคนละนิดละหน่อย จนกลายเป็นมหกรรมได้ ซึ่งตรงนี้เรายังห่างไกล แต่ที่ว่าปัญหานี้แก้ไขได้ ก็เพราะความจริงแล้ว คนไทยมีความสามารถสูงพอ และเอกสารสำหรับเรียนรู้ก็มีอยู่ในเน็ตมากมาย (ถ้าไม่กลัวภาษาอังกฤษกัน) ยิ่งประกอบกับวิธีการทำงานแบบเหยียบไหล่ยักษ์ของโอเพนซอร์สด้วยแล้ว ยิ่งทำให้ลัดขั้นตอนได้เร็ว แต่ติดที่คนไทยขาดประชาคมที่จะร่วมกันทำงานใหญ่เท่านั้น ผมคาดว่า ถ้าปัญหาเรื่องความรู้-ความเข้าใจในปรัชญาโอเพนซอร์สข้างต้นได้รับการแก้ไข และมีความกระตือรือร้นที่จะสร้างชุมชนโอเพนซอร์สอย่างเป็นรูปธรรม จนเกมแห่งชื่อเสียงเริ่มทำงานแล้วล่ะก็ เราจะมีโปรแกรมเมอร์มากพอที่จะทำให้ไทยเป็นฐานโอเพนซอร์สอย่างแท้จริงเลยแหละ โดยที่แต่ละคนก็ไม่ต้องควักเนื้ออย่างที่เป็นอยู่ด้วย แล้วเราจะได้รู้กัน ว่าภาครัฐไม่ควรเป็นแพะรับบาปในเรื่องนี้เลยสักนิด
  • การยอมรับของสังคม อย่างที่ผมบอกไปแต่ต้น ว่าคนทำ FOSS ยังต้องกระมิดกระเมี้ยนทำอยู่ บอกใครต่อใครว่าเขียน FOSS ก็มีแต่จะถามว่า แล้วจะเอาอะไรกิน ซึ่งถ้าสังคมเข้าใจ ว่าโอเพนซอร์สมันกินได้ และเราก็กินให้เขาเห็นเป็นตัวอย่างได้จริงๆ คงมีคนกล้าลงมาทำมากกว่านี้

เดี๋ยวรื้อฟื้นโครงการแปลบทความ ESR ดีกว่า อิๆ

23 กันยายน 2547

ภัยแฝงเร้น

เกรงว่าจะเป็น FUD เลยเขียนลง blog ไม่ไปโพสต์ที่อื่น..

ไปอ่านเจอข่าวนี้จาก LWN ซึ่งอ้างไปถึงบทความใน ZDNet: OpenOffice: A legal Trojan horse--but for whom? โดยเป็นบทวิเคราะห์จากข่าว: Microsoft keeps legal options against free Office alternative กล่าวคือ หลังจากที่ ไมโครซอฟท์หย่าศึกกับ Sun และทำความตกลงร่วมกันไปแล้วเมื่อหลายเดือนก่อน ข้อตกลงระหว่างกันก็ยังไม่เป็นที่เปิดเผย จนกระทั่ง Sun ส่งข้อมูลให้กับคณะกรรมการตลาดหลักทรัพย์ (อเมริกา) จึงได้ทราบกัน ว่าซันกับไมโครซอฟท์ตกลงกัน ว่าจะไม่ฟ้องลูกค้าของกันและกันในเรื่องสิทธิบัตรและทรัพย์สินทางปัญญาเป็นเวลา 10 ปี แต่ไมโครซอฟท์ได้เปิดช่องไว้ ว่าสัญญาไม่ครอบคลุมซอฟต์แวร์โอเพนซอร์สอย่าง OpenOffice.org ซึ่งซันเป็นหัวหอกอยู่

บทวิเคราะห์กล่าวต่อไปว่า เงื่อนไขเช่นนี้ เท่ากับว่าไมโครซอฟท์สามารถฟ้องผู้ใช้ OpenOffice.org ได้ถ้าพบว่ามีการละเมิดทรัพย์สินทางปัญญา แต่จะไม่ฟ้องผู้ใช้ StarOffice ของซันตามสัญญา ซึ่งทั้งสองบริษัทจะได้ประโยชน์ทั้งคู่ เพราะซันเองก็จะได้ผู้ใช้ StarOffice มากขึ้น โดยเฉพาะจากองค์กรที่ใช้ OO.o อยู่ก่อนแล้ว

ทั้งนี้ แม้ซันจะประกาศสนับสนุนโอเพนซอร์ส แต่การหอมแก้มกับไมโครซอฟท์กลับทำให้ทุกคนระแวงซัน เพราะเห็นได้ชัดว่า ทั้งไมโครซอฟท์และซันต่างมีคู่แข่งทางธุรกิจร่วมกัน คือลินุกซ์ โดยมีหัวหอกสำคัญคือ Red Hat และ IBM โดยมี Novell ที่เพิ่งกระโจนลงสู่สนามอีกรายด้วย ยิ่งมีการเปิดเผยข้อตกลงที่ไมโครซอฟท์ได้ถือไพ่ใบสุดท้ายไว้ในมือ ที่แม้จะไม่แสดงเจตนาใดๆ ที่จะใช้ แต่เมื่อถึงคราวจำเป็น ก็สามารถทิ้งไพ่ตายได้ทุกเมื่อ โดยที่ซันก็ยังได้ประโยชน์ด้วยแล้ว ยิ่งทำให้ซันดูน่ากลัวยิ่งขึ้นไปอีก (ผมถึงได้กลัวว่านี่จะกลายเป็น FUD สำหรับผู้ใช้ OO.o)

ผู้ใช้ลินุกซ์ต้องระวัง SCO ฉันใด ผู้ใช้ OO.o ก็ต้องระวังไมโครซอฟท์ฉันนั้น แต่สองรายนี้ รู้ๆ กันอยู่ ว่าสายป่านก็ยาวผิดกันขนาดไหน อย่างไมโครซอฟท์ไม่ใช่ชูวิทย์แน่นอน

อย่างไรก็ดี ซันเองอธิบายว่า ข้อตกลงนี้ไม่มีผลต่อการสนับสนุน OO.o ของซัน ทุกอย่างยังเป็นปกติ

22 กันยายน 2547

GNOME System Tools

เมื่อวานนี้นั่งแฮ็ก pango-libthai ต่ออีกนิด ให้มันจัดการสร้าง glyph ของชุด tis620-[012] กับอักขระนอกชุดเหล่านี้แยกกันให้ชัดเจน เพื่อประกันว่าจะไม่มี hex box ถ้าฟอนต์มี glyph ของอักขระ Unicode ให้ ทดสอบเสร็จแล้ว commit แต่ระหว่างทดสอบเพิ่มเติมก็พบปัญหาใหม่ในฟอนต์ Garuda และ Garuda-Oblique คือมัน shape วรรณยุกต์มั่วไปหมด เหมือนกับว่า charmap ภายในมันเพี้ยน นั่งเดาแล้วเดาอีก ก็ไม่เจอว่าผิดตรงไหน เบื้องต้นสันนิษฐานว่าอาจผิดที่การเซ็ตค่าอะไรใน .sfd หรือไม่ก็ที่ตัว fontforge เอง เพราะกับ Garuda-Bold[Oblique] ไม่มีปัญหา รวมทั้งฟอนต์อื่นๆ ด้วย จึงไม่น่าเกี่ยวกับ pango-libthai

ตรวจสอบหลายอย่างแล้วไม่เจอ ก็เลยเลิก หันไปทำอย่างอื่นก่อน ก็พอดีเจอเมลน้องชาย ที่ทำให้สะดุดคิดเกี่ยวกับวิธี support ผู้ใช้ GNU/Linux

เรื่องของเรื่องคือ ผมลง Debian sid ในเครื่องของน้อง พอเขาเอากลับไปใช้ ก็ปรากฏว่าเข้าเน็ตไม่ได้ เลยเมลมาถาม ผมบอกขั้นตอนไป โดยอิง command line เป็นหลัก ตั้งแต่ ifconfig, route, ping, cat /etc/resolv.conf, ... ปรากฏว่า เขาตอบกลับมาทำนองว่า “ขอบใจว่ะ แต่กูใช้เมนู Networking เซ็ตได้แล้ว” เหอะๆ ทำให้ฉุกคิดถึง ประกาศข่าว ที่ตัวเองเคยเขียนไป เกี่ยวกับ system tools ใน GNOME 2.8 ว่าเราพูดเองว่ามันช่วยผู้ใช้ตอบคำถาม admin ได้ ตอนนี้คงถึงเวลาเอามาใช้จริงแล้วล่ะนะ พอกันทีกับยุคที่แต่ละ distro ต่างมี config tool แยกกัน ทำให้ต้องถามก่อนว่า “คุณใช้ RedHat, Mandrake หรือ Debian?” ก่อนที่จะพูดถึงวิธีการเซ็ตกันต่อ ซึ่งที่สุดแล้ว command line ก็คือวิธีที่ขึ้นกับ distro น้อยที่สุด แต่ตอนนี้คงไม่ใช่แล้ว ตราบใดที่เป็น GNOME เหมือนกัน ก็ใช้วิธีเดียวกันได้

ความจริงแล้ว ผมจำได้ว่าเคยมีการเสนอโครงการทำอะไรคล้ายๆ linuxconf ใน GNOME เพื่อทำให้ลินุกซ์ใช้งานง่ายสำหรับมือใหม่ แต่ได้รับการปฏิเสธ ด้วยเหตุผลว่า ยูนิกซ์และ GNU/Linux distro ต่างๆ ที่ GNOME จะไปรันนั้นมีความหลากหลายเกินไป วิธีที่ดีที่สุดคือ ให้ distro ต่างๆ นั่นแหละ ทำ config tool ที่เหมาะสำหรับ distro ตัวเองแทน ซึ่งผมก็เห็นด้วยนะ

แต่สำหรับธุรกิจของ Ximian (ปัจจุบัน รวมกับ Novell) แล้ว คงจำเป็นต้องทำ config tool ขึ้นมารับแรงกดดันจากผู้ใช้ ซึ่งก็ทำให้เกิด system tool ขึ้นมา จนได้รวมใน GNOME ในที่สุด ปัญหาเรื่องความหลากหลายของระบบนั้น gnome-system-tools แบกรับไว้เต็มที่ โดยมันจะรู้จัก config file และคำสั่งของยูนิกซ์ประเภทต่างๆ ทั้งหมดที่เป็นกลุ่มเป้าหมาย ไม่ว่าจะเป็น FreeBSD, RedHat, Mandrake, Debian, SuSE, Slackware, Gentoo, PLD, Conectiva, Fedora, VINE ฯลฯ แล้วกระจาย backend เพื่อกระทำคำสั่งที่สั่งผ่าน GUI ชุดเดียว ดูแล้วนับเป็นความพยายามที่น่าทึ่งเหมือนกัน (พอๆ กับ libgda ของ gnome-db ที่พยายามติดต่อ database ที่หลากหลายบนดาวเคราะห์ดวงนี้ด้วย interface เดียว)

อย่างไรก็ดี ทีมผู้เขียน gnome-system-tools หมายเหตุบอกไว้ว่า เครื่องมือนี้ เหมาะสำหรับ desktop user เท่านั้น ความสามารถมันคงไม่มากเท่าใช้ tool ของ distro เอง และไม่เหมาะสำหรับการเซ็ตเซิร์ฟเวอร์ (มันก็ควรจะเป็นอย่างนั้นแหละ)

21 กันยายน 2547

Hack Days

อาทิตย์กับจันทร์ที่ผ่านมา พอดีว่าสามารถชะลองานอื่นได้ ก็เลยได้โอกาสทำงาน hacking

  • วันอาทิตย์ รีลีส thaifonts-scalable 0.4.2
  • วันจันทร์ update ฟอนต์จาก thaifonts-scalable เข้าสู่ thailatex CVS
  • ก่อน commit thailatex CVS ปรากฏว่า LTN เดี้ยงอีก commit ไม่ได้ เลยเข้าไปแจ้งใน #tlwg เพราะเชื่อม ICQ แล้วไม่เจออ๊อท และกรณีนี้ดูจะไม่ใช่ถูกเจาะระบบ ก็เลยแจ้ง #tlwg ขอคนไปรีบูตเครื่อง พอดีคุณ cwt ช่วยโทรบอกเพื่อนที่ดูแลห้องช่วยรีบูตให้ ดูเหมือน LTN ต้องการ RAM เพิ่ม คุยไปคุยมา คุณหน่อยติดต่อกำธรได้เลย ไม่แน่ว่าอาจได้ RAM เพิ่มในเร็ววัน ☺
  • สรุปว่ารีบูตแล้วก็ commit CVS ได้ ระหว่างที่คุยใน #tlwg ก็ได้รับ bug report จาก peorth ว่า gucharmap ใน gnome 2.8 จะตายตอนที่ดูอักขระในช่วงภาษาไทย ก็เลยลองดู พบว่าตายตามที่บอก นั่งไล่ stack dump พบว่า ไปตายใน pango-libthai ถ้า disable pango-libthai แล้วใช้มอดูลไทยใน pango core ก็จะหาย ก็เลยใช้เวลาช่วงเย็นไล่โค้ดจนพบว่า gucharmap ตัวใหม่มันส่ง ZWJ (U+200D) นำหน้า combining character มาตอน render เดี่ยวๆ ในตาราง แต่ pango-libthai ไม่ได้รองรับอักขระนอก TIS-620 ไว้ เพราะคิดว่า pango จะแยกภาษามาให้ แต่พอมี ZWJ หลุดมา ก็เลยต้องแก้ให้มันรองรับ นับว่าต้องแก้โครงสร้างโค้ดพอสมควร เสร็จแล้วก็ commit (แต่ยังมีอาการแปลกๆ นิดๆ ถ้าใครลองดู คือจะมี hex box รหัส 200D นำหน้าพวกสระบน-ล่าง ตรงนี้ต้องไปเพิ่ม glyph ในฟอนต์เอา และอาจต้องแก้ pango-libthai เพิ่มอีกนิด)
  • ไหนๆ ก็ไหนๆ เลยแถม OpenType support ใน pango-libthai ตามไปอีกหนึ่งดอก ก็ใช้โค้ดเดียวกับที่ส่งเข้า pango core นั่นแหละ

ปล. ฝนตก อากาศเย็นทีไร อาการปวดหัวกำเริบทุกที เมื่อคืนนอนกระสับกระส่าย บิดตัวไปมาจนปวดหลังเพิ่มมาอีก ☹

19 กันยายน 2547

VCD Imager

พักนี้มี security update ค่อนข้างเยอะใน debian ไม่ว่าจะเป็น GTK+, Mozilla FireFox, Apache 2, libgnutls ฯลฯ พร้อมกันนี้ ทางฝั่งไมโครซอฟท์ก็มีการ update ไม่น้อยเหมือนกัน แต่ดูเหมือนผู้ใช้วินโดวส์เท่าที่รู้จักจะไม่ค่อย update ระบบกันเท่าไร หรืออาจเป็นเพราะยังไม่มีโอกาสเจอ Windows server admin ก็ไม่รู้ ..ส่วนกระผมเอง ใช้ debian ถึงจะไม่ได้เป็น admin ก็จะตาม upgrade ซอฟต์แวร์ผ่านระบบ apt อยู่แล้ว เลยกลายเป็นเรื่องธรรมดาไป

ช่วงนี้พบว่าแผ่น VCD ที่บ้านจะเสียหายบ่อย คือเก็บรักษาไม่ค่อยดี แผ่นจะมีรอยขีดข่วน ทำให้เปิดเล่นแล้วสะดุด เลยคิดจะทำสำเนาไว้ ประกอบกับ เคยคิดจะทดลองทำ video server ผ่าน vlc ก็เลยถือโอกาสนั่งอ่านเอกสารเรื่องนี้

เครื่องมือหลักก็คือ vcdimager (ผมยังเข้าเว็บไม่ได้ ไม่แน่ใจว่าโดนบล็อคหรือว่าเว็บล่มไป) ซึ่งจะมีโปรแกรม vcdxrip เอาไว้ rip MPEG-1 stream ออกมาจาก VCD และ vcdimager สำหรับสร้าง CUE/BIN file สำหรับเขียนลง CD-R ต่อไป

ถ้าเรา mount แผ่น VCD แล้ว browse ดู อาจจะเห็นว่าเป็น data ปกติ แต่ความจริงแล้ว ในแผ่น VCD มันแบ่งข้อมูลเป็นส่วน ISO 9660 ที่เรา browse แต่ MPEG stream ที่อยู่ในไฟล์ .dat นั้น อยู่นอก ISO 9660 ดังนั้น จึง copy มาใส่ฮาร์ดดิสก์ตรงๆ ไม่ได้ ต้องใช้โปรแกรม rip

หลังจาก rip มาแล้ว จะได้ไฟล์ mpg ซึ่งสามารถเล่นในโปรแกรมพวก vlc, mplayer ได้ หรือถ้าจะเขียนลง CD-R เพื่อสำรองข้อมูลไว้ ก็ใช้ vcdimager สร้าง CUE/BIN file จาก MPEG stream นั้นๆ จากนั้นจึงเขียน CUE/BIN file นี้ลง CD-R ด้วย cdrecord หรือ cdrdao คำสั่งก็ประมาณนี้:

  • vcdxrip -p
  • vcdimager avseq01.mpg
  • cdrdao write --device /dev/cdrom --speed 12 videocd.cue

(ผมสามารถใช้ /dev/cdrom โดยตรงโดยไม่ผ่าน SCSI emulation ได้ก็เพราะใช้ kernel 2.6)

ทีนี้ mpeg stream ที่ rip มาได้ อาจจะเอามาทำ video streaming ผ่าน vlc หรือ vls ก็ได้ (อาจเป็น solution ที่ใช้กันในร้านคาราโอเกะ เพราะไม่ต้องคอยเปลี่ยนแผ่น CD) ซึ่งสามารถเซ็ตได้หลายแบบ หรือจะทำ Video on demand ก็ยังได้ ผ่านโปรโตคอลพวก HTTP/FTP ☺

Tip สำหรับคนดู video stream ด้วย vlc: vlc สามารถ save video stream ลงดิสก์ได้ โดยเซ็ต stream output ใน GUI หรือจะเรียกด้วย option --sout ก็ได้ เช่น

vlc mms://somesite.com/video.wmv --sout file/ts:video.mpg

แต่ไปวางใจใช้วิธีนี้ convert video file ไม่ได้นะครับ มันไม่ได้ออกแบบมาเพื่อการนี้ คุณภาพอาจตก ถ้าจะ convert ใช้เครื่องมือพวก MJPEG tools ดีกว่า

ปล. ยังขยาด totem ไม่หาย ตั้งกะตอนที่มันทำ palette เสียเนี่ย เลยใช้แต่ vlc ตลอด

16 กันยายน 2547

More Thanks

เมื่อวานซืน kitty แวะเอาซีดีมาให้ แล้วก็นั่งคุยกันถึงเรื่องต่างๆ อย่างหนำใจ จนลืมขอบคุณที่หอบหิ้วแผ่นมาให้ และมาเยือนถึงบ้าน คืนนั้นเลยจัดการเปิดซีดีที่ให้มา ชอบมากครับ โดยเฉพาะแผ่นที่แถมมาให้ เจ๋งสุดๆ ☺

เมื่อวานนี้ ได้รับเมลจาก “นายกิ๊กก๊อก” เว็บมาสเตอร์ ปกิณกะภาพยนตร์ (หนอนตำรา-บ้าหนัง) ว่าส่งหนังสือสมนาคุณมาให้แล้ว หลังจากตอบเมลไป ตอนเกือบเที่ยง สตรีไปรษณีย์ (เขาเรียกอย่างนี้ไหมอะ) ก็มาเทียบจอดหน้าบ้านส่งห่อสิ่งตีพิมพ์ให้เซ็น ทีแรกนึกว่าเป็นซีดีจากบริษัทที่กรุงเทพฯ ที่กำลังส่งมาให้เพื่อใช้เซ็ตเครื่อง (พอดีกำลังรออยู่เหมือนกัน) แต่ดูจ่าหน้าแล้วเป็นอีกชื่อ พอแกะดูก็ โอแม่เจ้า! หนังสือ Viking Mythology อย่างดี! พลิกอ่านผ่านๆ ตลอดเล่มแล้วก็เห็นชื่อที่คุ้นหูคุ้นตาแต่ไม่รู้ที่มามากมาย เห็นแล้วก็รู้สึกว่า นี่แหละหนังสือในฝันอีกเล่มหนึ่ง เพราะที่เคยอ่าน Norse Mythology ที่ Edith Hamilton เขียนยั่วน้ำลายไว้ตอนท้ายของหนังสือ Greek Mythology แล้ว มันไม่ได้ละเอียดพิศดารขนาดนี้ ต้องขอขอบคุณคุณหนอนตำราฯ มา ณ ที่นี้ ☺

เพิ่งได้อ่าน kitty blog ที่รถมีปัญหาระหว่างกลับเข้ากรุงเทพฯ ก็ลุ้นอ่านใจหายใจคว่ำ เพราะบรรยายความคิดตอนรู้ว่า timing belt ขาดได้เห็นภาพมากๆ แต่ก็โล่งอกที่ตอนท้ายจบด้วยความเสียหายที่ไม่มากขนาดนั้น ยังไงก็แสดงความเสียใจด้วยนะครับ ..สองรายแล้วแฮะ ที่โชคร้ายตอนกลับกรุงเทพฯ หลังจากแวะมาหาผม (รายแรกคือเด่นสินและเพื่อน) -_-!

14 กันยายน 2547

Updates

update ข่าวเสียหน่อย..

  • aKademy Hackers Port Mozilla to Qt/KDE คราวนี้ KDE ก็จะมี Gecko engine เหมือน GNOME ละ คาดว่าผลดีที่ Mozilla จะได้คือ ได้ contribution เพิ่มจาก KDE อีก แต่เท่ากับว่า KDE user/apps จะแบ่งกลุ่มไปใช้ Gecko กับ KHTML แยกกัน แต่คงไม่เหมือน GtkHTML ของ GNOME ที่มีที่ใช้ค่อนข้างน้อย นอกจาก Evolution กับ yelp และ devhelp แล้ว ก็ไม่เห็นใครใช้กับเว็บจริงจัง (Encompass ก็ดูเหมือนแค่ browser ตุ๊กตา ดูภาษาไทยได้แค่เว็บที่ใช้ UTF-8 เท่านั้น)
  • GNOME 2.8 tarballs due ไปแล้วเมื่อวาน เตรียมออก 2.8 พรุ่งนี้ ทีมแปลของไทย commit กันสนุกสนานเลย ดูๆ แล้ว ภาษาอื่นก็มี last minute commit เยอะเหมือนกัน ซึ่งความจริงเป็นเรื่องที่เสี่ยง โดยเฉพาะถ้าแปลพลาดหรือ commit พลาด โอกาสแก้ตัวมีน้อย ..ว่าแต่ว่า เพิ่งพบว่าผมโดนเตะออกจาก mailing list ของทีมแปลตั้งแต่เดือนมิถุนาโน่นแฮะ สงสัยว่าตั้ง filter โหดไป bounce เยอะไปหน่อย ไว้หา address อื่น (ที่ quota เยอะๆ ไว้รับ spam และยังคุยภาษาไทย TIS-620 ได้เหมือนเดิม) subscribe ใหม่ดีกว่า ความจริงช่วง string freeze เนี่ย น่าจะประชุมทาง IRC ได้นะ GNOME 2.8 นี่เรียกว่าสื่อสารกระท่อนกระแท่นมาก
  • Pango 1.6.0 ออกแล้ว (ในเมล subject ผิดนะครับ) คงจะตามกำหนด tarballs due ของ 2.8 แต่ GTK+ 2.6 ยังไม่ออก รอ 15 ธันวา โน่น (พร้อมกับ Pango 1.8.0)

12 กันยายน 2547

ทดสอบ flickr (มั่ง)

เห็น blog หลายคนพูดถึงที่เก็บรูปภาพบนเน็ต (พี่ฮุ้ย, bact', ...) เลยลองหัดใช้บ้าง พอดีว่าไม่ค่อยได้ถ่ายรูปบ่อย เลยไปขุดเอาอัลบัมปีที่แล้วที่ถ่ายไว้ ช่วงที่ขอนแก่นเป็นเจ้าภาพจัดงานประชุมรัฐมนตรีเศรษฐกิจ APEC ก่อนที่ไทยจะเป็นเจ้าภาพประชุมผู้นำที่กรุงเทพฯ ในเวลาต่อมา

อัลบัม จะเรียงรูปจากหลังมาหน้า เพราะงั้น ถ้าจะอ่านคำบรรยายรูปให้ต่อเนื่อง อาจต้องอ่านจากท้ายอัลบัมมา

APEC 2003 @ Khon Kaen

ปล. พักนี้งานรัดตัวหลายด้าน รู้สึกว่าควบคุมกิจวัตรไม่ค่อยได้ blog ในช่วงที่ผ่านมา มีแต่งานกับงาน จากเดิมที่เสาร์-อาทิตย์จะสลับด้วยเรื่องอื่น ตอนนี้บางทีเสาร์อาทิตย์ก็ยังต้องทำงาน หวังว่าจะปรับจังหวะชีวิตให้เข้ารูปเข้ารอยได้ในเร็ววัน ☺

08 กันยายน 2547

ขอขอบคุณ

ขอขอบคุณผู้ให้การสนับสนุนคนล่าสุด (คุณสุนทร ดาวประเสริฐ) รวมทั้ง ผู้ให้การสนับสนุนท่านอื่นๆ ตัวเงินนั้น แม้จะมีค่าต่อการอยู่รอดของงานของผม แต่ที่มีค่ากว่านั้น คือความมั่นคงที่จะทำงานต่อไป อย่างน้อยๆ การที่มีคนเห็นผลงาน ก็คงทำให้บุพการีไม่คัดค้านการทำงานของผมละ ☺

07 กันยายน 2547

Weather

เห็น weatherfox จาก Mk blog แล้วก็เลยอยากดูอากาศบ้านตัวเองมั่ง เลยค้นจาก weather.com ที่เขาบอก ก็เจอรหัสของขอนแก่นเหมือนกัน เป็น THXX0008 แต่.. ชะหนอย.. ไม่มีข้อมูลปัจจุบัน มีแต่ 10-Day Forcasts แบบนี้เอามาโชว์ไม่ได้ (ของ กรุงเทพฯ มีข้อมูลปัจจุบัน)

เลยหันไปหา gweather applet ในชุด gnome-applet แทน โหลดขึ้นมาแล้วตั้งค่าตำแหน่งที่ตั้ง ปรากฏว่ามีตำแหน่งหลักๆ ของประเทศไทยให้เลือก คือ เชียงใหม่ ดอนเมือง หาดใหญ่ ท่าอากาศยานภูเก็ต แล้วก็ระยอง แต่ไม่มีขอนแก่น หรือจังหวัดในภาคอีสานแม้แต่แห่งเดียว!! เริ่มจะเชื่อแล้วแฮะ ว่าการขาดแหล่งท่องเที่ยว ทำให้อะไรๆ ขาดหายไปเยอะทีเดียว

gweather location selector

ลองไล่ source ของ gweather ก็พบว่า ไปเอาข้อมูลมาจาก Internet Weather Source (IWS) ซึ่ง ข้อมูลที่มีของประเทศไทย ก็ตามที่เห็นจาก gweather น่ะแหละ (คุ้นๆ ว่า kitty เคยพูดถึงเรื่องนี้อยู่เหมือนกัน) ส่วน ข้อมูลจากเนคเทค ก็ไม่ได้ต่างกัน

ต้องลุ้นให้โครงการต่างๆ ในอีสานเกิดเสียแล้ว ไม่ว่าจะเป็น ท่าอากาศยานนานาชาติ (กำลังพิจารณากัน ระหว่าง อุบล อุดร ขอนแก่น), ICT City (ขอนแก่น), ศูนย์กลางพาณิชย์อินโดจีน (ขอนแก่น) รวมทั้งการพัฒนาแหล่งท่องเที่ยว ฯลฯ บ้านผมถึงจะไม่ถูกลืมบ่อยๆ อย่างนี้ :-P

แต่ยังมีอีกแหล่ง ที่คนที่อยากรู้สภาพอากาศแถวขอนแก่นสามารถดูได้ คือที่ wunderground.com (ฟังชื่อแล้วทะแม่งๆ ต้องสังเกตข้อมูลสักพัก ว่าเชื่อถือได้หรือเปล่า แต่ก็เห็นเว็บต่างๆ ในภาคอีสานใช้กัน) มีข้อมูลสภาพอากาศของ ขอนแก่น ให้ดูได้ หรือจะทำ banner ใส่เว็บก็มีหลายแบบ อย่างข้างล่างนี่:

KhonKaen Weather

แต่อยากใช้ในแอพเพล็ตบ้างจัง T_T

GNOME Translation

ช่วงสามวันที่ผ่านมา ตั้งแต่เซ็ต virus scanner เสร็จ จนถึงเมื่อเช้านี้ แบ่งไว้ให้กับงานแปล GNOME ช่วง string freeze ที่ผ่านมา ไม่สามารถปลีกตัวมาช่วยทีมแปลได้ ถึงวันนี้ มีเวลาอีก 7 วัน จะถึง tarball due ก่อนที่ GNOME 2.8 จะปล่อยตัว ก็เลยต้องหาเวลามาแปลเสียหน่อย update CVS มาหลายวัน เห็นภาษาอื่นเขา commit กันชุกมาก ภาษาไทยจะให้น้อยหน้าก็กระไรอยู่ (ความจริงแล้ว ภาษาไทยใน GNOME 2.8 ยังแปลไปน้อยมาก เมื่อเทียบกับภาษาอื่น เพื่อนบ้านอย่างเวียดนามหรือมาเลเซีย ก็ยังแปลนำหน้าเราไปเยอะ ..ศึกนี้ไม่ยักคึกคักเท่า SETI@home แฮะ)

จุดแรกที่เริ่มแปลก็คือ gnome-panel เพราะจะเพิ่ม launcher แล้วพบว่า panel เปี๊ยนไป๋ คือแทนที่จะใช้เมนูเพิ่มแอพเพล็ต ก็กลายเป็นไดอะล็อกเป็นเรื่องเป็นราว แต่คำแปลไทยยังโบ๋ๆ อยู่เป็นบางแห่ง

เลยจัดการเอา po มาลุยแปลต่อจากที่ทีม TLE ทำไว้ จนพอใจ แล้ว commit

เกาที่คันของตัวเองเสร็จ ก็เริ่มมองหาอย่างอื่นแปลต่อ พยายามเลือกพวกไลบรารีที่พอแปลได้ แต่หลายตัวเป็นระดับต่ำเกินไป ข้อความอาจโผล่ที่ text console ในบาง configuration ซึ่ง console-tools ที่ upstream ยังไม่มีฟอนต์ไทย จะแสดงผลไม่ได้ เลยยังไม่กล้าแปล เลือกไปเลือกมาก็ตกลงเลือกเอา gtksourceview ละกัน แปลแล้วจะได้อุดรูโบ๋ของ gedit ไปด้วย แต่ก่อนจะแปล เมลถามทีมแปลสักนิด จะได้ไม่แปลซ้ำกัน ปรากฏว่า mailing list เจ๊งครับท่าน เมลไปแล้วหายเข้าหลุมดำไปเลย เมลตัวเองก็ไม่ได้รับ เนื่องจากช่วงเวลาว่างมีไม่มาก ไม่สามารถรอได้ เลยจัดการลุยแปลไปเลย คิดว่าโอกาสชนน่าจะน้อย ถึงวันอาทิตย์ ก็แปลได้เท่าที่รู้แหละนะ ภาษาอย่าง Ruby หรือ Python เนี่ย ยังไม่แน่นศัพท์พอจะแปลได้ ส่วนที่เหลือก็ถามๆ ความเห็นสมาชิกใน #tlwg ประกอบ พอดีเจอ kitty ก็เลยฝาก report เรื่อง mailing list ด้วย เสร็จแล้วเย็นวันอาทิตย์ก็จัดการ add th.po เข้า GNOME CVS ซะ มีภาษาไทยเพิ่มมาอีกหนึ่งแพกเกจละ

เสร็จ gtksourceview ก็กลับมา panel อีกนิด เอาที่แปลไว้มาตกแต่งโน่นนี่ เพลินไปจนครบ 100% เลยแฮะ เสร็จในคืนวันอาทิตย์แล้วก็ commit อีกครั้ง

วันจันทร์ ตกลงใจว่าจะแปลต่ออีกวัน พยายามจะเลือกแพกเกจ สุดท้ายก็มาลงที่ gedit เพราะไหนๆ ก็แปล gtksourceview มาแล้ว ก็เอาที่ทีม TLE แปลไว้ตั้งแต่ GNOME 2.6 มาทำต่อ ข้อความเยอะพอสมควร แปลหลายคนด้วย เลยมีส่วนที่ศัพท์สำนวนไม่เหมือนกัน ก็จัดการเรียบเรียงใหม่เป็นแห่งๆ พร้อมกับแปลเพิ่มส่วนที่เหลือ ตอนหัวค่ำเลยจัดการ commit ไปหนึ่งชุด แต่พอมาคอมไพล์ใช้จริง ก็ยังไม่พอใจ ยังมีที่ให้แก้อีก เลยนั่งเกลาต่อตอนกลางคืน เมื่อเช้า commit ไปละ

คงต้องหยุดแปลแค่นี้ เดี๋ยววันนี้ต้องเตรียมสอนละ

06 กันยายน 2547

Knowledge for Thai Dev

ปุจฉา: ต้องใช้ความรู้อะไรบ้างในการพัฒนาระบบภาษาไทยใน free software?

วิสัชนา:

  1. ภาษาโปรแกรม อันนี้แน่นอน ที่ขาดไม่ได้คือภาษา C/C++ แล้วก็ Unix shell programming ส่วนภาษาอื่น เช่น Perl, Python รู้ไว้ก็ช่วยได้มาก
  2. เครื่องมือพัฒนา ที่จำเป็นก็ได้แก่ make, GNU autotools (autoconf, automake, libtool) และถ้าทำงานแปลด้วย ก็ต้องรู้จักเครื่องมือแปล ได้แก่ GNU gettext สำหรับ GNOME ก็มี intltool ช่วยทำทุกอย่างให้ นอกจากนั้นก็เป็นเครื่องมืออำนวยความสะดวก เช่น gtranslator หรือ kbabel (จะใช้ vi/emacs ก็ไม่ว่ากัน)
  3. มาตรฐานต่างๆ เช่น รหัสอักขระ, ผังแป้นพิมพ์, internationalization ฯลฯ
  4. อักขรวิธีภาษาไทย อันนี้ขาดไม่ได้
  5. โครงสร้างของระบบเดสก์ทอป ตรงนี้อาจเป็นส่วนที่หนักที่สุด เพราะต้องอ่านเอกสารมากมาย รวมทั้งอ่านโค้ดด้วย แล้วค่อยๆ ต่อจิกซอว์จนเป็นภาพรวมทั้งหมด ตั้งแต่ libc, X Window, toolkit (GTK+, Qt), desktop environment (GNOME, KDE) ไปจนถึงโปรแกรมประยุกต์เป็นตัวๆ ไป ตามความสนใจ เช่น Mozilla, AbiWord รวมถึง library ต่างๆ ที่เกี่ยวข้อง เช่น ICU
  6. เครื่องมือสร้างเอกสาร เช่น HTML, LaTeX, DocBook, OO.o
  7. Web programming - CGI, PHP ฯลฯ
  8. การเขียนโปรแกรมฐานข้อมูล - SQL (MySQL, PostgreSQL ฯลฯ), gda, gnome-db
  9. การเซ็ตอัพเซิร์ฟเวอร์ต่างๆ ตั้งแต่การเชื่อมต่ออินเทอร์เน็ต การเปิดบริการเมล ฯลฯ
  10. ความรู้เรื่องฮาร์ดแวร์ ไว้แก้ปัญหา
  11. เทคโนโลยีรอบตัวอื่นๆ เช่น การทำ video streaming
  12. การจัดการเรื่องการเงินที่ดี อาจจะรวมถึงการบริหารเวลา และหัวคิดธุรกิจด้วย

อาจจะเห็นว่าข้อหลังๆ ชักเลอะ 5 ข้อแรกเป็นความรู้ขั้นต่ำที่ใช้ทำงาน 6 ข้อหลังเป็นความรู้ที่ทำให้งานอยู่รอด ส่วนข้อ 6 นั้น ก้ำกึ่ง ☺

04 กันยายน 2547

Anti-Virus

ต่อจาก spam filter ก็มาที่ virus scan ก็มีตัวเลือกให้มากเช่นเคย ตามประสา free software

สำหรับการสแกนไวรัสในเมล ก็ย่อมต้องมีสองส่วนแยกกัน คือการ hook MTA ให้สแกนไวรัส กับโปรแกรมสแกนไวรัสเอง ซึ่งทั้งสองส่วน ก็มีตัวเลือกมากมาย คงมีเวลาสำรวจแค่บางส่วนเท่านั้น

ตัวอย่างโปรแกรมดักอ่านเมลเพื่อสแกนไวรัส:

ตัวอย่างโปรแกรมสแกนไวรัสที่เป็น free software:

ตัวอย่างโปรแกรมสแกนไวรัสที่ไม่ใช่ free software:

อื่นๆ อีกมากมาย.. ใครว่าไวรัสเป็นเรื่องเล็กเนาะ เขาทำธุรกิจได้เป็นล่ำเป็นสันเชียว

แต่พอจะเอามาติดตั้งกับ mail server ก็จะต้องตรวจสอบด้วยว่า โปรแกรมดักสแกนเมลนั้น สามารถเรียกใช้โปรแกรมสแกนไวรัสได้หรือไม่ด้วย (เท่าที่ลิสต์มาข้างบนก็ดูเหมือนเรียกกันได้หมด)

โดยปกติแล้ว การติดตั้งโปรแกรมสแกนไวรัสสำหรับ mail server มักจะสร้างเป็น daemon ไม่ใช่ stand-alone เหมือนที่เราสั่งสแกนไฟล์ตามปกติ ทั้งนี้เพื่อลดเวลาในการโหลดโปรแกรมสแกนทั้งตัวหลายๆ ครั้ง ซึ่งจะทำให้ mail server ทำงานช้าลง

มีเอกสารบรรยาย solution สำเร็จรูปของการรวม MTA + spam filter + virus scanner อยู่ในเน็ตพอสมควร ที่อาจจะเหมาะกับ debian user ก็เช่น:

03 กันยายน 2547

sa-exim

พวก spammer นี่ จมูกไวจริงๆ ตั้ง server ยังไม่ทันไร มาแล้วสองฉบับ นี่ขนาดยังไม่เคย post address ที่ไหนเลยนะนี่ ไม่รู้ไปเจอจากพวก webmaster address ที่อยู่ตาม web service ต่างๆ ที่เซ็ตไว้หรือเปล่า ก็เลยได้โอกาสตรวจสอบ config ของ sa-exim ที่ลงไว้

sa-exim ที่เคยเขียนถึงไปใน blog ก่อน เป็นการ integrate เทคนิคทุกอย่างเข้าด้วยกัน โดยจะไปเซ็ตให้ exim4 โหลด spamassassin มาสแกนเมลตั้งแต่ขั้น SMTP และสามารถเลือกที่จะ reject หรือ tag แล้วปล่อยผ่านเข้ามาก็ได้ ข้อดีอย่างน้อยก็คือ spam จะไม่มากองอยู่ในถังขยะในระบบ และไม่เป็นการให้คำตอบกับ spammer ด้วยว่า address เราใช้การได้ แต่ที่ว่า integrate เทคนิคทุกอย่างนั้น หมายถึงว่า เรายังสามารถเลือกที่จะทำ greylisting หรือ teergrube ได้ด้วย ขึ้นอยู่กับระดับคะแนนของความเป็น spam

greylisting ในที่นี้ ต่างจาก greylisting เพียวๆ โดยจะ implement ให้เป็นกฎข้อท้ายๆ ของ spamassassin ซึ่งก็หมายความว่า MTA ยังกิน CPU ในการตรวจเมลอยู่ดี แต่สำหรับเมลที่รู้แน่ว่าเป็น spam ก็จะไม่เสียเวลาทำ greylisting แต่จะ reject ไปเลย และเมลที่รู้แน่ว่าไม่ใช่ spam ก็จะไม่ถูกหน่วงให้ส่งใหม่เช่นกัน (อาจเป็นผลดีต่อ TOT user ที่ไม่ใช่ spammer) คงเหลือแต่พวกสีเทาที่จะถูก greylist

ส่วน teergrube ก็อาจจะกระทำเฉพาะกับเมลที่รู้แน่ว่าเป็น spam (คะแนนสูงลิ่ว) เราก็สามารถเลือกที่จะผลาญเวลาของ spammer ได้ ด้วยการหน่วงเวลาของ SMTP response (แต่ก็หมายถึงผลาญทรัพยากรของเราด้วย เพราะเท่ากับเสีย connection ไปหนึ่งช่องเพื่อชักเย่อกับ spammer จึงมีคำเตือนสำหรับคนที่จะอุทิศเครื่องเพื่อทำ teergrube)

ทั้ง greylisting และ teergrube นี้ เป็นตัวเลือกที่ค่าปกติจะไม่เปิด แต่ถ้าใครอยากเปิด ก็แก้ config file เอาได้

แต่เรื่องการปล่อย แอดเดรสปลอม นั้น ไม่เกี่ยวกันนะคร้าบ ต้องทำต่างหากเอา เหอๆ

02 กันยายน 2547

E-learning

พอดีระบบ e-learning ที่โรงเรียนที่ใช้ Lotus Notes มีปัญหาที่ยังหาสาเหตุไม่ได้ ผอ. ก็เลยสั่งให้ผมหาตัวเลือกสำรองบนลินุกซ์ไว้ เผื่ออับจนจริงๆ จะได้ใช้แทน (แต่พิจารณาความเป็นไปได้ที่จะได้ใช้อาจจะยาก เพราะต้อง train อาจารย์ใหม่หมด คงจะเกิดแรงต้านพอสมควร) จากการค้น ก็เห็นว่าหลายตัวน่าสนใจดี ก็เลย blog ไว้เตือนความจำ

แหล่งข้อมูลหลักก็มาจาก SEUL/edu Application Index ซึ่งก็ชี้มาจาก schoolforge อีกที

ซอฟต์แวร์ที่น่าสนใจสำหรับสร้างบทเรียนได้แก่

  • Moodle ใช้ PHP4 + MySQL/PostgreSQL สร้าง e-learning course ได้ดีทีเดียว สามารถกำหนดแผนการสอน สร้างบทเรียน แบบทดสอบ on-line ได้ มีภาษาไทยด้วย มีใน debian เลย
  • ATutor ใช้ PHP4 + MySQL หน้าตาสวยงามน่าใช้ และดูจะเก่งกว่า Moodle อยู่นิดหน่อย รวมทั้งสนับสนุน IMS Question & Test Interoperability Specification และ SCORM (Sharable Content Object Reference Model) ซึ่งเท่าที่อ่านคร่าวๆ ก็เป็น spec สำหรับสร้างบทเรียนหรือแบบทดสอบในรูปแบบมาตรฐาน เป็น XML DTD รวมทั้งตัว web content ใน ATutor เองก็สนับสนุน XHTML 1.0 ด้วย (XML สุดๆ) เห็นสรรพคุณอย่างนี้แล้ว ก็รู้สึกว่าน่าใช้ไม่น้อย แต่ก็อย่างว่า feature เยอะเลยใช้ยากกว่า Moodle นิดหน่อย
  • phpTest ตามชื่อ คือใช้ PHP4 + MySQL ตัวนี้ไว้สร้างข้อสอบอย่างเดียว ไม่ได้ครบวงจรเหมือนสองอันแรก
  • BELTS (Basic E-Learning Tool Set) เป็น Java อ่าน document แล้วท่าทางใช้ยาก เลยข้ามไปก่อน
  • Manhattan virtual classroom เป็น CGI เขียนด้วย C มีทุกอย่างพร้อมสำหรับห้องเรียน อ่านฝอยแล้ว น่าใช้ไม่แพ้ Moodle หรือ ATutor

และอื่นๆ อีกมากมาย จดไว้แค่นี้ก่อน (มากจริงๆ อย่างไม่น่าเชื่อ ต่างประเทศเขาใช้ FOSS ในโรงเรียนกันจริงจังขนาดนี้เลย) แต่ที่กล่าวมาทั้งหมด มี Moodle ตัวเดียว ที่มีใน debian sid เลย ที่เหลือต้อง download มาติดตั้งเอง

hacker emblem