Theppitak's blog

My personal blog.

30 เมษายน 2549

lessdisks (2)

จากที่ทำ lessdisks เมื่อ อาทิตย์ที่แล้ว ก็ได้คำแนะนำจากคุณ CoolnetClub ที่ห้อง #tlwg ว่าน่าลอง drbl ซึ่งเป็น diskless terminal อีกตัวหนึ่ง ซึ่งแค่ mount root จาก server เท่านั้น แต่ใช้ CPU ของเครื่องลูกรันโปรแกรม แทนที่จะรันทุกอย่างที่ server

ประเด็นเรื่องการใช้ CPU เครื่องลูกนี่ ก็เป็นเรื่องที่มองอยู่เหมือนกัน คิดเอาไว้ตั้งแต่เซ็ต LTSP ว่าจะลองเปิดใช้ตัวเลือก client application หลังจากเซ็ตเสร็จ แต่ก็ทำ chroot เละไปก่อน พอเซ็ต lessdisks ขึ้น ก็คิดว่าต้องลองหาทางเซ็ตให้ใช้ CPU เครื่องลูกเหมือนกัน

ฟังสรรพคุณ drbl แล้วก็เคลิ้ม กำลังคิดจะลง drbl ไปเลยเหมือนกัน แต่ก็เกิดเปลี่ยนใจ อยากลองเซ็ต lessdisks โดยใช้ apt ติดตั้งโปรแกรมเพิ่มใน NFS root จากที่แค่เปิด X server แล้ว ssh เข้าไป หรือ query XDMCP ก็ให้มันเปิด GDM จาก NFS root ขึ้นมาเลย แล้ว authenticate ผ่าน NIS เพื่อใช้ GNOME จาก NFS root นั่นแหละ (ที่ authenticate ผ่าน NIS ไม่ใช่ใช้ /etc/passwd ใน NFS root ก็เพื่อให้ใช้ account และ /home ใน server เหมือนตอนใช้ sdm/XDMCP แล้วก็จะได้ mount NFS root แบบ read-only ด้วย)

ว่าแล้วก็เริ่มจาก backup ของอาทิตย์ก่อนไว้ แล้ว:

  1. GDM
    1. aptitude install gdm ที่ NFS chroot
    2. กำหนด rc.d ให้ start gdm เฉพาะใน level 2 (โดย kill ที่ level 4, 5 ซึ่งใช้รัน sdm และ XDMCP อยู่ ตามลำดับ)
    3. กำหนด /etc/lessdisks/server.config ใน NFS chroot เพิ่ม ให้ mount /var/lib/gdm แบบ rw ใน tmpfs
    4. กำหนด inittab ให้ default ไปที่ runlevel 2
    5. ทดลองบูตเครื่องลูก ได้หน้าจอ GDM
  2. NIS
    1. ตั้ง NIS server ที่ server root โดย aptitude install nis แล้วทำตาม README.Debian
    2. ตั้ง NFS chroot ให้เป็น NIS client
    3. กำหนด /etc/lessdisks/server.config ใน NFS chroot เพิ่ม ให้ mount /var/yp แบบ rw ใน tmpfs
    4. ทดลองบูตเครื่องลูกแล้วล็อกอิน จะเข้าระบบได้ X session เป็น xterm เปล่าๆ โดยใช้ /home ใน NFS root ซึ่งยัง read-only
  3. /home
    1. export /home ที่ server เพิ่ม เพื่อใช้เป็น home ของ user
    2. กำหนด /etc/fstab ใน NFS chroot ให้ mount /home ผ่าน NFS เพิ่ม
    3. ทดลองบูตเครื่องลูกแล้วล็อกอิน ได้ X session เป็น xterm เปล่าๆ พร้อม /home จาก server ซึ่งเขียนได้
  4. aptitude install gnome ที่ NFS chroot พร้อมทั้งลงโปรแกรมอื่นๆ ตามต้องการ

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

29 เมษายน 2549

thaixfonts + thailatex debs

ความคืบหน้าในเดเบียน:

  • Christian Perrier sponsor upload thaixfonts เข้า sid แล้ว ตอนนี้อยู่ในคิว NEW รอตรวจรับ
  • Frank Küster sponsor upload thailatex เข้า sid แล้ว โดยมี Norbert Preining จาก texlive ร่วม mentor ด้วยอีกคน ตอนนี้อยู่ใน sid เรียบร้อย (พอดีการ upload นี้ ไม่มี source รายการใหม่ เลยไม่ต้องเข้าคิว NEW รอตรวจรับเหมือนแพกเกจก่อนๆ)

thailatex นี่ เล่นเอายุ่งอยู่หลายวันเหมือนกัน เพราะเป็นการ sponsor ผ่าน mailing list เลยได้ mentor สองคน ช่วยกันตรวจอย่างละเอียด แก้ได้ประมาณ 7 รอบ แต่ละรอบก็ build หลายครั้งอยู่ นับเป็นการปรับปรุงคุณภาพครั้งใหญ่ของแพกเกจนี้

ยังขาด swath อีกตัว ที่รอผู้เมตตามา sponsor ถ้าไม่นับแพกเกจไทยที่กำพร้าที่เหลืออีกสามตัว คือ cttex, xiterm+thai และ thai-system ที่ยังไม่มีผู้รับอุปการะ

26 เมษายน 2549

Debian Packages

