Theppitak's blog

My personal blog.

27 มกราคม 2548

GNOME 2.10 Tinderbox

ช่วง GNOME 2.5 นู้น ผมตาม patch source ของ GNOME จาก GARNOME ซึ่งเป็นระบบ build จากซอร์สตามลำดับโดยอัตโนมัติ คล้าย portage ของ FreeBSD หรือ emerge ของ Gentoo แต่ความยากลำบากของ GARNOME คือ เวลาจะ update แต่ละที ต้องรอดาวน์โหลด source tarball จนเงก ยิ่งเราตาม patch ใน development branch กระชั้นเท่าไหร่ ก็ต้องดาวน์โหลดบ่อยขึ้น แล้วก็จะเข้าใกล้วงจรชีวิตชาว gentoo ขึ้นเรื่อยๆ คือวันๆ เอาแต่โหลดซอร์สและคอมไพล์

มาถึงช่วง GNOME 2.7 เริ่มอาจหาญลองคอมไพล์จาก CVS snapshot ไปเลย เพราะไหนๆ bandwidth เราก็ต่ำ แถมตาม bleeding edge กระชั้นขนาดนี้ แบบนี้น่าจะเหมาะกว่า ช่วงแรกๆ ค่อนข้างหวั่นๆ กับการใช้ระบบที่ไม่เสถียรมากๆ กับงานในชีวิตประจำวัน แต่ริจะเป็นแฮ็กเกอร์ก็ต้องอยู่กับมันให้ได้

ระบบการ build GNOME จาก CVS มีเครื่องมือช่วยคือ jhbuild ซึ่งช่วย update CVS และช่วยคอมไพล์ตามลำดับโดยอัตโนมัติ ซึ่งใช้ไปๆ ก็รู้สึกเป็นธรรมชาติมากขึ้น สามารถ update ได้ถี่เท่าที่ต้องการ แถมไม่เปลือง bandwidth เหมือน GARNOME การคอมไพล์ก็เป็นแบบ incremental เหมือนตอนทำ project เอง ต่อมาภายหลัง ได้ CVS account ก็ commit ได้เลยทันที (ตามสิทธิที่ตกลงกับ maintainer)

ทั้ง GARNOME และ jhbuild จะติดตั้งและรันเวอร์ชันคอมไพล์เองแยกกับระบบปกติ ดังนั้น ถ้าช่วงไหน development branch เกิดความไม่เสถียรขึ้นมา ก็เปลี่ยน session ไปเข้ารุ่น stable ของ distro ตามปกติได้

ใช้ jhbuild ก็มีความสุขดี เห็นแว้บๆ มานานแล้วว่าทำ tinderbox ได้ด้วย แต่ก็ใช้วิธีสั่ง build แบบ interactive เรื่อยมา เพื่อควบคุมทุกขั้นตอนเอง แต่วันนี้เกิดอยากลองทำ tinderbox ดู รู้สึกมีความสุขขึ้น เพราะสามารถปล่อยมัน build เป็น background process ไปได้เลย แล้วไปทำงานอย่างอื่นตามปกติ เสร็จแล้วมันจะทำ tinderbox ให้โดยอัตโนมัติ แล้วเราก็กลับมาดูทีหลัง ว่าตัวไหนไม่ผ่านมั่ง ก็กลับไปแก้เป็นจุดๆ เอา (เทียบกับแบบ interactive คือ ต้องคอยชำเลืองดูหน้าต่างที่ build อยู่เรื่อยๆ)

ส่วนการเพิ่มความเร็วในการคอมไพล์ ก็ใช้ ccache ช่วย และก็ได้ลองใช้ distcc ช่วยกระจายงานไปคอมไพล์หลายเครื่องดู แต่พอดีที่บ้านมีไม่กี่เครื่อง แต่ละเครื่องสเปคต่ำๆ ทั้งนั้น distcc เลยไม่ได้ช่วยเท่าไหร่ พบว่าบางทีมีการหยุดรอเครื่องที่ช้าที่สุดอีกต่างหาก แต่ ccache นั้น ช่วยได้มากทีเดียว โดยเฉพาะเวลาที่ต้อง make distclean แล้ว configure ใหม่ เหอะๆ

