Theppitak's blog

My personal blog.

27 เมษายน 2548

เน็ตเวิร์กคนจน

การเซ็ตเครือข่ายในบ้านที่มีเครื่องลูกข่าย 2-3 เครื่อง กับโมเด็มหนึ่งตัว เพื่อใช้อินเทอร์เน็ต ก็ต้องเซ็ต gateway มาหนึ่งเครื่อง โดยมีบริการที่ต้องจัดการต่อไปนี้เป็นอย่างน้อย:

  • IP Masquerade
  • DNS
  • SMTP

ลองมาตั้ง gateway เล็กๆ ด้วย Debian ดู

IP Masquerade นั้น อาจเป็นเรื่องยุ่งยากที่จะต้องมาเขียน iptables rules แต่ใน Debian มีแพกเกจ ipmasq ซึ่งช่วยจัดการ iptables rules ให้โดยอัตโนมัติ โดยค่าปกติคือ จะ masquerade IP ให้กับเครื่อง IP ภายใน แต่จะไม่อนุญาตให้ IP ภายนอกใช้เป็น gateway และยังติดตั้ง script สำหรับ update iptables rule เมื่อมีการ up หรือ down network interface ด้วย ง่ายซะไม่มีอะ

DNS ถ้ามีแค่ ISP เดียวให้ต่อ ก็อาจจะไปเซ็ตเครื่องลูกข่ายให้ใช้ DNS server ของ ISP แต่ถ้ามีหลาย ISP ให้ต่อ โดยที่เขาไม่อนุญาตให้ IP จากเจ้าอื่นใช้ คงไม่สนุกแน่ ที่จะต้องตาม update nameserver ที่เครื่องลูก วิธีหนึ่งที่อาจจะคิดถึง คือตั้ง DNS ภายในด้วย bind โดยให้มัน lookup name เองตั้งแต่ root domain ไปเลย หรือไม่ก็ให้มัน forward request ไปยัง DNS ของ ISP โดยต้องติดตั้งแพกเกจ resolvconf เพื่อคอย update config file ของ bind ไปตาม ISP ที่ต่อด้วย

แต่มีอีกวิธีที่ง่ายและเบากว่านั้น แทนที่จะติดตั้ง bind ทั้งตัว ก็ใช้ Dnsmasq ซึ่งเป็น name server ตัวเล็กๆ ที่ forward request อย่างเดียว และยังสามารถติดตาม DNS ที่เปลี่ยนไปเมื่อมีการเชื่อมต่อ ISP ใหม่ด้วย การติดตาม DNS อาจใช้แพกเกจ resolvconf ช่วย หรือถ้าไม่มี resolvconf ช่วย dnsmasq ก็จะพยายามตรวจสอบ resolv.conf ที่ได้จาก DHCP client หรือ pppd แทน ทำให้เครื่องลูกข่ายใช้บริการ DNS จากเครื่อง gateway นี้ได้อย่างต่อเนื่อง นอกจากนี้ dnsmasq ยังสามารถแจก IP แบบ DHCP ได้ด้วย หรือถ้าใช้ static IP ก็สามารถใช้ /etc/hosts ในการ map ชื่อโฮสต์ภายในได้ด้วย ทั้งหมดนี้ กินเนื้อที่ฮาร์ดดิสก์แค่ 300 kB

SMTP เป็นเรื่องค่อนข้างสำคัญสำหรับการส่งเมล (ในกรณีที่ไม่ใช้ web mail) ที่จะต้องใช้ SMTP server ของ ISP เพราะการส่งเมลโดยตรงจาก MTA ในเครื่องลูก หรือใน mail server ในเครือข่ายท้องถิ่น อาจถูก reject จาก mail server บางแห่ง เพราะ IP ที่ได้รับแจกจาก ISP มักจะถูกพวก spammer ใช้ส่งเมลขยะ

ปัญหาคล้ายกันนี้ ยังเกิดกับผู้ใช้โน้ตบุค ที่ต้องย้ายเครือข่ายบ่อยๆ อีกด้วย (เรื่อง DNS ยังพอบรรเทาได้ด้วย DHCP ที่จะแจก name server มาให้ด้วยอยู่แล้ว) พอย้ายเครือข่ายที ก็ต้องมาเปลี่ยน SMTP ครั้นจะเซ็ต MTA ในเครื่องให้ส่งเมลเองโดยตรง ก็จะเจอปัญหาโดน block จากบางไซต์ อย่างที่กล่าวข้างต้น

