Category Archives: Blog

Linux Kernel 2.6.16

ออกมาสักพักใหญ่ๆ แล้ว (ตอนนี้ 2.6.16.1 แล้ว) รู้สึกว่าราบรื่นกว่า 2.6.15 ใช้กับ udev เก่าๆ หน่อยก็ยังใช้งานได้ดี อย่างไรก็ตาม มีรายงานเหมือนกันว่า up เป็น 2.6.16 แล้วเครื่อง crash มั่ง ไม่ boot มั่ง … so YMMV

  • สนับสนุน Geode GX/LX (MGEODE_LX) ของ AMD
  • Virtual Memory Split แยก address ระหว่าง low กับ high memory แนะนำว่าใช้ default
  • Network packet debugging (NETDEBUG) สำหรับ debug packets โดยเฉพาะที่ส่งเข้ามาโจมตี
  • Netfilter Xtables (NETFILTER_XTABLES) {ip|ip6|arp}_tables ต้องใช้
  • TIPC Protocol (TIPC) Transparent IPC ออกแบบไว้สำหรับ inter-cluster communication ออกแบบโดย บ. Ericsson ใช้งานจริงกันมาพอสมควรแล้ว
  • สนับสนุน QLogic QLA2XXX Fibre Channel (SCSI_QLA_FC) FC interface ที่ใช้ชิพของ QLogic QLA2XXX
  • สนับสนุน SysKonnect Yukon2 (SKY2) Gigabit Ethernet ชิปของ Marvell Yukon 2 เห็นหลายบอร์ดใช้กัน
  • ระบุจำนวน 8250/16550 serial port (SERIAL_8250_RUNTIME_UARTS) ปกติก็ 4 พอร์ต
  • สนับสนุน AMD CS5535/CS5536 GPIO (CS5535_GPIO)
  • สนับสนุน Serial Peripheral Interface (SPI) ส่วนใหญ่ใช้กับ microcontroller สำหรับอ่านข้อมูลจาก sensor หรืออ่าน/เขียนลง flash memory, etc.
  • สนับสนุน hardware monitoring ของ Fintek F71805F/FG (SENSORS_F71805F)
  • ดีบัก V4L Video (VIDEO_ADV_DEBUG)
  • สนับสนุน ALSA dynamic device allocation (SND_DYNAMIC_MINORS)
  • สนับสนุน ALSA API

ตำหนักพระแม่กวนอิม

สองสัปดาห์ก่อนเข้า กทม. เลยไปตำหนักพระแม่กวนอิมกับครอบครัว.. ตำหนักฯ อยู่โชคชัย 4 ซอย 39 นี่เอง

[nggallery id=55]

ว่างๆ ก็แวะไปชม ไปทำบุญได้ .. อย่าลืมถือกล้องไปด้วย :P ..

ความเสียหายหลังไปงานสัปดาห์หนังสือฯ

สัปดาห์หนังสือฯ ต้นปี 49 .. ซื้อมา 9 เล่ม ลำดับความเสียหายมีดังนี้

  1. มิเกะเนะโกะโฮล์มส์ เล่ม 8 ตอน ปราสาทอัศวิน (Mikeneko Homozu No Kishido) ปก 180 ราคาในงาน 145
  2. ซายะกะ เล่ม 3 ตอน แจ๊คเก็ตสีน้ำตาลอ่อน (Ama-Iro No Jaketto) ปก 170 ราคาในงาน 135
  3. คินดะอิจิ เล่ม 4 ตอน ร่างทรงมรณะ (Mirei No Hanayome) ปก 220 ราคาในงาน 175
  4. คินดะอิจิ เล่ม 5 ตอน คดีฆาตกรรมบนเกาะโกะกุมน (Gokumoto) ปก 195 ราคาในงาน 155
  5. อิโค (Ico) ปก 280 ราคาในงาน 225
  6. รหัสลับรัสปูติน (The Romanov Prophecy) ปก 265 ราคาในงาน 225
  7. เล่ห์ (Fade Away) ปก 235 ราคาในงาน 200
  8. เหตุที่ฆ่า (Riyu) ปก 285 ราคาในงาน 228
  9. เครดิตมรณะ (Kasha) ปก 285 ราคาในงาน 228

รวมราคา 2,115 จ่ายไป 1,716 ประหยัดไป 399 บาท .. โหะๆๆๆๆ มีความสุข :D

ซายากะ สาวน้อยนักสืบ ตอน สีฟ้าบนผืนผ้าใบ

อ่านจบนานแล้ว แต่กั๊กไว้ซะงั้น ..

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

