Theppitak's blog

My personal blog.

19 มิถุนายน 2550

ไซอิ๋ว (อีกที)

ผมเคย เขียนถึง ไซอิ๋วไปแล้วเมื่อสามปีก่อน ตอนนั้นยังไม่รู้จะเขียน blog เรื่องอะไร เลยขุดเอาเรื่องหนังสือที่เคยอ่านมาเขียน ตอนนั้นอ่านแค่เรื่องย่อและการตีปริศนาธรรม จนเมื่อเร็ว ๆ นี้ ไปได้หนังสือไซอิ๋วทั้งเรื่องมาจากงานหนังสือ ตอนนี้เพิ่งได้ฤกษ์อ่าน โดยค่อย ๆ อ่านก่อนนอนคืนละนิดละหน่อย เทียบกับหนังสือตีปริศนาธรรมของอาจารย์เขมานันทะไปด้วย

ไซอิ๋ว จัดเป็นหนึ่งในสี่สุดยอดวรรณกรรมจีน (ซ้องกั๋ง สามก๊ก ไซอิ๋ว ความฝันในหอแดง) เป็นงานวรรณกรรมที่มีมิติหลากหลายมาก กล่าวคือ:

  • เป็นเรื่องอิงประวัติศาสตร์ คือการเดินทางไปอาราธนาพระไตรปิฎกของพระถังซำจั๋ง หรือเหี้ยนจึง ในสมัยพระเจ้าถังไทจง ที่ประเทศอินเดีย คุณ ล. เสถียรสุต ผู้เชี่ยวชาญเรื่องจีน ได้เขียนคำนิยมเกี่ยวกับไซอิ๋วไว้ ว่ามีการสอดแทรกสถานที่ต่าง ๆ ในบันทึกการเดินทางของพระถังซำจั๋งในประวัติศาสตร์จริงไว้พอประมาณ เช่น ภูเขาที่ร้อนจัดในเขาอัลไตตาด กลายมาเป็นภูเขาที่มีไฟลุกตลอดเวลา, บันทึกพระถังซำจั๋งเรื่องงานฉลองมาฆบูชาที่มีการจุดโคมไฟ ก็มาปรากฏในเรื่อง
  • เป็นมหากาพย์ บรรยายให้เป็นการเดินทางผจญปีศาจ ด้วยการช่วยเหลือของเทพยดาและพระโพธิสัตว์ จนลุล่วงถึงไซที มิตินี้ ทั้งเน้นความมุ่งมั่นในอุดมการณ์ของพระถังซำจั๋ง ทั้งบอกเล่าความสัมพันธ์ของมนุษย์กับเทพเจ้าต่าง ๆ รวมถึงพระโพธิสัตว์และพระพุทธตามคติจีนด้วย
  • เป็นเรื่องสนุกสนานสำหรับเยาวชน เห้งเจีย โป๊ยก่าย ซัวเจ๋ง กลายเป็นต้นแบบของเรื่องแต่งอีกหลายเรื่อง กับความถนัดที่ต่างกันในทางอากาศ ทางบก และทางน้ำ โดยเฉพาะเห้งเจียหรือซึงหงอคงนั้น กลายเป็นต้นแบบของตัวเอกการ์ตูนหลายเรื่องทีเดียว
  • เป็นบันทึกวัฒนธรรมจีน แม้เรื่องหลักจะเป็นพุทธศาสนา แต่ก็ได้แฝงคติของลัทธิเต๋าและธรรมเนียมจีนไว้ประปราย รวมทั้งสุภาษิตจีนที่ตัวละครใช้พูด
  • เป็นเรื่องแฝงปริศนาธรรมทางพุทธศาสนาอย่างลึกซึ้ง ซึ่งต้องขอบคุณอาจารย์เขมานันทะ ที่ได้ขบคิดไขปริศนาธรรมออกมาให้ศึกษา

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

