Category Archives: Blog

Arietta & Codetta

สัปดาห์ที่ผ่านมาเป็นอีกครั้งที่ได้คุยเรื่องการแสดงผล สระอำ ที่ยังมีปัญหาบน OO.o 3.0 สำหรับคนที่ใช้ฟอนต์ TTF ของวินโดว์ส ในขณะที่ฟอนต์ของลินุกซ์แสดงได้ไม่มีปัญหา แล้วก็เกิดบรรเจิดว่า ถ้าแก้ OO.o 3.0 ไม่ได้ ตูก็แก้ฟอนต์ซะก็สิ้นเรื่อง :P .. ว่าแล้วก็เริ่มทดสอบกับ Cordia New เอา FontForge เขียน GSUB แยก สระอำ เป็น นิคหิต กับ สระอา … เกิดมาก็เพิ่งได้ใช้ FontForge นี่แหละ ! .. งมไปงมมาพักใหญ่ ได้ผล ! ตัดคำถูกแล้ว :D .. ฟอนต์รุ่นนี้อาจจะมีบางคนได้เห็นในชื่อ Cordia Newer :P

แต่ ! ก็เกิดปัญหาต่อมาคือ วรรณยุกต์ลอย (อาจจะเป็นเพราะ FontForge มันอ่านมาไม่ได้) .. งั้นยำ Umpush กับ Cordia New เลยดีกว่า ก๊อปปี้ glyph ของ Cordia ไปใส่ตาราง Umpush .. rename glyph ให้ถูกกับที่ต้องใช้ใน GSUB ของ Umpush … ก็เป็นว่า วรรณยุกต์อยู่ในตำแหน่ง .. ทั้งหมดนี้แจกไม่ได้ .. จริงๆ แล้ว Cordia Newer ก็ไม่ควรจะเกิด เพราะมัน(อาจ)ละเมิดลิขสิทธิ์ฟอนต์ และ EULA ของ Microsoft .. หลังจากทดลองเสร็จเลยลบทิ้งหมด

ในเวลาเดียวกัน .. คุยกับพี่เทพได้ความว่า Cordia กับ Angsana เขาให้ใช้ฟรีแล้ว .. แต่ต้นฉบับกับพี่เทพหายไปพร้อมฮาร์ดดิสก์ .. ไปถามเอากับ Mr.Choke ได้มาเป็น TTF ที่ distribute ใน TLE 9.0 ทดลองยำไปๆ มาๆ … ก่อนจะมาเริ่มต้นทำจริงๆ จังๆ วันนี้นี่เอง ได้เป็นฟอนต์ Arietta และ Codetta ซึ่งใช้ glyphs ของ Angsana และ Cordia ตามลำดับ ทั้งสองฟอนต์ import GSUB และ GPOS ของ Umpush มาใช้ + ปรับ Anchor สำหรับสระ และวรรณยุกต์นิดหน่อย

ดูผลได้

คำว่า “แนะนำลินุกซ์” เป็นคำที่ผมใช้ทดสอบสระอำว่าทำให้สระ/วรรณยุกต์ บน/ล่างที่ตามมาแสดงผลผิดหรือเปล่า ส่วน “วิญญูมุ่งรู้พิฆาตปื้นขี้ฝุ่นเลษฏุ” ได้มาจากพี่เทพสำหรับดูตำแหน่งของสระ/วรรณยุกต์ บน/ล่างในกรณีพิเศษๆ

เพิ่มเติม  Codetta แสดงผล pangram ภาษาไทย | Arietta และ Codetta (Regular, Italic, Bold, Bold-Italic) PDF

ฟอนต์ทั้งสองดาวน์โหลดได้ที่ ftp://ftp.kitty.in.th/pub/sources/fonts/ ไฟลที่ไม่มี -ttf จะมีทั้ง *.sfd และ *.ttf ไฟล์ที่มี -ttf จะมีเฉพาะ *.ttf

ถ้าต้องการใช้แทนฟอนต์ของวินโดว์ส แก้ ~/.fonts.conf นิดหน่อย โดยเติมข้างล่างนี้เข้าไป

<!-- Synthesize Windows AngsanaUPC and Angsana New with Arietta -->
<match target="pattern">
    <test qual="any" name="family" mode="eq">
        <string>AngsanaUPC</string>
        <string>Angsana New</string>
    </test>
    <edit name="family" mode="assign" binding="same">
        <string>Arietta</string>
    </edit>
