Theppitak's blog

My personal blog.

31 ตุลาคม 2549

Fake Food Festival

ผมเป็นคนชอบกินผัก เพราะมันทำให้ระบบขับถ่ายเป็นปกติ ความจริง ผมน่าจะชอบเทศกาลกินเจ แต่ไม่ใช่ ตอนนี้รู้สึกโล่งอก ที่มันผ่านพ้นไปซะที

ถ้าไม่นับราคาอาหารที่แพงขึ้น เทศกาลกินเก๊ (fake food) ที่ผ่านมา คุณกินของเก๊อะไรไปบ้าง? ทำไมอาหารมังสวิรัติธรรมดาที่ไม่ใช้ของเก๊ มันหายากขึ้นทุกที? เนื้อเจ ลูกชิ้นเจ กุ้งเจ ลาบเจ โห.. ถ้าจะกินเจแล้วยังนึกถึงเนื้ออยู่ จะฝืนกินเจกันทำไม? ทั้งหมดนี้ มิใช่เป็นการย้ำว่า การงดบริโภคเนื้อสัตว์เป็นสิ่งผิดปกติหรอกหรือ?

เมนูที่คนกินผักอย่างผมพอจะชี้จากร้านอาหารเจทั่วไปได้ ก็มีแต่ต้มจับฉ่าย ผัดผัก กับผัดถั่วงอก ไม่กี่อย่างนี่แหละมั้ง

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

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

30 ตุลาคม 2549

Bangkok Visit

เข้ากรุงมาสามวันครับ รวมเวลาเดินทางไป-กลับด้วยก็เป็นห้าวัน (พอดีไม่ชอบเดินทางกลางคืน เพราะมักไม่ได้นอนบนรถ) วันแรกแวะทำธุระบางอย่าง ก่อนเข้าไปเยี่ยมออฟฟิศ mm วันต่อมาไป BTD-2 และวันสุดท้ายไปเดินงานหนังสือที่ศูนย์สิริกิติ์

ตัดมาที่ BTD-2 เลยละกัน งานนี้ได้เจอผู้หลักผู้ใหญ่อย่าง อ.ทวีศักดิ์ แล้วก็คุณตฤณ คุณ James, เจอทีม TLE (รวมทั้ง itga), เจอ bact ที่กลับมาเมืองไทยแล้ว ดูหน้าตาผ่องขึ้น จนต้องดูซ้ำให้แน่ใจว่าใช่, เจอ วีร์ อีกครั้ง ถึงกับจำไม่ได้ ต้อง update รูปใน blog มั่งนะ :P

กลุ่มที่เคยรู้จักแต่ชื่อออนไลน์ ก็ได้เจอตัวจริงหลายคน เริ่มจาก Lew หนึ่งในผู้ก่อตั้งบล็อกนั้น (เดิมรู้จักแต่ Mk) เจอ อ.มะนาว (ชอบเสื้อมากครับ) ต่อมาก็เป็น Udomsak ที่เคยเจอใน l10n mailing list และในห้อง #tlwg มาแล้ว, Prach ที่เคยทำ SUTLinux และเคยแช็ตกันพอสมควร, เจอคุณ pphetra (คุณ Pok) ที่เห็นชื่อบ่อยๆ ในบล็อกนั้น อืม ดูแกพูดมันดีจริงแฮะ แล้วก็อีกคนที่เจอตอนกินข้าวกับอ๊อท คือ Oakyman แต่ยังไม่ทันได้คุยอะไรกันมาก ฟังเขาคุยกับอ๊อทซะเยอะ

ชุมชนบล็อกนั้นนี่ ผมยังใหม่อยู่ เพราะไม่ค่อยได้แจมมาก (แม้จะเข้าไปอ่านบ่อย) การได้เจอคนในกลุ่มนี้ นับว่าได้เปิดหูเปิดตา

ส่วนเรื่องการ present.. ผมยังตื่นๆ อยู่จริงๆ แหละ ด้วยความที่เก็บตัวในถ้ำนานไปหน่อย ร้างการ present ไปนาน เลยรู้สึกเก้ๆ กังๆ ยังพูดได้ไม่เต็มที่ มองลงไปข้างล่าง เห็นผู้ฟังขึ้น screensaver กันเพียบ กลับมาเขียน blog อย่างเดิมแหละดีแล้ว เหอๆ

นอกจากการเจอผู้คนแล้ว เนื้อหาที่เข้มข้น ทำให้ได้อะไรกลับมามากมาย