ปล. พักนี้ออกมาแรดได้ เพราะลูกศิษย์ไปเข้าค่ายพักแรมกัน เลยลุยแปล GNOME ไปอีกนิดหน่อย วันนี้ได้ไฟล์แปลจาก Mark มาสมทบอีก ว้าวๆ อยากดู Weekly status ของอาทิตย์นี้จัง ^_^

26 มกราคม 2548

GNOME Translation

GNOME 2.10.0 Beta 1 (2.9.90) tarballs due เมื่อวันจันทร์ update CVS กันสนุกสนาน RC bug ต่างๆ เริ่มถูกทยอยแก้กันถี่ขึ้น (time-based release ก็ดียังงี้แหละ) ทีมแปลภาษาต่างๆ เริ่มคึกคัก ความจริงหลายภาษาเขาตามแปลใน unstable branch ไปเลย ผมเอง build ใช้จาก CVS เจอข้อความใหม่ๆ ก็ทยอยแปลไปมั่ง เพื่อตัวเองใช้ แล้วก็ commit CVS ไปด้วย

วันนี้ กำหนดออก 2.10.0 Beta 1 แล้ว คงต้องรอเวลาอเมริกาถึงจะปล่อยมัง นอกจากนี้ Beta 1 ยังเป็นกำหนด UI freeze ด้วย คือจะไม่มีการเปลี่ยน UI หลังจากนี้อีกแล้ว นอกจากจำเป็นยิ่งยวด ก็ต้องได้รับฉันทานุมัติจาก release team ก่อน

ความจริง ช่วงนี้ทีมแปลน่าจะเริ่มทำงานได้บ้างแล้ว เพราะ string ใหม่ที่เพิ่มมาก็เยอะพอดู อาจจะทยอยแปลไปจนถึงกำหนด string freeze คือ 7 ก.พ. (ระหว่างนี้ถ้าเจอ string ที่ไม่เข้าท่า ก็อาจยังมีการแก้ได้) ซึ่งจะออก Beta 2 โดยไม่เพิ่ม/แก้ string อีกแล้ว ลุยแปลได้เต็มที่

สำหรับสถานะของการแปลภาษาไทยใน GNOME 2.10 ล่าสุด (21 ม.ค.) แปลแล้ว 45.70% อยู่อันดับที่ 50 และเป็นภาษา unsupported ที่ใกล้หลุดพ้นสภาพ unsupported มากที่สุด (โดยมีภาษาเอสโทเนีย ไล่กวดมาติดๆ) ออกแรงแปลกันอีกนิดก็จะขยับขึ้นเป็น partially supported แล้ว

เท่าที่ใช้ GNOME 2.9 ใน CVS มา ก็มีการเปลี่ยนแปลงจาก 2.8 เยอะพอควร เช่น โครงสร้างเมนูใหม่ ที่ไม่ใช้ gnome-vfs, จัดเมนูใหม่, gnome-applets แปลงโฉมใหม่ (มี disk monitor, gweather ครอบคลุมสถานที่กว่าเดิมหลายเท่า, cpufreq ไอคอนใหม่ ฯลฯ) gedit กับ feature ปลีกย่อยใหม่ๆ, โปรแกรมจับ screenshot ที่ทำ effect ได้ ฯลฯ ดูแล้ว อาจไม่ใช่การเปลี่ยนแปลงแบบเด่นๆ เหมือน g-v-m/hal/dbus ใน GNOME 2.8 แต่ก็ทำให้ GNOME 2.10 โดยรวมแล้วน่าใช้ขึ้นพอควรเลยแหละ

ปล. อยากมี GNOME 2.10 release party ในไทยมั่งจัง

25 มกราคม 2548

คิดมาก :-P

