Tuesday, February 21, 2006 

คำคม คำคน: ตอนที่ 2 "Difference Between Theory and Practice"

"In theory there is no difference between theory and practice. In practice there is."
-- Yogi Berra


"It may come out all right in practice, but it will never work in theory!"
-- Warren Buffett


References:

Tuesday, February 14, 2006 

การปรับแต่งเครื่อง HP Kayak XM600

ตอนนี้มีคอมพิวเตอร์ใช้อยู่สองเครื่องคือ โน๊ตบุ๊ค IBM X21 และเครื่องเวิร์คสเตชัน HP Kayak XM600 ที่อัพเกรดจนเต็มที่ของมันแล้วด้วย CPU Pentium III 1GHz X2 RAMBUS 512MB (RAMBUS 1GHz หายากและแพงมากๆ) โดยตัวแรกเป็นวินโดวส์ ส่วนตัวที่สองลง Debian Etch ซึ่งตอนลงใหม่ๆ ก็เรียบร้อยดี ตรวจเจออุปกรณ์ทุกตัวเอง แต่พออัพเดตไปอัพเดตมาเสียงดันหายไปซะงั้น ก็ปล่อยมานานเพราะไม่ค่อยมีเวลาจัดการ และปกติก็ไม่ได้ดูหนังฟังเพลงบนเครื่องลินุกซ์อยู่แล้ว มาวันนี้มันฟ้องอะไรอีกหลายอย่างเลยชักรำคาญ ต้องหาทางจัดการมันสักหน่อย

เริ่มต้นด้วยตรวจเช็คไดรเวอร์ซาวน์การ์ดก่อน เดิมทีใช้ไดรเวอร์ cs461x ที่มากับเคอร์เนลก็เวิร์คดี แต่ตอนหลังมันกลับใช้ไม่ได้ จึงต้องกลับไปพึ่งโปรเจค ALSA ตามระเบียบ โดยใช้ apt-get ติดตั้งแพคเกจตระกูล alsa ทั้งหมด
$ sudo apt-get install alsa-base alsa-modules-2.4-686-smp alsa-oss alsa-utils
*หมายเหตุ: ตรง modules ต้องเลือกให้เหมาะกับเคอร์เนลที่กำลังใช้อยู่

จากนั้นก็ใช้คำสั่ง alsaconf ในฐานะ root ก็จะขึ้นหน้าจอตรวจสอบอัตโนมัติดังรูป
alsa

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

$ sudo rmmod cs461x
เมื่อสั่ง alsaconf อีกครั้งก็สำเร็จด้วยดี จากนั้นจึงรันคำสั่ง
$ sudo alsactl store
$ speaker-test
เพื่อบันทึกค่า และทดสอบเสียงลำโพงต่อไป ซึ่งถ้าทุกอย่างเรียบร้อยดี ก็จะมีเสียงเสียดแทงแก้วหูออกมาทางลำโพงของเรา

ปัญหาถัดมาคือเมื่อล็อกอินเข้ามาโดยเลือกใช้ Gnome Window Manager มันจะฟ้องปัญหาการโหลด Applet ทางเสียงดังรูป
Mixer

แถมยังเพิ่มตัวแสดงการเปลี่ยนคีย์บอร์ดที่ panel ไม่ได้อีกด้วย หาวิธีแก้อยู่นานสุดท้ายก็ได้แนวทางมาเลาๆ ว่า ที่มันโหลดไม่ได้คงเพราะไม่ได้ลง Applet พวกนี้ไว้แต่ต้น จึงจัดการลงซะด้วยคำสั่ง
$ sudo apt-get install gnome-applets
บิงโก! มันมาแล้ว

เรื่องสุดท้ายคือเครื่อง Kayak นี้มาพร้อม Multimedia Keyboard ถ้าใช้ Gnome อยู่แล้วก็สามารถไปตั้งที่ Keyboard Shortcuts ได้เลย แต่ถ้าใช้ WindowMaker ก็จะต้องลงแพคเกจ hotkeys แล้วสั่งให้มันโหลดอัตโนมัติตอนล็อกอิน เดี๋ยวคราวหน้ามาว่าเรื่องการปรับแต่ง theme ให้สวยเหมือน Mac OSX กันต่อ

แถมอีกนิดกับการ capture หน้าจอ ซึ่งก็มีหลายวิธีด้วยกัน คือ
  • เลือก Take Screenshot... จากเมนู
  • Gnome's Screenshot จากคำสั่ง gnome-panel-screenshot
  • Gnome's Keyboard Shortcut ซึ่งก็มักจะถูกตั้งไว้ที่ปุ่ม Print Screen อยู่แล้ว หรือเราอยากเปลี่ยนเป็นปุ่มอื่นก็ได้
  • ImageMagick's import command
  • Gimp's File -> Acquire -> Screenshot

Thursday, February 09, 2006 

การสร้างไฟล์ PDF ด้วย LaTeX บน Linux