เสื้อ geek ที่เขานัดกันใส่ไป ทีแรกเตรียมเสื้อ Ubuntu ไว้ แต่ก่อนงานเห็นมีข่าว Mozilla ตีท้ายครัว Debian ด้วยการอนุญาตให้ Ubuntu ใช้ชื่อ Firefox แม้จะ patch เพิ่มจาก Debian โดยให้เหตุผลแปลกๆ (ดู คำอธิบาย จาก Mike Hommey) ประกอบกับที่ตัวเองไม่ได้ใช้ Ubuntu เลยไม่อยากทำให้กำกวม เลยเปลี่ยนไปใส่เสื้อ Laonux แทน แต่เสื้อมันบางไปหน่อย เลยใส่เชิ้ตทับอีกที กันหนาวจากแอร์โรงแรม (ไม่ได้เตรียมแจ็กเก็ตไป)

วันสุดท้าย ยังอยู่ทันงานหนังสือที่ศูนย์สิริกิติ์ เลยเข้าไปเดินดู ปกติผมจะพยายามจำกัดงบการซื้อหนังสือไว้ เพราะ 1) ประหยัดตังค์ 2) ไม่มีเวลาอ่าน (หนังสือจากงานก่อนๆ ยังกองอยู่เพียบ พยายามทยอยอ่านอยู่) งานนี้เลยไม่ได้ตกลงใจซื้อง่ายๆ โดยเฉพาะเมื่อซื้อเล่มแรก คือ The Debian System ของ madduck ในราคาลด 20% หมดเงินไป 1,400 เศษๆ ที่เหลือเลยซื้อหนังสือเล่มเล็กๆ แค่ 2-3 เล่ม แต่ก็ได้ยืนอ่านที่บูทต่างๆ หลายเล่มอยู่ หุๆ

ด้วยความที่เดินทางตอนกลางวัน เลยถือโอกาสอ่านหนังสือบนรถจบไปเล่มเศษๆ (รวมขาไป-ขากลับ) ไว้ค่อยๆ หาเวลาอ่านต่อไป.. :-)

25 ตุลาคม 2549

Weasel

เกิดความสงสัย ว่าจะเรียก IceWeasel เป็นภาษาไทยว่าอะไรดี dictionary อังกฤษ-ไทย ทั่วไป แปล weasel ว่าเป็น "สัตว์กินเนื้อขนาดเล็ก รูปร่างยาวเรียว คล้ายแมว ชอบกินหนูเป็นอาหาร" โดยมี dict นนทรีฉบับเดียว ที่แปลตรงๆ ว่า พังพอน ทำให้ผมเคยเอามาเรียก IceWeasel ว่า พังพอนน้ำแข็ง แต่จริงๆ แล้ว ใช่หรือเปล่า? ทำไม dict เล่มอื่นจึงไม่แปลว่า พังพอน เหมือนกัน?

คำว่า พังพอน ถ้าแปลจากไทยเป็นอังกฤษตรงๆ dict ทุกเล่มแปลเหมือนกันว่า mongoose แล้ว weasel ล่ะ เหมือนหรือต่างจาก mongoose อย่างไร?

เมื่อไล่ตามอนุกรมวิธานแล้ว ทั้ง weasel และ mongoose อยู่ใน Order Carnivora (สัตว์กินเนื้อ) เหมือนกัน แต่อยู่คนละ Suborder โดยแบ่งกลุ่มดังนี้:

  • Suborder FELIFORMIA (คล้ายแมว)
    • Family Herpestidae: mongooses
      • พจนานุกรม ฉบับราชบัณฑิตยสถาน เจาะจงลงไปอีกว่า พังพอน อยู่ใน genus Herpestes แต่ระบุ family ผิดเป็น Viverridae ซึ่งเป็น family ของพวกชะมด (Civet) ซึ่งอยู่ใน suborder Feliformia เหมือนกัน
  • Suborder CANIFORMIA (คล้ายสุนัข)

ไหนลองเปรียบเทียบรูปร่างดูซิ ระหว่าง Indian mongoose (พังพอนธรรมดา - Herpestes javanicus) กับ long-tailed weasel (Mustela frenata):

Herpestes javanicus Mustela frenata
Indian mongoose
Herpestes javanicus
long-tailed weasel
Mustela frenata

ดูเผินๆ ก็คล้าย แต่ก็ไม่เหมือนกันจริงๆ นะ mongoose จะป้อมกว่า ขณะที่ weasel จะเพรียวยาว ดูบางรูปแล้ว หน้าคล้ายหมาไนหรือลิงเหมือนกัน

สรุปว่า เรียก weasel ว่า พังพอน ก็แค่พอถูไถ แต่จะให้ตรงจริงๆ คงเรียก วีเซล ทับศัพท์ไปก่อน

ปล. วันนี้ท่าจะว่างมาก มีแต่รายการรอ: รอ sponsor ช่วย upload deb ให้ รอเมลตอบจาก NECTEC ฯลฯ :P

Goodbye Firefox

Firefox 2.0 ออกแล้ว คาดว่า Firefox 1.99 ที่อยู่ใน experimental ของ Debian มาหลายเดือน คงจะแปลงร่างเป็น IceWeasel ในไม่ช้า