ถ้า mail client ของเราสามารถตั้ง SMTP เองได้ ก็คงไม่ยุ่งยากมาก แค่ไปเซ็ต SMTP ทุกครั้งที่ย้ายเครือข่ายเท่านั้นก็พอ แต่ถ้าใช้ mail client อย่าง mutt ซึ่งไม่ยอมใช้ SMTP เลย แต่จะอิงอาศัย mail spool ของระบบเป็นหลัก แบบนี้จำเป็นต้องตั้ง MTA ให้สามารถปรับตัวตามเครือข่ายที่เชื่อมต่อได้ง่าย

ถ้าจัดการเรื่องนี้ด้วย MTA ตัวบิ๊กๆ อย่าง sendmail, postfix, qmail, exim ก็อาจจะยังคงยุ่งยากอยู่ มีอีกแพกเกจที่เล็กกว่ากันเยอะ คือ MasqMail ซึ่งออกแบบมาสำหรับระบบที่ไม่ได้เชื่อมต่ออินเทอร์เน็ตอย่างถาวรโดยเฉพาะ มีระบบ spool เก็บ off-line mail ไว้รอส่งตอนที่ connect ISP โดยปรับเปลี่ยน mail server ได้ตามค่าที่ตั้งไว้ (หรือส่งเมลเองโดยตรง ถ้าไม่มี SMTP server ให้) และสามารถ fetch mail ผ่าน POP3 ได้ และสามารถเชื่อมรวมกับ masqdialer (ตัวควบคุมการเชื่อมต่อโมเด็มในเครือข่าย) เพื่อตรวจจับสถานะการเชื่อมต่อได้ด้วย ทั้งหมดนี้ กินเนื้อที่ฮาร์ดดิสก์ไม่เกิน 500 kB

ลองใช้ดูสักพักน่ะ (หลังจากที่เล่น exim + bind มานาน) ที่ผ่านมาก็ใช้งานได้เรียบลื่นดี

24 เมษายน 2548

Global Menu

เรื่องมันเริ่มมาจากที่ Matthew Thomas (mpt) นักออกแบบ GUI เขียน blog วิจารณ์ usability ของ Ubuntu 5.04 (ซึ่งหลายเรื่องก็หมายถึงของ GNOME 2.10 นั่นเอง) แล้วหลายคน (ที่ Footnote, OSnews) อ่านแล้วพูดตรงกัน ว่าแม้จะอ้างทฤษฎีโน่นนี่ แต่ท้ายที่สุด ก็เป็นการวิจารณ์โดยใช้ Mac เป็นบรรทัดฐานนั่นเอง (แต่คนที่เห็นด้วยก็มีไม่น้อย) และเรื่องที่กลายเป็นประเด็นถกเถียงกันมาก ก็คือ เรื่อง global menu มีคน ไม่เห็นด้วย ซึ่งต่อมาก็มี คำโต้ตอบ จากฝ่ายสนับสนุน global menu

มีคน เขียน blog ตอบโต้ mpt เป็นเรื่องเป็นราวอีกคนด้วย

ที่ ubuntu forum มี การอภิปราย กันด้วย

เริ่มที่คำวิจารณ์ของ mpt ก่อน ความจริงอ่านแล้วมีหลายประเด็นที่น่าสนใจ เช่น:

  • (ข้อ 8) การแสดง keyboard shortcut เช่น Ctrl+F ในเมนู GNOME จะเรียงชิดขวา แทนที่จะเรียงให้เครื่องหมาย + ตัวสุดท้ายตรงกัน
  • (ข้อ 9) เมนู GNOME ด้านซ้ายเป็นรูปรอยเท้ากับคำว่า "Application" ซึ่งแปลกที่ทั้งสองเป็นรายการเดียวกัน
  • (ข้อ 15) ไดอะล็อกหลายอย่างไม่เป็น modal ทำให้มีไดอะล็อกเก่าตกค้างบนหน้าจอ
  • (ข้อ 16) ไม่ซ่อน mouse pointer เมื่อมีการพิมพ์บนแป้นพิมพ์
  • (ข้อ 25, 26) ค่า "Last" สำหรับภาษาและ session ใน gdm ไม่ระบุว่าค่าล่าสุดเป็นค่าอะไร
  • (ข้อ 28) การกลับจากการ lock จอ พบไดอะล็อกที่ไม่เข้าชุดกับตอน login (เห็นแว้บๆ ว่ามี การพิจารณา เรื่องนี้ที่โครงการ XScreenSaver อยู่เหมือนกัน รวมทั้งมีผู้เสนอ ไดอะล็อกสำหรับ GNOME ไปก่อนหน้านี้แล้ว)
  • (ข้อ 31) มีการนับถอยหลังขณะป้อนรหัสผ่านเพื่อปลดล็อกจอ ซึ่งน่าจะเคลียร์ timer ทุกครั้งที่มีการกดปุ่มบนแป้นพิมพ์ เผื่อคนพิมพ์ช้า ไม่ใช่กำหนดเวลาให้พิมพ์รหัสผ่านให้เสร็จ