GNOME Bug 141993 (GtkSourceView Undo manager) แก้แล้ว ตกลงเขาแก้แบบ minimal จริงๆ (ไบต์เดียว) และที่เราช่วยเขาไล่ซอร์สไปตั้งเยอะแยะนั่น สงสัยจะคิดมากไปเอง เหอะๆ ก็คิดเพื่อความปลอดภัยนะ เพราะตัวเองเคยโดนรีวิวโค้ดแบบละเอียดมาจากโครงการอื่น สุดท้ายเขาแก้แค่นี้ก็โอเค ไม่ว่ากันอยู่แล้ว :-)

FOSS Commitment

พักนี้เขียน blog มีแต่เรื่องงาน ขอพักเขียน opinion สักหน่อยน่ะ

จริงๆ ก็มาจาก opinion ของคนอื่นน่ะแหละ คือตอนที่ไปบรรยายเรื่อง GNU/Linux localization ที่งานสัมมนาแห่งหนึ่งของนักพัฒนาแถบเอเชีย พอบรรยายจบ ในช่วงซักถาม ก็มีผู้ฟังท่านหนึ่งยกมือขึ้นถามว่า ทั้งหมดที่คุณเล่ามาสำหรับภาษาไทยเนี่ย ใช้เวลาเท่าไร ใช้คนประมาณกี่คน เจอคำถามนี้ก็อ้ำอึ้งเหมือนกัน ได้แต่ตอบไปว่า ใช้เวลาไม่ต่ำกว่า 5-6 ปี ใช้คนทำหลายคนแบบไม่เต็มเวลา เพราะหลายคนทำเป็นงานอดิเรก แต่ดูผู้ถามจะคาดหวังคำตอบสำหรับ project manager ที่กำลังจะเริ่มโครงการเลย เพราะเขารุกต่อว่า ถ้าทำแบบเต็มเวลาล่ะ พอจะประมาณกำลังคนได้ไหม? ก็พอดีมีวิทยากรที่นั่งอยู่แถวหน้าช่วยตอบให้ เป็นคำตอบที่ยังประทับใจอยู่ทุกวันนี้

"งานโอเพนซอร์สเป็น long-term commitment มันไม่ใช่งานที่อยู่ๆ จะทุ่มเงินจ้างคนมานั่งทำ โดยกำหนดให้แล้วเสร็จภายในกี่เดือน แต่คุณจะต้องดูแลมันไปเรื่อยๆ ค่อยๆ แก้ไขเพิ่มเติมทีละส่วน ร่วมกับเจ้าของโครงการ โดยเฉพาะเมื่อมีรุ่นใหม่ออกมา ก็จะมีงานชิ้นใหม่ให้ทำอยู่เรื่อยๆ ไม่รู้จบ"

ฟังแล้วเห็นด้วยเลย เพราะแม้ระบบภาษาไทยของเราจะทำกันมานาน แต่ก็ยังมีประเด็นให้ทำเพิ่มอยู่เรื่อยๆ และการจะทุ่มเงินมาเป็นก้อน ก็ใช่ว่าจะจบใน job นั้น หากยังมีขั้นตอนการผลักดัน patch เข้าต้นน้ำ และเมื่อเข้าต้นน้ำไปแล้ว พอรุ่นใหม่ออกมา ก็ยังต้องคอย update โค้ดให้เข้ากับ API ใหม่อยู่เสมอด้วย ดังนั้น ทางที่จะสนับสนุนโอเพนซอร์สแบบตรงจุดที่สุด จึงน่าจะหมายถึงการสนับสนุนชุมชนผู้ใช้-ผู้พัฒนาโดยรวม ให้ดำเนินไปได้ รวมทั้งกระตุ้นให้เกิดกิจกรรมต่างๆ อยู่เรื่อยๆ การตั้งงบจ้างเป็น job นั้น เป็นแผนที่ใช้ได้ในระยะสั้นสำหรับงานบางชิ้นที่อาศัยต้นทุนสูง ซึ่งก็ช่วยได้ระดับหนึ่ง แต่ก็ต้องการการขับดันในระยะยาวด้วย จึงจะไปได้ตลอดรอดฝั่ง

