Theppitak's blog

My personal blog.

26 มิถุนายน 2548

FOSS for Windows

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

ทีแรกไปเจอ burnatonce ซึ่งเป็น freeware for non-commercial use (ไม่มี source code และถ้าจะใช้ในเชิงพาณิชย์ ก็ให้ลองได้ 30 วัน) แต่ตัวมันเองเป็น frontend ไปเรียกโปรแกรมอื่นที่เป็น FOSS (ซึ่งหลายตัวชื่อคุ้นหูบนลินุกซ์) อีกที เช่น cdrdao, cdrtools, cygwin, madplay, vorbis-tools, flac อะ ก็พอถูไถ โหลดมาเขียนซีดีให้เขาได้

ว่าแล้วเลยมาลองหาต่อ.. ไปเจอเว็บโครงการ OSSwin เข้า ..มาอีกแล้วครับ เว็บที่รวบรวมอะไรเยอะๆ แต่ไปซุกซ่อนอยู่ ไม่เป็นข่าวเหมือน TheOpenCD.org ของ OSI แล้วในหมวด CD Writing ก็ชี้ไปยัง cdrtfe ซึ่งเป็น front end สำหรับ cdrtools ทั้งหลาย เขียนด้วย Delphi เป็น GPL ด้วย โหะๆ ไว้ได้เข้าไปโรงเรียนค่อยไปลอง

สำหรับจันทรา นำร่องก่อนด้วยการชวนเด็กเล่น GIMP (เขาเป็น Photoshop อยู่แล้ว น่าจะเป็นเร็ว) แต่พอถามหาหนังสือ ผมชี้ไปที่ Grokking the GIMP แต่เห็นทำหน้าเจื่อนๆ เมื่อเห็นภาษาอังกฤษ (เด็กมัธยม ภาษาอังกฤษยังไม่แข็งแรง) เลยนึกได้ว่า เคยมีคนแปลเป็นไทยไว้แล้ว แต่มันอยู่ที่ไหนหว่า.. หาไม่เจอ :-P

23 มิถุนายน 2548

GTK+ 2.7.0, Pango 1.9.0

GTK+ 2.7.0 development version ออกแล้ว (ในที่สุด) เมื่อวานซืน ไล่หลัง Pango 1.9.0 ในวันเดียวกัน การเปลี่ยนแปลงที่สำคัญ (จากประกาศข่าว) คือการใช้ cairo โดย Pango มี PangoCairoFontmap interface เพิ่มขึ้นมา เพื่อใช้ติดต่อกับทั้ง Fontconfig และ Win32 font ส่วน GTK+ ก็ใช้ cairo วาดกราฟิกเกือบทั้งหมด นอกจากนั้นก็เป็นการแก้บั๊ก/เพิ่มความสามารถปลีกย่อย ยาวเป็นหางว่าว หนึ่งในนั้นที่เกี่ยวกับคนไทยก็คือ การแสดง พ.ศ. ใน GtkCalendar (เสียที) ฝีมือคุณไพศาข์ ครับผม

GtkCalendar with Buddhist Era

GTK+ 2.7.0 มี known bug เกี่ยวกับการวาดบิตแมปอยู่ ซึ่ง Owen บอกว่า เป็นปัญหาใน Xrender ซึ่งเป็นโค้ดที่ไม่มีใครใช้มาก่อน จนกระทั่ง GTK+ ไปเรียกโค้ดส่วนนั้นของ cairo ขึ้นมา บั๊กนี้ทำให้ GTK+ 2.7.0 ออกช้าไปหนึ่งอาทิตย์ แต่ก็เห็น Matthias บอกว่ามี workaround ใน cairo CVS แล้ว รอ cairo 0.5.1 ออกมาตาม ก็คงหมดปัญหา

ลุ้นจริงๆ นะนี่ ว่า GTK+ 2.8 จะทันใช้ใน GNOME 2.12 รึเปล่า

22 มิถุนายน 2548

menu-xdg

พอดีตัวเองใช้ GNOME 2.11 จาก CVS อยู่ เลยไม่ได้ดู GNOME 2.10 ปกติที่ Debian unstable เพิ่งอัปเกรดขึ้นมา จนกระทั่งได้ไปอัปเกรดเครื่องที่โรงเรียน จึงพบว่า Debian menu หายไปจาก GNOME menu ทำให้ user หาโปรแกรมบางโปรแกรมไม่เจอ