ซายากะยังไม่ตาย แต่เธอเกือบจะตายอยู่หลายครั้ง เป็นเรื่องบังเอิญที่เธอไปรู้จักโทโมโกะเด็กสาวที่ดูไม่ค่อยปกติ โทโมโกะมีพี่ชายชื่อฮิซาโอะซึ่งเพิ่งออกจากคุกในข้อหาขโมย ชาวบ้านต่างรังเกียจฮิซาโอะและกล่าวหาว่าเขาเป็นคนฆ่าพ่อตัวเอง .. ระหว่างที่ฮิซาโอะติดคุก โทโมโกะได้รับการดูแลโดยชายแก่คนหนึ่งจนมีความสัมพันธ์ลึกซึ้ง ชายแก่คนนี้เลี้ยงชีพโดยการเป็นจิตรกร .. ช่วงที่ซายากะเข้าค่ายนี่เองที่จิตรกรเฒ่าถูกฆ่าตาย ดูเหมือนโทโมโกะจะเป็นคนฆ่า ฮิซาโอะจึงออกมาสารภาพแทนน้องสาว .. ซายากะไม่เชื่อว่าทั้งสองเป็นฆาตกรและเธอก็จะหาทางพิสูจน์ให้ได้ .. ตื่นเต้น ลึกลับ และเฮฮา ตามสไตล์ของ อาคากะวา จิโร :D

29 มี.ค. 49 – 9 เม.ย. 49 จะมีงานหนังสือที่ศูนย์สิริกิติ์ .. ได้เวลาจ่ายตลาดอีกแว้ว .. โหะๆ

Modular, Modulo, and Remainder

ตอนเขียนโปรแกรมสมัยแรกๆ เคยจำว่า modulo คือฟังก์ชันการหาเศษจากผลหาร แต่พอใช้ไปสักพักแล้วเริ่มรู้สึกแปลกๆ ตอนที่เวลาตัวตั้งหรือตัวหารเป็นค่าติดลบ ซึ่ง modulo ให้ผลเป็นค่าติดลบได้ อย่าง -5 mod 2 = -1 (เพราะ -2 * 2 + -1) .. เอ่อ .. ถ้า modulo ใช้สำหรับหา ‘เศษ’ ของการหาร ทำไมเศษมันเป็นติดลบได้ล่ะ ? เศษมันควรจะ >= 0 หรือเปล่า ? .. เรื่องนี้อาจจะต้องย้อนกลับไปไกลหน่อย

ที่มาของ modulo หรือ mod มาจาก modular arithmetic ซึ่งนิยามโดย คาร์ล เฟดริก เกาส์ เมื่อสองร้องกว่าปีที่แล้ว ตามนิยามที่เกาส์เขียนไว้คือ จำนวนเต็ม a, b จะเป็น congruent modulo ของจำนวนเต็ม n ถ้า (a – b) หารด้วย n ลงตัว หรือเขียนได้เป็น

a ≡ b (mod n)

ถ้าคิดย้อนกลับก็จะได้ว่า a หารด้วย n จะได้เศษเป็น b .. ใน modular arithmetic ค่า b เป็นจำนวนเต็มบวกหรือลบก็ได้ ดังนั้นผลลัพธ์ของ modulo จึงเป็นค่าติดลบได้ .. ค่า b บางทีเรียกว่า residue หรือ remainder แยกเป็นสองแบบคือ minimal residue มีค่าเท่ากับ b หรือ b – n ขึ้นกับว่าค่าสัมบูรณ์ของตัวไหนน้อยกว่าก็เอาตัวนั้น และอีกแบบคือ common residue ซึ่งคือเศษของการหาร โดย b ต้องเป็นจำนวนเต็มที่น้อยกว่า n และ b >= 0

ดังนั้นค่าของ ฟังก์ชัน หรือ โอเปอร์เรเตอร์ modulo ในโปรแกรมหรือภาษาสำหรับเขียนโปรแกรมทั้งหลายจึงไม่ได้ให้ผลลัพธ์เป็นเศษของการหารซะทีเดียว .. อย่างไรก็เรายังสามารถหาเศษของการหารโดยใช้ modulo ได้ โดยกรณีผลลัพธ์เป็นค่าติดลบ ให้บวกตัวหารเข้าไปอีกที เช่น ตัวอย่าง -5 mod 3 = -2 จะได้เศษของการหารคือ = -2 + 3 = 1

TIS-620 in Evolution

เคยแจ้ง bug นี้ พร้อมกับส่ง patch ไปตั้งแต่สมัย Evolution 1.4.x .. จากนั้น ximian (ในสมัยนั้น) ก็เงียบๆ ไป .. ต่างคนต่างเงียบ กระทั่งเกือบสองปีต่อมาถึงเริ่มมีการเคลื่อนไหวอีกครั้ง ล่าสุดช่วงนี้ gnome 2.14 ก็จวนแล้ว ทาง Andre Klapper ที่กำกับดูแล patch เริ่มก็มาตามจี้ให้ทัน Evolution 2.6 พี่เทพเลยมาช่วยสานต่อและกระตุ้นให้ช่วยกันดันให้ผ่าน .. ปรากฏว่า พี่เทพเจอบั๊กอีกตัวที่ทำให้ทดสอบ gnome cvs ไม่ได้ .. ส่วนผมเอาแค่ checkout ตัว cvs ออกมายังได้ไม่ครบด้วยซ้ำ (- -‘) … เลยได้แค่รายงาน based on evolution 2.4.1 ไปว่าปัญหามันเกิดขึ้นเพราะอะไร

