Theppitak's blog

My personal blog.

30 กันยายน 2549

Firefox Trademark

จากกรณีปัญหาเครื่องหมายการค้า Firefox ของ Mozilla Corporation ที่ทำให้ Debian ไม่สามารถใช้ logo ของ Firefox ที่เป็นจิ้งจอกไฟได้ เพราะเงื่อนไขการใช้ไปขัดกับ Debian Free Software Guidelines (DFSG) ที่ Debian ได้ให้สัญญาต่อสาธารณะไว้ โดย Mozilla บังคับให้ส่ง patch ไปให้ approve ก่อน distribute ด้วยเครื่องหมายการค้า ซึ่งไม่เพียงแต่ทำให้เสียเวลาเพิ่มในการแก้ปัญหาต่างๆ แต่ยังทำให้ Debian ต้องผิดสัญญาสาธารณะที่ให้ไว้ด้วย เนื่องจากผู้ที่จะนำ Debian ไปพัฒนาต่อ จะไม่สามารถพัฒนา Firefox ใน Debian เพิ่มได้ทันที แต่ต้องขออนุญาตจาก Mozilla เพิ่มอีก ทำให้ Debian จำเป็นต้องเลือกที่จะใช้รูปลูกโลกเปล่าๆ ไม่มีจิ้งจอกไฟ เพื่อให้การรักษาสัญญาสาธารณะไม่ละเมิดเครื่องหมายการค้าของ Mozilla ซึ่งก็ดูจะลงตัวดี แต่ปรากฏว่า ตอนนี้ Mozilla ยังเพิ่มเติมอีกว่า ไม่อนุญาตให้ Debian ใช้ชื่อ Firefox ด้วย ถ้าไม่ได้ใช้ logo ของ Firefox และ Debian ก็ตัดสินใจแล้ว ว่าจะเปลี่ยนชื่อภายในอาทิตย์หน้านี้

ก่อนจะมาเป็นชื่อ Firefox เบราว์เซอร์ตัวนี้เคยเปลี่ยนชื่อมาแล้วหลายครั้ง เพราะไปซ้ำกับเครื่องหมายการค้าของคนอื่น คือ Phoenix แล้วก็เป็น Firebird จนมาลงตัวที่ Firefox ตอนนี้ จะเปลี่ยนชื่ออีกใน Debian ก็ มีคนเสนอหลายชื่อ ตั้งแต่ IceWeasel (พังพอนน้ำแข็ง), Firechicken, Foxfire, Firesomething, Freefox เสนอแบบขำๆ กัน แต่ดูท่าทางชื่อหลังสุดจะมาแรง แต่ก็ยังมีบางคน ถามปิดท้าย ว่ายังจะให้ใช้ "Firefox" ใน User-Agent string ได้อยู่หรือเปล่า

ความจริง การเปลี่ยนชื่อครั้งนี้ ก็น่าจะเป็นแค่เงื่อนไขเพิ่มเติมจากการเปลี่ยน logo แต่มันได้ทำให้เกิดแรงกระเพื่อมในหมู่ Debian Developer พอสมควร รวมทั้งนักพัฒนา Ubuntu บางส่วน ที่เคยเชียร์ให้ใช้ Epiphany เป็น default browser ด้วย

ตัวอย่างเช่น ก็มีคน ตั้งข้อสังเกต ว่า GNU มีโครงการ Gnuzilla and IceWeasel อยู่แล้ว ซึ่งเป็นการ fork Mozilla suite และ Firefox ออกไปเป็นรุ่นที่เป็น free software ล้วนๆ และเสนอให้ไปใช้และช่วย patch โครงการนี้แทนจะดีกว่า

ขณะเดียวกัน อีกกระแสหนึ่งก็คือ boycott Firefox เนื่องจากรู้สึกว่าเอาอะไรแน่นอนกับเงื่อนไขที่เปลี่ยนไปมาของ Firefox ไม่ได้ โดยหันไปรณรงค์การใช้ Epiphany ซึ่งเป็นเบราว์เซอร์ของ GNOME ที่ใช้ gecko เหมือนกัน แต่ไม่มีปัญหาเรื่องชื่อและเครื่องหมายการค้าแทน (ผู้ใช้ KDE สบายไป ใช้ Konqueror สบายใจเฉิบ)

ผมเองเป็นแฟน Epiphany มาระยะหนึ่งอย่างเงียบๆ ใจจริงอยากโปรโมท Epiphany แต่เห็นว่า Firefox สามารถดึงผู้ใช้จาก Windows มาได้ ก็เลยร่วมแคมเปญ spreadfirefox เพื่อประโยชน์ในภาพรวมของโอเพนซอร์ส แต่ตัวเองก็ใช้ Epiphany จนเมื่อต้องไปทำเรื่องตัดคำใน Firefox ที่ Ubuntu Localisation Sprint จึงได้เปลี่ยนมา build, patch และทดสอบ Firefox แต่ก็ยังรู้สึกว่าหลายๆ อย่างใน Epiphany ยังน่าใช้กว่า (แต่ Firefox 2.0 เริ่มมีอะไรที่เคยขาดมากขึ้น) และในเมื่ออนาคตของ Firefox ใน Debian มันชักไม่สดใส ไยผมจะไม่เตรียมย้ายกลับไปใช้ Epiphany อีกเล่า?

