Theppitak's blog

My personal blog.

29 พฤศจิกายน 2548

How I Joined GNOME Translation

เกือบสองปีที่แล้ว ระหว่างที่พยายามปรับใช้ FOSS กับธุรกิจ เพื่อจะได้สนับสนุนงานพัฒนาด้วยตัวเอง ก็ปรากฏว่า ได้งานพัฒนาที่ผู้ใช้ยอมใช้ลินุกซ์มาทำ ทางฝั่ง client นั้น ก็ใช้ GNOME เป็นหลัก ทำให้ได้เห็นปัญหาต่างๆ ของการนำไปใช้จริง และรู้สึกว่า ระบบ APT ของ Debian ให้ความยืดหยุ่นมาก ในการจัดชุดซอฟต์แวร์ต่างๆ ตามความต้องการ (จากเดิมที่ใช้ APT เพียงแค่ upgrade เครื่องตัวเอง ยังไม่ได้ใช้พัฒนางานภาคสนามจริง)

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

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

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

ผมคิดว่าได้เลือกวิธีที่ดีที่สุด คือเข้าร่วมกับทีมแปลไปเลย ผมได้ผลที่เป็นรูปธรรม และประหยัดทรัพยากรของทุกฝ่าย

ที่เขียนมานี่ คนที่อยู่ในกระแส FOSS อยู่แล้ว อาจจะมองว่าเป็นเรื่องธรรมดา แต่ในภาคธุรกิจจริง เราจะเห็นพฤติกรรมสองอย่างแรกอยู่เนืองๆ ซึ่งนอกจากจะเป็นการเอาเปรียบเจ้าของผลงานแล้ว ยังเป็นความสิ้นเปลืองทรัพยากรอีกด้วย

สำหรับงานแปล ดัชนีงานแปล GNOME 2.14 วันนี้ ภาษาไทยอยู่ที่ 67.46% (โดยยังไม่ตัดแพกเกจ gtk+-properties และ gnome-applets-locations ที่ไม่ใช้ประเมินสถานะ supported languages) ไต่อันดับขึ้นมาอีกสองอันดับ แซงภาษาฮิบรูและสโลวักมาอย่างฉิวเฉียด ขึ้นมาอยู่อันดับที่ 47 แล้ว

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

23 พฤศจิกายน 2548

GNOME 2.14 Translation

ท่ามกลางเสียงไซโคจากคนรอบข้างให้หันไปทำอย่างอื่น ท่ามกลางเสียงรบกวนจากงานอื่น แต่อาทิตย์นี้ก็พยายามดันงานแปลไทยของ GNOME 2.14 ให้ได้มากที่สุดเท่าที่เวลาจะอำนวย โดยอาทิตย์นี้ ก็ไล่แปลแพกเกจต่างๆ ที่มี message ใหม่, ตรวจแก้ message เก่าเช่นเคย พร้อมกับจบ gThumb ตามข้อมูลที่มี แล้วเริ่มแปล gnome-games

ดัชนีงานแปล GNOME 2.14 วันนี้ ภาษาไทยอยู่ที่ 64.60% (โดยยังไม่ตัดแพกเกจ gtk+-properties และ gnome-applets-locations ที่ไม่ใช้ประเมินสถานะ supported languages) แอบไต่ระดับขึ้นมาอีกหนึ่งอันดับ แซงภาษาอารบิกมาเงียบๆ มาแตะหลังแตะไหล่ภาษาฮิบรู โดยภาษาไทยอยู่อันดับที่ 49 แล้ว

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

21 พฤศจิกายน 2548

Edge-resisting Metacity

เมื่อวานนี้ ขณะ update GNOME CVS เห็น metacity เปลี่ยนเยอะเป็นกระบุง เลยเข้าไปอ่าน ChangeLog ดู พบว่า มีการ merge constraints_experiments branch เข้ามาที่ HEAD แล้วก็ออก 2.13.2 ซึ่งใน ChangeLog บอกว่า มี changelog ใน CVS รวมราว 2,000 บรรทัด ปิด bug ใน bugzilla ไป 20 กว่า bug

ข้อใหญ่ใจความของ branch นี้ ก็คือ การ implement constraint ของหน้าต่างใหม่หมด เรื่องที่สำคัญที่รอมานาน คือ edge resistance (การหน่วงหน้าต่างติดกับขอบจอ, ขอบหน้าต่าง ขณะย้าย หรือเปลี่ยนขนาด) ซึ่งทำให้การจัดหน้าต่างง่ายลงมาก

ว่าแล้วเลยจัดการ build ซะ จบแล้วก็ได้ GNOME desktop ที่จัดหน้าต่างง่ายดายเหมือนสมัยใช้พวก WindowMaker, Sawfish วู้.. ในที่สุด metacity ก็มีกะเขาซะที

ปล. ดัชนีงานแปล GNOME 2.14 ตอนนี้ ภาษาไทยอยู่ที่ 61.73% (โดยยังไม่ตัดแพกเกจ gtk+-properties และ gnome-applets-locations ที่ไม่ใช้ประเมินสถานะ supported languages) แอบไต่ระดับขึ้นมาสองอันดับ ข้ามภาษา Xhosa และอาเซอร์ไบจาน ขึ้นมาเงียบๆ (เพราะช่วงนี้ยังแค่ช่วงต้นๆ ของ development หลายภาษายังไม่ขยับกัน)

15 พฤศจิกายน 2548

Wanda the Fish

เคยเขียนไว้ในท้าย blog เรื่อง GDM Easter Egg ว่ามี easter egg ที่ปลา wanda ออกมาแหวกว่ายในเดสก์ท็อปสมัย GNOME 1.4 จนเมื่อเดือนก่อน มีการพูดถึง fish applet ใน mailing list ของ GNOME ทำให้ได้ข้อมูลอะไรเพิ่มเติม

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

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

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