</match>
<!-- Synthesize Windows CordiaUPC and Cordia New with Codetta -->
<match target="pattern">
    <test qual="any" name="family" mode="eq">
        <string>CordiaUPC</string>
        <string>Cordia New</string>
    </test>
    <edit name="family" mode="assign" binding="same">
        <string>Codetta</string>
    </edit>
</match>

ข้อจำกัดของทั้ง Arietta และ Codetta คือมี glyphs เฉพาะอักขระไทยเท่านั้น เพราะต้นฉบับ Angsana และ Cordia มีเฉพาะ glyphs ไทย .. อย่างที่สองคือ hint มันจะไม่สวยเท่าไหร่ เข้าใจว่าต้นฉบับ Angsana/Cordia ใช้ hints คนละแบบกับตระกูล UPC/New ในไมโครซอฟต์ (ติดลิขสิทธิ์ของ hints ?)

สุดท้าย .. Arietta และ Codetta เป็นศัพท์ทางดนตรี :P

Thanks: พี่เทพ & Mr.Choke

MSN Issue on Pidgin (Again !)

ตั้งแต่วันที่ 12 ม.ค. 52 Pidgin เริ่มล็อกอินเข้าใช้งาน MSN ไม่ได้ .. ดูจาก debug windows จะเห็นอะไรประมาณนี้ ..

...
msn: Got the Address Book!
msn: AB Faultstring: Passport Authorization Failed
msn: AB Error Code: PassportAuthFail
...

ถาม อ.กู้ ก็พบว่ามีคน report bugs ไว้แล้วจำนวนหนึ่ง และเพิ่งจะพบอาการนี้ในวันเดียวกัน (อ.กู้ index ไวโคตร !) .. เฉพาะวันที่ผ่านมา ในห้อง(ผีสิง) #tlwg บ่นเรื่องเดียวกันนี้ 4-5 ราย … จะว่าไปบนลินุกซ์มีอีกหลายโปรแกรมที่ใช้ MSN ได้ เท่าที่ลองใช้งานกันวันนี้ aMSN, emesene ยังล็อกอิน MSN ได้ ไม่มีปัญหาเหมือน Pidgin .. ส่วน SIM, Kopete บน KDE ไม่ได้ลองเพราะทำใจกับขนาดของ kdelibs ไม่ได้ … หรือจะเอาอย่างข้าน้อยเนื่องจากมีของกะมือเลยใช้ Miranda-IM ใน MS Windows XP ใน VirtualBox … หรือจะใช้ Miranda-IM กับ Wine ก็ได้ (ลองแล้ว) … ดูเหมือน ใครๆ เข้าก็ใช้งาน MSN ได้ตามปกติ ยกเว้น Pidgin นี่แหละ เฮ่อ !

ระหว่างคุยๆ กัน ณ ห้อง #tlwg ป๋าเด่นก็แจ้งมาว่าบางคนลง msn-pecan แล้วใช้ได้.. ไม่รอช้า aptitude install msn-pecan แล้วก็ add WLM account … โอ้!… ใช้ได้จริงๆ ด้วย :D

msn-pecan เป็น implementation ของ MSN/Windows Live Messenger protocol สำหรับ Pidgin ลองใช้ดูแล้วก็ไม่เลว เร็วดี … ระหว่างรอแก้ bug ก็ใช้ไปก่อนละกัน :P

Google on IPv6

ในที่สุด ก็มาซะที …

$ dig AAAA ipv6.google.com
...
;; QUESTION SECTION:
;ipv6.google.com.        IN    AAAA

;; ANSWER SECTION:
ipv6.google.com.    1588    IN    CNAME    ipv6.l.google.com.
ipv6.l.google.com.    87    IN    AAAA    2001:4860:c003::68
...

และ

ถ้าเข้าใช้งาน IPv6 ได้ สังเกต logo ของ google ดีๆ :)

/me – on openvpn tunneled to IPv6 network @ my office

Leap Second

จากที่มี การประกาศเพิ่ม leap second ปลายปีนี้ +1 วินาที เลยลองเช็คเวลาจาก GPS ดูสักหน่อย ผลก็คือ