เพิ่มเติม: Isriya's blog

29 กันยายน 2549

Clinton: All you need is ubuntu...

You and me, me and you, lots and lots, for us to do

ที่เขาว่า คำว่า ubuntu มันแปลเป็นภาษาอังกฤษได้ยาก แต่พอสรุปความหมายได้ว่า เป็นการบรรยายถึงคำว่า "มนุษยธรรม" หรือ Humanity แต่ข่าว BBC ข้างต้น เขาอธิบายละเอียดกว่านั้น

ubuntu เป็นคำในภาษา Bantu ที่พูดกันในแอฟริกาใต้ ถอดความได้ประมาณว่า "I am because you are" หรือ "ฉันเป็นฉันได้ก็เพราะเธอเป็นเธอ" ซึ่งเกี่ยวโยงกับแนวคิดของซูลู ว่าคนคนหนึ่ง จะมีความหมายก็จากความสัมพันธ์กับคนอื่นๆ เท่านั้น

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

คำคำนี้ ได้ถูกใช้ในทางรัฐศาสตร์มากขึ้น รวมทั้งวงการอื่นๆ เช่นโอเพนซอร์ส ก็กลายเป็นชื่อระบบปฏิบัติการที่ใช้เดเบียนเป็นฐานด้วย ;-)

27 กันยายน 2549

Free Software not Read-Only

ไปอ่าน สัมภาษณ์ NIIBE Yutaka แฮกเกอร์มือฉมังของญี่ปุ่น และประธาน Free Software Initiative of Japan มา สะดุดตรงประเด็นที่เขาว่า หลายคนเชื่อผิดๆ ว่าซอฟต์แวร์เสรีนั้น read-only:

... Well, some people misunderstand that software too cannot be changed or modified. Most proprietary software is like that. It is only the vendors who can change the software, since that's the model of proprietary software business.

In some countries or culture, such a hierarchy (flow is only from top to bottom) or role model is believed to be a good thing, or the usual thing. It is surprising for such a culture that we can "join" the process of the change.

I think that people perceive that the Free Software movement follows the proprietary model too. I try to change this perception of Japanese. It is our right to study, modify, share the software, and talk about the rules as well! ...

เรื่องแบบนี้จะว่าเป็นเรื่องเก่าก็ได้ แต่ผ่านไปกี่ปี ก็เหมือนเดิม ต้องย้ำกันบ่อยๆ กับเรื่อง เสรีภาพในซอฟต์แวร์

26 กันยายน 2549

ขอบคุณ

ขอขอบคุณ คุณพิชิต จิตประไพ ที่ได้ หย่อนสตางค์ลงหมวก อีกครั้งหนึ่ง

ขอขอบคุณในการสนับสนุนอีกครั้ง ถือเป็นกำลังใจสำหรับผมที่จะทำงานพัฒนาซอฟต์แวร์เสรีต่อไป

15 กันยายน 2549

Back to Works

ไม่ได้ blog ครบหนึ่งอาทิตย์พอดี มีบางคนเดาถูก ว่าผมคงไม่พักอย่างที่ว่าจริงๆ หรอก ก็มันอดไม่ได้นี่หว่า แต่ก็พยายามใช้คอมพ์เท่าที่จำเป็นน่ะนะ พักนิ้วแบบไม่แช็ต ไม่เขียนโปรแกรมเลย แค่มาสั่ง update debian อย่างเดียวได้ 2-3 วัน ก็มีเหตุให้ได้หยุดพักสมใจ คือโดนอาหารเป็นพิษเข้า แม่ดูข่าวลุงคนหนึ่งกินหมูกระทะติดเชื้อจนหูหนวก ก็เป็นห่วงใหญ่ เพราะนอกจากท้องเสียแล้ว ผมยังมีไข้ด้วย แถมอาหารที่สงสัย ยังเป็นลาบหมูเสียอีก แต่ตอนนี้หายไข้แล้ว กลับมาซ่าต่อได้

ช่วงที่ผ่านมา ก็มีความเคลื่อนไหวนิดๆ หน่อยๆ เช่น:

  • ออก gtk-im-libthai 0.1.4 พร้อม build debian package
  • file GNOME Bug #355435, GNOME Bug #355550 แก้บั๊กใน Pango ซึ่งทำให้ GtkTextView, GtkEntry กด Ctrl-Left/Right เพื่อข้ามคำไทยทีละคำไม่ได้ รวมทั้งทำให้เลือก engine ของภาษาต่างๆ พลาดในที่อื่นๆ
  • ปรับพจนานุกรมสำหรับตัวตัดคำของ libthai (ต่อไป)
  • file GNOME Bug #356084 เสนอแก้บั๊กเรื่องการจัดการ surrounding text ใน GtkTextView และ GtkEntry ในกรณีที่มีการเลือกข้อความ (ความจริงเจอนานแล้วแหละ แต่เพิ่งมีโอกาสได้ทำ)