ความจริงก็ไม่ผิดจากที่คาดเท่าไร เพราะ GNOME 2.10 ใช้ ระบบเมนูใหม่ของ freedesktop.org ซึ่งโครงสร้างเมนูเดิมของ Debian ไม่ถูกนับรวมเข้าไปด้วย แต่ก็จะแปลกใจนิดๆ ถ้าจะไม่มีการเปลี่ยน Debian policy เกี่ยวกับเรื่องนี้เลย

จนเพิ่งสังเกตใน changelog.Debian ของ gnome-panel ว่ามีแพกเกจใหม่ชื่อ menu-xdg แทน menu เดิม รายละเอียดบอกว่า:

Description: freedesktop.org menu compliant window manager scripts menu-xdg contains menu-methods to convert the Debian menu structure to the freedesktop.org xdg menu structure.

  • Base Directory Specification Version 0.6
  • Menu Specification Version 0.8
  • Desktop Entry Specification Version 0.9.4

และเมื่อทดลองติดตั้ง:

  # apt-get install menu-xdg

ลองเข้า GNOME 2.10 ของ Debian ปกติดู ก็มี Debian menu ขึ้นมาแล้ว

Busy

ไม่ได้เขียน blog เสียนาน เหตุก็เพราะมุ่งไปเน้นงานแปล GNOME อยู่ ไล่ตามแปล string ใหม่ใน HEAD เลย พร้อมกับแปลแพกเกจใหม่เพิ่มอีก คือ gnome-backgrounds, glib, gconf ซึ่งสามารถดันเปอร์เซ็นต์แปลของภาษาไทยขึ้นมาจาก 43.77% เป็น 45.73% เพิ่มขึ้น 1.96% ติดชาร์ต top 5 movers ของอาทิตย์ที่แล้ว และแซงภาษาเปอร์เซียกลับขึ้นมาเป็นอันดับแรกของกลุ่ม unsupported เหมือนเดิม (แต่เราก็โดนภาษาสโลวักดีดตัวแซงไปเข้ากลุ่ม partially supported ก่อนหน้านี้แล้ว)

หลังจาก weekly status ออกมา ก็แปลเพิ่มอีก ได้เป็น 46.51% แล้ว ทั้งนี้ นับเฉพาะ official GNOME ยังไม่รวม evince, rhythmbox ที่ มาร์คแปลเพิ่ม อีก

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

พอแล้ว.. หนูจาทำง้าน!!

10 มิถุนายน 2548

Cairo มาแล้ว, GWeather translation

เมื่อเช้า update GNOME CVS (ผ่าน jhbuild) แล้วก็ต๊กกะใจ กับการเปลี่ยนแปลงมโหฬาร โดยมี source ของ cairo ติดมาด้วย นี่ก็หมายความว่า jhbuild ได้เปลี่ยน GTK+ จาก 2.6 branch มาใช้ HEAD ซึ่งได้เชื่อมกับ cairo มาพอสมควรแล้ว