ไซอิ๋วสนุกก็จริง แต่เด็กมักไม่สนใจรายละเอียด เพราะเป็นการเข้าเมืองนั้นเมืองนี้ ปราบปีศาจซ้ำแล้วซ้ำเล่า แต่สำหรับผู้ใหญ่ โดยเฉพาะผู้สนใจระนาบจิตวิญญาณ การอ่านไปพร้อมกับเฉลยปริศนาธรรม จะทำให้การเข้าเมืองแต่ละเมืองนั้น ไม่มีอะไรซ้ำกันเลย

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

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

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

หลังจากได้แนวทางนี้แล้ว ท่านจึงได้ขบคิดปริศนาเป็นตอน ๆ โดยเค้าโครงหลักของบุคลาธิษฐานคือ:

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

ได้เค้าโครงแบบนี้ แล้วพบปีศาจชนิดต่าง ๆ จะไม่พบว่าซ้ำกันเลย แต่ละตอนคือฉากหนึ่งในชีวิตนักปฏิบัติธรรมทั้งนั้น ดังที่ท่านเขมานันทะท่านว่า:

มิใช่พระถังผจญ ผีบนเส้นทางสายไหม
แต่บนหนทางสายใจ จึงได้พบพระพุทธะ
ลึกนักชักฉงนคนว่า แต่งบ้าห้าร้อยสวะ
พระถังพร้อมทั้งคณะ เงอะงะในใจเจ้าเอง

ปีศาจบางตน ถูกฆ่าตาย แต่บางตน ถูกขอชีวิตไว้ แล้วไปอยู่รับใช้พระโพธิสัตว์ ก็เพราะกิเลสบางชนิดสมควรต้องกำจัดให้หมดไป เช่น นิวรณ์ 5 แต่บางชนิดกำจัดไม่ได้ แต่ต้องทดใช้ไปในทางธรรม เช่น มิจฉาวาจา จะให้ฆ่าโดยหยุดพูดก็ไม่ได้ แต่ต้องทดใช้ไปในทางสัมมาวาจาแทน การเข่นฆ่าปีศาจของเห้งเจียตามนัยของบุคลาธิษฐาน ก็ไม่ใช่เรื่องของปาณาติบาต การที่พระถังห้ามไว้ ก็ไม่ใช่เมตตาธรรม แต่เป็นความอาลัยกิเลสของขันติ ที่ยังยึดมั่นบางอย่างไว้ แม้ปัญญาจะรู้เท่าทัน แล้วขันติก็ทะเลาะกับปัญญา ไล่หนีไป หันไปใช้ศีลนำทาง จนสุดท้ายก็เข้ารกเข้าพงไปตกหล่มปีศาจ เหล่านี้คือการต่อสู้ในจิตใจของผู้ปฏิบัติเอง ที่บางครั้งก็ยึดมั่นในหนทางบางอย่างมากเกินไป สุดท้าย ศีลก็ต้องมีปัญญากำกับด้วย จึงจะไปรอด

ในช่วงแรกของการเดินทาง พระถังจะโปรดปรานโป๊ยก่าย ไม่ชอบความโหดร้ายของเห้งเจีย ต่อเมื่อเข้าใกล้ไซที พระถังจึงเชื่อใจเห้งเจียมากขึ้น

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

ป้ายกำกับ: ,

13 มิถุนายน 2550

Sundog

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

Sundog in Khon Kaen, 2007-06-13

อาทิตย์ทรงกลด เป็น ปรากฏการณ์ทางแสง เกิดจากการหักเหของแสงอาทิตย์ผ่านละอองน้ำในอากาศ โดยแสงความยาวคลื่นต่างกันหักเหได้ไม่เท่ากัน ทำนองเดียวกับรุ้งกินน้ำ แต่ไม่มีการสะท้อนกลับในละอองน้ำ มีแต่การหักเหล้วน ๆ