$GPZDA,235958.00,31,12,2008,00,00*6D
$GPZDA,235959.00,31,12,2008,00,00*6C
$GPZDA,235960.00,31,12,2008,00,00*66
$GPZDA,000000.00,01,01,2009,00,00*6D
$GPZDA,000001.00,01,01,2009,00,00*6C
$GPZDA,000002.00,01,01,2009,00,00*6F

จะเห็น เวลา 23:59:60 ของวันที่ 31/12/2008 ซึ่งก็คือ leap second ที่เพิ่มขึ้นมา

leap second เป็นการปรับเวลาเพราะโลกไม่ได้หมุนในอัตราคงที่ e.g. 24 ชั่วโมง/วัน พอดีเสมอไป เนื่องจากกระแสน้ำ ลม แรงเสียดทาน ฯลฯ .. IERS จะประกาศให้มีการชดเชยเวลาครั้งละ 1 วินาที บางปีไม่ปรับ บางปีปรับสองครั้งก็มี

Happy New Year 2009 !

GPS and Linux

ได้ USB GPS receiver มา (ของ ยี่ห้อนี้) ไม่ต้องคิดมาก เสียบ แล้ว dmesg ดู

$ dmesg
[157930.448089] usb 2-1: new full speed USB device using uhci_hcd and address 3
[157930.612998] usb 2-1: configuration #1 chosen from 1 choice
[157930.718842] cdc_acm 2-1:1.0: ttyACM0: USB ACM device
[157930.726652] usbcore: registered new interface driver cdc_acm
[157930.727462] cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters

อ่อ มี ttyACM0 … cat ดูโลด

$ cat /dev/ttyACM0
$GPRMC,115258.00,A,1628.33537,N,10249.54838,E,0.155,223.32,081208...
$GPVTG,223.32,T,,M,0.155,N,0.288,K,A*3C
$GPGGA,115258.00,1628.33537,N,10249.54838,E,1,08,1.68,185.0,M,-27.1....
$GPGSA,A,3,26,24,15,12,05,29,10,30,,,,,2.29,1.68,1.56*0F
$GPGSV,3,1,12,26,60,037,19,24,49,356,18,15,80,028,22,02,29,105,*7F
$GPGSV,3,2,12,12,08,193,22,05,08,205,33,18,20,278,17,29,59,280,22*7C
$GPGSV,3,3,12,10,22,041,13,21,15,320,19,30,09,228,21,09,21,169,20*75
$GPGLL,1628.33537,N,10249.54838,E,115258.00,A,A*63
...

อืมมม NMEA message มาเลย :) .. งั้น GPSd เลยดีกว่า

$ sudo aptitude install gpsd gpsd-clients

ลอง man แล้ว run แล้วไม่ work แฮะ .. ถาม อ.กู้เห็นบางคนเขาจะ set speed ก่อน

$ stty -F /dev/ttyACM0 ispeed 9600
$ gpsd /dev/ttyACM0

ทีนี้ก็

$ cgps

ได้ผลเป็นแบบนี้

หรือจะ

$ xgps

หรือจะลอง tangoGPS

More tangoGPS screenshot: Street Map | Arial | Topo

Luko’s Sharpening for GIMP 2.x

Luko’s Sharpening เป็นหนึ่งในวิธี sharpen ยอดฮิตในช่วง 1-2 ปีที่ผ่านมา

เอาเมาส์ไปวางบนรูป จะเห็นว่า Luko’s sharpening ทำอะไรได้ขนาดไหน … :)

ดาวน์โหลด script ไปใส่ไว้ใน ~/.gimp-2.x/scripts แล้ว GIMP จะมีเมนู Script-Fu -> kitty.in.th -> Luko’s Sharpen ขึ้นมา (restart GIMP/refresh scripts ถ้าจำเป็น) ส่วนสูตร sharpening ของ Luko ลองถาม อ. กู้ หาไม่ยาก :P

GDictThai 0.0.4

v0.0.4 – ย้าย Berkeley DB 3.2 มาเป็น 4.7 แทน จะได้ใช้กับ distro ใหม่ๆ ได้ แล้วก็แก้ bug “About Dialog” กดปุ่ม Close ไม่ได้ อันนี้เพิ่งตั้งใจหาว่าเป็นตรงไหน จนเจอว่ามันเกิดหลังจาก GTK+ รุ่นไหนสักรุ่นนี่แหละ .. สรุปว่าต้อง handle เอง .. :P

Download: source | deb for Intrepid Ibex

P.S. .. v.0.0.3 ไม่ release เน้อะ :P