อย่างที่รู้กัน ว่างานพัฒนาโอเพนซอร์สเป็นกิจกรรมของวัฒนธรรมแฮ็กเกอร์ ซึ่งต่างคนต่างแฮ็กสิ่งละอันพันละน้อย จนมารวมกันที่ส่วนกลาง จึงเป็นงานที่ควบคุม schedule ลำบาก ว่าอะไรจะทำเมื่อไร ทุกอย่างต้องอาศัยความสุกงอมของเงื่อนไขต่างๆ ของชุมชน ทำให้การเขียนหรือพิจารณา proposal ต่างๆ ต้องคิดในเงื่อนไขแตกต่าง เช่น การ evaluate ชิ้นงาน ก็อาจแบ่งเป็นขั้นๆ ตั้งแต่ได้ patch ไปจนกระทั่ง check-in ซึ่งพอคิดในกรอบวิธีจ้างแบบเดิม ก็ทำให้ต้องพลิกแพลงสัญญาจ้าง และเมื่อรวมกับการพลิกแพลงเงื่อนไขกฎหมายลิขสิทธิ์ด้วยแล้ว ทำให้การจ้างดูซับซ้อน จนการทำเป็นงานอดิเรกฟรีๆ จะสบายกว่า โดยอาจจะทำงานอย่างอื่นเพื่อเอารายได้มาสนับสนุนตัวเองอีกที

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

14 มกราคม 2548

Web Filtering

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

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

ที่เลวร้ายกว่านั้น คือการเปิดเว็บโป๊ในเวลาเรียน ซึ่งจะพบบ่อยในเด็กมัธยม ซึ่งยังเกิดผลข้างเคียงอีก คือเว็บเหล่านั้นจะไปฝัง pop-up เอาไว้มากมาย ทำให้เด็กประถมที่เข้ามาใช้เครื่อง ก็พลอยดูรูปโป๊เหล่านั้นไปด้วย ความจริงแล้ว เว็บเหล่านี้ ไม่เหมาะแม้แต่จะให้เด็กมัธยมเข้าดูด้วยซ้ำไป อย่าว่าแต่เด็กประถมเลย

มันกลายเป็นเรื่องปกติของห้องเรียนคอมพิวเตอร์ไปแล้ว แม้แต่เด็กชุมนุมลินุกซ์บางคน ก็ยังบูตเข้าวินโดวส์ เพื่อแอบเข้าเว็บหน้าตาเฉย (ที่โรงเรียนมีปลั๊ก ethernet โยงถึงห้องเรียนทุกห้อง แต่โน้ตบุคที่ใช้เรียนลินุกซ์นั้น ลง dual boot ไว้ และไม่ได้ตั้งค่า network ในลินุกซ์ไว้ เพราะปกติต้องออกมาเรียนนอกห้องคอมพ์ ที่ปลั๊ก ethernet ไม่เพียงพอ) ซึ่งไม่ต้องสงสัยเลยว่า เด็กคนนั้นไม่ได้ทดลองอะไรตามที่บอกเลย

ด้วยเหตุผลดังกล่าว การคัดกรองเนื้อหาเว็บจึงจำเป็น และเครื่องมือที่ใช้ก็คือ squidGuard ประกอบกับ chastity-list

แต่เมื่อเร็วๆ นี้ เด่นสินแนะนำ DansGuardian อีกตัว ซึ่งต่างจาก squidGuard ตรงที่ squidGuard ใช้วิธี block เว็บด้วย blacklist ในขณะที่ DansGuardian ใช้วิธีตรวจสอบเนื้อหา รวมทั้งอาศัย metadata เกี่ยวกับการแบ่งเรตของเว็บที่เรียกว่า PICS (W3C) ด้วย ตรงนี้เลยทำให้ DansGuardian น่าสนใจ แต่ปัญหาก็คือ มันยังใช้ได้แต่กับภาษาอังกฤษเท่านั้น แต่เว็บส่วนใหญ่ที่เด็กเข้า เป็นเว็บภาษาไทย และเว็บส่วนใหญ่ ก็คงไม่ค่อยสนใจใส่ PICS metadata เท่าไร จึงคงต้องอาศัย blacklist เป็นหลักไปก่อน

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

