Theppitak's blog

My personal blog.

27 มกราคม 2551

ThaiLaTeX 0.4.2; Two Removed Thai Debs

ตามที่ blog ไว้ ว่าจะออก ThaiLaTeX รุ่นใหม่ ตอนนี้ก็ออก ThaiLaTeX 0.4.2 ละครับ (ข้าม 0.4.1 ไป เนื่องจากหลังจาก tag และแพ็ก tarball ไปแล้ว เจอบั๊กเล็ก ๆ เลยแก้เพิ่มแล้วออกรุ่นใหม่ตามมา)

ความเปลี่ยนแปลงในรุ่นนี้

  • ใช้ฟอนต์รุ่นใหม่จาก ThaiFont-Scalable 0.4.9 พร้อมความเปลี่ยนแปลงเพิ่มเติมใน CVS เกี่ยวกับ bug เล็กน้อยที่พบเมื่อใช้กับ LaTeX และเพิ่ม ff, fi, fl, ffi, ffl ligature ในฟอนต์ (สาเหตุการเพิ่มจะพูดถึงต่อไป)
  • พร้อมกันนี้ ก็เพิ่มฟอนต์กินรีกลับเข้าในชุด เพิ่มฟอนต์สวัสดี, วารี, อัมพุชด้วย
  • แก้บั๊กกรณี "ปู่" ด้วย trick ของ Werner Lemberg

การแก้ไขเพิ่มเติมหลังจากแก้บั๊กกรณี "ปู่" ไปแล้ว คือแก้ปัญหาที่พบในเอกสารทดลอง ว่าข้อความที่มี ff, fi, fl อะไรต่าง ๆ เหล่านี้จะหายไปในหลายฟอนต์ (ยกเว้นกินรีและนรสีห์ที่มี ligature อยู่แล้ว) ทั้งนี้เพราะกรรมวิธีการเตรียม VPL ตาม trick ของ Werner กลายเป็นการใช้ LIGTABLE ชุดเดียวกับทุกฟอนต์ โดยไม่มีการเลือกสร้างข้อมูลเฉพาะของ glyph ที่มีใน AFM ของฟอนต์อีกต่อไป ซึ่งอันที่จริง วิธีของเขาก็บอกไว้อยู่ ว่าต้อง merge แบบ manual แต่ในเมื่อเราแปลงมาเป็นวิธีอัตโนมัติ ก็ต้องแก้ปัญหาเอง

วิธีหนึ่งคือ พยายามเลือก merge ข้อมูล LIGTABLE เฉพาะที่มีในฟอนต์จริง โดยอาจจะแยกฟอนต์ที่มีกับไม่มี f* ligature กับอีกวิธีหนึ่งคือ เพิ่ม ligature ในทุกฟอนต์ ซึ่งผมคิดว่าวิธีหลังน่าจะง่ายกว่า อีกทั้งเป็นการเพิ่มชุด glyph ให้กับฟอนต์ใน thaifonts-scalable รุ่นหน้าด้วย ก็เลยแก้ thaifonts-scalable ก่อน gen ฟอนต์ใหม่มาใช้ใน thailatex

อัปโหลดขึ้น CTAN แล้วด้วยครับ และ build deb แล้วด้วย รอ Debian Developer ช่วยอัปโหลดให้