แต่ข้อที่อ่านแล้วเกิดข้อถกเถียงก็คือ:

  • (ข้อ 1) ใช้เมนูในหน้าต่าง แทนที่จะใช้ global menu
  • (ข้อ 36) ไม่สามารถคลิกเพื่อเปลี่ยนชื่อไฟล์ได้

เรื่องการคลิกเปลี่ยนชื่อไฟล์ มีคนเคย เขียนชื่นชม ว่าการเปลี่ยนชื่อไฟล์ด้วย context menu ที่ nautilus ใช้นั้น ดีกว่าการคลิกเปลี่ยนชื่อ ที่ทำให้เกิดการเปลี่ยนชื่อไฟล์โดยอุบัติเหตุได้ง่าย

ส่วนเรื่องการอยากใช้ global menu นั้น ดูเหมือน Fitt's Law จะเป็นเหตุผลหลักสำหรับผู้ที่สนับสนุน โดยอ้างว่าเป็นเหตุผลที่เป็นวิทยาศาสตร์เสียด้วย แต่ในความเห็นส่วนตัว คิดว่ายังมีปัจจัยอื่นอีกที่น่าจะต้องพิจารณา

คนที่ชอบใช้ sloppy focus mode แบบผม พอจะจินตนาการถึงปัญหาที่จะพบได้ไม่ยาก เพราะขณะที่ใช้ gimp ที่ใช้หลายหน้าต่าง ก็รู้สึกว่าใช้ inspector dialog ต่างๆ ได้ยาก อย่างจะเลื่อนเมาส์ไป layer dialog แต่ดันลากผ่านหน้าต่างของอีกรูปหนึ่ง พอไปถึง layer dialog ก็กลายเป็นข้อมูลของรูปที่ลากผ่านไปแล้ว เรื่อง global menu ก็คงคล้ายกัน ถ้าต้องลากเมาส์จากหน้าต่างไปยัง global menu สุดท้าย ผมก็คงพยายามเลื่อนหน้าต่างที่จะใช้ เข้าหา global menu ก่อนน่ะแหละ แล้วอย่างนี้จะแยกเมนูออกไปทำไม

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

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

คนที่ตอบสนับสนุน global menu ก็บอกว่า เมนูนี่แหละ ที่ช่วยสั่งงานโปรแกรมได้ครบถ้วน การใช้ toolbar มันรก (จริงอะ? อย่างเว็บเบราว์เซอร์นี่ มีใครใช้เมนูเพื่อ back/forward/reload มั่ง?) และที่สำคัญ ดันตอบปัญหาที่ผมสนใจ คือเรื่อง sloppy focus mode แบบสั้นๆ ว่า focus mode แบบนี้ไม่น่าใช้หรอก อ้าว แล้วถ้าฉันชอบใช้ ฉันก็ต้อง anti global menu ไปเรื่อยๆ ล่ะสิเนี่ย :P

ปล. ผมไม่ได้ต่อต้านแนวคิด GUI จาก Mac นะ อย่างน้อยผมก็ชอบปุ่ม OK ที่อยู่ด้านขวาละ มันคลิกง่ายดี แต่ว่า อย่า navigate ด้วย keyboard ด้วยปุ่ม tab ละกัน จะเจอปุ่ม Cancel ก่อน แล้วก็เลือกพลาดอยู่เรื่อย (ถ้าแก้ให้ไปโดน OK ก่อน ก็จะไม่คงเส้นคงวาอีกแหละ)