สองวันที่ผ่านมา ขลุกอยู่กับเดเบียนทั้งวัน เล่าที่เนื้อๆ คือ:

  • แปล debian-installer ตอนนี้ 56.25%
  • Christian Perrier sponsor upload thaifonts-scalable 0.4.4-3 เข้า sid แล้ว กำลังรอตรวจรับ
  • กำลังคุยกับ sponsor เพื่อ upload thaixfonts และ thailatex เข้า sid
  • console-tools เพิ่ม keysym ไทยแล้วด้วย หลังจาก kbd เพิ่มไปก่อนแล้ว
  • pango-libthai ได้ migrate เข้า testing (etch) แล้ว

build package ไปเป็นสิบรอบได้มั้ง ทั้งที่แก้เอง ทั้งที่ sponsor comment

24 เมษายน 2549

thaixfonts

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

  • release thaixfonts 1.2.5 ที่ LTN โดยในรุ่นนี้ ได้ตัดฟอนต์ที่มีปัญหาเรื่องลิขสิทธิ์ไปทั้งหมด รวมทั้งปรับปรุงระบบ build
  • เปิด project page สำหรับ thaixfonts ไว้อ้างอิง
  • adopt debian package เกี่ยวกับ xfonts ไทยที่ orphan อยู่: xfonts-thai, xfonts-thai-etl, xfonts-thai-manop, xfonts-thai-nectec, xfonts-thai-vor
  • build debian package ข้างต้น โดยใช้ thaixfonts source เดียว จากเดิมที่คุณทิม build แยก เนื่องจาก upstream source มีปัญหาเรื่อง license กับบางฟอนต์ แต่ในรุ่นใหม่นี้ แก้ปัญหาที่ว่าแล้ว โดยในการ build ก็พยายามปิด Bug #363482 ไปด้วย แต่อย่างไรก็ดี เจอปัญหา conflict ระหว่าง debhelper กับ xfonts-utils เข้าใจอะไรไม่ตรงกันนิดหน่อย เลย file Bug #364530 เสนอ patch ที่นั่น แต่ดูเหมือน Steve Langasek จะยืนยันว่านี่ไม่ใช่ bug ของ debhelper แต่เป็น bug ของ xfonts-utils ต่างหาก แต่ไล่หลังจากนั้น Joey Hess ผู้ดูแล debhelper ก็ upload debhelper รุ่นใหม่เพื่อแก้ bug นี้.. อืม เอาไงดีเนี่ย ใจนึงก็เห็นด้วยกับ Steve นะ แล้วจะ build package ใหม่แบบไหนดีหนอ.. :-/
  • Christian Perrier upload console-data 20060421 โดยเพิ่ม console font และ console keymap ไทยให้แล้ว โดยในส่วนของ console keymap นั้น Denis Barbier บอกว่าได้เพิ่ม keysym ไทยใน kbd แทน console-tools เนื่องจาก debian จะเปลี่ยนไปใช้ kbd แทน เพราะฉะนั้น จะใช้ console keymap ไทย ก็ควรลง kbd ด้วยนะครับ

ปล. gnome 2.15.1 tarballs due วันนี้ ออกวันพุธ สงสัยได้ฤกษ์หยุดทำ gnome 2.14 branch แล้วเริ่ม build gnome 2.15 เสียทีเร็วๆ นี้ :-)

23 เมษายน 2549

lessdisks

การจัดการการ update ลินุกซ์ในเครื่องจำนวนมาก อาจจะอาศัย local APT repository บวกกับการตั้ง anacron ที่เครื่องลูก ให้คอย update ระบบอยู่เสมอๆ แต่กรณีที่จะติดตั้งซอฟต์แวร์ตัวใหม่เพิ่มเติม ก็ต้องไปไล่ติดตั้งทุกเครื่องอยู่ดี อีกอย่างหนึ่ง การใช้เครื่องจำนวนมากใน pool ที่มีสำหรับผู้ใช้กลุ่มหนึ่ง อาจจะไม่สะดวกเรื่องการเก็บข้อมูล เพราะเมื่อย้ายเครื่องไป ข้อมูลก็ไม่ได้ตามไปด้วย ต้องพยายามจองให้ได้เครื่องเดิม หรือไม่ วิธีแก้ก็คือใช้ thumb drive เก็บข้อมูลเอา

สถานการณ์คล้ายๆ ที่ว่า เกิดขึ้นที่โรงเรียน เลยมีไอเดียมานานแล้ว ว่าจะทำ thin client server จนกระทั่งมีเซิร์ฟเวอร์ว่างอยู่ เลยได้จังหวะ เอามาลงเดเบียนแล้วเซ็ตเป็น thin client server ซะ

เริ่มแรก ก็ลอง LTSP ตามระเบียบ โดย apt-get ได้จากเดเบียนเลย ก็ปรากฏว่าง่ายดี พอเรียก ltspadmin มันมีเมนูให้เลือกเลย โดยไปดาวน์โหลดแพกเกจต่างๆ จาก ltsp.org มาติดตั้ง แล้วก็ตั้งค่าเซิร์ฟเวอร์ต่างๆ ที่จำเป็นให้ ทั้ง dhcpd, tftpd, nfs, xdmcp (สำหรับ xdm ส่วน gdm ไปเซ็ตเองได้) รวมทั้งมี kernel image ที่คอมไพล์มาสำหรับการ mount nfs root เรียบร้อย เรียกว่าอ่านตาม คู่มือ ก็ทำได้เลย