เข้าไปเช็ก mailing list ก็ปรากฏมีคนจุดประเด็นขึ้นมาทันที ว่า GTK+ 2.8 พร้อมสำหรับ GNOME 2.12 หรือ? กับการเริ่มใช้ cairo โดยมีประเด็นเรื่อง performance รวมอยู่ด้วย โดยใช้ gtkpref วัดประสิทธิภาพของ GTK+ รุ่นต่างๆ ก็พบว่า โดยเฉลี่ยแล้ว cairo ทำให้ GTK+ ช้าลง (นึกถึงที่น้องฝ้ายเคยบ่นใน #tlwg เลยแฮะ) แต่ Owen ก็ มีคำตอบ จากการสังเกตผลคร่าวๆ ว่าน่าสนใจที่บาง operation เร็วขึ้น และใน operation ที่ช้าลง (เช่น text view) ก็เป็นกรณีที่รู้ปัญหาอยู่ โดยมีวิธีแก้แบบง่ายๆ ด้วยการทำแคช แต่ตัวแกอยากแก้กลไกใน cairo มากกว่า อะ.. ก็ลุ้นกันต่อไป

ความจริงแล้ว การย้ายไป cairo โดยค่อยๆ เลิกใช้ libgnomecanvas และ libart ก็อยู่ใน roadmap ของ GNOME 2.12 อยู่แล้ว เพียงแต่มีคนกลัวว่า GTK+ 2.8 จะช้ากว่า กำหนด ซึ่งทีม GTK+ ดูเหมือนจะยอมตัดแผนการบางอย่างออก เพื่อให้ GTK+ 2.8 ออกทันกำหนด ให้ GNOME ได้ใช้และทดสอบได้ทันกำหนดของ GNOME 2.12 เอง

แต่จากที่ตามอ่าน mailing list ก็ดูเหมือนว่า GNOME 2.12 คงแค่ "เริ่ม" ใช้ cairo แต่คงใช้กันแบบเต็มตัวใน 2.14 มากกว่า

สำหรับงานแปล วันนี้แปลไป 3 ชิ้น หนึ่งในนั้นคือ gweather location อันฉาวโฉ่ :-P

อ้อ.. ลืมเขียน ว่า gweather รับ patch แยกสถานที่ตามจังหวัดของไทยไปแล้ว ผ่าน GNOME Bug #160163

gweather locations for Thailand

08 มิถุนายน 2548

Begun the Etch era has

หลังจาก Debian GNU/Linux 3.1 (sarge) ออก มาแล้ว unstable pool ก็เริ่มเริงร่าละ วันนี้ sid upgrade ในเครื่องผม 40.2 MB ประเดิมด้วย gnome 2.10, gcc 4.0 และ openssh 4.1

sarge กลายเป็น stable ไปแล้ว ก็มี etch เป็น testing มาแทนที่ ซึ่งในการผลัดเปลี่ยนนี้ มีการเปลี่ยนแปลง service สำหรับ sarge คือ:

  • debian-volatile เป็นบริการใหม่ สำหรับแพกเกจที่มีการปรับปรุงข้อมูลอยู่เสมอ เช่น virus signature สำหรับโปรแกรมตรวจไวรัสทั้งหลาย(*) หรือ gaim ที่มีการปรับเปลี่ยนตามโปรโตคอลที่เปลี่ยนไป ฯลฯ ซึ่งการใช้งานบริการนี้ ก็เหมือนกับ debian-security เลย เพียงแต่ไม่ใช่การแก้ปัญหาระบบรักษาความปลอดภัยเท่านั้น
  • ตัด non-US ออก เพราะสามารถข้ายโปรแกรมในนั้นเข้าไปใน main pool ได้แล้ว ดังนั้น ถ้าใครมีรายการ non-us ใน /etc/apt/sources.list อยู่ ก็ควรลบบรรทัดนี้ออก

ซึ่งแน่นอนว่า etch และ sid ก็จะเริ่มใช้นโยบายนี้ด้วย และการเปลี่ยนแปลงขนานใหญ่ใน sid วันนี้ ก็เป็นสัญญาณว่า "ยุคของ etch ได้เริ่มต้นแล้ว"

(ผู้ใช้ debian ก็เงียะ stable release มันไร้สาระ จะไปเร่งมันทำไม testing/unstable สะดุดหมด เหอๆ ;-P)


(*) เพิ่งได้ยินมาว่า มีผู้ใช้วินโดวส์บางคน คิดว่าลินุกซ์ในปัจจุบันมีไวรัส โดยอ้างว่ามีโปรแกรม anti-virus for Linux ด้วย ซึ่งคงต้องชี้แจง ว่าเป็นความเข้าใจคลาดเคลื่อน เพราะ anti-virus เหล่านั้น ใช้ตรวจไวรัสในไฟล์หรือเมลต่างๆ ที่จะผ่านไปถึงผู้ใช้วินโดวส์ ไม่ใช่สำหรับตัวลินุกซ์เอง แต่สำหรับลินุกซ์ ภัยคุกคามคงเป็นภัยที่มีอยู่แล้วในอินเทอร์เน็ตมากกว่า เช่นพวก worm, trojan horse, DoS (denial-of-service) attack (ซึ่งวินโดวส์ก็มี)

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

06 มิถุนายน 2548

Warm Up

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

อย่ากระนั้นเลย ต้องดิ้นรนเสียบ้าง เคาะสนิมด้วยการเริ่มแปล GNOME 2.12 นี่ละ ก็เริ่มไล่แปลแพกเกจเก่าที่มี string ใหม่ ซึ่งก็ทำให้ได้สำรวจ feature ใหม่ใน GNOME 2.12 ไปด้วย ส่วนใหญ่เป็น minor change ในแพกเกจต่างๆ เพราะตอนนี้ Project Topaz กำลังเป็น talk of the town

แต่ก็มีที่สังเกตได้ คือ menu editor ที่เพิ่มเข้ามา หลังจากที่ GNOME 2.10 เลิกใช้ "applications:///" location ของ gnome-vfs เป็นเมนู แต่ใช้ gnome-menus ตาม spec ของ freedesktop.org ความสามารถเรื่องการแก้ไขเมนูก็หายไป ตอนนี้มี menu editor แล้ว โดยคลิกขวาที่ GNOME menu แล้วเลือก "Edit Menus" ได้เลย

Menu Editor

นอกนั้น ก็มีเรื่องเล็กๆ น้อยๆ ไว้ค่อยสังเกตต่อไป :-)