เพียงเปิดไดอะล็อก "Run Application..." [เรียกโปรแกรม...] จากเมนูในพาเนล หรือกด Alt-F2 แล้วพิมพ์ "free the fish" ตามด้วย <enter> ปลา wanda ก็จะเป็นอิสระจากตู้ปลา

แกะซอร์สโค้ดเพิ่มเติม ก็เจอไข่อีกสองฟอง ฟองหนึ่งคือ ถ้าพิมพ์ "gegls from outer space" ปลา wanda ของคุณจะต่อสู้กับวัวผู้บุกรุก!! (อ่าน ChangeLog พบว่า ไข่ฟองนี้เกิดตอนช่วงวันหยุดคริสต์มาส ที่ทุกคนไม่ควรทำตัว productive ..เขาว่างั้น คงเหมือนตรุษจีนของคนจีนเนาะ)

ส่วนอีกฟองนี่ซ่อนลึกหน่อย คือขณะที่พาเนลฟ้อง error เป็นไดอะล็อกที่ไอคอนเป็นเครื่องหมาย STOP นั้น (วิธีหนึ่งที่จะสร้าง error ก็คือ ลองคีย์คำสั่งมั่วๆ ในไดอะล็อกเรียกโปรแกรม) ลองกด Ctrl ค้างไว้แล้วพิมพ์ "fear" (ไม่ต้อง enter) ทีนี้ลองพยายามกดปุ่ม "OK" [ตกลง] ด้วยเมาส์ โดยพยายามเข้าจากทางด้านล่างซ้ายของไดอะล็อกดู ดูซิว่าคุณจะนึกถึงหนังอินเดียรึเปล่า :-)

14 พฤศจิกายน 2548

XDG Menu ใน JHBuild

ในการทำงานกับ GNOME ผม build GNOME จาก CVS ด้วย JHBuild มาตั้งแต่ 2.6 (ก่อนหน้านั้นใช้ GARNOME) โดยติดตั้งแยกไว้ใน home directory ส่วน GNOME จาก debian ก็สำรองไว้ใช้เวลาที่ตัวใน CVS ไม่เวิร์ก หรือไว้คอยติดตามสถานะของ debian ว่าไปถึงไหนแล้ว

แต่ใช้แบบนี้ ก็จะติดอยู่อย่าง คือเมื่อ GNOME หันมาใช้ freedesktop menu ตั้งแต่ GNOME 2.10 ระบบเมนูก็เลยแยกจาก system directory ของ GNOME ใน debian (เพราะรากของเมนูอยู่คนละที่) ทำให้เมนูของโปรแกรมใน debian ไม่มาปรากฏในเมนูของ GNOME จาก jhbuild

บันทึกวิธีแก้ไว้ตรงนี้ สำหรับผู้ที่อาจจะใช้ jhbuild เหมือนกัน ว่าแก้โดย export ตัวแปรระบบ XDG_DATA_DIRS ในไฟล์ $HOME/.xsession ดังนี้:

export XDG_DATA_DIRS=$XDG_DATA_DIRS:/usr/share
exec jhbuild run gnome-session

แล้วระบบเมนูของ GNOME จาก jhbuild ก็จะไปหา XDG menu จาก /usr/share/applications และ /usr/share/desktop-directories ด้วย

อยากเชิญชวนนักแปล GNOME ให้มาใช้ jhbuild ถ้าเป็นไปได้ จะได้ติดตามและตรวจสอบคำแปลไปพร้อมๆ กันก่อนออกตัวจริง หรือถ้าไม่ไหวจริงๆ ก็อาจจะติดตามจาก development release (เช่น จาก GARNOME หรือ Ubuntu) เพราะกว่าจะรอรุ่นจริงแล้วค่อยวิจารณ์ก็อาจจะสายเกินไปเสียแล้ว

04 พฤศจิกายน 2548

GDM Dharma Theme

กลับจากกัมพูชา ก็มีอีกทริปต่อ คือไปวัดเป็นเพื่อนน้อง นอนวัดป่า 3 คืน ถือโอกาสพักผ่อนชำระจิตใจ ด้วยความที่วัดไม่มีไฟฟ้าใช้ ต้องใช้เทียนเป็นแสงสว่างหลักตอนกลางคืน ก็เลยเป็นแรงบันดาลใจให้เก็บภาพแสงเทียนในกุฏิที่สงบนิ่ง กระเพื่อมเล็กน้อยตามจังหวะ คล้ายดวงจิตที่กำลังทำสมาธิ เอามาทำเป็น GDM theme ตั้งชื่อว่า dharma

GDM Dharma Theme

ระหว่างทำ theme ก็เลยเจอจุดที่ต้องแก้คำแปลอีกเล็กน้อย เลยได้งานเพิ่มอีกนิดไปในตัว (commit แล้วใน GNOME 2.12 branch แต่ที่ HEAD นี่ เขา active มาก มี message เพิ่มอีกเพียบ จะว่าไป GNOME 2.14 ท่าจะมีเรื่องตื่นเต้นพอควร ทั้งเรื่องการใช้ cairo มากขึ้น และการ optimize ขนานใหญ่ ..ไว้คอยติดตามกันต่อไป)

ปล. สำหรับผู้ที่ถามถึงสถานะ FOSS ของภาษาไทยที่ผมสรุปเป็นรายงานที่พนมเปญ ผมเอาขึ้นเว็บแล้ว ที่หน้า My Presentations ใน homepage ผมนะครับ ผิดถูกประการใด.. ก็แก้ไม่ทันแล้วล่ะ เอิ๊กๆ

hacker emblem