แต่ปัญหาคือ xdmcp มันไม่ secure เอามาใช้ในท่ามกลางเน็ตเวิร์คใหญ่ๆ มันเสี่ยงเกินไป แต่ก็เหลือบไปเห็น sdm (secure display manager) ในเดเบียน ที่เปิด X session ผ่าน ssh เลยพยายามเอามาใช้ แต่ปรากฏว่าขาดโน่นขาดนี่เยอะแยะ ต้องลงเพิ่ม ครั้นจะ apt-get จาก ltsp chroot ก็ไม่ได้ เพราะมันเป็นระบบของ ltsp ไม่ใช่เดเบียน เลยต้องดาวน์โหลด .deb มาแตกแล้ว untar เอาเอง แต่ก็จะติด version dependency มากมาย คิดว่า ในระยะยาว คง maintain ยาก

ตอนดู info ของ sdm ก็เห็นว่ามาจากโครงการ lessdisks ซึ่งเป็น thin client server อีกตัวหนึ่ง ที่ใช้ debootstrap ติดตั้ง debian ลงใน nfs root ทำให้ติดตั้งแพกเกจเพิ่มเติมจาก debian ได้เลย ก็กะไว้อยู่ว่าเดี๋ยวต้องลองเหมือนกัน ก็พอดี นิวตรอน มายุว่าตัวนี้น่าสนนะพี่ เลยตกลงใจว่าต้องลอง

ลงแล้วก็ลงโปรแกรมเพิ่มง่ายอย่างที่คาด แต่ข้อเสียคือ เคอร์เนลที่มากับ debian ไม่มีตัวไหนที่ built-in network driver และเปิด nfs root เลยต้อง build kernel เอง โดยใช้ make-kpkg แล้วก็เซ็ต pxe boot ผ่าน atftpd เรียบร้อย แก้ boot option ไปมา จนในที่สุดก็บูตขึ้น เข้าเป็น text console ที่เครื่องลูก สามารถล็อกอินเข้าเซิร์ฟเวอร์ได้ แล้วก็เจอหยุดสงกรานต์

เมื่อวานเข้าไปเซ็ตต่อ ปรากฏว่า Xorg 7 transition ทำพิษนิดหน่อย โดยไม่สามารถ start X server ที่เครื่องลูกได้ เนื่องจากสคริปต์ต่างๆ ใน lessdisks ยังอิง XFree86 อยู่เลย!

ต้องเข้าไปใน nfs chroot เซ็ต X server option ใน /etc/lessdisks/ltsp/x_ltsp.conf แต่แค่นั้นยังไม่พอ ต้องแก้สคริปต์ใน /usr/share/lessdisks/ltsp_functions ด้วย ให้ gen XF86Config ในรูปแบบของ Xorg รวมทั้งแก้ /etc/lessdisks/x.config เอาตัวเลือก -fp tcp/xapp:7100 ออก (ขี้เกียจเซ็ต xfs เอิ๊กๆ) และในที่สุด ก็สามารถบูตเข้า level 5 ล็อกอินเข้าเซิร์ฟเวอร์ผ่าน xdmcp ได้

แต่เป้าหมายเราคือใช้ sdm เลยเปลี่ยน inittab ให้บูตเข้า level 4 และไปใส่ชื่อ server ใน /etc/sdm/sdm.config (ของ nfs chroot ทั้งสองไฟล์) ก็เป็นอันบูตเข้าหน้าจอ sdm (ที่ใช้ xdialog พื้นๆ) ได้ ป้อนชื่อ user และ password ผ่าน sdm-ssh-askpass แล้วก็ ssh เข้า server เรียก sdm-session ซึ่งในครั้งแรกจะมีหน้าต่างมาให้เลือก window manager พอเลือก gnome ก็เข้ามาถึง gnome desktop ของผู้ใช้ เป็นอันเสร็จสิ้นกระบวนการ

สรุปว่า lessdisks เซ็ตยากกว่า ltsp นิดหน่อย แต่น่าจะ maintain ง่ายในระยะยาว (สำหรับระบบที่เป็น debian หรือ ubuntu) จากที่อ่านรายละเอียดของ lessdisks ก็พบว่าริเริ่มจาก ubuntu นั่นเอง

ยังมีอีกทางเลือกหนึ่ง คือใช้ education-thin-client-server จาก Skokelinux distro เพื่อการศึกษาอีกเจ้าหนึ่งที่ใช้ debian เป็นฐาน ดูจากรายละเอียดของแพกเกจ และ dependency แล้ว น่าจะง่ายพอๆ กับ ltsp แถมเป็นแบบฉบับ debian ด้วย เพียงแต่ dependency ที่ว่า ไม่ได้อยู่ใน debian pool หลัก ต้องใช้แพกเกจจาก Skolelinux เอง

ปล. ในระหว่างที่เซ็ต ที่กรุงเทพฯ ก็มีงาน Blognone Tech Day เสียดาย ไม่ได้ไป มันไกลโพด T_T ไม่เป็นไร รออ่านสไลด์ + รายงานข่าวเอา :-)

/me อยากมีสติกเกอร์ debian

21 เมษายน 2549

Ubuntu Finalised

