Theppitak's blog

My personal blog.

30 มกราคม 2552

Mozilla non-source-dir build

เริ่มกระบวนการใช้พลังของ เครื่องตั้งโต๊ะจากคุณ wd ต่อ วันนี้จัดการ checkout mozilla source มาที่เครื่องใหม่ แล้วก็ถือโอกาส config การ build นอก source tree เสียเลย ซึ่งก็ไม่ยากอะไร เนื่องจากระบบ build ของ mozilla ได้ออกแบบมารองรับเรื่องนี้โดยเฉพาะอยู่แล้ว

ก็ ตามคู่มือ เลยครับ:

$ hg clone -r default http://hg.mozilla.org/mozilla-central/
$ cd mozilla-central
$ autoconf
$ cd js/src; autoconf; cd ../..

ตรง autoconf นี่ บน Debian ใช้วิธีติดตั้ง autoconf2.13 แล้วเรียก autoconf wrapper script เอา มันจะไปเลือก autoconf รุ่นที่เหมาะสม ระหว่าง 2.13 กับ 2.50 ให้เอง ซึ่ง manpage ของ Debian แนะนำให้ทำแบบนี้

จากนั้น ผมก็สร้างไดเรกทอรี ~/build เอาไว้ build โปรแกรมโดยเฉพาะ ทั้ง mozilla และ GNOME

จากนั้นก็สร้าง ~/.mozconfig เอาไว้ ตาม คู่มือ เลยครับ ปรับเอาตามสะดวก:

$ vi ~/.mozconfig
. $topsrcdir/browser/config/mozconfig

mk_add_options MOZ_OBJDIR=~/build/mozilla_hg/mozilla-central

ac_add_options --disable-optimize
ac_add_options --disable-debug
ac_add_options --enable-tests

ac_add_options --with-system-bz2
ac_add_options --with-system-jpeg
#ac_add_options --with-system-png
ac_add_options --with-system-zlib

ตรง --with-system-* ทั้งหลายนี่ ก็ลงแพกเกจ lib*-dev ของระบบเอา ไม่ต้อง build ซ้ำซ้อน ยกเว้น libpng ซึ่ง mozilla มันฟ้องว่า libpng ของระบบไม่รองรับ APNG เลยไม่ยอม build ให้ ต้องใช้โค้ดของ mozilla แทน เลย comment ออกไปก่อน

สร้างเสร็จแล้ว ก็มาถึงตอนสำคัญ คือการ build นอก source tree.. แต่นแต๊น..

$ cd ~/build/mozilla_hg/mozilla-central
$ make -f ~/vcs/mozilla_hg/mozilla-central/client.mk \
  build TOPSRCDIR=~/vcs/mozilla_hg/mozilla-central

จุดสำคัญอยู่ที่การกำหนดตัวแปร TOPSRCDIR ให้กับ make

เครื่องตั้งโต๊ะนี้ ผมกะให้เป็น build server อย่างเดียว ไม่ได้ต่อจอ ไม่ลง X server หรือ display manager ใด ๆ โปรแกรมที่ build ได้ ก็จะเป็น X client ซึ่งสามารถเรียกทำงานผ่าน SSH tunnel ได้:

$ ssh -X server
$ cd build/mozilla_hg/mozilla-central
$ dist/bin/firefox

จบละ ลดภาระการคอมไพล์ของเครื่องโน้ตบุ๊กไปได้หนึ่งเรื่อง ต่อไปก็ตา GNOME ไว้ blog ต่อคราวหน้า

ปล. blog ซะละเอียดอย่างนี้ คนที่รู้แล้วอย่าเพิ่งเบื่อนะครับ เขียนบันทึกไว้ให้มีเอกสารเป็นภาษาไทยเสียบ้าง

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

29 มกราคม 2552

Mozilla Delete Key Issue Follow-ups

เมื่อ 3 เดือนก่อน ผม blog เกี่ยวกับ การลบภาษาไทยทั้งเซลล์ใน Mozilla ว่าแพตช์ได้ commit ในที่สุด หลังจากที่ถูกถอนเพราะไปทำให้เกิดบั๊กอีกสองตัว ปรากฏว่าเรื่องไม่ได้จบแค่นั้น เพราะมีการพบบั๊กเพิ่มอีกสองตัวที่เกิดจากแพตช์ที่ว่า