22 เมษายน 2548

แพร่ Ubuntu, Firefox ไทย และ ClamWin

[Ubuntu Logo] เห็นชาวบ้านเล่น Ubuntu แล้วติดใจกัน บอกว่าเหมาะสำหรับผู้ใช้เดสก์ท็อปมือใหม่ แถมยัง ติดอันดับหนึ่ง ที่ DistroWatch มาหลายเดือน เลยดูดมาลงที่โรงเรียนซะ

ลองลง Ubuntu 5.04 (Hoary Hedgehog) ดู ก็ยังคงใช้ Debian-Installer สำหรับ sarge อยู่ ลงเสร็จ ได้ GNOME 2.10 desktop ที่เซ็ตธีมแบบแอฟริกันไว้ มีการ customize ที่น่าสนใจคือ:

  • ไม่มี root password แต่มี root terminal ให้ โดยเรียกแล้ว จะถาม user password เพื่อ sudo shell ใน terminal อืมม์ ก็โอเคนะ สำหรับเดสก์ท็อปที่มีผู้ใช้เพียงคนเดียว
  • มี ubuntu device database สำหรับส่งข้อมูล hardware ของเครื่อง พร้อมสถานะการทำงานกลับไปยัง ubuntu เพื่อให้ทีม ubuntu ติดตาม hardware ที่ ubuntu สนับสนุนหรือไม่สนับสนุน

อย่างอื่นยังไม่มีเวลาสำรวจ พอดีเข้าไปแล้วมีธุระอื่นให้ทำด้วย

พร้อมกันนี้ ก็จัดการโฆษณา Firefox ไทย ทั้งบนวินโดวส์และบนลินุกซ์ ผู้ใช้เห็นแล้วดูท่าจะพอใจ ที่การตัดคำทำให้ได้ดูเว็บภาษาไทยที่จัดหน้าสวยงามกว่าเดิม ทำให้เกิดไอเดีย ว่าพวก spreadfirefox banner ที่เราติดกันอยู่เนี่ย น่าจะทำตัวที่ชี้ไปที่ firefox ไทยแทนดีหรือเปล่า จนกว่าภาษาไทยจะได้ check-in?

พร้อมกันนี้ ก็ชวนเขาลง ClamWin anti-virus ด้วย เพื่อลองเปรียบเทียบกับ Norton และ McAfee ที่ลงไว้ ว่าทดแทนกันได้ขนาดไหน

20 เมษายน 2548

Debianization Fever

ตั้งแต่ตระหนักว่า การใช้ Debian mainstream มันไม่เพียงพอสำหรับ end-user ในแง่ความล้าสมัยของ package ภาษาไทยที่ขาดการ update มานาน หรือการมี patch ตกค้างยังไม่ check-in ก็ตัดสินใจใช้ LTN Apt กับเครื่องที่โรงเรียนซะ

ตัวหลักๆ ที่ใช้ก็คือ ฟอนต์ TrueType ไทยรุ่นล่าสุด และ Firefox ตัดคำไทยซึ่งคุณอ๊อท build เอาไว้ แล้วก็เลยจัดการเพิ่ม package ที่ต้องการใช้เข้าไปด้วย คือ:

  • xfonts-thai-ttf: ทำ dummy package เพื่อการ upgrade ที่เรียบลื่นจาก Debian mainstream มาเป็น ttf-thai-tlwg แทน หลังจากที่คุณทิมเปลี่ยนชื่อแพกเกจ แต่ยังไม่ได้ upload เข้า Debian pool
  • pango-libthai: debianize จากซอร์สที่เคยรีลีสไว้ที่ LTN FTP เพื่อใช้การตัดคำไทยใน GNOME
  • gtk-im-libthai: ทำนองเดียวกับ pango-libthai เพื่อใช้การตรวจ-แก้ลำดับการป้อนข้อมูลภาษาไทยใน GNOME อีกแบบหนึ่ง นอกเหนือจาก XIM ที่มีอยู่แล้ว
  • console-tools, console-data: เอา package จาก Debian sid มาแพตช์เพิ่ม keymap และฟอนต์ไทย เพื่อใช้กับ text console