ในอีกด้านหนึ่ง ก็ไปกระทุ้ง Mozilla Bug #253533 (ฟอนต์หายใน Mozilla/Firefox) เสียหน่อย มีปัญหาใน Debian มานานแล้ว TLE ก็ patch แต่ไม่ยักติดต่อ upstream เลยแฮะ สงสัยต้องทวงถาม the spirit of TLE หน่อยแล้ว ;-P

02 มิถุนายน 2548

Mouseless GNOME Desktop

ไม่รู้ว่าเป็นเพราะ X Window มันออกแบบไว้ใช้กับเครื่องเวิร์กสเตชันหรูๆ มาก่อนหรือเปล่า ค่าปกติก็เลยต้องการเมาส์ ไม่งั้น X server ไม่ทำงาน แต่ถ้าไปเจอ PC ที่ไม่มีเมาส์ หรือมี แต่ว่าพอร์ต PS/2 mouse มีปัญหา (อย่างที่เจอมาที่โรงเรียน) ก็จำเป็นต้องเซ็ตเดสก์ทอปแบบไร้เมาส์ขึ้นมาทำงานให้ได้

เริ่มจากแก้ไฟล์ /etc/X11/XF86Config-4 (หรือ XOrgConfig สำหรับระบบที่ใช้ X.org) ที่ section "ServerLayout" โดยเปิด option "AllowMouseOpenFail" ดังนี้:

Section "ServerLayout"
  ...
  Option    "AllowMouseOpenFail"  "true"
EndSection

ก็จะสามารถ start X server โดยไม่มีเมาส์ได้

ขั้นต่อไปคือ เมื่อเข้า GNOME แล้ว จะใช้งานอย่างไรโดยไม่มีเมาส์? สำหรับ GNOME desktop ที่ยังไม่มีการปรับแต่งอะไร จะใช้ปุ่มต่อไปนี้สั่งงาน (เลือกมาเฉพาะปุ่มสำคัญๆ):

Alt-F1
เรียก GNOME menu จากนั้นก็เดินทางต่อเองโลด
Alt-F2
เรียก "Run" dialog ถ้าต้องการเรียกโปรแกรมแบบด่วนโดยไม่ผ่านเมนู
Alt-Space
เรียกเมนูหน้าต่าง เผื่ออยากขยับหรือเปลี่ยนขนาดหน้าต่าง
Alt-Tab
ย้ายไปยังหน้าต่างต่างๆ ที่เปิดไว้
Ctrl-Alt-Tab
ย้ายไปมาระหว่างเดสก์ทอปกับพาเนล จากนั้นใช้ Tab เลือกสิ่งของต่างๆ ที่อยู่บนพาเนล
Ctrl-Alt-{Arrow}
ย้ายพื้นที่ทำงาน (workspace)

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

01 มิถุนายน 2548

เทียบโปรแกรม Windows - Linux

อย่าเพิ่งคิดว่านี่เป็นตารางเทียบโปรแกรมบน Windows กับ Linux ที่เห็นกันดาษดื่น ผมไม่เคยเห็นตารางไหนรวบรวมข้อมูลได้เยอะและละเอียดขนาดนี้มาก่อน:

The table of equivalents / replacements / analogs of Windows software in Linux.

ที่มา: OSNews.com

hacker emblem