12 มกราคม 2548

GNOME Culture

อ่าน GNOME Journal ฉบับที่เพิ่งออก มีเรื่องน่าสนใจหลายเรื่อง หนึ่งในนั้นคือเรื่อง Experimental Culture วิพากษ์ความเปลี่ยนแปลงของวัฒนธรรม GNOME ได้น่าสนใจ

เริ่มจากยกคำเปรียบเปรยในสมัยหนึ่ง ระหว่างวัฒนธรรมชุมชน KDE กับ GNOME ว่า KDE พัฒนาในห้องกระจกสีสวยงาม มีไวต์บอร์ดหน้าห้อง เขียนแผนงานไว้สวยงาม นักพัฒนาต่างนั่งทำงานในมุมของตน สวมหูฟังฟังเพลงคลาสสิกคลอไป เวลาประชุมก็จะคุยกันเบาๆ ในที่ที่จัดไว้

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

(อ่านแล้วอาจจะว่าผมแปลเวอร์ แต่ขอแนะนำให้อ่านต้นฉบับ อ่านแล้วได้อารมณ์กว่าเป็นร้อยเท่า ผมว่าผมเคยเปรียบเทียบกับแนวบอลบราซิล-เยอรมันก็ว่าเห็นภาพแล้วนะ)

แต่เดี๋ยวนี้ มันกลับกันแล้ว GNOME เริ่มพัฒนาเหมือนองค์กร มีความเป็นมืออาชีพ ในขณะที่ KDE เริ่มเป็นแนวเริงร่า มั่วสุม บ้าบอ (จริงหรือเปล่าผมไม่รู้ ไม่เคยสัมผัส) แล้วผู้เขียนก็เลยตั้งข้อสังเกตว่า "มันเกิดอะไรขึ้น?"

ที่เหลือก็อย่างที่หลายคนอาจจะเห็นแล้ว ว่าเมื่อก่อนชุมชน GNOME บ้าคลั่งกันขนาดไหน ถึงขนาดเปลี่ยน default window manager กันเป็นว่าเล่น จาก enlightenment เป็น sawfish แล้วก็มา metacity มีบริษัทเอกชนโดดมาร่วมวงมากมาย มีทั้ง Sun, Ximian, Eazel (ไม่นับ Red Hat ที่ยืนพื้นอยู่แล้ว --เอ่อ จริงๆ แล้ว Ximian ก็ spin-off ออกมานะ เหอะๆ) ทุกคนทำงานกันเป็น perfectionist จนภาพรวมของ GNOME กลายเป็นทีม "รวมดาว" ที่เล่นไม่ค่อยเข้าขากัน ผิดกับ KDE ที่ดูมี teamwork สมบูรณ์แบบกว่ามาก

จนกระทั่งเกิดแนวทางใหม่ (เริ่มตอนที่มี GNOME Foundation?) มีระบบระเบียบ มีการวาง HIG (human interface guideline) และพยายาม share ทรัพยากร ตัดส่วนเกินออก มีกำหนดการปล่อยทุกๆ 6 เดือน ทั้งหมดนี้ ทำให้ GNOME 2.0 ที่ปล่อยออกมาหลังจากกักไว้นาน จนบางคนนึกว่า GNOME ตายไปแล้ว กลายเป็น GNOME รุ่นที่เริ่มถูกใจผู้ใช้ แล้ว GNOME ก็โตวันโตคืนจากนั้นมา

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

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

ว่าแต่ว่า ถ้าจะสรุปชุมชน TLWG จะเป็นยังไงกันเนี่ย? เหอๆ