ระหว่างนี้ มีคอมเมนต์จาก DD ที่ทำให้รู้ว่า แพกเกจ cttex ถูกตัดออกจาก Debian แล้ว (Bug #357875) เนื่องจากถูก orphan โดยไม่มีผู้รับช่วงต่อ และไม่มีผู้ใช้ และนอกจากนี้ ตรวจสอบเพิ่มก็พบว่า xiterm+thai ก็ถูกตัดออกแล้วเช่นกัน (Bug #357872)

ผมเองดูแลแพกเกจเยอะแล้ว ชักจะดูแลเพิ่มไม่ไหว เลยอยากถือโอกาสเชิญชวนผู้ที่สนใจจะร่วมทำงานกับ Debian ลองพิจารณารับดูแลสองแพกเกจนี้ได้นะครับ โดยอาจจะเริ่มจากแพกเกจรุ่นล่าสุดที่ยังอยู่ใน debian pool (สำหรับ etch + lenny QA upload ก่อนที่จะถูกตัด) เอามาตกแต่งแล้ว file ITP bug เพื่อขอเพิ่มกลับ

ป้ายกำกับ: , ,

23 มกราคม 2551

"ปู่" Bug Fixed for ThaiLaTeX

ตามธรรมเนียมแต่กาลก่อนนั้น หลังจากที่ thaifonts-scalable ออกรุ่นใหม่ ก็จะมี thailatex ออกตามมาไม่ห่างกันนัก โดยปรับรุ่นฟอนต์ใหม่มาใช้ใน thailatex แต่ด้วยเหตุปัจจัยหลาย ๆ อย่าง ทำให้มี thaifonts-scalable ออกมาโดยไร้เงาของ thailatex ถึง 3 รุ่น (0.4.6 - 0.4.8) โดย thailatex รุ่นล่าสุด ออก เมื่อปลายปี 2549

อย่ากระนั้นเลย ควรเราจะออก thailatex รุ่นใหม่ตาม thaifonts-scalable 0.4.9 ที่ เพิ่งออก เสียหน่อย

ผมสร้างฟอนต์จาก thaifonts-scalable 0.4.9 สำหรับ thailatex ไว้แล้วใน CVS โดยเพิ่มฟอนต์ใหม่ทั้ง 4 ฟอนต์ คือ กินรี, สวัสดี, วารี และอัมพุชด้วย

แต่นอกเหนือจากนั้น ก็มีการ กระทุ้ง จากคุณอานนท์ เกี่ยวกับบั๊กเรื่อง "ปู่" ที่ค้างคามานาน คือ thailatex จะจัดพิมพ์คำนี้โดยวางไม้เอกผิดตำแหน่ง อันเนื่องมาจากข้อจำกัดของ LIGKERN ใน virtual font ของ TeX ที่อ้างถึง context ได้ทีละสองอักขระ แต่จะจัดการไม้เอกของ "ปู่" ได้ จะต้องใช้ context ถึงสามอักขระ ทำให้เขียนกฎที่ซับซ้อนเพียงพอไม่ได้ (ยินข่าวว่า Omega ได้แก้ข้อจำกัดนี้แล้ว.. จะว่าไป ถึงยุคนี้แล้วก็น่าจะ ลอง Omega บ้างเหมือนกัน หรือจะเป็น XeTeX ที่คุณ fat dog father เคย ชวน ไว้ ก็น่าสนใจ)

ปัญหา LIGKERN ของ TeX กับภาษาไทยนี้ คุณ Werner Lemberg ได้เคยเสนอวิธีแก้ไว้ในบทความ "Thai Fonts" ใน TUGboat Volume 21, Number 2, June 2000 โดยใช้ trick กับ afm2tfm ที่ใช้ encoding vector สองชุดในการสร้าง virtual font ถ้า hack กระบวนการสร้างฟอนต์ดี ๆ จะทำให้ใช้รหัส glyph สองชุดที่อ้างถึง glyph เดียวกันได้ ทำให้สามารถเขียนกฎจัดการกรณี "ปู่" ภายใต้กรอบของ LIGKERN ของ TeX ได้

หลักการของเขาก็คือ afm2tfm ใช้ encoding vector สองชุด ชุดหนึ่งสำหรับ TeX (คือไฟล์ *.enc) ซึ่งจะ map หมายเลข glyph ใน TeX ไปเป็นชื่อ glyph และอีกชุดหนึ่งสำหรับ Postscript (คือไฟล์ *.afm) ซึ่งจะ map ชื่อ glyph ไปเป็นหมายเลข glyph ซึ่งเมื่อใช้ร่วมกันก็จะทำให้อ้าง glyph ต่าง ๆ ในฟอนต์ Postscript จากใน TeX ได้ โดยใช้ encoding ที่กำหนดโดย TeX เอง โดยเมื่อ afm2tfm สร้าง virtual font ก็จะ map จากหมายเลขถึงหมายเลข (ผ่านชื่อ) แล้วดึงข้อมูล metrics ของ glyph จาก AFM มาเติมใน VPL ที่สร้างให้เลย หรือถ้ามีการอ้างถึง glyph เดียวกันจากมากกว่าหนึ่งค่าใน encoding vector ก็จะระบุ map จากหมายเลขถึงหมายเลขที่ resolve ชื่อเรียบร้อยแล้วลงในแฟ้ม VPL เลย

ในการเรียก afm2tfm โดยทั่วไปสำหรับภาษาไทย เราจะ reencode font ทั้งฝั่ง TeX และ Postscript ด้วย vector เดียวกัน (โดยใช้ตัวเลือก -T) เพราะหลังจากที่เราใช้ยูนิโค้ดกันแล้ว จำนวน glyph ในฟอนต์มักจะเกินขนาด glyph index 8 บิต ทำให้บาง glyph ในฟอนต์ Postscript ไม่สามารถอ้างด้วย index ได้ ก็เลยบังคับให้ใช้ index ของ TeX เสีย จากนั้น ก็ไปเพิ่มค่าตั้งใน dvips เพื่อให้ตอน render (ด้วย xdvi หรือ dvips) มีการ reencode ฟอนต์กลับผ่านแฟ้ม *.enc ของ TeX เพื่อให้ได้ชื่อ glyph สำหรับแต่ละ index ที่อ้าง เพื่อนำไปดึง glyph จากฟอนต์ Postscript มาวาดต่อไป

จากการที่ afm2tfm ใช้ map สอง map ดังกล่าว ก็เปิดช่องให้เราสามารถสร้าง glyph เทียมของสระล่างขึ้นมาอีกชุด เพื่อไว้อ้างใน LIGKERN rules สำหรับกรณี "ปู่" ให้ต่างจากกรณีอย่าง "บู่" ได้ โดยสร้าง TeX map แบบนี้:

  [ ..., foo, ..., bar, ... ]

และ Postscript map อย่างนี้:

  [ ..., bar, ..., bar, ... ]

ผลคือ ใน Postscript map จะมีการสร้าง map ในช่อง bar ทั้งสอง ให้ map ไปยัง glyph เดียวกัน แต่ใน TeX map จะสามารถอ้างด้วยชื่อ foo กับ bar แยกกันได้

แต่โชคไม่ดี ที่ afm2tfm สามารถสร้างข้อมูลสำหรับ glyph ที่มีใน AFM ได้เท่านั้น เราจึงเสก foo ขึ้นมาใช้เป็นสระล่างชุดใหม่ไม่ได้ในทันที (ในเมื่อฟอนต์ปกติไม่มี glyph สระอุซ้าย เป็นต้น) จำเป็นต้องมีการ hack เล็กน้อย และ hack นี้แหละ ที่เป็นส่วนที่ tricky ที่สุดใน paper นี้

โดยสร้าง dummy AFM ขึ้นมา ให้มี glyph foo ที่ต้องการเสีย แล้วก็ใช้ generate VPL ที่มีข้อมูล ligature เตรียมไว้

จากนั้น ก็แยก *.enc ออกมาอีกแฟ้มหนึ่ง เปลี่ยน encoding vector ให้เป็นแบบหลังที่มีแต่ bar ไม่มี foo เพื่อใช้ generate VPL จาก AFM ของฟอนต์จริง

จากนั้นก็ merge VPL กัน โดยเอาข้อมูล LIGTABLE จาก VPL ที่มี ligature มาใส่แทน LIGTABLE ใน VPL ที่สร้างจากฟอนต์จริง

ผลคือ จะได้ VPL ที่มี glyph ของสระล่างสองชุด ที่อ้างไปยัง glyph ชุดเดียว พร้อม LIGTABLE ที่จัดวางสระล่างของ "ปู่" กับ "บู่" ด้วยคนละ glyph เดียวกัน

Q.E.D.!!!

ปล. commit แล้วครับ เฮือก!

ป้ายกำกับ: ,

19 มกราคม 2551

ThaiFonts-Scalable 0.4.9

ออกละครับ thaifonts-scalable 0.4.9 แม้จะออกห่างจาก 0.4.8 แค่เดือนเศษ แต่ก็มีความเปลี่ยนแปลงมากมาย โดยได้รับความช่วยเหลือจากหลาย ๆ ฝ่าย ตั้งแต่คุณพล เจ้าของฟอนต์ Sawasdee ที่ช่วยรายงานปัญหาเพื่อปรับกฎ GSUB/GPOS ในฟอนต์, คุณ Martin Hosken ที่ช่วยทดสอบกับโปรแกรมของ Adobe ให้ (แต่ยังแก้ปัญหาไม่หมดดี), คุณ Apirak Panatkool และคุณ Pathompol Suebpradist ที่ช่วยทดสอบบน Leopard ให้ (ยังแก้ปัญหาไม่หมดเช่นกัน), เจ้าหน้าที่เนคเทคที่ช่วยดำเนินการเกี่ยวกับ license ของฟอนต์แห่งชาติ, คุณ wd ที่ได้เตรียมฟอนต์ Umpush ไว้ให้ และช่วยปรับ scaling factor สำหรับการสังเคราะห์ฟอนต์ให้ในช่วงท้าย

ทั้งหมดนี้เป็นวัตถุดิบสำหรับปรับแก้ฟอนต์ทั้งชุด เมื่อรวมกับการปรับแก้อื่น ๆ ที่ผมคิดทำเองด้วย ก็ทำให้มีรายการ commit แทบทุกวันตลอดหนึ่งเดือนที่ผ่านมา สรุปความเปลี่ยนแปลงเด่น ๆ คือ:

  • ฟอนต์กินรีกลับมาแล้ว ทำให้มีฟอนต์ราชการเทียบเท่า Angsana ที่รอคอยมานานเสียที
  • เพิ่มฟอนต์ Umpush ซึ่งเป็นลูกผสมระหว่าง Cordia และ ดีบีฟองน้ำ
  • การปรับปรุง GSUB/GPOS ในฟอนต์ เพื่อรองรับโปรแกรมมากขึ้น โดยมีการทดสอบกับโปรแกรม Adobe CS3 และ MacOS Leopard ผลที่ได้ดีขึ้นมาก แม้จะยังเหลือปัญหาบางประเด็นที่เป็นปัญหาของโปรแกรม ไม่ใช่ของฟอนต์
  • เพิ่ม anchor สำหรับปรับตำแหน่งสระบนและวรรณยุกต์สำหรับ ฉ ฉิ่ง, ณ เณร, น หนู และ ษ ฤๅษี
  • แยก glyph สำหรับไม้ไต่คู้ที่อยู่เหนือสระบนออกมาต่างหาก (ใช้เขียนภาษาชนกลุ่มน้อย ซึ่ง วทท 2.0 รองรับ เช่น "เกื็อก") ให้มีขนาดเล็กลงเทียบเท่าวรรณยุกต์
  • ปรับ OS/2 metrics ในฟอนต์ กินรี, ครุฑ, นรสีห์ เพื่อให้ความสูงของบรรทัดเท่ากันหมดทุกน้ำหนักของฟอนต์เดียวกัน
  • ใช้ glyph reference มากขึ้นเท่าที่จะเป็นไปได้ โดยเฉพาะสระหลบหางทั้งหลาย และตัว accent ของ Latin เพื่อให้ไฟล์ TTF มีขนาดเล็กลง และดูแลง่าย
  • ปรับ hint แบบ manual สำหรับอักษรต่าง ๆ เท่าที่สังเกตพบ (ใครพบอักษรรูปร่างเพี้ยนที่บางขนาด ก็ช่วยรายงานด้วยนะครับ จะได้หาทางปรับแก้ต่อไป หลายคนช่วยสอดส่องย่อมดีกว่าให้ผมดูคนเดียว)
  • ใช้ stem snaps เพื่อให้ได้ฟอนต์ตัวหนาที่ดูดีขึ้น

build deb แล้วด้วยครับ กำลังรอ debian developer ช่วย upload เข้า debian ให้

ป้ายกำกับ: ,

14 มกราคม 2551

Stem Snaps

มีหลายคนบอกผมว่าอยากช่วยทำฟอนต์ (ซึ่งผมก็ต้องการผู้ช่วยอยู่เหมือนกัน) แต่ไม่รู้จะเริ่มตรงไหน ผมเองก็ต้องบอกว่าพื้นฐานของผมก็เป็นโปรแกรมเมอร์ ไม่ใช่ typographer เหมือนกัน ที่มาจับเรื่องฟอนต์ก็ด้วยความที่อยากเห็นความคืบหน้าในระหว่างที่ขาดผู้ดูแล แล้วก็เลยได้เรียนรู้ระหว่างทำไปเรื่อย ๆ จนค่อย ๆ สะสมเป็นประสบการณ์ ทุกวันนี้ก็ยังเรียนรู้เกร็ดใหม่ ๆ อยู่เรื่อย ๆ จากการทดลองและการอ่าน ฉะนั้น เพื่อให้เป็นประโยชน์กับผู้ที่สนใจด้วยกัน ผมก็เลย blog บันทึกไว้เรื่อย ๆ

ความรู้จากการสังเกต (empirical knowledge) บางครั้งก็อาจทำให้เราสรุปอะไรผิด ๆ ตามความเข้าใจผิด ๆ ของเราได้เหมือนกัน ก็ไม่ขอแนะนำให้เรียนรู้จากการทดลองอย่างเดียว การอ่านตำราและเอกสารประกอบก็ช่วยให้เรียนรู้หลักการต่าง ๆ ที่ถูกต้อง ช่วยเสริมความแน่นหนาของพื้นฐานความรู้ได้ เช่น ในตำราเล่มหนึ่ง ที่เคย blog ไว้ หรือจาก เอกสารของ fontforge ก็เป็นจุดเริ่มต้นที่ดีนะครับ

เข้าเรื่องของ blog วันนี้ดีกว่า คือล่าสุด ได้ปรับปรุง hint ของฟอนต์ใน thaifonts-scalable ซึ่งช่วยแก้ปัญหาเรื่อง hint ของตัวหนาที่ไม่ค่อยสม่ำเสมอใน thaifonts-scalable 0.4.8 ได้ ซึ่งบังเอิญพบระหว่างสังเกตความแตกต่างระหว่างฟอนต์ Umpush กับ Loma ซึ่งใช้ glyph ภาษาอังกฤษชุดเดียวกัน แต่ผลของการ hint ไม่เหมือนกัน ว่าเป็นเพราะ Umpush ยังไม่ได้เพิ่มข้อมูล stem hint (เคยเขียนถึงไว้ใน blog เก่า) พอเพิ่ม stem snap ต่าง ๆ เข้าไป ก็ทำให้ TrueType instruction ดูยืดหยุ่นขึ้น ผลคือ เส้นจะคมน้อยลง แต่ดูดีขึ้น

ก่อน:

Umpush Bold without Stem Snaps

หลัง:

Umpush Bold with Stem Snaps

เป็นอันว่าแก้ปัญหาตกไปอีกหนึ่งเรื่อง และได้จัดการไล่เพิ่ม stem snap ในฟอนต์อื่น ๆ ที่ยังขาดเรียบร้อยแล้ว

ตอนนี้ thaifonts-scalable น่าจะใกล้พร้อมออกรุ่นใหม่แล้ว ไว้ขอทิ้งระยะให้สมองได้นึกก่อน ว่ายังลืมอะไรอีกหรือเปล่า รวมทั้งตรวจสอบความเรียบร้อยทั่วไป ก่อนจะลงมือออกรุ่นจริง ๆ (มีใครช่วยทดสอบ CVS snapshot ให้ด้วยก็ดีซิ)

ป้ายกำกับ: ,

13 มกราคม 2551

Thanks

ขอขอบคุณ ผู้ หย่อนสตางค์ลงหมวก เมื่อช่วงปีใหม่ เพื่อสนับสนุนงานพัฒนาของผม ทั้งสองท่าน คือคุณพิชิต จิตประไพ และ คุณหน่อย SNC ขอขอบคุณสำหรับกำลังใจที่มีให้อย่างสม่ำเสมอนะครับ ปีใหม่นี้ก็ขอให้เจริญด้วยอายุ วรรณะ สุขะ พละ แคล้วคลาดจากภยันตรายทั้งปวง ประสงค์สิ่งใดขอให้ได้ดังหวัง โดยเฉพาะพ่อบ้านใหม่เอี่ยมอย่างคุณหน่อย ;-)