เดี๋ยวต้องมาคิดต่อ ว่าจะ check-in keymap และฟอนต์ console ไทยเข้า upstream ยังไงดี เพราะตอนนี้ไม่กล้าแปล package GNOME หลายตัว เนื่องจากมีการพ่น message ออกทาง text console (ตัวอย่างที่แปลไปแล้วอ่านไม่รู้เรื่อง เช่น ตอนที่สั่ง shutdown เครื่องผ่าน gdm) จำเป็นต้องมี console font มารองรับ

เข้าไปดูที่โครงการ Linux Console Tools เห็น development branch มีความพยายามจะใช้ฟอนต์จาก X ด้วย แต่ไม่รู้จะ release เมื่อไร

19 เมษายน 2548

ClamWin, Firefox Thai

ผู้ใช้วินโดวส์ทุกคนต้องการโปรแกรม anti-virus และจาก blog เก่า ที่ได้เคยสำรวจโปรแกรม anti-virus เพื่อติดตั้งบน mail server ที่เป็นลินุกซ์ เพื่อช่วยปกป้องผู้ใช้บนวินโดวส์ ก็มีโปรแกรมสแกนไวรัสหลายตัวที่เป็น freeware หรือ trial ware แต่ส่วนใหญ่ไม่โอเพนซอร์ส หรือที่โอเพนซอร์ส ก็มีแต่บนลินุกซ์

โน้ตบุคโรงเรียนเป็น dual boot เซ็ตลินุกซ์แล้ว ลองเซ็ตวินโดวส์เพื่อทดลองใช้โอเพนซอร์สเสียหน่อย ค้นไปค้นมา ไปเจอ ClamWin ซึ่งเป็น anti-virus บนวินโดวส์ (cygwin-based) โดยอาศัย ClamAV ที่ใช้กันบน Linux mail server หลายๆ ที่นั่นเอง

ClamWin ได้รับคัดเลือกให้เป็น Project of the Month ของ SourceForge ประจำเดือนกุมภาพันธ์ 2548 จากการเติบโตอย่างรวดเร็ว ด้วยปริมาณดาวน์โหลดกว่า 0.25 ล้านภายใน 10 เดือนที่รันโครงการ และยังได้รับเสนอให้รวมใน TheOpenCD โครงการรวบรวมสุดยอดโปรแกรมโอเพนซอร์สบนวินโดวส์ของ OSI อีกด้วย (ได้ยินมาจากงานสัมมนา ว่าเนคเทคก็ทำ โครงการซีดีโอเพนซอร์สบนวินโดวส์ ด้วยเช่นกัน)

เสร็จ ClamWin แล้ว ก็ลง Firefox ตัดคำไทย ด้วย มีสองตัวให้เลือก ก็เลือก ตัวที่ใช้ ICU (ของพี่สัมพันธ์) ซึ่งดูมีโอกาส check-in มากกว่าละกัน ส่วนบนลินุกซ์ ก็ใช้ LTN apt ซึ่งจาก changelog ของ 1.0.2-3thai1 เข้าใจว่าใช้ cttex (ของพี่ฮุ้ย) อยู่แล้ว

15 เมษายน 2548

Software is Too Complex

ครบรอบ 40 ปีของ กฎของ Moore zdnet รายงานความเห็นของ Gordon Moore เจ้าของกฎ ว่า Software is too complex เพราะ software designer ต่างคนต่างคิดว่า ฮาร์ดแวร์มีประสิทธิภาพเพิ่มขึ้นเรื่อยๆ ตามกฎของมัวร์ ก็เลยเขียนโปรแกรมซับซ้อนขึ้นเรื่อยๆ จนชักจะมากไป "ไม่ใช่ว่าพวกเขาไม่พยายาม [ที่จะ optimize] แต่กำลังเสียศูนย์"

โฮะๆ ถูกใจคนไม่ชอบ bloat load อย่างข้าพเจ้ายิ่งนัก ชอบอ้างกันนัก ว่าเครื่องมันเร็ว

