มีงานที่จะต้องทำไฟล์เป็น pdf เพื่อส่งโรงพิมพ์ งานนี้ทำจาก Word ในวินโดวส์ พิมพ์ลงไฟล์โดยใช้ไดรเวอร์เครื่องพิมพ์ Image Setter แล้วจึงแปลงเป็น pdf ด้วยลินุกซ์ ด้วยคำสั่ง ps2pdf12 ซึ่งเลือกรุ่น 1.2 เพราะต้องการความเข้ากันได้

แต่เนื่องจากขนาดกระดาษของงานเป็นขนาด A5 จึงต้องเลือกพิมพ์เป็น A4 แทน

ปัญหาคือตัวโปรแกรม ps2pdf ซึ่งไปเรียกใช้ ghostscript (gs) อีกทีนึง ไม่สามารถ crop ขนาดจาก A4 เป็น A5 ได้ (จริง ๆ แล้วอาจทำได้ แต่ค้นคำสั่งไม่พบ และโรงพิมพ์ต้องการงานขนาด A5 แบบมีขอบขาวเว้นไว้ด้านละ 3 มม. ซึ่งคงจะใช้คำสั่ง gs ยาก)

ค้นไปค้นมา พบมอดูลไพธอนที่จะทำงานนี้ได้ คือมอดูล pyPdf

เริ่มเลยแล้วกัน

ติดตั้งมอดูล pyPdf

$ sudo aptitude install python-pypdf

เขียนสคริปต์ ตั้งชื่อว่า croppdf.py

Taxonomy upgrade extras: 

การรายงานบั๊ก เป็นสิ่งสำคัญที่จะช่วยปรับปรุงซอฟต์แวร์ให้ดีขึ้น ในชุมชน debian คุณจะพบการรายงานบั๊กที่เข้มข้นและรวดเร็วทันเหตุการณ์อยู่เสมอ ๆ ซึ่งจะช่วยเตือนผู้ใช้อื่นผ่าน apt-listbugs ก่อนอัปเกรดได้อย่างทันท่วงที และถ้าคุณเจอบั๊กใน debian ก็ขอสนับสนุนให้ รายงานบั๊กด้วย reportbug เพื่อให้ข้อมูลที่เป็นประโยชน์กับ debian แต่ในการรายงาน ก็ขอให้ให้ข้อมูลที่เป็นประโยชน์จริง ๆ รวมทั้งเลี่ยงการรายงานบั๊กซ้ำกับบั๊กเดิม ทั้งนี้เพื่อประหยัดเวลานักพัฒนาครับ

Topic: 

จาก ข่าวที่ ubuntuclub ชมรมโอเพนซอร์สภาคเหนือได้ตั้งเว็บ lannaoss.org เพื่อเป็นศูนย์กลางประสานงานส่งเสริมการใช้ซอฟต์แวร์โอเพนซอร์สในภาคเหนือแล้วครับ

debianclub ขอร่วมแสดงความยินดีกับความคืบหน้าครั้งนี้ และขอร่วมกระจายข่าวอีกทางหนึ่ง ก็ขอเชิญชาวภาคเหนือไปร่วมแรงผลักดันกันนะครับ เพื่อความก้าวหน้าของวงการโอเพนซอร์สของไทย

Topic: 

จำนวนแพกเกจใน Debian มีมากมายมหาศาล เวลาที่ใช้ aptitude ติดตั้งโปรแกรม สิ่งที่ต้องการมากอย่างหนึ่งจึงเป็นเรื่องการสืบค้น โดยมากแล้วเรามักจะใช้ apt-cache ค้นหาแพกเกจที่มีคำค้นอยู่ในชื่อหรือคำบรรยายแพกเกจ แต่ความจริงแล้ว aptitude เองก็สามารถสืบค้นได้ไม่แพ้ apt-cache แถมยังค้นได้ละเอียดกว่าอีกด้วย

ถ้าอยู่ในหน้าจอ fullscreen ของ aptitude ก็สามารถเริ่มค้นได้โดยกดปุ่ม '/' ซึ่งจะปรากฎกล่องโต้ตอบขึ้นมาให้ป้อนคำค้น หรือถ้าจะค้นย้อนกลับก็ใช้ปุ่ม '\' แทน เมื่อพบรายการแรกแล้ว จะค้นต่อไปก็กดปุ่ม 'n'

ช่วงนี้มีข่าวคราวหลายอย่างที่น่าสนใจ หนึ่งในนั้น คือ ข่าวของความเป็นไปได้ที่จะโจมตี SHA1 digest algorithm และอย่างที่เคยได้ยินมากับ MD5 คือ ความน่าเชื่อถือของ digest algorithm ดังกล่าวก็ลดลง และจากการที่ SHA1 ได้ใช้กันอย่างแพร่หลาย และที่สำคัญ โครงการต่าง ๆ ของ Debian ก็ได้ให้ความไว้วางใจใน Web of Trust ของ OpenPGP เป็นอย่างมาก ดังจะเห็นได้จาก Secure APT จะมีการตรวจสอบ Key ต่าง ๆ อย่างเคร่งครัด ทำให้ในคราวนี้ จะต้องมีการปรับปรุง Key กันขนานใหญ่ และถ้าติดตามข่าว ทั้งใน planet.debian.org หรือที่อื่น ๆ ไม่ว่าจะเป็น Blog ของ Debian Developer/Maintainer ก็จะพบการเตรียมการเรื่องการเปลี่ยน Key กัน