หลังจากคอมไพล์ไฟล์เลเท็กซ์จนได้ไฟล์ .dvi ที่ต้องการแล้ว ก็มาถึงขั้นตอนการแปลงไฟล์เป็นมาตรฐานสากล นั่นก็คือ PDF ซึ่งมีด้วยกันสามวิธีหลัก สมมุติว่าจัดการไฟล์ article.tex
  1. pdflatex โดยใช้คำสั่ง
    $ pdflatex article

    โดยส่วนตัวไม่ค่อยได้ใช้วิธีนี้ เพราะรู้สึกว่ามันมีข้อแตกต่างจากวิธีที่คุ้นเคยหลายอย่าง เดี๋ยวเอาไว้วันหลังคงได้ลอง


  2. latex + dvipdfm
    $ latex article
    $ dvipdfm -p letter article

    การใช้ออพชัน -p จะช่วยบังคับขนาดกระดาษได้แน่นอนที่สุด โดยถ้าอยากได้ขนาดกระดาษ A4 ก็ให้เปลี่ยน letter เป็น a4


  3. latex + dvips + ps2pdf
    $ latex article
    $ dvips -t letterSize -Ppdf -G0 article
    $ ps2pdf -sPAPERSIZE=letter -dPDFSETTINGS=/prepress article.ps
    ถ้าอยากได้ขนาดกระดาษ A4 ก็ให้เปลี่ยน letterSize เป็น A4size และเปลี่ยน letter เป็น a4 โดยปกติการสร้างด้วยคำสั่ง ps2pdf จะได้ไฟล์มาตรฐาน PDF version 1.2 หรือเทียบเท่า Acobat 3.x ถ้าจะระบุเวอร์ชันให้ชัดเจนก็ให้ใช้คำสั่ง
    • ps2pdf12 ได้ไฟล์มาตราฐาน PDF 1.2 หรือเทียบเท่า Acrobat 3.x

    • ps2pdf13 ได้ไฟล์มาตราฐาน PDF 1.3 หรือเทียบเท่า Acrobat 4.x

    • ps2pdf14 ได้ไฟล์มาตราฐาน PDF 1.4 หรือเทียบเท่า Acrobat 5.x

    ออพชั่น -Ppdf ช่วยระบุให้ dvips ใช้ฟอนต์แบบ Type 1 ส่วน -G0 ช่วยจัดการบักใน dvips รุ่นเก่าๆ ได้

    ออพชั่น -sPAPERSIZE ใช้กำหนดขนาดกระดาษ ในขณะที่ -dPDFSETTINGS ระบุ "distiller parameters" โดย
    • /screen จะให้รายละเอียดต่ำ เทียบได้กับ "Screen Optimized"

    • /printer เหมาะสำหรับการพิมพ์ เทียบได้กับ "Print Optimized"

    • /prepress จะให้รายละเอียดสูงเหมาะสำหรับการเรียงพืมพ์ เทียบได้กับ "Prepress Optimized"

    • /default เหมาะสำหรับใช้งานวงกว้าง แต่ขนาดไฟล์อาจใหญ่เกินไปได้

References

Tuesday, February 07, 2006 

ปัญหาการอัพเกรด Thailatex

หลายวันก่อนตอนสั่งอัพเกรดเครื่อง Debian ก็พบว่าแพคเกจ thailatex มีปัญหาไฟล์ทับซ้อนกับแพคเกจ tetex-base โดยขึ้นข้อผิดพลาดว่า
Preparing to replace thailatex 0.3.2 (using .../thailatex_0.3.2-0.1_all.deb) ...
No diversion `diversion of /usr/share/texmf/tex/generic/babel/babel.sty to /usr/share/texmf/tex/generic/babel/babel.sty.real by thailatex', none removed
Unpacking replacement thailatex ...
dpkg: error processing /var/cache/apt/archives/thailatex_0.3.2-0.1_all.deb (--unpack):
trying to overwrite `/usr/share/texmf/tex/generic/babel/babel.sty', which is also in package tetex-base
/var/lib/dpkg/tmp.ci/postrm: line 40: syntax error near unexpected token `fi'
dpkg: error while cleaning up:
subprocess post-removal script returned error exit status 2
dpkg-deb: subprocess paste killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/thailatex_0.3.2-0.1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

ถ้าดูจากคำเตือนก็คือ thailatex ต้องการเขียนไฟล์ babel.sty ทับของเก่าซึ่งเดิมเป็นของ tetex-base การติดตั้งด้วย apt-get ไม่สามารถละเลยความไม่เข้ากันตรงนี้ได้ จึงต้องใช้คำสั่งในระดับลึกกว่า นั่นคือ dpkg ผนวกกับออพชันบังคับให้เขียนทับ ดังนี้
# sudo dpkg -i --force-overwrite /var/cache/apt/archives/thailatex_0.3.2-0.1_all.deb
ไม่แน่ใจว่านี่เป็นวิธีแก้ที่ถูกหรือไม่ แต่ก็ช่วยให้ลงผ่านได้

 

คำคม คำคน: ตอนที่ 1 "ความผิดพลาด"

เคยได้รับฟอร์เวิร์ดเมล์ ข้อความดีๆ หลายครั้ง เลือกเอามาเก็บไว้ที่นี่บ้างน่าจะดี เรื่องนี้ไปอ่านเจอในบล็อกของคุณฮุยอีกต่อหนึ่ง ขออนุญาติเอามาเก็บไว้ส่วนตัวหน่อยนะครับ

"สมัยเด็กๆ ครูสอนศิลปะท่านหนึ่งสอนฉันเสมอว่า เวลาเราใช้ดินสอวาดภาพเราห้ามใช้ยางลบ

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

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

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

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

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

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

เกี่ยวกับฉัน

  • ชื่อ อมร
  • อยู่แถวๆ ลาดกระบัง, กรุงเทพฯ
  • เรียนหนังสือมานาน ยังไม่จบซะที เพราะชีวิตคือการเรียนรู้
My profile

บล็อกเพื่อนๆ

Powered by Blogger
and Blogger Templates