ป้ายกำกับ:

12 มกราคม 2551

New Font: Umpush

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

thaifonts-scalable รุ่นหน้า นอกจากจะ ได้ฟอนต์กินรีกลับมา แล้ว ยังเพิ่มฟอนต์อีกตัวด้วย คือ Umpush ของคุณ wd เจ้าเก่า ซึ่ง Umpush นี้ คุณ wd พัฒนาต่อจาก Corada ซึ่งเป็นฟอนต์ที่สามในชุด ฟอนต์ทดแทน จากฝีมือคุณ wd ล้วน ๆ

เหตุที่หยิบฟอนต์นี้มาเพราะ ใน thaifonts-scalable เรามีฟอนต์ กินรี (ฟช ๑) ที่เทียบเคียงกับฟอนต์ Angsana บนวินโดวส์ และ ครุฑ (ฟช ๒) ที่เทียบเคียงกับ Browallia จาก โครงการฟอนต์แห่งชาติ แล้ว จึงไปขอฟอนต์ที่เทียบเคียงกับ Cordia จากคุณ wd มาเติม โดยคุณ wd ได้พัฒนาฟอนต์ Corada ต่อมาเป็น Umpush ที่เข้าเซ็ตกับฟอนต์อื่น ๆ ใน thaifonts-scalable โดยทำเป็นสามน้ำหนัก คือ Light, Book, Bold ด้วย นั่งนึกอยู่ว่าจะคัดตัวไหนออกก็ไม่อาจตัดใจ สวย ๆ ทั้งนั้น :) เลยเก็บไว้ทั้งหมด รอฟัง feedback จากผู้ใช้ดีกว่า