ผมเคยร่วม spreadfirefox เพราะเห็นว่าเป็นกลวิธีที่ดีในการดึงผู้ใช้มาใช้ FOSS แต่ผลข้างเคียงของการโปรโมทดังกล่าว กลับทำให้เกิดการบังคับใช้เครื่องหมายการค้า จนกระทั่งเกิดกรณีการเปลี่ยนชื่อเป็น IceWeasel ในที่สุด รวมทั้งเกิดโครงการอย่าง Gnuzilla ที่ไม่เป็นแม้แต่ Community Edition ของ Firefox

ในฐานะผู้ใช้ FOSS สิ่งที่ผมสนใจ จึงไม่ใช่ชื่อ Firefox อีกต่อไป แต่เป็น IceWeasel และเว็บเบราว์เซอร์ที่ไม่มีปัญหาเรื่องชื่ออย่าง Epiphany ที่ใช้ Gecko engine ของ Mozilla เหมือนกัน แต่ไม่มีปัญหาเรื่องเครื่องหมายการค้า (ความจริง ผมกลับมาใช้ Epiphany ไม่ใช่ด้วยเหตุผลเรื่องเครื่องหมายการค้าอย่างเดียว ไว้ว่างๆ ค่อยเขียนเรื่องนี้อีกที)

ฉะนั้น blog นี้จึงเป็นการบอกลา Firefox และหยุดมีส่วนร่วมโปรโมทสิ่งที่ทำให้ตัวเองรู้สึกอึดอัด แต่ก็ไม่ได้ค้านอะไร ถ้าใครจะ spreadfirefox ต่อไป เพราะมันยังเป็นทางเลือกที่ดีสำหรับผู้ใช้ Windows (จนกว่า Gnuzilla จะมี Windows version)

22 ตุลาคม 2549

BTD2 Slide

ถูกชวนให้ไปร่วม Blognone Tech Day 2.0 นั่งนึกหัวข้ออยู่นาน ว่าจะพูดเรื่องอะไรดี ไหนๆ ช่วงนี้ก็ไปคลุกคลีกับ Debian เคย blog เกี่ยวกับ Debian มาหลายที ประกอบกับช่วงนี้ Ubuntu กำลังมาแรง คิดว่าเอาเทคโนโลยีต่างๆ ใน Debian มาชำแหละให้ประชาชีดู คงจะเป็นประโยชน์ไม่น้อย

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

คนบ้านไกล นานๆ เข้ากรุงที ไปเจอคนเยอะๆ คงตื่นๆ เขาว่า ขับรถทะเบียนต่างจังหวัด ให้อภัยได้เนาะ หุๆ :P

21 ตุลาคม 2549

thailatex considered non-free

กลับมาที่ thailatex อีกครั้ง อันเป็นผลมาจาก dunc-bank ของ Debian ที่มีคำขวัญติดตลกว่า "An RC Bug a Day. Keeps the Release Away." ซึ่งริเริ่มโดย Anthony Town, DPL คนปัจจุบัน เขาทดสอบ Debian กันแบบโหดๆ เพื่อ file RC bug แบบไม่ปรานี แล้วคอยให้ DD ทั้งหลายไล่แก้ โดยเฉพาะใน Bug Squashing Party (BSP) ที่จัดในที่ต่างๆ ครั้งแล้วครั้งเล่า

thailatex เราก็โดนด้วย มี Bug #393519 รายงานว่า upgrade thailatex จาก sarge มา etch ไม่ผ่าน ดูอาการแล้วเลยจัดการ debootstrap sarge ไว้ทดสอบใน chroot ลองไปลองมาจนเริ่มรู้สาเหตุ แต่ก็เล่นเอาเหงื่อตก เพราะเป็นกรณีที่หาไม่พบใน debian policy เลย ว่าจะต้องทำอย่างไร

ปัญหาคือการลบการ divert file ที่คุณทิมเคยทำไว้ โดยเมื่อก่อนโน้น thailatex จะ patch babel.sty ที่เป็นของ tetex-base ด้วยสคริปต์ patch-babel แต่หลังจากนั้นก็เปลี่ยนมาใช้การ divert babel.sty เอา พอมาตอนนี้ tetex ได้ย้าย texmf directory จาก /usr/share/texmf ไปไว้ที่ /usr/share/texmf-tetex เพื่อเปิดทางให้แพกเกจ texlive ได้เข้ามา และไดเรกทอรี /usr/share/texmf เองจึงว่างให้เราใช้ได้เต็มที่ โดย latex จะมาหา macro ในนี้เพิ่มด้วย จึงไม่ต้อง divert file อีกต่อไป ในแพกเกจปัจจุบันใน etch ผมจึง remove diversion ที่ preinst แต่ปรากฏว่า มันไม่เวิร์กอย่างที่คิด เมื่อ upgrade จาก sarge

