Friday, March 14, 2008 

วิธีรวมไฟล์ pdf หลายไฟล์เข้าด้วยกันในลินุกซ์

วันนี้อยากรวมไฟล์ pdf สองไฟล์ที่เป็นตัวแก้บทความส่ง TCAS1 กับจดหมายตอบกลับบรรณาธิการ แต่เดิมก็จะใช้โปรแกรมบนวินโดวส์ อย่าง Adobe Acrobat Professional หรือScansoft PDF Converter แต่คิดว่าบนลินุกซ์ก็น่าจะทำได้ เมื่อลองค้นดูก็ปรากฏว่ามีวิธีที่ง่ายและฟรีอยู่จริงๆ ด้วย โดยอาศัยแพ็คเกจ Ghostscript ที่ต้องมีกันทุกคนอยู่แล้ว สำหรับผู้นิยม Latex ซึ่งก็สามารถรวมไฟล์ได้ง่ายๆ ด้วยคำสั่ง
$ gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=combined.pdf file1.pdf
file2.pdf [ENTER]
โดยส่วนต่างๆ ของคำสั่งจะหมายถึง
  • gs คือ การเรียกโปรแกรม ghostscript
  • -dBATCH สั่งให้เมื่อทำงานเสร็จแล้วให้ปิดโปรแกรม ghostscript ด้วย
  • -dNOPAUSE สั่งให้ทำทุกหน้าโดยไม่ต้องรอคำยืนยัน
  • -q สั่งให้ ghostscript ไม่ต้องแสดงข้อความขณะทำงาน
  • -sDEVICE=pdfwrite กำหนดให้ใช้ ตัวเขียน pdf ภายในในการทำงาน
  • -sOutputFile=combined.pdf กำหนดชื่อไฟล์สุดท้ายเมื่อรวมเสร็จแล้ว

นอกจากนี้ พวกออปชั่นทั้งหลายที่ใช้ใน ghostscript หรือ ps2pdf ทั้งหลายก็สามารถเอามารวมไว้ในคำสั่งนี้ได้ เช่นอยากให้ไฟล์ที่รวมแล้วเทียบเท่า Acrobat 5.x ก็สั่ง
$ gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dCompatibilityLevel=1.4
-sOutputFile=finished.pdf file1.pdf file2.pdf [ENTER]

อ้างอิง: Putting together PDF files

Sunday, June 03, 2007 

เย้... ในที่สุดก็เรียนจบซะที ครับพี่น้อง

หลังจากเรียนๆ เล่นๆ มา 6 ปีเต็ม ในที่สุดก็สอบจบ ป.เอก เรียบร้อย ไปเมื่อวันศุกร์ที่ 25 พฤษภาคมที่ผ่านมา มีเวลาแก้วิทยานิพนธ์แค่ 5 วันเท่านั้น ให้ทันวันที่ 30 เพื่อจะได้รับปริญญาปีนี้ ในวันสอบอาจารย์ที่ปรึกษาร่วม Prof. Bram Nauta จาก University of Twente, The Netherlands ได้กรุณาบินมาร่วมสอบด้วย ซึ่งก็ทำให้รู้สึกตื่นเต้นไม่น้อย ที่มีคนเก่งๆ ระดับโลกมาสอบเรา รู้สึกอินเตอร์ขึ้นมาเป็นกอง

Bram แจ้งข่าวดีอีกว่า ตั้งแต่สิงหาคมปีนี้ เขาจะได้ขึ้นเป็น Editor-in Chief ของ IEEE Journal of Solid-State Circuits (JSSC) ซึ่งเป็นวารสารทางด้านการออกแบบวงจรรวม (Integrated Circuit) อันดับหนึ่ง ที่ใครๆ ก็อยากจะส่งบทความไปลงตีพิมพ์ และ Bram เขาก็เป็นคนที่อยู่นอกสหรัฐฯ คนแรกที่ได้รับตำแหน่งนี้

การสอบก็ผ่านพ้นไปได้ด้วยดี มีต้องแก้ไขเพิ่มเติมบ้าง ในตอนบ่ายวันศุกร์ทาง IEEE CAS Thailand chapter ก็จัดให้ Bram ได้บรรยายพิเศษเรื่องงานวิจัยที่ทางแล็ปกรุ๊ปเขากำลังทำอยู่ ซึ่งก็ได้รับความสนใจจากนักวิจัยไทยเข้าฟังป็นจำนวนมาก

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

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

Wednesday, April 25, 2007 