10 มกราคม 2548

AbiWord patch ที่ 3

ตอบและเสนอ patch GtkSourceView เสร็จ ก็ดู AbiWord Bug #8064 (crash/hang in Thai locale) ต่อ ความจริงรู้สาเหตุตั้งแต่ ครั้งที่แล้ว แล้ว แต่ยังไม่แน่ใจเรื่องความเหมาะสมทางเทคนิค ปรากฏว่า Tomas Frydrych ตอบมาว่า ทำฟังก์ชันแยกเหอะ ของเก่ามันชักเละตุ้มเป๊ะแล้ว เพราะพยายามทำสู่รู้เยอะไปหน่อย

โห.. จะให้เพิ่ม method จริงอะ เจอคำตอบแบบนี้เลยอึ้งไปก่อน เผื่อทางโน้นจะให้แนวทางอะไรมา จะให้ hacker ตัวเล็กๆ ที่เพิ่งแกะโค้ดไม่ถึง 10% อย่างข้าพเจ้าทำเองก็อาจหาญไปหน่อย แต่ก็ปรากฏว่า เงียบ.. วันนี้เลยนั่งไล่โค้ดเอง แล้วก็เลยลองเสนอ patch ไป ไม่ได้เพิ่มฟังก์ชันใหม่ทั้งกระบิ แต่หลอยใช้โค้ดเก่า โดย generalize ตัวแปรจาก case อื่นมา เดี๋ยวก็รู้ ว่าจะได้ check-in หรือเปล่า :-P

GtkSourceView Revisited

Paolo Maggi เจ้าของ gtksourceview ตอบ GNOME Bug #141993 (Undo manager ใน GtkSourceView เมื่อกด backspace) มาเมื่อวันเสาร์ พอดีวันอาทิตย์นั่ง build GNOME จาก CVS เลยยังไม่ได้ทำอะไร นอกจากตอบรายละเอียดเพิ่มเติมให้เขา วันนี้ถึงได้อ่านโค้ดเพิ่มเติม เพราะเขากลัว side effect ของ patch อยู่ ตรงนี้ก็เข้าใจเขา เพราะการใส่ assertion แต่ละจุดของโปรแกรมเมอร์มันต้องมีเหตุผล ก็เลยนั่งไล่ case ต่างๆ เพิ่มเติม แล้วก็เสนอ patch ใหม่ ที่จัดการกรณีอื่นรอบคอบขึ้น (อีกนิด)

ยังขาด AbiWord bug อีกอัน ที่ดองไว้นานแล้ว อันนี้ค่อนข้างยากหน่อย เพราะต้องเพิ่ม method ใหม่ให้กับคลาส เดี๋ยวต้องหาเวลาแกะ :-P

ปล. GNOME 2.9 จาก CVS ช่วงนี้ เรียก Metacity ไม่ขึ้นเลย สงสัยมีการเปลี่ยนแปลงขนานใหญ่ เหอๆ ได้กลับไปหา sawfish เพื่อนยากเป็นการชั่วคราว ส่วน gnome-applets ก็ตัด wireless applet ออกแล้วเรียบร้อย เพราะ netstat applet ก็สามารถแสดงระดับสัญญาณ wireless ได้อยู่แล้ว ..แต่ wireless applet มันอัตโนมัติกว่าอะ :-/ ไม่เป็นไร แบบนี้ก็ประหยัดเนื้อที่ panel ดีเหมือนกัน เหอะๆ

09 มกราคม 2548

ประกาศสำนักนายกฯ

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

ขากลับจากโรงเรียน แวะร้านอาเข่ง ถามหาหนังสือประกาศสำนักนายกฯ เรื่องชื่อประเทศฯ ต่อ เข้าไปถามเจ้าของร้าน บอกไม่มี เลยเดินดูหนังสืออื่นๆ ไปเรื่อย ไม่ให้เสียเที่ยว พอผ่านชั้นกฎหมาย อ้าว.. เห็นคำว่า "ชื่อประเทศ ดินแดน เขตการปกครอง..." ตั้งหราอยู่ ความจริงมันเป็นฉบับถ่ายพิมพ์ราชกิจจานุเบกษา เล่มเล็กกว่าที่เจอที่หอกลางเสียอีก แต่เนื้อหาเดียวกัน เลยเก็บมาซะ เล่มละ ๒๒ บาท กลับมาบ้านนั่งแปลต่อ ตรวจทานและ commit ไปเมื่อเช้า