ใน debian policy บอกแต่วิธี remove diversion เมื่อ uninstall แต่ไม่มีวิธี remove diversion เพื่อ take over แบบนี้! เลยใช้บริการ debian-mentors mailing list โพสต์ถาม ก็ได้ คำตอบ จากมือเซียนอย่าง Steve Langasek อ่านคำตอบรอบแรกแล้ว หลงทางไปเหมือนกัน เลยถามกลับเข้าไป เขาอธิบายเพิ่มอีกถึงได้กระจ่าง เป็นวิธีที่ต้องซิกแซ็กเล็กน้อย แต่ก็ออกแบบไว้กันกรณี error ต่างๆ อย่างดี

ได้วิธีแก้แล้ว แก้ปัญหาเรียบร้อย ขอ sponsor ช่วย upload เรียบร้อย แต่ขณะจะ upload เขาไปสังเกตเห็นปัญหาอย่างหนึ่งใน license ของ thailatex เข้า โดยใน license term ของ NECTEC นั้น มีข้อหนึ่งบอกไว้ว่า:

2. No charge more than random data distribution cost is associated with the redistributions.

ซึ่งขัดกับ DFSG #1:

1. Free Redistribution

The license of a Debian component may not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license may not require a royalty or other fee for such sale.

กล่าวคือ non-commercial license ก็ถือว่า non-free ตาม DFSG และ OSI ซึ่งถ้าจะว่าตามเจตนาของ NECTEC ขณะนั้น คงไม่ได้ต้องการจำกัดการใช้งานหรือเผยแพร่อะไร แต่ก็ต้องดำเนินการเปลี่ยนเงื่อนไขให้ถูกต้อง ตอนนี้ ได้ติดต่อ NECTEC ไปแล้ว จึงต้องรอ NECTEC ตอบอนุญาตให้เปลี่ยนเงื่อนไข มิฉะนั้น ก็จะต้อง upload รุ่นแก้เข้าในภาค non-free แทน main ถ้าแก้ปัญหาไม่ทัน Etch release

มี bug เกี่ยวกับเรื่องนี้ file ไว้แล้ว

16 ตุลาคม 2549

Firefox Saga

เรื่องเครื่องหมายการค้า Firefox "เป็นเรื่อง" ขึ้นมา เมื่อมี ภาพถ่าย จากบูธ debian ในงานคอมพ์งานหนึ่ง ที่บังเอิญไปตั้งชนกับบูธ Mozilla พอดี เป็นรูปขีดฆ่าโลโก้ Firefox ข้างๆ กับโลโก้ใหม่ของ IceWeasel

มี DD บางคน บ่น เรื่องภาพพจน์ของ Debian ว่าเริ่มแย่ แต่ก็มีผู้อยู่ในเหตุการณ์ เล่าเรื่อง ให้ฟัง ประมาณว่าคนจาก Mozilla เข้ามาหาเรื่อง โดยมาเขียนต่อเติมแล้วถ่ายภาพลง blog และในงานก็มีการถามไถ่เกี่ยวกับประเด็นเรื่องเครื่องหมายการค้าอย่างกว้างขวาง โดยมีคำอธิบายจากทั้งสองฝ่าย โดยที่น่าแปลกใจก็คือ Mozilla ปฏิเสธแม้กระทั่งแนวคิดเรื่องให้ Debian ทำ "Community Edition"

Lucas Nussbaum เล่าเหตุการณ์ โดยเก็บข้อมูลจากมุมมองของ Mozilla บอกว่า Mozilla จำเป็นต้องปกป้องภาพพจน์ของ Firefox โดยไม่สามารถยกเว้นใครเป็นกรณีพิเศษได้ ประเด็นเรื่อง security maintenance นั้น distro ต่างๆ ควร update branch ตาม Mozilla แม้ใน stable release (เรื่องนี้คงยาก ถ้าจะให้ Firefox เป็นข้อยกเว้นในเรื่องนี้ด้วยเหมือนกัน) และในแง่ประเด็นทางเทคนิค Mozilla อ้างว่า Debian ได้ส่งแพตช์ขนาด 100,000 บรรทัดไปให้ตรวจสอบก่อน release (เพิ่งรู้เหมือนกัน ว่า Debian ก็พยายามทำตามเงื่อนไขเครื่องหมายการค้าอยู่) ซึ่ง Mozilla บอกว่าเป็นแพตช์ที่ "ไร้ประโยชน์" และ break frozen API ซึ่งทำให้ extention หลายตัวทำงานไม่ได้ และทำให้มี bug report แปลกๆ จากผู้ใช้ Debian มากมาย ซึ่งท่าทีของ Debian ไม่ได้ร่วมมือพัฒนาเท่าที่ควร