การที่เป็นผู้ใช้ Debian GNU/Linux - unstable (sid) ซึ่งมักจะมีอะไรใหม่ ๆ เข้ามาให้ทดสอบเป็นประจำ ซึ่งในคราวนี้ ก็เกิดขึ้นกับ glibc (libc6) ซึ่งมีการปรับรุ่นมาใช้ 2.9 ซึ่งมีอะไรต่าง ๆ ปรับปรุงให้ดีขึ้น ซึ่ง glibc เองเป็น library ที่มีหลาย ๆ ชุดโปรแกรมเรียกใช้งาน ทำให้การเปลี่ยนแปลงในบางเรื่อง ส่งผลกระทบกับผู้ใช้เป็นวงกว้างเช่นกัน ครั้งนี้ เจอกับตัวเอง และเพื่อน ๆ ที่ใช้งาน Debian/Ubuntu ที่มีการใช้ glibc รุ่นดังกล่าว คือ อาการที่เกิดกับ DNS Lookup ที่ปกติ เราจะทดสอบด้วยคำสั่ง nslookup หรือ host ซึ่งกรณีนี้ เราจะได้รับการตอบรับเหมือนปกติดี แต่ปัญหาอยู่ตอนที่จะเข้าใช้งาน Web หรือ FTP หรือ Services อื่น ๆ ที่เรียกใช้โดยชื่อ domain ซึ่งอาการคือ จะเข้าได้บ้าง ไม่ได้บ้าง

มีปัญหาเรื่อง cups พิมพ์ผ่านเครือข่ายไม่ได้ เป็นอยู่เครื่องเดียว ไม่ทราบว่าเป็นเพราะอะไร

แก้ชั่วคราวด้วยการสร้างซ็อกเก็ตสำหรับรับงานพิมพ์ผ่านเครือข่าย (เผื่อเอาไว้เวลาอัปเกรดรุ่นบนเดเบียนแล้ว cups ชอบตายด้วย)

เอาความรู้จาก debian: ปรับปรุง HylaFax Client โดยใช้ perl สร้างเครื่องพิมพ์เทียมขึ้นมา โดย

ที่เครื่องปรินต์เซิร์ฟเวอร์

สร้างไฟล์ perl รับงานพิมพ์ผ่าน socket สมมุติว่าเครื่องพิมพ์ชื่อ brother ติดตั้งไดรเวอร์ไว้เรียบร้อยแล้ว เราจะสร้างสคริปต์สำหรับรับงานพิมพ์ผ่านทาง socket ที่พอร์ต 5692

Topic: 

เป็นข่าวเล็ก ๆ ครับ ไม่มีอะไรมาก ใครที่ใช้ sid อยู่คงเห็นว่าเมื่อวานนี้มีการ update gnome-icon-theme ซึ่งทำให้เมนูหลักของ GNOME เปลี่ยนจากรูปรอยเท้า GNOME เป็นรูปเท้าก้นหอยที่ใช้ในหน้าโครงการ pkg-gnome ของ Debian แทน อันเนื่องมาจาก Bug #516566

Topic: 

โดยปรกติหากเราใช้งาน printer เราสามารถลงโปรแกรม CUPS ได้ ซึ่งมันจะเรียกแพกเกจ foo2zjs และ foomatic มาให้เรียบร้อย เราสามารถใช้งาน printer ได้เลยแทบจะไม่ต้อง config อะไรเพิ่มเติม แต่ foo2zjs ก็ยังมีปัญหาบ้างกับ printer บางรุ่น โดยรุ่นที่ยกตัวอย่างนี้คือ 1020 ซึ่ง foo2zjs ที่เป็นแพกเกจของ debian ใน repository สามารถตรวจพบ printer ได้เป็นอย่างดี แต่ไม่สามารถใช้งานได้ เราต้องพึ่งพา driver ไม่ฟรีบ้างเพื่อให้ใช้งานได้ครับ โดยหากมี foo2zjs อยู่แล้วก็ให้เอาออกก่อน

# apt-get remove foo2zjs

หลังจากนั้นให้ทำตามเว็บนี้นะครับ http://foo2zjs.rkkda.com/

$ wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz
$ tar zxf foo2zjs.tar.gz
$ cd foo2zjs
$ make

GNU Make หรือ make เป็นเครื่องมือควบคุมการ build โปรแกรมของยูนิกซ์ ซึ่งเป็นตัวช่วยให้เราสามารถคอมไพล์โปรแกรมที่มี source code มากๆ ได้ง่ายขึ้น แนวคิดของ make คือ หากเราต้องการคอมไพล์โปรแกรมเราก็บอก make ว่า target คืออะไร หลังจากนั้นบอกให้ make รู้ว่ากฎการสร้าง target นั้นๆ คืออะไร (rules) โดยระบุสิ่งที่เกี่ยวข้องกับการคอมไพล์นั้น (dependencies) หากมีการเปลี่ยนแปลงเกิดขึ้นจะได้ rebuild ใหม่ได้ถูกต้อง โดยมีรูปแบบ Makefile ดังต่อไปนี้

target: dependencies
<TAB>command
<TAB>...

โดย <TAB> หมายถึงกดคีย์ Tab หนึ่งครั้ง

ตัวอย่าง Makefile

Taxonomy upgrade extras: 

Pages

Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้