ใน Sprint นอกเหนือจากการ upload แพกเกจตระกูล libthai, thaifonts-scalable และการ patch firefox ให้ตัดคำ ก็ยังมีหัวข้อที่ทำไม่ทัน แต่ได้ file bug (Ubuntu เขาเรียกว่า Malone) ทิ้งไว้ ตามที่บันทึกไว้ใน หน้าสรุป ที่ผ่านมาก็มีการโต้ตอบกับ malone ต่างๆ ทางเมลอยู่ จนกระทั่งเช้านี้ malone สุดท้ายถูกปิดแล้ว น่าจะเป็นอันเสร็จงาน Ubuntu Localisation Sprint จริงๆ

Malone ต่างๆ ที่ว่า ได้แก่:

  • Malone 35022 เพิ่มโลแคลไทยใน localechooser (ใช้ในโปรแกรมติดตั้ง)
  • Malone 35340 เพิ่ม console font + keymap ไทย
  • Malone 35305 ปิด autohinting ใน OpenOffice.org สำหรับโลแคลไทย (MrChoke เสนอ)

ต่อไปก็เป็น Debian ละ พยายามดันต่อไป

20 เมษายน 2549

thaifonts-scalable for Debian

บันทึกเมื่อวานนี้:

  • build thaifonts-scalable 0.4.4-3 deb หลังจากที่ debhelper 5.0.32 ที่สนับสนุน Xorg 7 directory เข้าถึง sid แล้ว และติดต่อ sponsor เพื่อ upload แล้ว (กำลังดำเนินการ)
  • พยายาม build firefox ต่อไป โดยลบทิ้ง checkout ใหม่ แกะรอย configure script, Makefile ลองแก้โน่นแก้นี่ได้นิดหน่อยก็ค่ำแล้ว (เพราะทำเรื่อง package มาทั้งวัน เครื่องที่ใช้ก็อืดเหลือเกิน) ไว้ทำต่อวันหลัง
  • งานแปล debian-installer ได้ 48.60% แล้ว

จาก Debian Weekly News ฉบับล่าสุด มีแพกเกจไทยถูก orphan เพิ่มอีก คือ thai-system

ปล. ผมแน่ใจว่ารัฐบาลประกาศให้วันที่ 19 เมษายน 2549 เป็นวันหยุดราชการ โดยเลื่อนวันหยุดชดเชยมาจากวันที่ 17 เมษายน แต่ก็มีโทรศัพท์มาตามให้เข้าออฟฟิศ ซึ่งก็แปลกดี แต่ผมมีงานต้องทำตามที่วางแผนไว้ เลยไม่ได้เข้า

19 เมษายน 2549

Clean Up Day

ความเคลื่อนไหวเมื่อวานนี้:

  • Michael Vogt (mvo) sponsor gtk-im-libthai upload เข้า sid ให้แล้ว ตอนนี้อยู่ในคิวรอตรวจรับ
  • พยายามคอมไพล์ firefox 1.8 branch จาก CVS แต่ดูเหมือนจะเรียกไม่ขึ้น ติด error message ว่าขาดฟังก์ชันของ pangoxft:
    /home/thep/gnomez/lib/firefox-2.0a1/firefox-bin: symbol lookup error: /home/thep/gnomez/lib/firefox-2.0a1/components/libgfx_gtk.so: undefined symbol: pango_xft_get_font_map
    เนื่องจากว่ากำลังอยู่ระหว่าง Xorg 7 transition บวกกับเจอปัญหาของ libtool ที่ทำให้ build Xft แล้วได้ library ที่ไม่ถูกลิงก์ เลยสาละวน clean up library หลายๆ อย่าง จบทั้งวัน ก็เลยยังไม่ได้ firefox ที่เวิร์ก แล้วก็ยังไม่ได้เริ่ม hack pango patch ต่อ :P
  • พยายาม build thaifonts-scalable deb ตัวใหม่ต่อ แต่ debhelper กับ xfonts-utils ตัวใหม่ก็ยังไม่มา เลยทำความสะอาดไปเรื่อย
  • ก่อนนอน แวะแปล debian-installer (level 1) ซะหน่อย ตอนนี้ได้ 44.86% ละ

ปล. พักนี้ blog ชักกลับเข้าโหมดไดอารีเหมือนช่วงแรกๆ อันเนื่องมาจากมีเวลาว่างต่อเนื่อง หวังว่าจะไม่ทำให้ดูเหมือน reality show เกินไป :P

18 เมษายน 2549

Xorg 7 Transition

หลังจากที่พบว่า gtk-im-libthai build ผ่าน ก็พยายามติดต่อ sponsor แต่คราวนี้หาตัวไม่เจอ T_T อะ.. อะไรๆ ก็ไม่เป็นใจ แต่วันหยุดที่มีความหมายอย่างนี้ ทิ้งให้ผ่านไปเฉยๆ ไม่ได้ สองวันที่ผ่านมาก็เลยเป็นการแปล debian-installer ต่อไป ตอนนี้แปลไปได้แล้ว 37.83% พร้อมกับเตรียมการแปล tasksel ซึ่งอยู่ใน level 2 ไว้ด้วย