ประเด็นทางเทคนิคนี้ ทำให้ Mike Hommey ซึ่งเป็นผู้ดูแล firefox และ xulrunner ใน Debian ต้องออกมา อธิบาย ซึ่งเป็นที่มาของการเขียน blog นี้ เพราะเป็นครั้งแรกที่มีการพูดถึงข้อมูลเชิงลึกในที่สาธารณะ

ก่อนอื่น Mike อธิบายว่า patch ที่ส่งไปตามเงื่อนไขของ Firefox นั้น เมื่อตัดส่วนที่เป็น control file สำหรับ build deb และส่วนที่ replace configure script อันเนื่องมาจากการเรียก autoconf แล้ว (เรื่อง update configure script นี่ เป็นเรื่องปกติสำหรับ distro ที่สนับสนุนหลาย architecture อย่างDebian ครับ) ก็จะเหลือเพียง 2,654 บรรทัดเท่านั้น ที่เกี่ยวกับซอร์สของ Mozilla และใน 2,654 บรรทัด ก็สามารถแจกแจงสิ่งที่ทำเป็นข้อๆ (อ่านรายละเอียดได้ใน blog) ซึ่งอ่านแล้วพอสรุปได้ดังนี้

  • patch สำหรับระบบ build ทั่วไป
  • patch สำหรับปิดการ upgrade เนื่องจาก Debian ใช้ระบบ apt แทน
  • patch สำหรับการ port ไปยัง architecture อื่นอีก 11 ชนิด นอกเหนือจาก i386
  • patch สำหรับการ conform ตาม FHS
  • patch สำหรับ link library บางตัวที่มีในระบบ แทน static link
  • patch สำหรับแก้ bug จิปาถะ

ซึ่ง Mike อ้างว่า patch เหล่านี้ หลายตัวก็เอามาจาก trunk หรือ Bugzilla และ Debian ก็พยายามผลัก patch ที่ไม่เจาะจงกับ Debian เข้า upstream อยู่แล้ว (ผมเป็นพยานได้ในเรื่อง patch ภาษาไทย เท่าที่มีการติดต่อ distro ต่างๆ ทั้งโดยผมและ Mk มี Debian เจ้าเดียวที่ forward bug เข้า upstream) จึงเข้าใจได้ยาก ว่า Debian ไม่ให้ความร่วมมืออย่างไร

อีกประเด็นหนึ่งคือคอมไพเลอร์ที่ใช้ ดูเหมือน Mozilla ไม่เข้าใจ ว่า distro ต่างๆ ใช้ gcc 4.x คอมไพล์กันแล้ว แต่ official binary ยังใช้ gcc 3.4 อยู่ และ require libstdc++5 ซึ่งแทบไม่มีใครใช้อีกแล้ว หลังการ migrate มา libstdc++6

ส่วนที่มีคนเสนอให้ Debian ย้าย Firefox ไป contrib หรือ non-free โดยทำแค่ installer ไปดาวน์โหลด official binary ก็พอ เพื่อตัดปัญหา ก็มีปัญหาว่า อีก 11 architecture ที่เหลือ ไม่มี official binary ให้ อีกทั้ง libstdc++5 ที่ official binary ของ i386 ต้องการ ก็กำลังจะเลิกใช้แล้ว (แต่ไม่ต้องพูดถึงเรื่องนี้ ผมก็ไม่เห็นด้วยกับการย้ายอยู่แล้ว เพราะซอร์สมันยังเป็นโอเพนซอร์สอยู่ มีปัญหาแค่เครื่องหมายการค้าเท่านั้น)

พร้อมกันนี้ Mike เลยถือโอกาสบ่น ว่า Mozilla ไม่ให้ความสำคัญกับ Linux เท่าที่ควร ไปมุ่งแต่ Windows มากเกินไป patch ต่างๆ เลยถูกสะสมไว้ที่ distro ไม่ได้ check-in (และไม่น่าแปลกใจที่ Mozilla จะเห็นแพตช์ของ Debian "ไร้ประโยชน์")

ปิดท้ายด้วยการยืนยัน ว่า Debian ยังไม่ย้ายไปใช้ Gnuzilla แม้จะใช้ชื่อ IceWeasel ตรงกันก็ตาม เนื่องจากกำหนดการออก Etch ใกล้เข้ามาแล้ว จึงไม่มีเวลาพอจะย้าย code base แม้จะมีแนวคิดที่จะร่วมทำงานกับ Gnuzilla หลัง Etch ก็ตาม

15 ตุลาคม 2549

libthai, lexitron dictd deb