รวมแล้ว ตอนนี้แปลชื่อสถานที่แล้ว ๑,๐๙๙ ชื่อ ไม่แน่ใจ ๔๐ ชื่อ ยังไม่แปล ๕,๓๔๘ ชื่อ

08 มกราคม 2548

po-locations

ตั้งใจเอาไว้อยู่แล้ว ว่าสักวันจะเข้าไปค้นหนังสือที่หอกลาง มข เพื่อหาข้อมูลเรื่องชื่อสถานที่ เอามาแปล gnome-applets/po-locations ก็พอดี Otto เคยแนะนำหนังสือของราชบัณฑิตยสถาน และเมื่อวันก่อน พี่ปลาที่เนคเทคช่วยสอบถามกระทรวงการต่างประเทศให้ ได้หนังสือเล่มเดียวกันเป็นแหล่งอ้างอิงมา คือ ประกาศสำนักนายกรัฐมนตรี เรื่อง กำหนดชื่อประเทศ ดินแดน เขตการปกครอง และเมืองหลวง (โดยอ้างอิงประกาศราชบัณฑิตยสถาน พ.ศ. ๒๕๔๔) ก็เลยเดินหาตามร้านหนังสือก่อน ปรากฏว่าหาไม่ได้จากร้านหนังสือ ๒-๓ แห่งใกล้บ้าน (ปรินซ์บุคสโตร์, ศึกษาภัณฑ์ขอนแก่น, ดอกหญ้า) เมื่อวานสบโอกาสเหมาะ เลยเข้าไปถามที่ศูนย์หนังสือ มข ปรากฏว่ามี แต่หนังสือหมดแล้ว ก็เลยแวะเข้าหอกลางก่อนกลับ ไม่ผิดหวังครับ เจอเล่มที่ว่าในห้องอ้างอิง พร้อมกับอีกเล่ม คือ ภูมินามานุกรม โดย สมบัติ จำปาเงิน (กรรมการราชบัณฑิตยสถาน) พิมพ์โดยสำนักพิมพ์สุขภาพใจ

ด้วยความที่ไม่ได้หิ้วโน้ตบุคไป เพราะไม่แน่ใจว่าจะต้องไปหลายแห่ง แล้วต้องฝากของไว้บ่อยๆ หรือเปล่า แต่เพื่อไม่ให้เสียเที่ยว ก็ใช้วิธีโบราณที่เคยใช้ตอนทำรายงานสมัยเป็นนักเรียน คือคัดลอกใส่สมุดกลับมา (จะถ่ายเอกสารก็ไม่คุ้ม คิดว่าจะหาซื้อหนังสืออยู่แล้ว เล่มบางจ๋อยเลย ๓๐ บาทเอง) ก็จดเท่าที่ได้ก่อน แล้ววันหลังค่อยตรงดิ่งมาพร้อมโน้ตบุค ปรากฏว่า กลับมาแปลเพิ่มได้อีกราวร้อยกว่าชื่อ พูดเป็นเล่นไป ไว้วันหลังลองแวะร้านหนังสืออื่นในขอนแก่นดู ได้ก็ดี ไม่ได้ก็ใช้บริการห้องสมุดอีก แล้ววันไหนได้เข้ากรุงเมื่อไหร่ค่อยแวะหาอีกที

commit เมื่อคืน ขณะนี้ แปลไปแล้ว ๑,๐๐๗ ชื่อ มี fuzzy อยู่ ๒๗ ชื่อ เหลืออีก ๕,๔๕๓ ชื่อ ยังไม่ได้แปล ใครมีหนังสือเล่มที่ว่า ถ้าจะช่วยตรวจคำแปลและแปลเพิ่ม ก็จะขอบคุณยิ่งครับ ☺