แต่อีกทางหนึ่ง ก็สลับมาทำ package thaifonts-scalable ต่อด้วย ซึ่งที่ผ่านมา มีการเปลี่ยนแปลงใน Xorg 7 ที่ทำให้ติดตั้ง package ผ่านแล้ว แต่เรื่องระบบฟอนต์ ก็ยังต้องรอการเปลี่ยนแปลงอื่นๆ ใน debhelper และ xfonts-utils อีก ตามที่ ประกาศ และ สนทนา ใน mailing list ซึ่งพอสรุปได้ว่า:

  • ไดเรกทอรี /usr/X11R6 ไม่มีอีกแล้ว แต่จะย้ายไฟล์ต่างๆ ไปในระบบ เช่น โปรแกรมใน /usr/X11R6/bin ก็ไปลงที่ /usr/bin ส่วนฟอนต์ก็ย้ายที่ไป /usr/share/fonts/X11 เป็นต้น แพกเกจใดๆ ที่ติดตั้งโปรแกรมใน /usr/X11R6/bin เลยต้องย้ายออกไปให้หมด เพื่อจะได้ลบไดเรกทอรีทิ้ง
  • มีสองมาตรการในการจัดการเรื่องนี้ มาตรการแรกคือแก้ xutils-dev ให้ imake ติดตั้งโปรแกรมใน /usr แทน /usr/X11R6 ซึ่ง build daemon น่าจะทำ binary upload ให้ได้โดยอัตโนมัติกับหลายๆ แพกเกจ และมาตรการที่สอง คือให้แพกเกจ x11-common conflict กับแพกเกจทุกรุ่นที่ติดตั้งโปรแกรมลงใน /usr/X11R6/bin เพื่อให้แพกเกจเหล่านั้นถูกลบทิ้งไปก่อน จากนั้นก็ทำ symlink /usr/X11R6/bin ไปที่ /usr/bin เพื่อให้ลงแพกเกจเหล่านั้นได้ใหม่ในภายหลัง ซึ่งผลก็คือโปรแกรมจะถูกย้ายไปที่ /usr/bin โดยอัตโนมัติในช่วง transition แต่ก็ต้อง file bug กับแพกเกจเหล่านั้น ให้ย้ายที่ติดตั้งอยู่ดี จนกว่า conflict กับ x11-common จะหมดไป
  • แพกเกจต่างๆ ที่ติดตั้งไลบรารีใน /usr/X11R6/lib ก็จะต้อง update เหมือนกัน เพื่อจะไม่เจอ FTBFS bug ในแพกเกจต่างๆ เพราะ imake จะไม่ link กับไลบรารีใน /usr/X11R6/lib อีกต่อไป
  • เรื่องของฟอนต์ ต้องย้ายฟอนต์จาก /usr/X11R6/lib/X11/fonts ไปที่ /usr/share/fonts/X11 และถ้าใช้ fonts.scale, fonts.alias ก็ย้ายที่จาก /etc/X11/fonts/ ไปไว้ที่ /etc/X11/fonts/X11R7 จากนั้น เครื่องมือของ debhelper คือ dh_installxfonts จะต้องได้รับการแก้ไข ให้ติดตั้งฟอนต์ลงในที่ใหม่ รวมทั้งสคริปต์ต่างๆ ใน xfonts-utils ด้วย

ความจริง ได้ย้ายที่ฟอนต์ใน thaifonts-scalable ไปแล้ว แล้วก็พยายามหาวิธีเรียกสคริปต์ติดตั้งไปจนได้ แต่พออ่านเมลแล้ว จากที่เงื้อง่าจะเตรียม upload เลยหยุดรอต่อไปก่อน รอสรุปสคริปต์รุ่นสุดท้ายดีกว่า

ปล. ขอบคุณ บล็อกนั้น ที่ให้เกียรติประเดิม สัมภาษณ์ รู้สึกยินดีที่ได้ ตอบ

16 เมษายน 2549

More on Origami

Xorg update ใน sid เมื่อวาน ก็ยังไม่ช่วยอะไร ก็เลยหันไปสลับเอางานอื่นขึ้นมาทำไปพลางก่อน โดยเอา debian-installer มาเริ่มแปล โดยพักสลับกับการพับกระดาษ

เคยเข้าเว็บของ Tom Hull มาหลายวันละ เขาเป็นนักคณิตศาสตร์ที่ ใช้ origami เป็นเครื่องมือ โดยเขาบอกว่า ไม่ใช่แค่วงเวียนกับดินสอ ที่จะใช้ศึกษาเรขาคณิตได้

เขามี modular origami เหมือนกัน อันแรกที่ใกล้เคียงกับ Sonobe ที่เคยทำไป คือ Pentagon-Hexagon Zig-Zag (PHiZZ) เป็นชิ้นหนึ่งที่เคยลองทำนอกเหนือจาก Sonobe เป็น dodecaheron (ทรงเหลี่ยมสิบสองหน้า) ใช้ 30 ชิ้น เหมือน Sonobe:

dodecahedron PHiZZ

แล้วก็ไม่พลาดอยู่แล้ว ที่จะทำ bucky ball (90 ชิ้น):

bucky ball PHiZZ

แต่ที่นั่งทำเมื่อวานระหว่างพัก ก็คือ Five Intersecting Tetrahedra (ทรงเหลี่ยมสี่หน้าห้าชิ้นสอดประสานกัน) อันนี้เห็นภาพแล้วคุ้นมาก เหมือนเคยเห็นที่ไหนมาก่อน น่าทึ่งว่าทำได้ยังไง พอมาเจอวิธีทำแล้วจะรอช้าอยู่ไย เลยลองซะ:

Five Intersecting Tetrahedra