บันทึกเรื่องที่ทำในช่วง 2-3 วันที่ผ่านมา:

  • Release libdatrie 0.1.1 โดยแก้ compiler warning และเขียน man page เพิ่ม (เป็นประเด็นที่พบระหว่าง build deb)
  • Release libthai 0.1.7 หลังจากที่รื้อตัวตัดคำเขียนใหม่มาเดือนกว่า ตามที่เคย blog ไว้ ก่อนหน้านี้ พร้อมทั้ง optimize เพิ่ม + fine-tune dict
  • Build deb สำหรับ libdatrie และ libthai ตัวใหม่ แล้ว upload ไว้ที่ LTN apt ก่อน เนื่องจากต้องใช้เวลา กว่าจะ upload เข้า debian ได้ โดยเฉพาะในช่วงที่ etch เตรียม freeze อย่างนี้ คงหา sponsor ช่วย upload แพกเกจใหม่ยากหน่อย เพราะตอนนี้เขาเน้น fix bug กัน
  • ท่องเว็บเพลินๆ ไปเจอลิงก์ Lexitron dictd deb ที่ blog ของวีร์ เข้า เลยโหลดมาดู พบว่าเอามาจาก dictd-lexitron ใน LTN CVS ที่คุณพูลลาภ เคยทำไว้ เมื่อสองปีก่อน เลยจัดการ up CVS แล้วทำเพิ่ม โดยปรับ build system และ build deb ให้เป็นเรื่องเป็นราว แล้ว upload เข้า LTN apt เพื่อให้ผู้ที่สนใจจะเปิดบริการ dict server สำหรับ lexitron ได้ติดตั้งได้สะดวก (aptitude install dict-lexitron) หวังว่าจะได้แหล่ง dict service ของไทยไปลงทะเบียนกับ gnome-dictionary stock ในเร็ววัน
  • Update คำแปลใน debian-installer เพิ่ม เพราะเริ่มเข้าสู่ช่วง string freeze แล้ว

ไว้ค่อยๆ เคลียร์ TODO list ต่อไป..

12 ตุลาคม 2549

IceWeasel not a fork?

จากที่เคย เขียนถึง โครงการ Gnuzilla ว่าเป็นการ fork Mozilla ออกไปเป็น free software ล้วนๆ โดยใช้ชื่อ IceWeasel แทน Firefox ก่อนหน้าที่ Debian จะตัดสินใจใช้ชื่อ IceWeasel นี้เหมือนกัน โดยที่ยังต้องรอดูว่า จะใช้แค่ชื่อ หรือเปลี่ยนไปใช้ source base ของ Gnuzilla ด้วย

เลยแวะไปดูซะหน่อย ในเว็บหน้าแรกบอกว่า ตอนนี้ IceWeasel มี feature เรื่อง security เพิ่มจาก firefox อย่างน้อยสองเรื่องแล้ว เป็นการป้องกันการดักคุกกี้ด้วย image ขนาดศูนย์ กับการเตือนผู้ใช้เมื่อมีการ rewrite URL ของบางเว็บ ซึ่งเป็นการดักจับพฤติกรรมการคลิกของผู้ใช้

แต่พอเข้าไปดู CVS ที่หน้า Savannah project แล้ว นี่ไม่น่าจะเรียกว่าเป็นการ fork เพราะใน CVS จะเก็บเฉพาะซอร์สส่วนที่ patch เพิ่มจาก Mozilla เท่านั้น และจะมีการ sync กับ Mozilla ทุกครั้งที่มี release ใหม่ กล่าวคือ ดูรูปแบบแล้ว ก็เหมือนโครงการที่เป็น community edition ทั่วไป และก็คล้ายกับงาน distro ที่มีการ patch เพิ่มนั่นเอง นับว่ายังดี ที่ไม่ต้องกระจายแรงหรือเลือกข้าง ถ้าจะทำงานกับ Mozilla หรือ Gnuzilla

เข้าไปสอดแนมใน mail archive ก็พบว่ามีการเชื่อมโยงกับ Debian และ Ubuntu อยู่แล้ว และน่าจะเชื่อได้ว่า Debian คงจะใช้ source ของ Gnuzilla นี่แหละ ส่วน Ubuntu นั้น ยังมีหลายกระแส ไม่รู้ว่าจะเลือกยอมตาม Mozilla Corp แล้ว fork ออกไปจาก Debian หรือจะร่วมทำ IceWeasel กับ Debian เนื่องจาก DD ที่ไปช่วย Ubuntu ก็มีเยอะที่เห็นด้วยกับ Debian ในขณะที่บางส่วนของชุมชน Ubuntu ยังต้องการใช้ชื่อและ logo Firefox อยู่

ปล. ในบรรดาความเห็นฝ่าย Debian มีของ Matthew Garrett (ที่ตอนนี้ลาออกจาก Debian ไปทำ Ubuntu เต็มตัวแล้ว) ที่น่าสนใจ โดยพุ่งประเด็นไปที่การอนุญาตให้ patch/fork ภายใต้ชื่อเดิมโดยตรง ว่าที่ผ่านมามันมีข้อดีอย่างไร ส่วน อีกความเห็นหนึ่ง ที่สนับสนุน Eric Dorland ให้เหตุผลเกี่ยวกับผลในระยะยาว ที่น่าจะดีกว่าการยอมตามเพื่อผลระยะสั้น กับอีกเรื่องที่สำคัญ คือ security support ที่ Mozilla มีช่วงการ maintain branch ที่สั้นเกินไป การใช้ชื่อ Firefox จะมีปัญหากับนโยบาย security update ได้