Umpush Light

Umpush Light Oblique

Umpush Book

Umpush Book Oblique

Umpush Bold

Umpush Bold Oblique

ขอบคุณคุณ wd อีกครั้งสำหรับผลงานสร้างสรรค์ชิ้นนี้ครับ หลังจากที่ได้เอื้อเฟื้อฟอนต์ Waree (จาก Verachart) ให้กับโครงการ thaifonts-scalable มาแล้วครั้งหนึ่ง

เป็นอันว่า ขณะนี้ เรามีฟอนต์สังเคราะห์สำหรับ Angsana, Browallia, Cordia แล้วด้วยใน CVS ไว้ขอปรับแต่งอีกสักหน่อย ก่อนออกรุ่นหน้า

ส่วนฟอนต์รุ่นก่อน ตอนนี้ผ่านจาก debian sid เข้า ubuntu hardy ไปแล้วเรียบร้อย (ใครเป็นคน request sync ที่ Universe ก็ขอขอบคุณมา ณ ที่นี้ครับ) เป็นอันว่าส่งฟอนต์ Sawasdee และ Waree เข้าไปรอชาว ubuntu ได้แล้วตามที่ตั้งใจไว้ ถ้าออกฟอนต์รุ่นหน้าทันกำหนดอาจได้เห็นกินรีและอัมพุชใน hardy ด้วย (แต่ไม่รับประกัน บอกได้แค่ว่าคงเข้า sid/lenny ได้แน่ ๆ โหะ ๆ)