นอกจากนี้ ยังมี ที่มาของกฎของมัวร์ ด้วย สรุปประมาณว่า มัวร์สังเกตว่าจำนวนองค์ประกอบใน IC จะเพิ่มเป็นสองเท่าทุกๆ ปี และต่อมาเมื่อมีการ optimize เนื้อที่ เขาจึงเปลี่ยนกฎจากทุกปีเป็นทุกสองปี จากนั้น มีคนของอินเทลอีกคน คือ David House มาตีความเพิ่มเติม ว่าประสิทธิภาพโดยรวมของคอมพิวเตอร์จะโตเร็วกว่านั้น คือจะเพิ่มเป็นสองเท่าทุก 18 เดือน และก็กลายเป็นกฎที่ไม่ใช่่แค่ทำนายอีกต่อไป แต่เป็นมาตรฐานที่ผู้ผลิตต่างๆ ต้องทำให้ได้เลยทีเดียว เพื่อไม่ให้ล้าหลังคู่แข่ง

แต่ Moore ก็บอกว่า กฎใดๆ ที่เป็น exponential มันใช้ไปนานๆ สภาพการณ์จริงก็จะถึงจุดอิ่มตัว ไล่ตามค่าตามทฤษฎีไม่ทัน และน่าจะถึงลิมิตในอีก 10-20 ปี

ที่มา: OSNews

Update: แก้ประโยคสุดท้ายเรื่องลิมิตของกฎให้ชัดเจน เพราะพ่อหมาอ้วนทักมาทำให้รู้ว่าเขียนไม่ชัดเจนพอ

ขอบคุณ

ขอขอบคุณ ผู้สนับสนุน คนล่าสุดที่หย่อนสตางค์ลงหมวก ไม่ใช่ใครที่ไหน คุณกานต์ ยืนยง ผู้บุกเบิกไกวัลลินุกซ์นั่นเอง รู้สึกเป็นเกียรติมากครับ

อีกรายหนึ่งสนับสนุนเครื่องมือสื่อสาร: ขอบคุณเด่นสินมา ณ โอกาสนี้ด้วย

12 เมษายน 2548

เซ็ต Compaq Notebook

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

การ์ด PCMCIA ที่ใช้ เป็น Linksys WPC54G ถ้าติดตั้ง driver บนวินโดวส์ก็ใช้ Wireless ได้ แต่บนลินุกซ์ยังไม่ได้ โดยเสียบแล้วเฉย ดู syslog ก็ไม่มีอะไรเกิดขึ้น ทำให้เข้าใจไปว่า อาจ config PCMCIA ไม่เรียบร้อย แต่ความจริงแล้ว พอเอากลับมาลองที่บ้าน เสียบการ์ดชนิดอื่นก็ใช้ได้ แสดงว่าเป็นปัญหาเรื่องขาด driver ไม่ใช่ที่ระบบ PCMCIA แล้วละ

ไปตรวจสอบ chipset แล้ว พบว่าเป็น Broadcom ซึ่งยังไม่มี driver บนลินุกซ์ ลอง google ดูก็พบแต่คำตอบที่บอกให้ใช้ NdisWrapper ก็เลยจัดการเสีย:

# apt-get install kernel-headers-2.6.11-1-686
# module-assistant auto-install ndiswrapper

จากนั้น ไปดาวน์โหลด driver (สำหรับ Windows) มาติดตั้ง โดย unzip แล้วสั่ง:

# ndiswrapper -i LSTINDS.INF
# ndiswrapper -i lsbcmnds.inf

ไหนๆ ก็ไหนๆ เลยเซ็ต touchpad ให้ด้วย โน้ตบุคของโรงเรียน เป็น Compaq Presario 2500 ซึ่ง touchpad เป็นแบบมี scroll area แต่ถ้าใช้ driver ปกติของ XFree86 ด้วย ImPS/2 protocol แล้ว มันจะใช้ touchpad ได้แค่เลื่อนเมาส์อย่างเดียว แต่คลิก/ลากด้วยการ tap บน touchpad ไม่ได้ ต้องใช้ปุ่มที่อยู่นอก touchpad ซึ่งไม่สะดวก

touchpad

ค้นไปค้นมาจนเจอ Synaptics TouchPad driver ซึ่งสามารถลงจาก debian pool ได้ทันที:

# apt-get install xfree86-driver-synaptics

แล้วก็แก้ /etc/X11/XF86Config-4 ตามที่บอกใน README.Debian:

Section "InputDevice"
  Driver      "synaptics"
  Identifier  "Mouse[1]"
  Option      "Device"           "/dev/psaux"
  Option      "Protocol"         "auto-dev"
  Option      "LeftEdge"         "1700"
  Option      "RightEdge"        "5300"
  Option      "TopEdge"          "1700"
  Option      "BottomEdge"       "4200"
  Option      "FingerLow"        "25"
  Option      "FingerHigh"       "30"
  Option      "MaxTapTime"       "180"
  Option      "MaxTapMove"       "220"
  Option      "VertScrollDelta"  "100"
  Option      "MinSpeed"         "0.06"
  Option      "MaxSpeed"         "0.12"
  Option      "AccelFactor"      "0.0010"
  Option      "SHMConfig"        "on"
EndSection

และแก้ ServerLayout ให้มาใช้ InputDevice ตัวนี้แทน mouse เดิม

restart X แล้ว ปรากฏว่า สามารถ tap เพื่อคลิกและลากได้ แถมยังใช้ช่อง scroll ด้านขวาแบบ wheel mouse ได้ด้วย เจ๋งอะ นอกจากนี้ ค่า default ยังเซ็ตให้ใช้มุมล่างขวาของ tap area แทนเมาส์ปุ่มขวา และมุมบนขวา แทนเมาส์ปุ่มกลางไว้ด้วย หุๆ

นอกจากนี้ ยังมี utility synclient ไว้สั่งเปลี่ยนค่า touchpad ได้ด้วย (โดยต้องกำหนด Option "SHMConfig" "on" ใน XF86Config-4 ซึ่งค่าดีฟอลต์จะปิดไว้ เพราะเท่ากับสามารถให้ใครก็ได้ remote เข้ามาเซ็ต touchpad เราเล่น)

ที่น่าสนใจก็คือ มี syndaemon ที่คอยช่วยปิด touchpad ให้ชั่วคราวขณะที่เราใช้แป้นพิมพ์ ซึ่งช่วยลดการรบกวน mouse pointer จากการสัมผัสของอุ้งมือเราขณะพิมพ์ได้

เรื่องสุดท้าย ที่พยายามเซ็ต แต่ไม่สำเร็จ คือ DRI ซึ่งการ์ดจอของโน้ตบุคเป็น ATI Radeon IGP 340M ซึ่งหลังจากโหลด kernel module "ati_agp" และ "radeon" และเช็กดูว่าใน XF86Config-4 ได้ Load "dri", "glx", "GLcore" หมดแล้ว ปรากฏว่า สั่ง "glxinfo" ดู ก็ยังบอกว่า:

...
direct rendering: No
...

ลองดูใน /var/log/XFree86.0.log ก็เจอบรรทัด:

(WW) RADEON (0): Direct rendering not yet supported on IGP320/330/340/350, 7000, 9000 integrated chips

google ดู ก็ดูเหมือนจะยืนยันว่า คงยังใช้ไม่ได้ นอกจากจะใช้โค้ดจาก XFree86 4.4.x CVS ซึ่งมาตามเซ็ตในโน้ตบุคทุกเครื่องคงไม่ไหว ..ไว้รอ X หลัง sarge ละกัน :-P

05 เมษายน 2548

Thai/Lao gtk-im-extra

ช่างทำหลังคายังไม่ว่างอีก เลยเคลียร์ TODO list ต่อ

พยายามจะปิด GNOME Bug #81031 (immodules for Thai) ให้ได้ แต่ไม่มีเวลาซะที คุยกับ Owen เมื่อเดือนก่อน ว่าขออนุญาต commit patch เพื่อแทนที่ im-thai-broken ด้วย im-thai ตัวใหม่ ที่สนับสนุนภาษาลาวด้วย แต่ Owen บอกว่า IM module นี้ยังมีปัญหาเรื่องการเชื่อมรวมกับส่วนอื่นของเดสก์ท็อป เช่น เรื่องการเปลี่ยนผังแป้นพิมพ์เมื่อเปลี่ยน input method ซึ่งในความเห็นของเขา IIIMF น่าจะเป็นทางออกในระยะยาวที่ดีกว่า แล้วก็ชี้ให้ไปติดต่อโครงการ gtk-im-extra แทน เพื่อขอฝากโค้ดไว้ที่นั่น (ตามที่เล่าในการสัมมนา 28 มีนา)