บั๊กแรกคือ Mozilla #461816 คือแพตช์ได้ทำให้ตรรกะของโค้ดเปลี่ยนไป แต่เปลี่ยนโค้ดตามไม่ครบทุกกรณี ยังขาดกรณีของการป้อนรหัสผ่าน ทำให้พอพยายามลบทั้งบรรทัดด้วย Ctrl-U แล้วเจอ assertion fail ในรุ่น debug รวมทั้งพอกด Ctrl-W เพื่อลบคำ, Ctrl-K เพื่อลบจนสุดบรรทัด ก็ไม่ทำงาน (โห.. แต่ละปุ่ม ไม่อ่าน Emacs Keybindings for Firefox ไม่มีทางรู้เลย ที่เคยใช้ใน bash ก็แค่ Ctrl-H, Ctrl-W, Ctrl-A, Ctrl-E, Ctrl-F, Ctrl-B, Ctrl-P, Ctrl-N, Ctrl-R ก็ว่าเยอะแล้วนะ แถมจะใช้ปุ่มพวกนี้ได้ ต้องตั้ง GTK+ key theme ให้เป็น Emacs ก่อน ตามคำแนะนำใน Comment #6 ด้วย)

และอีกบั๊กคือ Mozilla #462188 คือกด Ctrl-Delete, Ctrl-Backspace (หรือ Option-Delete และ Option-Backspace ในแมค) เพื่อลบทีละคำแล้วไม่ทำงาน อันนี้ก็เป็นกรณีที่พลาดไปในแพตช์ก่อน เนื่องจากมุ่งเน้นแค่กรณีของปุ่ม Delete, Backspace ธรรมดาเท่านั้น

ทั้งสองบั๊กรายงานในเวลาไล่เลี่ยกัน บั๊กแรกใช้เวลาเดือนเศษก็ได้ check-in เพราะแพตช์ไม่ซับซ้อนมาก ทั้งปัญหาก็รุนแรง คือทำให้ nightly-build พัง ส่วนบั๊กที่สอง รอรีวิวอยู่เป็นนานสองนาน จนได้ commit ครั้งแรกเมื่อช่วงปีใหม่ แต่ก็โดนถอนออกอีก เพราะ mochitest (การทดสอบอัตโนมัติด้วย HTML/Javascript ที่กำหนด --รายละเอียด) บางตัวไม่ผ่านในแพลตฟอร์มอื่น roc มาช่วยปรับให้ ปรับไปปรับมาก็กลับไปใช้แพตช์ผม บวกกับ mochitest ของเขา ในที่สุดก็ได้ commit เมื่อวานซืน (27 ม.ค.) รอดูมาสองวันไม่มีการถอนออกแล้ว น่าจะโอเคแล้วละ แบบนี้..

ใน blog เดิมนั้น บอกว่าจะดู Mozilla #353776 เพื่อแก้ให้ Mozilla รองรับการอ่านบริบทขณะป้อนข้อมูล เพื่อให้สามารถคีย์สระบน-ล่างได้เสมอแม้จะกด Backspace หรือเลื่อนเคอร์เซอร์ไปมา ก็ยังไม่ได้ดู.. นี่เราจะทำได้แค่ปีละบั๊กจริง ๆ หรือนี่ (ปี 2550 ได้เรื่อง ตัดคำ ปี 2551 ได้เรื่อง Delete ลบทีละเซลล์)

Epiphany ยังคงใช้ Gecko ใน 2.26 เพราะฉะนั้น เรื่องดูภาษาไทยใน WebKit ก็ยังสามารถเลื่อนออกไปได้อีกนิด

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

28 มกราคม 2552

Thanks for the donated machine

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

รับเครื่องมาแล้ว ก็คงพยายามใช้ทำงานให้เกิดประโยชน์สูงสุดนะครับ ตอนนี้ผมก็ลง apt-cacher-ng ที่เครื่องนี้แทนโน้ตบุ๊กไปแล้ว (คุณ wd ติดตั้ง Debian พร้อม apt-proxy มาให้เสร็จสรรพ แต่พอดีว่าผมลอง apt-cacher-ng มาแล้วพักหนึ่ง รู้สึกว่าทำงานได้ดี ก็เลยลงตัวนี้ใช้แทน) พร้อมทั้งลง squid3 ไว้เป็น HTTP proxy ในบ้านด้วย ใช้กันสองคนกับแม่ คงไม่ได้ช่วยอะไรเท่าไรในแง่การใช้แบนด์วิดท์ แต่ถือเป็นห้องแล็บสำหรับทำระบบเครือข่าย

Pidgin กับ Squid

แล้วก็เจอปัญหาแรก คือเมื่อตั้ง HTTP proxy ใน GNOME ที่เครื่องลูกข่ายแล้ว ปรากฏว่า Pidgin ไม่สามารถเชื่อมต่อกับ ICQ และ GTalk ได้ โดยมีข้อความฟ้องในทำนองว่า:

Could not connect to authentication server:
Access denied: HTTP proxy server forbids port 5190 tunneling.

อันนี้สำหรับ ICQ ส่วน GTalk ก็ฟ้องที่พอร์ต 5222 แทน แต่สามารถออนไลน์ GTalk ผ่าน web interface ของ Gmail ได้นะครับ แสดงว่า Pidgin มันใช้วิธีไม่เหมือนชาวบ้าน

พยายามหาทางแก้ที่ Squid อยู่นาน หาไม่เจอ ในเว็บก็เจอแต่คนถามวิธี block ส่วนคำถามเรื่องวิธีอนุญาตไม่ค่อยมี

ในที่สุด ก็เจอทางออก โดยเลิกพยายามแก้ที่ Squid แต่หันมาแก้ที่ Pidgin แทน โดยไปที่เมนู "บัญชีผู้ใช้" > "Manage" แล้วก็แก้ไขบัญชีผู้ใช้เป็นตัว ๆ ไป โดยในกล่องโต้ตอบ "แก้ไขบัญชีผู้ใช้" ก็ไปที่แท็บ "ระดับสูง" แล้วเลือกชนิดพร็อกซีเป็น "ไม่ใช้พร็อกซี" จากนั้นก็จะสามารถเชื่อมต่อโดยไม่ผ่าน Squid ได้

กรณีนี้ทำให้คิดว่า "แล้วคนที่ใช้ transparent Squid proxy ล่ะ จะไม่มีปัญหาเหรอ?" เพราะไม่ว่าจะ config Pidgin ยังไงก็จะผ่าน Squid อยู่ดี เรื่องนี้ densin ใน #tlwg บอกว่าไม่มีปัญหา ผมเองก็คิดว่าเคยใช้โดยไม่มีปัญหา หลังจากคิดไปสักพักก็นึกได้ ว่าเวลาทำ transparent proxy นั้น เขาจะตั้ง netfilter rules ให้ forward พอร์ต 80 เข้า Squid เท่านั้นนี่หว่า.. ส่วนพอร์ตอื่น ๆ ที่ IM ใช้ ก็จะผ่านไปที่ netfilter ออกข้างนอกโดยไม่ผ่าน Squid อยู่แล้ว แต่สำหรับกรณีผม ไปตั้ง HTTP proxy ของทั้งเดสก์ท็อปให้ไปออก Squid เสมอ ก็เลยโดนทุกพอร์ต สรุปว่าได้คำตอบด้วยประการฉะนี้

Calamaris

อีกปัญหาหนึ่งคือ calamaris ซึ่งเป็นเครื่องมือรายงานสถิติจาก log ของ Squid นั้น ไม่สามารถสร้างกราฟได้ แม้จะลง libgd-graph-perl และปรับค่าต่าง ๆ ตามที่แนะนำใน README.Debian (พร้อม hack เล็กน้อยให้อ่าน log ของ squid3 ซึ่งอยู่คนละที่กับ squid 2.x) แล้ว โดยเมื่อสั่งรัน cron job จะเจอข้อความ error ดังนี้:

# /etc/cron.daily/calamaris
Use of uninitialized value in concatenation (.) or string at /usr/bin/calamaris line 4083, <> line 625.
Use of uninitialized value in concatenation (.) or string at /usr/bin/calamaris line 4115, <> line 625.
Use of uninitialized value in concatenation (.) or string at /usr/bin/calamaris line 4115, <> line 625.
Can't call method "png" on an undefined value at /usr/bin/calamaris line 4128, <> line 625.

ว่าแล้วก็ค้นใน Debian BTS ก็ไปเจอ Debian #501396 มีคนเจอปัญหาเดียวกันเป๊ะ แต่ปรากฏว่ายังไม่มี solution ฮ่วย! ว่าจะจิ๊กมาใช้ซะหน่อย :-(

ไม่เป็นไร hack เองก็ได้ฟะ หลังจากแทรกโค้ดให้มัน print โน่น print นี่มาให้ดู ก็พบว่าข้อมูลที่มันส่งให้ GD graph มันเป็นแอร์เรย์ว่างเปล่า ไม่มีข้อมูล เลยคิดว่าน่าจะมีอะไรผิดพลาดตอนเตรียมข้อมูล จนในที่สุดก็ได้ patch เสนอเขาไป

ก็ถือเป็นอานิสงส์ข้อแรกที่ได้จากเครื่องที่คุณ wd ให้มาละครับ คือได้ทำอะไรที่เป็นประโยชน์ต่อ Debian บ้าง :-)

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