ยังจับทางยากอยู่ ต้องลองทำชิ้นที่สองโดยไม่ดูแผนภาพ ถึงจะรู้ว่าจับทางได้หรือยัง

สรุปว่างานแปล เลยได้แค่ 180 ข้อความเศษๆ เอาน่ะ ถือว่าได้งานอยู่ เดี๋ยววันนี้ลุยต่อ :P

ปล. gtk+ upgrade ใน sid เมื่อเช้า ท่าทางจะเข้ากันได้กับ Xorg 7 แล้ว แล้วก็ build gtk-im-libthai ผ่านแล้ว ไว้ต้องไปคุยกับ sponsor อีกที :D

15 เมษายน 2549

Xorg 7 in sid

การเข้า sid ของ Xorg 7 ไม่ราบรื่นเท่าไรแฮะ มีปัญหาหลายอย่างอยู่:

  • XKB: เรื่องนี้ไม่ใช่ปัญหา แต่คนที่ upgrade X จาก 6.9.0 มา 7 จะขาดแพกเกจ xkb-data ที่ต้องลงเพิ่ม เพื่อให้เซ็ต keyboard layout ได้ โดยสำหรับภาษาไทย คนที่ใช้แป้นพิมพ์ TIS หรือปัตตโชติ จะต้องเปลี่ยนจาก th_tis และ th_pat เป็น th(tis) และ th(pat) ตามลำดับ ส่วนแป้นพิมพ์เกษมณี ใช้ th เหมือนเดิม
  • libtool object (lib*.la) ถูก remove ออกจาก X ทั้งหมด ทำให้หลายแพกเกจ build ไม่ผ่าน คนด่ากันระนาวที่ Bug #354674 ซึ่งโดยหลักการแล้ว ดูเหมือนมีเหตุผล ติดแต่ว่าไม่ได้แจ้งล่วงหน้าให้ package maintainer อื่นๆ ทราบ ก็ปรากฏว่า David Nusinow หัวหน้า Debian X Strike Force ก็ออกมารับผิดและรับปากจะรีบแก้แล้ว
  • ระบบฟอนต์ แพกเกจไหนที่ใช้ x-ttcidfont-conf (เช่น ttf-thai-tlwg เป็นต้น) จะติดตั้งไม่ผ่าน เพราะติด Bug #362296 ที่ยังเรียกโปรแกรมจาก /usr/X11R6/bin อยู่

สรุปว่าเมื่อวานนี้ พยายาม rebuild gtk-im-libthai ก็ไม่ผ่าน จะทำ thaifonts-scalable ก็ติดอีก

รอครับรอ.. เรื่องแบบนี้น่าจะเป็นเรื่องปกติเวลามี transition ใหญ่ๆ มักจะต้องรอ update หลายขั้นเป็นเรื่องปกติอยู่แล้ว แต่พอจำเพาะมาเกิดตอนที่ผมมีโอกาสมีเวลาว่างต่อเนื่อง ซึ่งหาได้ไม่ง่ายนักในช่วงนี้ แล้ว build package อะไรไม่ได้เลยนี่.. หงุดหงิดเหมือนกันแฮะ :-/

ปล. เมื่อเช้ามี Xorg update มาละ รอ download...

14 เมษายน 2549

On Some Ubuntu/Debian Packages

ความเคลื่อนไหวเมื่อวานนี้:

  • update firefox patch ใน ubuntu โดยให้โหลด libthai.so.0 แทน libthai.so เพื่อให้ต้องการแค่ libthai0 โดยไม่ต้องถึงกับใช้ libthai-dev ในการตัดคำ และ Michael Vogt (mvo) ได้ช่วย sponsor upload 1.5.0.1-1ubuntu12 เข้า dapper ให้แล้ว

    เหตุผลในเรื่องนี้ก็คือ libthai.so เป็น symlink ที่อยู่ใน libthai-dev เพื่อชี้ไปยัง library รุ่นที่ต้องการ เพื่อให้คอมไพล์โปรแกรมได้ แต่ตัวไลบรารีที่ระบุ version info จะประกันว่ามี API function ให้เรียกตามที่กำหนด การโหลด libthai.so.0 โดยระบุ library version จึงสมเหตุสมผล

  • pango-libthai ผ่านการตรวจรับเข้า sid แล้ว

เมื่อวานนี้ Xorg 7 เข้า sid ทำให้มี transition ต่างๆ ตามมา เช่น ฟอนต์ของ X ต้องย้ายที่ จาก /usr/X11R6/lib/X11/fonts ไปที่ /usr/share/fonts/X11 เมื่อเช้านี้ จึงมี update ของ xfonts-thai* ซึ่งขณะนี้ orphan อยู่ และอยู่ในการดูแลของ Debian QA team (คิดว่าต้อง adopt ในอนาคต เพื่อไม่ให้ถูกตัดออก) ก็เลยทำให้นึกถึง xfonts-thai-ttf ที่ adopt ไว้ อาจต้อง update (ในส่วนของ type1) ด้วยเหมือนกัน

อีกเรื่องหนึ่งที่ต้องตาม คือ gtk-im-libthai ว่าต้องแก้ไขอะไรสำหรับ Xorg 7 หรือเปล่า

13 เมษายน 2549

Origami Revisited

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