เมื่อคืนเลยกลับมาที่เรื่องนี้อีกครั้ง (เรื่องฟอนต์ Loma เอาไว้ก่อน เผื่อศิริชัยจะว่างมาทำด้วยตัวเอง ไหนๆ ก็ยังใช้เครื่องมือใน fontforge ไม่ถนัด) โดย up CVS ของ gtk-im-extra แล้วทำ patch เพื่อเสนอ Noah Levitt ให้รวมเข้าไว้ ปรากฏว่า ภายในคืนเดียว แก commit ให้เรียบร้อย รวดเร็วมาก

เสร็จไปหนึ่ง ตอนนี้ GNOME user ชาวลาวคงได้ input method ที่เจ๋งที่สุด (เพราะยังไม่มีใครทำตัวอื่น) ไว้ใช้ละ ส่วนคนไทยถ้าจะใช้ด้วยก็ไม่ว่ากัน แต่ความจริง ถ้าใช้บน X ก็มี XIM ไทยให้อยู่แล้ว แต่ตัวนี้ (หรือ gtk-im-libthai) อาจจะมีประโยชน์กับผู้ใช้ GTK+ บน Win32

ขั้นต่อไปคือ เสนอขอลบ im-thai-broken ออกจาก stock GTK+ เพราะป่วยการที่จะคงตัวนี้ไว้อีกแล้ว จากนั้นค่อยไปดู IIIMF ต่อ ^_^

04 เมษายน 2548

Loma Font

ที่บ้านกำลังจะเปลี่ยนหลังคาที่บ้านอีกหลัง เพื่อให้ทันหน้าฝน กลับจากกรุงเทพฯ ก็เลยต้องรีบติดต่อช่าง เลือกแบบหลังคาเป็นการด่วน (หลังจากที่ขอผัดผ่อนแม่มาหลายอาทิตย์ ระหว่างเตรียม present) แต่ช่วงนี้ช่างไม่ค่อยว่าง เพราะเป็นฤดูซ่อมหลังคาของหลายๆ บ้าน :-P ระหว่างรอช่าง เลยหวนกลับมาแก้ thaifonts-scalable ไปพลางๆ

เริ่มจาก แก้คำสั่ง fc-cache หลังติดตั้งฟอนต์ให้ใช้รูปแบบ "fc-cache -f <dir>" แทน "fc-cache -f || true" ตามที่คุณพูลลาภเคยแนะนำไว้เมื่อนานมาแล้ว

เรื่องถัดมา เป็นการเตรียมทำตัวหนาของฟอนต์ Loma หลังจากที่ synchronize glyph ของตัว regular รุ่นใหม่กับศิริชัยไปแล้ว ซึ่งทำให้ขณะนี้ ตัวหนากับตัว regular ดูเป็นคนละชุดกัน ก็พอดีได้คุยกับเจ้าตัวที่งานสัมมนา ได้ความว่า ไม่มีอะไรพิเศษ นอกจากการ expand stroke จากตัว regular แต่ความจริง การ expand stroke มันยังไม่พอ เพราะมันทำให้ความกว้าง-ความสูงของ glyph เพิ่มขึ้นด้วย แต่ก็มีเครื่องมือในชุด "Meta Font" ของ fontforge ที่ช่วยทำตัวหนาได้ ซึ่งปัญหาก็คือ มันยังเต็มไปด้วย bug :-P

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

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

ทีนี้ก็เหลือ หาวิธีทำตัวหนาจากตัว regular ละ แต่จะทำไงดีเนี่ย กับ fontforge ที่ buggy :-P

01 เมษายน 2548

Top-Posting Mails

ระหว่างตามอ่านเรื่อง การเร่งความเร็ว GNOME ไปเจอ โพสต์นี้ แล้วชอบ เป็นเรื่องเกี่ยวกับคนชอบ top-post เวลาตอบเมล โดย quote ของเดิมมาทั้งหมด:

A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?

A: No.
Q: Should I include quotations after my reply?

John Doe wrote:
> ...
> ...

เจอสไตล์การตอบเมลแบบ top-post โดย quote ข้อความเก่ามาทั้งหมดแล้ว ผมก็แอบเคืองมาเยอะ ว่าจะเขียนถึงสักวันเหมือนกัน เหอะๆ เลยได้โอกาส

Update (2005-04-01, 09:28): เพิ่มลิงก์ไปยังเมลที่ top-post เพื่อช่วยลำดับเรื่องราว

hacker emblem