20 มกราคม 2552

Recovery

หลังจาก ฮาร์ดดิสก์พังไป ก็แก้ปัญหาแล้วด้วยการเปลี่ยนฮาร์ดดิสก์โน้ตบุ๊กใหม่ แล้วก็เริ่มลง debian ใหม่แต่ต้น

เสียดายข้อมูลหลายอย่าง เช่น รูปถ่ายที่ถ่ายไว้ทั้งหมดตลอด 3 ปี กู้คืนไม่ได้ รวมทั้งงานรับจ้างทั้งหลาย แต่สำหรับงานพัฒนาส่วนใหญ่ที่เผยแพร่แบบโอเพนซอร์สไปแล้ว ไม่มีปัญหา สามารถดึงกลับมาจากแหล่งที่เผยแพร่ไปแล้วได้

เหตุการณ์แบบนี้ ถ้าเป็นไปได้ก็ไม่อยากเจอ แต่ก็พยายามมองในด้านบวก ว่าทำให้เจอประเด็นอะไรหลาย ๆ อย่าง:

  • เรียนรู้ที่จะทำ backup เผื่อไว้เยอะ ๆ อย่าผัดวันประกันพรุ่ง ตอนนี้เริ่มวางแผนเตรียมการ backup ไว้หลายอย่าง เช่น ใช้สื่อแบบต่าง ๆ แล้วก็รวมไปถึงการจัดระบบข้อมูลหลายอย่างในเครื่องให้เหมาะกับการ backup ด้วย เช่น:
    • เตรียม thumbdrive ไว้ backup ข้อมูลที่เป็น dynamic โดยคิดว่าจะ rsync และใช้ version control ควบคุมซอร์สที่เป็นงานรับจ้างให้มากที่สุด พร้อมทั้งทำ live image ไว้บูตทำงานในกรณีฉุกเฉินด้วย
    • ใช้ CD/DVD สำรองข้อมูลถาวรเป็นระยะ ๆ (อาจใช้ CD-RW กับบางงาน)
    • build ซอฟต์แวร์ต่าง ๆ ไว้นอก source tree ทั้งหมด หลังจากที่ทำเฉพาะที่ build แบบ manual โดยไม่ครอบคลุมถึง การ build อัตโนมัติด้วย JHBuild ก็พยายาม config JHBuild ด้วย เพื่อให้ clean ได้ง่าย ๆ รวมทั้งทำ live snapshot ไว้ทำงานโดยไม่ติดเอา binary object ไปด้วยได้อย่างสะดวก
    • พบว่า การเขียนบทความเผยแพร่บางอันก็มีประโยชน์ เช่น พวก smart bookmark ของ epiphany ผมก็เพียงไปเปิด บทความที่ตัวเองเคยเขียน โดยไปไล่คลิกขวาที่ URL ของ smart bookmark ที่ยกตัวอย่างไว้ แล้วเลือก "เพิ่มลิงก์ในที่คั่นหน้า..." แค่นี้ก็ไม่ต้องมาทำใหม่แต่ต้น
  • ได้ติดตาม debian-installer หลังจากที่ติดตั้ง debian ครั้งสุดท้ายเมื่อ 3 ปีที่แล้ว แล้วก็ใช้แบบ dist-upgrade มาตลอด การได้ลง debian ใหม่ ก็ทำให้ได้ติดตามระบบ debian-installer ล่าสุด ว่าเขาไปถึงไหนแล้ว มีปัญหาอะไรบ้าง ประเด็นที่ได้พบก็เช่น:
    • ปรับคำแปลไทยบางส่วนของ d-i เอง
    • ได้พบว่า default desktop ของ lenny มีเฟอร์นิเจอร์เพิ่มเติมพอสมควร เช่น มี update-manager จาก Ubuntu, ลง NetworkManager มาให้ด้วย ก็ทดลองใช้ดู เจอคำสะกดผิดในคำแปลของ update-manager ก็เลยลงมือแก้แล้วส่งไปที่ debian รวมทั้งขอ update ที่ LP ผ่านทาง Thai-L10N และ ubuntuclub ด้วย
  • ได้โอกาสกลั่นกรองระบบการทำงานอีกครั้ง การเริ่มติดตั้งใหม่จากศูนย์ ก็ทำให้ได้คิดใหม่อีกรอบ ว่าซอฟต์แวร์ไหนจะใช้จริง อันไหนจะทิ้ง วิธีการทำงานแบบไหนที่ต้องปรับเปลี่ยน อันนี้ก็อาจจะรวมไปถึงการลองซอฟต์แวร์ใหม่ ๆ ด้วย ซึ่งก็ต้องรอดูไปสักระยะ ว่าจะมีอะไรเปลี่ยนแปลงบ้าง แต่ที่ตัดสินใจได้ตอนนี้ก็คือ:
    • เลิกใช้ apt-move ในการ maintain mirror ส่วนตัว หันไปใช้ apt-cacher-ng [homepage] ทำแคชแทน และถ้าต้องการสร้าง package tree ไว้ใช้ในงานต่าง ๆ ก็ใช้ reprepro [homepage] แทน สะดวกขึ้นเยอะ (เรื่องพวกนี้ได้ทดลองใช้มาแล้วพอสมควร ตอนนี้ก็ได้โอกาสตัดส่วนที่ไม่จำเป็นทิ้งไป)