ดาวน์โหลดไฟล์แปล และส่งไฟล์ (ถ้าเป็น patch ได้ก็จะดี) ให้ผมได้ที่ theppitak ณ gmail ครับผม

ปล. สถานะโดยรวม ภาษาไทยใน GNOME 2.10 แปลแล้ว 47.1% อีกนิดนึง (ให้ถึง 50%) ก็จะพ้นจากสถานะ Unsupported language แล้ว ☺

06 มกราคม 2548

ที่มาของสัญลักษณ์ Debian

เก็บตกจาก Debian Weekly News อีกแหละ มีเรื่องน่าสนใจเกี่ยวกับที่มาของ สัญลักษณ์วงก้นหอย (swirl) ของ Debian โดยมีคน ถาม ใน debian-devel mailing list แล้วก็ได้คำตอบน่าสนใจ:

  • README ของสัญลักษณ์ บอกชื่อผู้คิด (Raul M. Silva) และฟอนต์ที่ใช้แสดงคำว่า "debian" (Poppl Laudation Condensed)
  • ข่าวสัญลักษณ์ใหม่ Debian ชี้มาจาก README (ข้าพเจ้าเริ่มใช้ Debian ที่ slink ก็เห็น swirl logo แล้ว ดูจากวันที่ของข่าว คงจะเปลี่ยนก่อนนั้นนิดหน่อย คุ้นๆ ว่าสัญลักษณ์เก่าจะเป็นรูปเพนกวินภาพวาด) มีข้อความบางส่วนที่เป็นแรงบันดาลใจของผู้คิด:
    "I'm very pleased that we're able to give something back to the Debian community. We've been very happy with Debian GNU/Linux, and have been working with it internally and for our clients for a number of years now."
    นัยว่า วงก้นหอยเป็นการกระจายของผลงานจากภายใน สู่สาธารณชน?
  • มีอีกคน ตั้งทฤษฎี บอกว่าเห็นสัญลักษณ์ Debian แล้วมักนึกไปถึง magic smoke ที่ทำให้ IC ทำงาน (คล้ายกับ phlogiston ในทฤษฎีการสันดาปเดิม เพิ่งเคยได้ยินคำนี้นะเนี่ย เคยได้ยินแต่ทฤษฎี aether ของแสง) ซึ่ง "magic smoke" นี้ เป็น jargon ของวงการคอมพิวเตอร์ คงใช้ในทำนองเดียวกับ Murphy's Law ทฤษฎีนี้บอกว่า Debian เหมือน magic smoke ..ว่าไปโน่น

01 มกราคม 2548

สวัสดีปีใหม่ ๒๕๔๘

แด่เพื่อนร่วมชาติ:

๏ เมฆฝนผ่านพ้นไป ตะวันใหม่ฉายฉาบฟ้า
วันเก่าไม่หวนมา มีวันหน้ารอฟื้นคืน
น้ำตาจงเหือดแห้ง ด้วยน้ำแรงมิตรหยิบยื่น
เพื่อนเอยจงหยัดยืน ช่วยพลิกฟื้นประเทศไทย ฯ

ปีนี้ เตือนตัวเองอีกครั้งด้วยฉันท์บทเก่าที่เคยแต่งไว้:

๏ อาทิตย์จะเบิกฟ้า ลุทิวา ธ โปรยแสง
ตื่นนอนนิกรแจ้ง สุริย์เทพประทานวัน
ล้มแล้วสิลุกใหม่ ประจุไฟสินักฝัน
ชีพเจ้าระเหิดวัน จะละสูญกระนั้นฤๅ ฯ

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

ปล. วันนี้เข้า TOT ไม่ได้แต่เช้าเลย สงสัย bug ปีใหม่ เอิ๊กๆ

hacker emblem