อย่ากระนั้นเลย ไหนๆ ก็วันหยุด เขียนอะไรเบาๆ หน่อยน่ะ พอดีได้รื้อฟื้นงานอดิเรกชิ้นหนึ่ง ที่ห่างหายไปนาน คือ Origami หรือการพับกระดาษ โดยบังเอิญเพื่อนชาวอาทิตย์อุทัยให้แบบฝึกหัดมาไว้ชิ้นหนึ่ง:

stellated octahedral Sonobe

เป็น modular origami ซึ่งทราบภายหลังว่าเรียกว่า Sonobe โดยสร้างจากการประกอบชิ้นส่วนเล็กๆ เหมือนต่อเลโก้ รูปข้างบนเรียกว่าเป็น stellated octahedron (ทรงเหลี่ยมแปดหน้าปูดออก) ใช้ทั้งหมด 12 ชิ้น พอแกะวิธีทำของโจทย์ได้ที่โรงแรมระหว่างพักประชุม เลยกลับมาบ้าต่อ หาวิธีประกอบรูปร่างชนิดอื่นๆ โดยอาศัยกระดาษโฆษณาของห้างสรรพสินค้าที่วางเกลื่อนอยู่เต็มบ้าน

แรงบันดาลใจแรกมาจากรูปเล็กๆ ในหน้า Origami ของ Wikipedia เห็นรูปแล้วก็จับ pattern มาประกอบได้เป็นรูป stellated icosahedron (ทรงเหลี่ยมยี่สิบหน้าปูดออก) แบบนี้ (30 ชิ้น):

stellated icosahedral Sonobe

ชิ้นต่อมาที่กินเวลานานที่สุด (90 ชิ้น) ใช้เวลาทำคืนละนิดละหน่อย โดยพยายามใช้ลูกฟุตบอลเป็นแบบ (คือรูปร่างที่เรียกว่า truncated icosahedron [ทรงเหลี่ยมยี่สิบหน้าตัดมุม] หรือ bucky ball) ได้เป็นรูปนี้ ซึ่งถ้าดูดีๆ ก็คือ dodecahedron (ทรงเหลี่ยมสิบสองหน้า) ที่เอามาปูดดาวห้าแฉกที่แต่ละหน้านั่นเอง แต่ถ้าเชื่อมโยง vertex ทั้งหมด ก็จะได้โครงสร้าง bucky ball:

bucky ball Sonobe

แต่ก็เป็น bucky ball ที่ไม่ตรงตามแบบเท่าไร เพราะวิธีประกอบมันทำให้ fix รัศมีของรูปห้าเหลี่ยมและหกเหลี่ยมให้เท่ากันหมด ทั้งที่จริงๆ แล้วควรเป็นด้านแต่ละด้านที่เท่ากัน และจุดอ่อนอีกจุดก็คือ ตรงหน้าที่เป็นหกเหลี่ยม มันเป็นการวางสามเหลี่ยมด้านเท่าหกรูปต่อชนกัน ซึ่งมุมรวมได้ 360 องศาพอดี ทำให้กลายเป็นระนาบ (ขณะที่ด้านที่เป็นห้าเหลี่ยม จะมีการหักมุมแบบพีระมิด) แล้วก็เลยสามารถขยับขึ้น-ลงได้ คือถ้ากด ลูกบอลก็บุ๋มลงตรงนั้น สรุปว่าได้ bucky ball ที่ไม่สมบูรณ์แบบเท่าไร :-/

อย่างไรก็ดี ยังมีแบบให้คิดเล่นอีก เช่น รูป great icosahedron (30 ชิ้น):

great icosahedral Sonobe

หรือจะเป็นลูกบาศก์ง่ายๆ (6 ชิ้น):

cube Sonobe

พยายามลองเล่นแบบต่างๆ อยู่ (ถ้าว่าง) โดยคิดว่าจะโพสต์เรื่อยๆ ที่ อัลบัม Origami

เพิ่มเติมเรื่องเรขาคณิต:

ปล. เพิ่งเจอลิงก์ Sonobe และ Variations ทีหลัง ถ้ามีกระดาษสีสวยๆ ก็น่าเล่น :-)

10 เมษายน 2549

Beautiful Sunday

ความคืบหน้าเมื่อวานนี้:

  • งานแปล GNOME: เนื่องจากไม่มีประเด็นใหม่ใน list เลยตรวจแก้คำแปลไปเรื่อย พร้อมกับ rebuild GNOME 2.14 จาก CVS เพื่อใช้ตรวจสอบไปด้วย ก็มีแก้แพกเกจย่อยๆ เช่น libgnomeprintui, pessulus, sabayon, epiphany โดยขณะนี้ จะพยายาม maintain ทั้ง gnome-2-14 branch และ HEAD ไปด้วยกัน โดย checkout CVS ไว้อย่างละชุด
  • thaifonts-scalable: เพิ่มฟอนต์ TlwgTypist ในระบบ build ของ thaifonts-scalable พร้อมกับ bold, oblique และ bold oblique style ด้วย ซึ่งเคยทำ bold face ไว้นานแล้ว ด้วยเครื่องมืออัตโนมัติของ fontforge จากนั้นก็มาปรับละเอียดเพิ่มเติม