ทยอยฟื้นตัวไปเรื่อย ๆ ครับ ขณะเดียวกันก็ถือโอกาสปรับเปลี่ยนตัวเองไปด้วย :-)

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

15 มกราคม 2552

Harddisk Crash

อยู่ด้วยกันมาอย่างสมบุกสมบัน 3 ปี เมื่อวานนี้ฮาร์ดดิสก์ผมกลับบ้านเก่าซะแล้ว เป็นโน้ตบุ๊กตัวแรกที่เจอปัญหาฮาร์ดดิสก์เลย (Compaq Presario V3000) เลยมายืมเครื่องแม่ ซึ่งก็คือโน้ตบุ๊กเก่าของผม (Fujitsu S6010 อายุอานามไม่ต่ำกว่า 8 ปี) ในการเขียน blog นี้

งานต่าง ๆ ที่ได้วางแผนไว้ คงต้องหยุดไว้ก่อนนะครับ จนกว่าจะหาเครื่องมาทำงานได้ หรืออาจจะมาเบียดเบียนเครื่องแม่ใช้เป็นกรณีตามความจำเป็น

ตอนนี้ก็มีทางเลือก ว่าจะพยายามกู้ฮาร์ดดิสก์คืนมา หรือซื้อเครื่องใหม่ไปเลย และถ้าจะซื้อ ก็ซื้อแบบตั้งโต๊ะจะดีกว่าไหม ไม่อยากทรมานโน้ตบุ๊กอย่างที่ทำมา เพราะผมต้องคอมไพล์โปรแกรมบ่อย ๆ แล้วก็ค่อยซื้อเน็ตบุ๊กทีหลัง ไว้สำหรับเวลาเดินทางหรือไปนำเสนองานก็พอ หรือถ้าจะซื้อโน้ตบุ๊กตัวเดียว ก็อาจต้องยอมลงทุนกับความคงทนหน่อย

ป้ายกำกับ:

04 มกราคม 2552

New Year Dhamma

ปีใหม่ ไปนครนายกกับครอบครัวมา (ภาพ) เช้าวันขึ้นปีใหม่ก็ได้ไปทำบุญตักบาตรที่วัดหนองเตย พร้อมรับศีลรับพรจากพระสงฆ์เพื่อเป็นศิริมงคล

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

ชื่อหนังสือคือ "ความรุนแรงเกิดจากความอ่อนแอ" ปาฐกถาธรรมของพระพรหมคุณาภรณ์ (ป. อ. ปยุตฺโต) เนื่องในวันอาสาฬหบูชา ปี ๒๕๔๙ ที่วัดญาณเวศกวัน อ. สามพราน จ. นครปฐม ชื่อหนังสือที่ยังคงสะกิดใจในยุคสมัยนี้ ทำให้ผมเปิดอ่านทันทีที่ได้รับ ความจริงก็เคยได้ยินเกี่ยวกับหนังสือนี้นานแล้ว รวมทั้งที่เคยเห็นที่ร้านหนังสือ แต่ได้แต่นึกเห็นด้วยโดยไม่ได้เปิดอ่าน

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

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

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

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

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

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

ตัวเล่มหนังสือ หาได้ตามร้านหนังสือครับ และเท่าที่ค้นเว็บดู ก็พบฉบับออนไลน์ที่ลงในหนังสือพิมพ์ข่าวสดเป็นตอน ๆ คือ:

และมี คลิปเสียงปาฐกถาธรรม ด้วย

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

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

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

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

ก็ขอให้ทุกท่านจงเจริญด้วย อายุ วรรณะ สุขะ พละ โดยเฉพาะพละ ๕ นี้เทอญ

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

hacker emblem