Feisty Fawn @ HP Kayak XM600

ห่างหายจากการเขียน blog และสังคมออนไลน์ไปนานมาก (แอบเปิดอ่านเอาอย่างเดียว) เพราะวุ่นๆ เรื่องเขียนวิทยานิพนธ์ ตอนนี้พอมีเวลาเล็กน้อยมาเลยได้ฤกษ์จัดการกับเจ้า Kayak ซะที เพราะเดิมที่ลง Debian Etch ไว้ เล่นไปเล่นมาชักรวนๆ คงเพราะใส่โน่นใส่นี่มากไปหน่อย หลังๆ นี่แฮงค์บ่อย ไม่รู้ว่าทำไม แต่ขี้เกียจหาแล้ว ลงใหม่ซะเลยดีกว่า

โชคดีที่รอบคอบ แบ่งส่วน home และส่วนที่ลงโปรแกรม EDA ไว้ต่างหาก ก็เลยไม่ต้องลงใหม่ แค่จัดการตัวโอเอสแล้วก็ mount กลับมาใช้ใหม่ได้ทันที ถ้าเป็น Windows ทำแบบนี้ไม่ได้นะเนี่ย...ฮิฮิ

ด้วยกระแสของ Ubuntu ที่มาแรงสุดๆ เบียดทุกดิสโตรกระเด็นตกขอบไปหมด ก็เลยตัดสินใจย้ายมาใช้ตัวนี้กับเขาบ้าง โดยตอนแรกที่ไม่ได้ใช้ก็เพราะกลัวความใหม่ของมัน จะเข้ากันไม่ได้กับโปรแกรม EDA ทั้งหลายแหล่ที่ใช้อยู่ ซึ่งขึ้นชื่อเรื่องความโบราณ ชอบแต่โอเอสเก่าๆ นัยว่ามันเสถียรกว่า ครั้งนี้ไหนๆ ก็จะลงใหม่แล้วขอลองของหน่อยละกัน ถ้ามันไม่เวิร์คค่อยเปลี่ยนกลับมาใช้ Debian เหมือนเดิมก็ไม่เสียหาย กอปรกับ Ubuntu ตัวใหม่ Feisty Fawn เพิ่งออกมาได้ไม่กี่วัน ก็ยิ่งน่าลองเข้าไปใหญ่ ซึ่งผลจะเป็นอย่างไร มาตามดูกัน

Feisty Fawn ตัวใหม่นี้ไม่ทำให้ผิดหวังจริงๆ ทำออกมาได้้ยอดเยี่ยมมากทีเดียว ง่ายทั้งการติดตั้งและใช้งาน มันดีเทคทุกอย่างเองได้หมด ไม่ต้องเสียเวลามาตามแก้ทีหลัง และ GNOME 2.18 ก็ดูเหมือนจะเร็วขึ้นนิดนึงด้วย ตอนนี้เลยไม่คิดจะลง WindowMaker อีกต่อไปแล้ว จะติดปัญหาบ้างก็ไอ้ตรงการ์ดจอ Matrox G400 DualHead ตัวเก๋าตัวเก่านี่ละ ที่ตัวไดรเวอร์โอเพนซอร์สมันไม่สนับสนุนการแสดงผลออกสองหน้าจอ (ต้องใช้ mga hal lib) ซึ่งเป็นมาแต่ไหนแต่ไรแล้ว แต่ก็สามารถไปโหลดไดรเวอร์จากบริษัทมาใช้ได้ แต่คราวนี้ Feisty Fawn ดันมาพร้อม Xorg 7.2.0 ตัวล่าสุด ไดร์เวอร์ของ Matrox เอง (เวอร์ชัน 4.4) เลยยังไม่สนับสนุน ต้องค้นเว็ปอยู่นานกว่าจะไปเจอคนคอมไพล์ไดรเวอร์เองที่นี่ ซึ่งถ้าไม่อยากสั่งรันตรงๆ ก็สามารถคลายไฟล์ออกมาเป็นโฟลเดอร์ได้ดังนี้
$ sudo sh matroxdriver_mtx-x86_32-1.4.4.3-installer.run --extract-only [ENTER]
ใส่ตำแหน่งที่จะแตกไฟล์ไปลง ซึ่งให้เป็นตำแหน่งปัจจุบันก็ได้ จากนั้นเข้าไปในโฟลเดอร์ที่เพิ่งแตกมาแล้วสั่ง
$ sudo ./install.sh
เหมือนกับไดรเวอร์ของ Matrox เองปกติ ตัวโปรแกรมฟ้องว่าไม่มีไฟล์สำหรับ 7.2 จะลงไดร์เวอร์สำหรับ 7.1 แทนหรือเปล่า ซึ่งก็ตอบตกลงไป รีสตาร์ท X หนึ่งครั้งเป็นอันเสร็จ ได้สองจอกลับมาใช้เหมือนเดิม