สังเกตว่า ภายในกลดจะมืด เพราะแสงในบริเวณนั้นหักเหไปทางอื่น ไม่เข้าสู่ตาของผู้สังเกต เหมือนกับ Alexander's band ที่เกิดระหว่างรุ้งปฐมภูมิและรุ้งทุติยภูมิ

ป้ายกำกับ: ,

11 มิถุนายน 2550

libthai thbrk() redesign

กลับมาดู libthai ต่อ ดอง GNOME Bug #382437 มานานละ เข้าถ้ำทำ libthai ละกัน

ตามแผนเดิม คือเปลี่ยนรูทีน th_brk() ของ libthai ซึ่งเป็นตัวแยกข้อความภาษาไทย-อังกฤษ ก่อนแยกส่งเฉพาะส่วนภาษาไทยให้รูทีนตัดคำด้วยพจนานุกรม จากเดิมที่เขียนโค้ดวิเคราะห์แบบ ad hoc พอให้ใช้ได้ไปก่อน มาเป็น finite state machine ซึ่งแบบร่างแรกที่ได้ คืออย่างนี้:

thbrk finite state machine

(graphviz source)

Alphabet:

  • thai = พยัญชนะ-สระไทย
  • nbb (no break before) = อักขระที่ห้ามตัดบรรทัดก่อนหน้า แม้จะมีอักขระเว้นวรรค ได้แก่ ๆ ฯ ! ? ) ] } , ; .
  • nba (no break after) = อักขระที่ห้ามตัดบรรทัดต่อท้าย ถ้าตามด้วยข้อความทันที แต่อาจตัดได้ถ้ามีเว้นวรรคต่อท้าย ได้แก่ ( [ { (มีอันไหนอีกก็ list เข้าไป)
  • sp = white space (ซึ่งถ้าสังเกตพฤติกรรม จะถือเป็น nbb subset ก็ได้)
  • eng = อักขระอื่น ๆ ที่ไม่อยู่ในกลุ่มข้างต้น

Action:

  • start-th = เริ่มจำว่าต้องตัดคำไทย แทรก line break ด้วยถ้าไม่มีพารามิเตอร์ nb (no break)
  • start-en = เริ่มจำว่าเป็นส่วนไม่ใช่ภาษาไทย แทรก line break ด้วยถ้าไม่มีพารามิเตอร์ nb (no break)
  • coll (collect) = เก็บอักขระเข้าบัฟเฟอร์ตัดคำ
  • break = ตัดคำในบัฟเฟอร์
  • end = จบคำสำหรับก้อนข้อความที่ไม่ใช่ภาษาไทย
  • lbr = แทรก line break หน้าอักขระ

แต่พอจะเพิ่มชนิด alphabet ก็จะกลายเป็น state machine ที่จำนวน state กับจำนวน transition พอ ๆ กัน สงสัยเรื่องกรณีอักขระต่าง ๆ ที่นึกไม่ออก ก็ไปอ่าน Unicode Standard Annex #14 เรื่อง Line Breaking Algorithm แล้วสรุปย่อลงมาในขอบเขต TIS-620 ได้เป็น state machine แบบที่สอง คือ

THAI ALPHA NUM NBB NBA NB MB SPACE QUOTE HYPHEN NUM_NBB NUM_CUR NUM_NB TERM
THAI 0 1 1 0 1 0 0 0 0 0 1 1 0 0
ALPHA 1 0 1 0 1 0 0 0 0 0 1 1 0 0
NUM 1 1 0 0 1 0 0 0 0 0 0 0 0 0
NBB 1 1 1 0 1 0 0 0 0 0 1 1 0 0
NBA 0 0 0 0 0 0 0 0 0 0 0 0 0 0
NB 0 0 0 0 0 0 0 0 0 0 0 0 0 0
MB 1 1 1 1 1 1 1 1 1 1 1 1 1 1
SPACE 1 1 1 0 1 1 0 0 1 1 1 1 0 1
QUOTE 0 0 0 0 0 0 0 0 0 0 0 0 0 0
HYPHEN 1 1 0 0 1 0 0 0 0 0 1 1 0 0
NUM_NBB 1 1 1 0 1 0 0 0 0 1 1 1 0 0
NUM_CUR 1 1 0 0 1 0 0 0 0 0 1 1 0 0
NUM_NB 1 1 0 0 1 0 0 0 0 0 1 1 0 0
TERM 1 1 1 0 1 0 0 0 0 0 1 1 0 0

โดยที่:

  • THAI = อักขระไทย
  • ALPHA = อักขระอื่นที่ไม่ใช่ภาษาไทย
  • NUM = ตัวเลข
  • NBB (No Break Before) = อักขระที่ห้ามตัดบรรทัดก่อนหน้า แม้จะมีอักขระเว้นวรรค ได้แก่ ๆ ฯ ! ? ) ] } , ; .
  • NBA (No Break After) = อักขระที่ห้ามตัดบรรทัดต่อท้าย ถ้าตามด้วยข้อความทันที แต่อาจตัดได้ถ้ามีเว้นวรรคต่อท้าย ได้แก่ ( [ {
  • NB (No Break) = อักขระที่ห้ามตัดบรรทัดทั้งก่อนหน้าและต่อท้าย ได้แก่ NO BREAK SPACE
  • MB (Mandatory Break) = อักขระบังคับตัดบรรทัด ได้แก่ NEW LINE
  • SPACE = White Space
  • QUOTE = เครื่องหมายคำพูดที่กำกวมว่าปิดหรือเปิด คือ ' "
  • HYPHEN = เครื่องหมาย - (ลบ/ยัติภังค์)
  • NUM_NBB = อักขระห้ามตัดคำก่อนหน้า เมื่อเขียนกับตัวเลข ได้แก่ %
  • NUM_CUR = เครื่องหมายหน่วยเงินตรา มีผลให้ไม่ตัดบรรทัดเมื่อใช้กับตัวเลข แม้จะมีเว้นวรรค ได้แก่ $ ฿
  • NUM_NB = เครื่องหมายประกอบตัวเลข ไม่ตัดบรรทัดเมื่อใช้กับตัวเลข แต่ถ้ามีเว้นวรรคไม่เกี่ยว ได้แก่ , . : เช่น "100,000", "12:00"
  • TERM = อักขระที่ใช้จบเรื่อง ได้แก่ ๚ ๛

ไอ้ตรงเครื่องหมายหน่วยเงินนี่แหละ ที่มีปัญหา จากตารางข้างบน มีความเชื่อมโยงแค่กับอักขระที่ติดกันเท่านั้น ไม่ได้ยิงสถานะผ่านข้ามช่องว่าง ถ้าช่องว่างเจอตัวเลข ก็ต้องตัดเท่านั้น จะห้ามตัดอย่างเครื่องหมายหน่วยเงินไม่ได้ กลายเป็นว่า ผม over-simplify Unicode ไป สุดท้ายก็ต้องเพิ่ม state ที่สาม เพื่อแยกความแตกต่างระหว่าง prohibited คือห้ามตัดแม้จะมีช่องว่าง กับ indirect break ที่ห้ามตัด แต่ถ้ามีช่องว่างคั่นก็ตัดได้

กลายเป็นแบบที่ 3

THAI ALPHA NUM NBB NBA NB MB SPACE QUOTE HYPHEN NUM_NBB NUM_CUR NUM_NB TERM
THAI I A A P A I P P I I A A P I
ALPHA A I A P A I P P I I A A P I
NUM A A I P A I P P I I I P P I
NBB A A A P A I P P I I A A P I
NBA P P P P P P P P P P P P P P
NB I I I P I I P P I I I I P I
MB A A A A A A A A A A A A A A
SPACE A A A P A A P P A A A A P A
QUOTE I I I P I I P P I I I I P I
HYPHEN A A I P A I P P I I A A P I
NUM_NBB A A A P A I P P I A A A P I
NUM_CUR A A P P A I P P I P A A P I
NUM_NB A A I P A I P P I I A A P I
TERM A A A P A I P P I I A A P I
  • A = Allowed คือตัดบรรทัดได้ทันที
  • P = Prohibited คือห้ามตัดบรรทัด แม้จะมี space คั่น
  • I = Indirect break คือห้ามตัดบรรทัดทันที แต่ถ้ามี space คั่นก็ยอมได้

ได้แบบที่ 3 นี่แหละ คงเพียงพอแล้ว.. Unicode เขาศึกษา + ออกแบบครบดีแฮะ

commit เข้า libthai cvs แล้วครับ

ป้ายกำกับ:

07 มิถุนายน 2550

New Font: Sawasdee

นอกจากคุณ wd แล้ว ยังมีผู้เสนอฟอนต์เข้าร่วมสมทบใน thaifonts-scalable อีกคนหนึ่ง คือคุณพล อุดมวิทยานุกูล หรือ Naipol แห่ง ฟ๐นต์.คอม ผ่านการแนะนำของ MrChoke

ฟอนต์ชื่อ Sawasdee ซึ่งดูแล้วสวยงามน่าใช้ มีบุคลิกลำลอง ใช้ในเนื้อหาที่ไม่ต้องการให้ดูเป็นทางการมากได้ รับมาแล้ว ก็นั่งปรับให้เข้ากับฟอนต์อื่น ๆ ในชุด thaifonts-scalable (เช่น เปลี่ยนชื่อ PUA glyph, ปรับ GSUB rule, ใส่ GPOS data) ทยอยทำมาเรื่อย ๆ ทีละเรื่องใน CVS จนวันนี้น่าจะเรียบร้อยระดับหนึ่งแล้ว

Sawasdee Normal

Sawasdee Oblique

Sawasdee Bold

Sawasdee Bold Oblique

เรื่อง spline กับ hint ขอบอกว่า เป็นฟอนต์ที่ไม่เหนื่อยในการปรับเลย เพราะออกแบบ spline ไว้อย่างดีครับ

ขอขอบคุณคุณพล สำหรับความเอื้อเฟื้อฟอนต์คุณภาพชุดนี้ครับ

ป้ายกำกับ: ,

02 มิถุนายน 2550

Workflows

ช่วงนี้น่าจะเป็นช่วงที่ debian กับ ubuntu ทำงานใกล้ชิดกันที่สุดเท่าที่เคยเห็นมา คงเป็นเพราะความประจวบเหมาะที่ etch กับ feisty ออกไล่เลี่ยกัน ทำให้ lenny กับ gutsy เริ่มต้นพร้อมกัน เปิดฉากมา แพกเกจที่อยู่ใน experimental ก็ตบเท้าเข้า sid กันเป็นแผงไปตั้งแต่เดือนก่อนแล้ว gutsy เองก็ดูดแพกเกจทั้งจาก sid และ experimental ไปอย่างรวดเร็ว ขณะเดียวกัน ก็มีการ merge ubuntu changes เข้าใน debian เป็นทิวแถว

แพกเกจไทยทั้งหลายที่ผม upload เข้า sid ก็ไปอยู่ใน gutsy อย่างทันทีทันใดเหมือนกัน (รวมถึง otf-thai-tlwg ที่ blog ไปเมื่อวาน) ไม่รู้เป็นเพราะมีการ request sync ไว้ หรือว่ามีคนคอย monitor อยู่ จะว่าอัตโนมัติก็ไม่ใช่ เพราะบางแพกเกจอย่าง gtk-im-libthai ก็ยังไม่ไปถึง ใครรู้รายละเอียดขั้นตอนการพัฒนาของ ubuntu ช่วยเขียนเป็นวิทยาทานบ้างก็ดีครับ

ช่วงเวลาอย่างนี้ ตาม update sid และ gutsy นั่งอ่าน changelog ควบคู่กันไปก็สนุกดี แพกเกจชุดใหญ่ที่ต่างกันอยู่คือ GNOME ใน sid เป็น 2.18.1/2 ส่วน gutsy เป็น 2.19.2 แต่แพกเกจอื่น ๆ ก็ยัง sync กันสนุกสนาน

แต่จะเพลิดเพลินยังไง ก็อย่าลืม upstream นะครับ งานแปล GNOME 2.20 ตอนนี้ เริ่มทำไปบางส่วนแล้ว ดู สถานะล่าสุด ได้ ถ้าสนใจร่วมแปลก็เชิญมาคุยกันได้ที่ mailing list ใหม่ ของทีมแปลครับ

ย้ำอีกครั้ง ว่าการแปลผ่าน launchpad/rosetta นั้น มาไม่ถึง upstream นะครับ แต่งานแปลที่ upstream จะไปถึงทุก distro รวมทั้ง ubuntu เองด้วย

ช่วงนี้ งานแปลสำหรับ gutsy ดูเหมือนยังไม่เริ่ม ระหว่างนี้ ใครเล่น gutsy อยู่ ก็สามารถช่วยทีมแปล upstream GNOME ได้ ด้วยการรายงานคำแปลที่ผิด รวมทั้งรายงาน shortcut ที่อาจซ้ำกันใน dialog/menu ต่าง ๆ ให้ทีมแปลได้แก้ไขด้วย อีกไม่นาน งานแปลต่าง ๆ เหล่านี้ ก็จะไปโผล่ที่ launchpad เอง เมื่อ ubuntu build package สำหรับ GNOME รุ่นใหม่

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

01 มิถุนายน 2550

Try it out

ต่อไปนี้คือผลลัพธ์จากการปรับฟอนต์ตามวิธีการที่กล่าวมาใน 3 blog ก่อน:

OTF Demo

อันที่จริง ก็อาจจะเห็นมาบ้างแล้วใน blog ก่อน ๆ นู้น เช่น ใน blog Justified Text in Pango, Garuda Refinement, Font Hinting Solutions คราวนี้ก็ถือว่าเดโมรวมมิตร ฟอนต์ Garuda และ Loma รวมกัน

ข่าวดีก็คือ ตอนนี้ แพกเกจ OTF ที่ผม build สำหรับ debian ได้ผ่าน NEW queue เข้าสู่ sid มาได้ 4 วันแล้ว ผู้ใช้ debian สามารถทดสอบได้เลย โดยสั่ง:

# aptitude install otf-thai-tlwg

ระวังว่า โปรแกรมออฟฟิศทั้งหลาย ยังใช้ฟอนต์ OTF ไม่ได้ ดังนั้น คุณยังคงต้องติดตั้งแพกเกจ ttf-thai-tlwg ควบคู่กันไปเหมือนเดิม โดย GNOME จะ match เจอ OTF ก่อนถ้าติดตั้งควบคู่กัน ส่วนโปรแกรมออฟฟิศ ก็ยังคงต้องใช้ฟอนต์เบลอ ๆ ไปก่อน

จะพบว่า แม้ที่ขนาด 10 pt เส้นจะคมกริบ แต่ที่บางขนาด เส้นตัวอักษรจะยังไม่สม่ำเสมอ ทั้งนี้ ยังคงต้อง fine tune ฟอนต์ต่อไป อีกทั้งยังไม่ได้แก้ฟอนต์ครบทุกตัวในรุ่นนี้ ฟอนต์ที่อาจจะ render ใช้ได้ มี 4 ฟอนต์ คือ Norasi (ที่คุณทิมทำไว้นานแล้ว), Garuda, Loma, Tlwg Typist ที่ได้ทำไปในรุ่น 0.4.7 นี้ ใครอ่านแล้วสนใจร่วมกันทำต่อที่เหลือ ก็แวะมาทักทายกันได้ครับ (จะให้ดี คุยกันที่ LTN เลยดีกว่า)

ป้ายกำกับ:

hacker emblem