10 ตุลาคม 2549

Ice Lizards

ดูเหมือน mozilla software ใน debian จะ ได้ชื่อใหม่ แล้ว:

  • IceWeasel สำหรับ Firefox
  • IceDove สำหรับ Thunderbird
  • IceApe สำหรับ SeaMonkey

ที่เว็บของ Ubuntu มี แบบร่างไอคอน แล้วด้วย

spread firefox อย่าลืมแถมพ่วง spread iceweasel ด้วย ให้เขารู้ว่ามันคือตัวเดียวกัน รวมทั้ง Thai Community Edition ที่ไอคอนไม่มีจิ้งจอกด้วย

xulrunner-libthai deb

จากที่ได้ backport patch ของ mozlibthai มาที่ 1.8 branch แล้วก็ build ใช้เองจาก CVS เห็นว่าได้ผลดี ก็เลย build xulrunner deb พร้อม mozlibthai component เพิ่มด้วย โดย upload ไว้ที่ LTN APT สามารถติดตั้งได้ดังนี้ (สำหรับผู้ใช้ epiphany):

  • เพิ่มใน /etc/apt/sources.list:
    deb http://linux.thai.net/apt ./
    
  • ติดตั้ง libxul0d และ xulrunner-libthai:
    # aptitude update
    # aptitude install libxul0d xulrunner-libthai
    

แพกเกจดังกล่าว จะมีผลกับ epiphany เท่านั้น ส่วน firefox นั้น คงต้องรอ debian เปลี่ยนชื่อให้เสร็จก่อน (จะได้ไม่ต้อง build เสียเที่ยว) บวกกับว่าผมจะมีแรง build หรือไม่ เพราะเครื่องที่ใช้ค่อนข้างช้า และฮาร์ดดิสก์เหลือที่น้อย อย่าง xulrunner ก็ใช้เวลาปรับ patch สำหรับ debian อยู่ครึ่งวัน ส่วนอีกวันครึ่งรอ build + เคลียร์ฮาร์ดดิสก์

ต้องยอมสละไฟล์ที่ดาวน์โหลดมาไปเยอะอยู่ รวมทั้ง source code ที่ check out มาอีกหลายชุด ลบไปร่วมๆ 1.7 GB ยังแค่ปริ่มๆ ยังขาดขั้นตอน lintian เพราะฮาร์ดดิสก์เต็มพอดี T_T

ส่ง patch ไปที่ debian bug ละ เขาจะรับหรือเปล่าต้องรอดู

ปล. เมื่อไร Thai Firefox Community Edition จะมี Linux version?

08 ตุลาคม 2549

xulrunner + libthai

ว่าจะไม่กลับมาดู mozilla 1.8 branch แล้วมุ่งทำแต่ที่ HEAD ไปซะแล้ว แต่เนื่องจากตั้งใจว่าจะกลับมาใช้ epiphany ต่อ เลยกลับมาที่ branch นี้ใหม่ เมื่อวานก่อนออกไปลอยกระทงออกพรรษา ก็เลยได้ backport patch สำหรับ xulrunner 1.8.0.7 มา ซึ่ง patch นี้จะแยก mozlibthai XPCOM ออกมา ตามวิธีที่เสนอใน HEAD บวกกับเพิ่มการทำ cache เพื่อเพิ่มความเร็วด้วย

ระหว่าง backport ก็ทำให้พบปัญหาใน patch เดิมสำหรับ HEAD ด้วย เลยกลับไป update patch ที่ Bug #7969 ด้วย

ไว้ว่างๆ ลอง build deb ของ xulrunner + libthai ดู ส่วน firefox ก็ให้เป็นหน้าที่ของ Thai community editon ที่ถูกต้องตามกฎหมายเถอะนะ :P

05 ตุลาคม 2549

Educational FOSS (again)

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

ข่าวบอกว่า สสวท. ได้ซื้อลิขสิทธิ์โปรแกรมดังกล่าวมา เพื่อ localize เป็นภาษาไทยด้วย

จริงๆ แล้ว โปรแกรมการศึกษาแนวนี้ที่เป็น free software ก็มีเยอะ (รายชื่อจากวิกิพีเดีย, จาก Seul/Edu, จาก blog เก่า) ถ้าภาคการศึกษาเริ่มมีการตื่นตัว ก็น่าจะพิจารณา localize ซอฟต์แวร์กลุ่มนี้ด้วยหรือเปล่า? นอกจากจะเป็นการประหยัดงบประมาณแล้ว ยังมีอิสระที่จะพัฒนาต่อยอดในสิ่งที่เห็นว่าขาด หรือกระทั่งร่วมพัฒนาได้อีกด้วย ถ้าจะมองว่าต้องลงทุนพัฒนาเพิ่ม แต่เราก็มีอิสระที่จะปรับปรุงได้มากกว่าที่ซื้อลิขสิทธิ์มา ได้พัฒนาคน ได้มีส่วนร่วมกับนานาชาติ น่าจะถือได้ว่าคุ้มค่า