เรื่องของเรื่องก็คือ header ของเมลจะมีการระบุว่า content ใช้ charset อะไร .. กรณี header ระบุเป็น TIS-620 หรือ UTF-8 แล้วใช้ตามนั้นจริงๆ จะไม่มีปัญหา .. แต่จะมีเมลภาษาไทยจำนวนไม่น้อย (เท่าที่มีอยู่ใน box ก็ ประมาณ 30-40%) ที่ encode เป็น TIS-620 แต่ header กลับระบุว่า charset เป็น ISO-8859-1 กรณีนี้โปรแกรมอ่านเมล (แทบ) ทุกตัวจะพยายามแสดงผลเป็น ISO-8859-1 ทำให้เมลภาษาไทยแสดงเป็นภาษาขอม .. ถ้าจะให้แสดงผลถูกต้องก็ต้องบังคับ character encoding ซึ่งโปรแกรมอ่านเมลที่นิยมใช้กันจะเลือกจากเมนูได้ .. ที่ผ่านมา เมนู character encoding ของ evolution จะไม่มีภาษาไทย (TIS-620) ให้เลือก .. patch ที่ผมทำก็แค่ enable ให้มันมีให้เลือกเท่านั้นเอง

พอแจ้งไป Andre ก็เลยอยากให้ช่วยส่งตัวอย่างเมลไปให้ทดสอบ ท้ายที่สุดสถานะของ bug #251062 ปรับเป็น fixed/resolved เรียบร้อย .. เช็คจาก gnome cvs ก็เห็นว่ามี TIS-620 แล้ว .. ก็ค่อนข้างแน่นอนว่า Evolution 2.6 จะมี TIS-620 ให้เลือกในเมนู character encoding … สบายละ .. ต่อไปก็ไม่ต้อง maintain patch + build evolution เองแล้ว :)

Google Earth on Linux

ในที่สุด Google Earth ก็เริ่มใช้งานบนลินุกซ์ได้แล้วเอาตัวที่ใช้งานบนวินโดว์สนั่นแหละมาติดตั้ง หลังจากดู howto ของหลายๆ สำนักมาลองผิดลองถูกบน Ubuntu 5.10 Breezy Badger .. ได้วิธีที่ง่ายสุดคือลง WINE 0.9.8 จาก WINE HQ ที่

deb http://wine.sourceforge.net/apt binary/

เซ็ต WINE เป็น Windows XP แล้วก็ติดตั้ง Google Earth โดยสั่ง

wine GoogleEarth.exe

ตัวติดตั้งอาจจะบ่นอะไรบ้าง กด OKๆ ไปก็แล้วกัน … เสร็จแล้วก็สั่งรันได้ละ

WINEDLLOVERRIDES="ole32,usp10,msvcrt=n" wine /path/to/GoogleEarth.exe

อาจจะมีเพี้ยนๆ บ้าง (ก็มันไม่ใช่ Windows จริงๆ นี่หว่า) .. ปัญหาเรื่องฟอนต์ยังหาทางแก้ไม่ได้ ส่วนพาเนล/เนวิเกเตอร์ผลุบๆ โผล่ๆ สั่งปิดไปเลยก็ได้โดยเลือกจากเมนู หรือไม่ก็ Ctrl+1, Ctrl+2 เอา

Synaptics Touchpad and Linux Kernel >= 2.6.15

ตั้งแต่ใช้ Linux Kernel 2.6.15 มา เจอปัญหานิดหน่อยกับ Synaptics Touchpad ตรงที่มันทำงานได้แค่ pointer กับคลิ้ก พวกฟีเจอร์ drag หรือ scroll ใช้ไม่ได้ซะงั้น .. ลองไล่เช็คดูก็พบว่า Xorg มันไม่โหลดไดรเวอร์ synaptics เพราะว่ามันหา device ไม่เจอ เช็คชื่อ device จาก /proc/bus/input/devices แล้วก็ตามไปดูใน /dev/input มันก็ไม่มีจริงๆ .. ก็เลย mknod ขึ้นมา

# mknod /dev/input/mouse0 c 13 32
# mknod /dev/input/event1 c 13 65
# chmod 660 /dev/input/mouse0
# chmod 660 /dev/input/event1

แล้วลอง restart X11 ดู .. ก็ยังไม่ได้ เช็คจาก Xorg.0.log มันบอกว่าไม่ได้ใช้ SHMconfig .. เลยไปโหลดไดรเวอร์ synaptics touchpad ตัวใหม่มาคอมไพล์ติดตั้งเข้าไป แล้วก็แก้ /etc/X11/xorg.conf นิดหน่อย

....
Section "InputDevice"
        Identifier      "Synaptics Touchpad"
        Driver          "synaptics"
        Option          "AlwaysCore"
        Option          "Device"     "/dev/input/mice"
        Option          "Protocol"   "auto-dev"
        Option          "SHMConfig"  "on"
EndSection
...

… restart X11….

ใช้ได้ ! โหะๆ เดาจริงๆ :D … ได้ตามนั้นแล้วก็เก็บกวาดอีกนิดหน่อย เอาคำสั่ง mknod ใส่ลง rc.local บูตคราวหน้าก็จะได้ใช้งานได้เลย :D