พอเริ่มซ่าก็เข้าห้องแช็ตบางห้องบ้างพอหอมปากหอมคอ แต่ยังคีย์มากไม่ได้อยู่ดี (เน้นทำงาน) เดี๋ยวอาการกำเริบอีก :P

ปล. ตั้งแต่ปวดนิ้วมาเนี่ย รู้สึกชัง wheel mouse รัก scroll bar มากขึ้นแฮะ

08 กันยายน 2549

Typing Break

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

  • back-seat code input method ภาษาไทยใน m17n ขั้นสุดท้าย โดยช่วยเขาทดสอบ + คอมเมนต์ ไม่ได้โค้ดเอง ตอนนี้ เขาพัฒนาตัวใหม่เสร็จแล้ว อยู่ใน CVS
  • ตรวจแก้คำแปล GNOME ก่อน tarballs due เพิ่มอีกนิดหน่อย
  • แปล GNOME 2.16 release notes
  • follow up bug report ของ gtk-im-libthai ใน Debian พร้อมทั้งแก้ bug เพิ่มเติมใน CVS บวกกับ bug ที่ MrChoke รายงาน
  • ปรับพจนานุกรม libthai นิดหน่อย
  • แก้ bug ของ Thai locale ใน DocBook ที่พบระหว่างแปล GNOME 2.16 release notes ตอนนี้ check-in เรียบร้อย

ท่าพิมพ์และคลิกเมาส์ที่ใช้ ก็ต้องปรับนิดหน่อย เช่น ใช้นิ้วกลางช่วยคลิกเมาส์ ซึ่งระยะยาวคงทำอย่างนี้นานไม่ได้ เดี๋ยวลามไปปวดนิ้วอื่นอีก

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

02 กันยายน 2549

New libthai word break in trunk

ทดสอบตัวตัดคำใหม่สำหรับ libthai มาระยะหนึ่ง พอโค้ดเริ่มทำงานเข้าที่เข้าทางก็พยายาม optimize ได้ความเร็วเพิ่มขึ้นทีละขั้น จนเมื่อวันพฤหัสรู้สึกว่าหมดมุกแล้ว ก็เลยจัดการ merge จาก datrie_wbrk-branch เข้า HEAD ซะ แล้วก็จัดโครงสร้างข้อมูลสำหรับสร้างพจนานุกรมใหม่ แยกรายการคำจากราชบัณฑิตออกไปต่างหาก แล้วทำรายการคำที่เพิ่มเติมแยกเป็นหมวดหมู่

สำหรับรายการคำจากราชบัณฑิต ก็เลือกลบคำโบราณและคำที่เลิกใช้แล้วออก ลบคำที่เป็นวลียาวๆ ออก เพิ่มลูกคำบางคำที่เห็นว่าจำเป็น ปรับแต่งเสร็จก็ build พจนานุกรม ใช้กับ firefox + mozlibthai แล้วลองเปิดเว็บต่างๆ ดู เจอจุดที่ตัดแปลกๆ ก็จัดการเก็บคำเข้าพจนานุกรมซะ รวมทั้งนึกคำที่จะเพิ่มเองใส่เข้าไปเรื่อยๆ

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

สำหรับเรื่องประสิทธิภาพ เท่าที่จับเวลาดู ใช้เวลาประมาณ 3.6 เท่าของโค้ดเดิม แต่ขนาดของโค้ดเล็กลงมาก จากเดิม libthai.so ที่ strip แล้ว ขนาดอยู่ที่ 788 KB ตอนนี้เหลือ 26 KB บวกกับ libdatrie.so ที่ใช้อีก 20 KB เป็น 46 KB เท่านั้น เพราะยกพจนานุกรมออกจากโค้ดไปแล้วนั่นเอง โดยขนาดของพจนานุกรมที่สร้างจากรายการคำชุดเดิม ก็มีขนาดรวม 218 KB เมื่อรวมกับโค้ดแล้ว ก็ยังเล็กลงกว่าเดิมอยู่ดี (ใช้ massif ของ valgrind จับดู พบว่าใช้หน่วยความจำขณะทำงานประมาณ 450 KB) แต่ข้อดีที่เห็นได้ชัดจากโครงสร้างใหม่ก็คือ สามารถปรับแต่งพจนานุกรมได้อย่างอิสระ โดยไม่ต้องคอมไพล์ใหม่ เวลาคอมไพล์ลดลง แม้จะบวกเวลาสร้างพจนานุกรมด้วย และโค้ดดูสะอาดขึ้น

แต่ก็อยากเพิ่มความเร็วให้มากกว่านี้ เดี๋ยวทดสอบปรับปรุงไปเรื่อยๆ แต่ตอนนี้ ต้องไปดู GNOME 2.16 ที่จะ tarballs due วันจันทร์นี้ก่อน :-P

hacker emblem