กับอีกเรื่อง คืออ่าน blog อ่าน planet ไปเพลินๆ ก็ไปเจอ blog ที่ Jordi Mallach เขียนถึง Ubuntu Localisation Sprint เอาไว้ เขียนละเอียดมากๆ รู้สึกเป็นเกียรติที่ถูก DD อ้างถึง :-) ตอนท้ายที่เขาเกือบไม่ทันเครื่องบิน อ่านไปก็ลุ้นไป เพราะอยู่ในเหตุการณ์ด้วยบางส่วน ก่อนแยกกันที่ China Town

Christian Perrier (Debian i18n coordinator) ก็ เขียนถึง sprint ครั้งนั้นในมุมมองของ debian ไว้ด้วยเหมือนกัน

ข่าวคราว:

  • debian ได้ project leader คนใหม่ แล้ว คือ Anthony Towns
  • GNOME มีเอกสาร Overview of the GNOME Platform โดย Shaun McCance เจ้าพ่อ documentation ของ GNOME เขียนสรุปเทคโนโลยีล่าสุดใน GNOME ต้องเก็บลิงก์ไว้อ่าน :-)

และข่าวล่าสุดเช้านี้: libthai ได้ migrate เข้า testing (etch) แล้ว

09 เมษายน 2549

D-I Translation

หนึ่งอาทิตย์ที่ผ่านมา ใช้ไปกับการเริ่ม กระบวนการแปล debian-installer ผ่าน 13 ขั้นตอนทางเมลวันละเรื่องสองเรื่อง จนในที่สุด ก็สามารถ ประกาศ เริ่มงานแปลภาษาไทยได้ ทั้งนี้ ยังมีการบ้านตกค้างจากกระบวนการนี้อยู่สามเรื่อง

  • ตามเรื่อง console font และ keymap ภาษาไทยใน console-data/console-tools เพื่อ confirm ว่าภาษาไทยสามารถอยู่ใน category 2 ได้หรือไม่
  • ตามเรื่อง bterm-unifont ว่าในโหมด framebuffer สามารถแสดงภาษาไทยโดยกล่องไม่เบี้ยวได้หรือไม่
  • ตามเรื่อง upload ttf-thai-tlwg ที่ได้ build เตรียมไว้ (กล่าวคือ ต้องตามจีบ sponsor ให้ช่วย upload ให้) เพื่อให้มีฟอนต์ไทยฉบับล่าสุด ไว้ใช้กับ d-i แบบ GUI

นอกนั้น งานส่วนอื่นก็เป็นการตรวจแก้คำแปล evolution ตามที่คุยกันใน mailing list แล้ว commit เข้า GNOME CVS ซึ่งยังมีเวลาเหลืออีกหนึ่งวันสำหรับแก้เพิ่มเติม ก่อน 2.14.1 tarballs due วันจันทร์นี้ (แต่วันจันทร์ติดประชุมอีกที่ อาจจะไม่ได้ทำ สรุปว่าเหลือวันอาทิตย์วันเดียว)

แฮ่.. งานค้างเยอะ แต่ไม่มีเวลาทำ.. สงกรานต์นี้ ใครชวนเที่ยวระวังโดนกัด

04 เมษายน 2549

ลุย

งานเมื่อวานนี้:

  • แก้คำแปลของ gnome-control-center และ gnome-screensaver ตามที่คุยกันใน L10N mailing list แถมพกด้วยแพกเกจอื่นอีกนิดหน่อย
  • file Debian Bug #360562 เพื่อเพิ่มฟอนต์คอนโซลไทย และ #360592, #360616 เพื่อเพิ่มผังแป้นพิมพ์ไทย ใน console-data
  • ปรับคำแปลใน iso-codes ของ debian ตามที่ได้รับแจ้งว่ามีข้อความใหม่ (Debian Bug #360565) มีคำถามนิดหน่อยเรื่องชื่อประเทศ เลยโพสต์ถามใน debian-i18n mailing list
  • อ่านเอกสารเกี่ยวกับ I18N/L10N ของ Debian Installer เพื่อพยายามเริ่มงานแปล debian; โพสต์ตอบใน L10N mailing list
  • เริ่มกระบวนการแปล debian installer ด้วยการติดต่อลงทะเบียนภาษาไทย ซึ่งขณะนี้ เขารับเราเข้า ทำเนียบ เรียบร้อยแล้ว

ปล. วันอาทิตย์เดี้ยงครับผม เลยเบี้ยวเช็งเม้งซะ โดนญาติประณาม :-P

03 เมษายน 2549

LibThai Uploaded

ในที่สุด ก็มี Debian Developer ยื่นมือช่วย sponsor upload libthai เข้า sid ให้เมื่อคืนวันที่ 28 มีนา และผ่านการตรวจรับแพกเกจใหม่ในคืนวันที่ 29 มีนา ซึ่ง sponsor ก็ไม่ใช่ใครอื่นไกล คือ Dafydd Harries หนึ่งในสามทหารเสือที่พบกันที่ Ubuntu Localisation Sprint นั่นเอง ขอขอบคุณ Daf มา ณ ที่นี้

นอกจากนี้ ยังได้ขอร้องให้เขาช่วย upload pango-libthai และ gtk-im-libthai ด้วย เพื่อให้ตลอดรอดฝั่ง ซึ่งขณะนี้ pango-libthai ก็ได้เข้าไปอยู่ในคิวรอตรวจรับแล้ว เย้!

Update (2006-04-03, 14:52 +0700): ระบุว่าเป็นการ upload เข้า sid (debian unstable) พอดีเขียนเสร็จแล้วนึกได้

hacker emblem