ต่อมาก็เรื่องการแชร์ไฟล์ เพราะปกติจะใช้พื้นที่ในเครื่องนี้เปิดแชร์ให้กับเครื่องวินโดวส์อื่นๆ ผ่านทาง Samba อยู่แล้ว สำหรับใน Ubuntu ก็ค่อนข้างเซตง่าย โดยเลือกที่เมนู System -> Shared Folder ซึ่งในครั้งแรกมันจะถามว่าจะติดตั้งแพคเกจ NFS และ Samba ไหม ก็ตอบตกลงไป รอสักพักก็เรียบร้อย

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

1. สร้างไฟล์ smbusers
$ sudo vi /etc/samba/smbusers
เพิ่มชื่อผู้ใช้ลงไป
username = "description"
เช่น
amorn = "Amorn Jiraseree-amornkun"
บันทึกไฟล์

2. กำหนดรหัสผ่าน
$ sudo smbpasswd -a username
ถ้าจะลบผู้ใช้ก็ให้สั่งว่า
$ sudo smbpasswd -x username


3. แก้ไขไฟล์ /etc/samba/smb.conf
$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.orig
$ sudo vi /etc/samba/smb.conf
ค้นหาส่วนต่างๆ ดังนี้ แล้วแก้ให้เหมาะสม
...
[global]
workgroup = ABCD ; workgroup name
...
security = user
username map = /etc/samba/smbusers
...
[homes]
comment = Home Directories
browseable = no
valid users = %S
writable = yes
...
ถ้าต้องการให้ไม่จำเป็นต้องใส่รหัสผ่าน ก็ให้เปลี่ยน
...
security = share
...
ถ้าให้อ่านได้อย่างเดียว เขียนไม่ได้ ให้เปลี่ยน
...
writable = no
...
ถ้าอยากแชร์โฟลเดอร์อื่นที่ไม่ใช่โฮม ก็ให้เพิ่มเซคชันนั้นไว้ที่ท้ายไฟล์
...
[Group] ; appeared network folder name
comment = Group Folder ; description
path = /folder_path ; shared folder
public = yes ; make public
writable = no ; read only, change to "yes" for read/write
valid users = username1 username2 ; accessible user
create mask = 0700
directory mask = 0700
force user = nobody
force group = nogroup


สิ่งแตกต่างหนึ่งของ Ubuntu แบบเดสก์ทอปกับลินุกซ์ตัวอื่นๆ คือ มันไม่จำเป็นต้องกำหนดรหัสผ่านของ root เนื่องจากเราสามารถใช้ sudo ทำหน้าที่แทนได้ทั้งหมด แต่ถ้าใครมีความจำเป็นหรือคุ้นเคยกับการทำงานแบบเก่า ก็สามารถตั้งรหัสผ่านให้ root ได้ด้วยคำสั่ง
$ sudo passwd root
และถ้าจะสลับไปใช้แอคเค้าท์ root แบบเต็มในคอนโซลก็ต้องใช้ว่า
$ sudo -s -H


สุดท้าย ทดสอบการใช้งานโปรแกรม EDA ต่างๆ ปรากฏว่าสามารถใช้งานได้ดี ไม่มีปัญหาใดๆ (ณ ขณะนี้) ต่อไปคงสามารถแนะนำดิสโตรนี้ให้คนอื่นใช้ได้อย่างเต็มปากเต็มคำ ก็ทั้งติดตั้งง่าย ใช้งานง่าย หน้าตาก็สวยงาม โปรแกรมทันสมัย แถมเข้ากันได้กับโปรแกรม EDA ด้วย แบบนี้ไม่ต้องง้อวินโดวส์แล้วละ สำหรับรีวิวฉบับยาวแนะนำฟีเจอร์ต่างๆ สามารถอ่านเพิ่มเติมได้จาก Blognone ที่ Ubuntu 7.04 และ Ubuntu 6.06 LTS

Thursday, November 09, 2006 

My Nerd Score

I am nerdier than 89% of all people. Are you nerdier? Click here to find out!

จริงเหรอเนี่ย!!

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

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

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

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

Powered by Blogger
and Blogger Templates