03 ตุลาคม 2549

Funny Bug

Debian เขามีสะเก็ดข่าวด้วยแฮะ ไปอ่านเจอ DeFuBu contest #3 ประกวด bug ขำประจำเดือน ซึ่งผมชอบ bug ที่ชนะเลิศของเดือนนี้มาก:

konsole crashed after my cat jumped on the mouse

เป็น bug ที่ reproduce ยากมาก! :-D

/me ถ้าตูเป็น maintainer เจอ bug report แบบนี้ จะทำไงดีเนี่ย -_-!

02 ตุลาคม 2549

New Pango Modules Handling

หลายวันที่ผ่านมา มีแต่งานเอกสาร เกี่ยวกับการ follow up ISO draft สองฉบับ แล้วก็ค้นข้อมูลเตรียมเอกสารบางอย่าง แต่ก่อนหน้านั้น ก็มี debian bug ตัวหนึ่งสำหรับ pango-libthai ที่ request ให้ build package ใหม่ตามวิธีการใหม่ในการจัดการ pango modules ใน debian

ติดตาม changelog หาต้นตอ ก็ไปพบว่า เรื่องนี้มีต้นตอมาจาก Ubuntu #41297 ที่พบขณะ upgrade Ubuntu ผ่าน GUI ซึ่งใช้ debconf-gnome frontend โดยมีการ upgrade pango แบบข้าม major version และมีการเปลี่ยน path ที่เก็บ pango modules แต่ไฟล์ pango.modules ที่ใช้ลิสต์ pango modules ที่ register ไว้ทั้งหมด อยู่ใน /etc และ update ขณะ postinst ทำให้เกิดช่วงสูญญากาศขณะ unpack pango แต่ยังไม่ postinst ที่ทำให้ pango ไม่ทำงาน และ debconf-gnome จึงไม่สามารถทำงานได้

mvo เสนอวิธีแก้ โดยวิเคราะห์ว่า ไฟล์ pango.modules ไม่ควรอยู่ที่ /etc ซึ่งเป็นที่เก็บ config สำหรับให้ admin ปรับแต่งระบบ ในขณะที่ไฟล์นี้ จะถูกเขียนทับเสมอ ถ้า admin ปรับแต่งอะไรไป ก็จะถูกทับตอน upgrade อยู่ดี ตรงกันข้าม แพกเกจควรจะเตรียม pango.modules ไว้ก่อนแล้ว เพื่อจะได้ให้ pango ใช้การได้ตั้งแต่ unpack เลย โดย mvo เสนอหลายวิธี และเลือกวิธีที่เปลี่ยนแปลงน้อยที่สุด โดยย้ายไฟล์ pango.modules ไปไว้ที่ /var/lib/pango/pango.modules แล้วให้มี script update-pango-modules มาเขียนทับอีกที ในกรณีที่มีแพกเกจอื่นที่มี pango module (เช่น pango-libthai ของเรา) และใช้วิธีนี้ใน Ubuntu

แต่วิธีที่ debian เลือกใช้ (จากหนึ่งในวิธีที่ mvo เสนอ) เป็นวิธีที่จัดระเบียบมากกว่านั้น โดย patch pango ให้อ่าน modules file ทั้งหลายใน /usr/lib/pango/<MODULE_VERSION>/module-files.d/ แทนที่จะอ่านแค่ pango.modules ไฟล์เดียว แล้วให้แพกเกจที่เตรียม pango module ไปวางไฟล์ *.modules ที่ลิสต์ module ของตัวเองไว้ในนั้น โดยผ่านคำสั่ง dh_pangomodules สำหรับการ build deb ที่แพกเกจ pango เตรียมไว้ให้ ก็เลยเป็นเหตุให้ผมต้อง build pango-libthai 0.1.6-2 สำหรับ debian ให้ใช้วิธีใหม่นี้ (ซึ่งปรากฏว่าง่ายและลงตัวมากๆ)

นอกจากจะเลือกวิธีที่ยากแต่สวยแล้ว maintainer ของ debian ยังได้ส่งเรื่องต่อเข้าที่ต้นน้ำ เพื่อแก้ไขที่ pango โดยตรงด้วย (GNOME Bug #355985) นี่แหละคร้าบ ตัวอย่างบรรยากาศการทำงานของ Debian เขาละ ซึ่งเครดิตก็ต้องยกให้ Ubuntu เขาด้วย

hacker emblem