ป้ายกำกับ: ,

05 มกราคม 2551

New Year Accident

สวัสดีปีใหม่ครับ ขอให้ทุกคนสุขกาย สุขใจ เปี่ยมด้วยพลังสำหรับการงาน พร้อมจะฟันฝ่าอุปสรรคต่าง ๆ สำหรับปีนี้ รวมทั้งช่วยกันประคับประคองประเทศชาติให้พ้นวิกฤติการณ์ด้วยนะครับ

ผมหายไปจากอินเทอร์เน็ตตั้งแต่ปีใหม่ อันที่จริงถ้าทำงานบริษัทก็ต้องลาป่วย เนื่องจากประสบอุบัติเหตุพลัดตกจากหลังคา ขณะขึ้นไปช่วยส่งสายยางดับไฟไหม้บ้านข้าง ๆ ซึ่งเกิดขึ้นหลัง count down ปีใหม่พอดี โชคดีที่ผมไม่เป็นอะไรมาก เอ็กซ์เรย์แล้วไม่มีกระดูกหัก คงมีแต่อาการกล้ามเนื้ออักเสบบริเวณก้นจากการกระแทกเท่านั้น แต่นั่นก็ทำให้ผมเดินลงน้ำหนักขาขวาไม่ได้ ต้องนอนแบ็บอยู่กับที่นอนเป็นส่วนใหญ่ นั่งเก้าอี้ทำงานไม่ได้หลายวัน เลยจัดแจงเลื่อนนัด เลื่อนธุระต่าง ๆ ทางโทรศัพท์เอา (ทั้งที่โดยปกติ ช่องทางสื่อสารหลักของผมคืออินเทอร์เน็ต)

ถึงวันนี้ อาการทุเลาลงบ้างแล้ว สามารถนั่งเก้าอี้ได้ แต่เพื่อให้กล้ามเนื้อฟื้นตัวเต็มที่ ก็คงไม่นั่งนาน ฉะนั้น blog นี้จะไม่ขอเขียนยาวนัก และอาจไม่ได้มาตอบความคิดเห็นหรือเมลต่าง ๆ สักเท่าไร จนกว่าร่างกายจะพร้อมกว่านี้

จะพยายามรักษาตัวเต็มที่ครับ

ป้ายกำกับ:

hacker emblem