Tag Archives: linux

kitty.in.th news

มีข่าวมาแจ้งสามเรื่อง

  • kitty.in.th หยุด build / update rpm ของ TLE 7.0 ตั้งแต่วันนี้ (7 มีนาคม 2548) เป็นต้นไป แพ็คเกจยังอยู่ที่เดิม ดาวน์โหลด / apt ได้เหมือนเดิม คง maintain ไว้ในเซิร์ฟเวอร์อีกอย่างน้อยหนึ่งปี .. จะว่าไปแล้วก็หยุดอัปเดตมาเป็นเดือนแล้วแหละ :P
  • หยุด rpm ไปแล้ว ก็จะเริ่มทดสอบ repository สำหรับ ubuntu (hoary) กันล่ะ .. ตอนนี้มีแพ็คเกจอยู่นิดหน่อย ส่วนนึงเป็นแพ็คเกจที่แพตช์ภาษาไทยไว้ (e.g. evolution, dillo) อีกส่วนนึงคือที่อยากใช้เอง แต่ใน main / universe / multiverse มันไม่มี หรือมีแต่เก่ามากแล้ว .. ทั้งหมด build บน ubuntu hoary ถ้าต้องการใช้งานก็อาจจะต้องตามมาใช้ hoary ด้วยกัน :P ดาวน์โหลดแพ็คเกจ deb ได้ที่ ftp://ftp.kitty.in.th/pub/ubuntu/pool/unstable/ แพ็คเกจจะตั้งสถานะเป็น unstable ไว้ตลอด ไม่ว่าจะเสถียรหรือไม่ก็ตาม สำหรับ apt ให้เพิ่ม /etc/apt/sources.list ตามนี้
# Kitty Repository
deb ftp://ftp.kitty.in.th/pub/ubuntu/ kitty unstable
  • เพิ่มบทความเรื่อง Digital Photography Workflow .. หลากหลายขั้นตอนในการจัดการภาพดิจิทัล ตั้งแต่ก่อนจะกดชัตเตอร์ จนปรากฏบนเว็บ kitty.in.th :)

Digital Photography Workflow

นอกเหนือจากความสะดวกและประหยัดอันเป็นเหตุผลหลักของใครหลายๆ คนในการตัดสินใจซื้อกล้องดิจิทัลมาใช้งานแล้ว อีกหนึ่งเหตุผลที่ใครอีกหลายคนเลือกกล้องดิจิทัลแทนกล้องฟิล์มคือ อิสระในการควบคุมคุณภาพของภาพได้ด้วยตัวเอง ปรับแต่งภาพได้ง่าย .. จริงๆ แล้ว แต่ไหนแต่ไรมาการบันทึกภาพด้วยฟิล์มก็มีการแต่งภาพเหมือนกัน เพียงแต่เราไม่เคยได้สัมผัสเพราะเป็นหน้าที่ของร้านล้างอัดที่จะทำให้ภาพสีสวยสด นอกจากนี้ ร้านล้างอัดบางแห่งจะให้กรอกได้ว่าต้องการล้างอัดแบบใดเป็นพิเศษ เช่น ล้างอัดฟิล์มที่ push/pull กำหนดเวลาแช่น้ำยาได้ หรือใช้น้ำยาข้ามประเภท (cross processing) หรือดีไปกว่านั้น ร้านล้างอัดบางแห่งให้เช่าอุปกรณ์ ห้องมืด แบ่งซื้อน้ำยามาล้างอัดเองได้ .. พอมีกล้องดิจิทัลเราจึงพึ่งพาร้านล้างอัดน้อยลง งานปรับแต่งภาพที่แต่เดิมขึ้นกับร้านล้างอัดก็เปลี่ยนมาเป็นงานของเราไปด้วย .. คนที่เก็บบันทึกภาพด้วยกล้องดิจิทัลจึงหันมาเรียนรู้และทำความรู้จักกับขั้นตอนในการ develop ภาพดิจิทัล – Digital Darkroom / Digital Workflow – มากขึ้น .. จากนี้ไปภาพจะสวยหรือไม่ก็อยู่ที่ตัวเราแล้วล่ะ

Settings

digital workflow ไม่ได้มาเริ่มทำหลังจากได้ภาพแล้ว แต่เริ่มตั้งแต่ก่อนจะบันทึกภาพกันเลย .. นิตยสารบางเล่มที่รับภาพจากช่างภาพอิสระจะกำหนดไว้เลยว่าจะต้องปรับตั้งค่าของกล้องดิจิทัลไว้ยังไง แบบไหนถึงจะสะดวกในการปรับแต่งภาพในภายหลัง เมื่อจะนำภาพมาปรับแต่งในภายหลัง สิ่งสำคัญคือต้องพยายามเก็บรายละเอียดของภาพมาให้ได้มากที่สุด จะได้ปรับแต่งบนคอมพิวเตอร์ได้ง่าย ตรงนี้เลยกลายมาเป็นหลักคร่าวๆ ของการปรับค่าในการบันทึกภาพว่าให้พยายามรักษาต้นฉบับที่บันทึกให้ได้มากที่สุด ผ่านการประมวลผลด้วยซอฟต์แวร์บนกล้องให้น้อยที่สุดเท่าที่จะเป็นไปได้ .. อ่อ ลืมบอกไป กล้องดิจิทัลทุกตัวมีซอฟต์แวร์ในการปรับแต่งภาพฝังอยู่ข้างในทั้งนั้นแหละครับ white balance, sharpness, saturations, digital zoom, compression ฯลฯ ล้วนแต่เป็นฝีมือของซอฟต์แวร์บนกล้อง .. ถ้าจะบันทึกแล้วเอาไปอัดลงกระดาษทันทีก็แล้วไป แต่ถ้าเราจะเอามาเข้า workflow เป็นเรื่องเป็นราว เอามาปรับด้วยซอฟต์แวร์บนคอมพิวเตอร์เลยดีกว่า เพราะให้คุณภาพที่ดีกว่า มีได้อิสระในการปรับแต่งมากกว่า เห็นภาพชัดเจนกว่าด้วย .. การปรับตั้งค่าบนกล้องดิจิทัลให้เหมาะกับการนำมาปรับแต่งทั่วๆ ไปก็มีดังนี้

ขนาดและอัตราการบีบอัดข้อมูล: ตัวที่ทำลายคุณภาพของภาพมากที่สุดคือการบีบอัดของ JPEG เพราะมันเป็นการบีบอัดที่ยอมสูญเสียข้อมูลต้นฉบับบางส่วนไปเพื่อแลกกับขนาดที่เล็กลง (Lossy Compression) จึงมีคำแนะนำกันมาว่า ให้เก็บภาพด้วยคุณภาพสูงสุด บีบอัดน้อยที่สุด ที่ความละเอียดสูงสุดเท่าที่จะทำได้ ถ้าบันทึกแบบ lossless อย่างเช่น TIFF ได้ก็ดี .. ยิ่งถ้าได้เป็น raw ยิ่งดี เพราะ raw จะเก็บข้อมูลดิจิทัลดิบๆ จาก CCD/CMOS โดยไม่ผ่านการ post process ใดๆ เลย แถม raw อาจจะเก็บระดับสีได้มากกว่าด้วย เช่น 12 หรือ 16 bits/channel ซึ่งได้ความละเอียดของระดับสีมากกว่า JPEG ที่ใช้ 8 bits/channel

จากเรื่องของขนาดและคุณภาพแล้ว ถัดมาคือ ISO Sensitivity คำแนะนำคือให้ใช้ค่าต่ำสุดเท่าที่จะใช้บันทึก scene นั้นได้ .. เหตุผลก็คือ ISO Sensitivity ของกล้องดิจิทัลเป็นการอัดประจุไฟฟ้าในปริมาณต่างๆ กัน เพื่อให้ CCD/CMOS เลียนแบบความไวในการรับแสงที่ต่างกัน ยิ่งปรับ ISO สูงๆ ประจุก็จะเยอะ ยิ่งประจุเยอะก็จะมีเม็ดสีเข้ามารบกวน (noise) ในภาพเยอะตามไปด้วย ความสมบูรณ์ของภาพก็จะลดลง .. ทั่วไปแล้วจึงควรตั้งให้ค่าต่ำๆ เข้าไว้ ถ้าลงได้ต่ำสุดของกล้องนั้นๆ ได้ก็จะดี อย่างไรก็ตามในบาง scene อาจจะต้องยอมปรับให้ ISO สูงขึ้นเพื่อแลกกับความคมชัดในการบันทึก เช่น การถ่ายภาพที่ต้องการหยุดการเคลื่อนไหว หรือภาพที่บันทึกภายใต้สภาพแสงน้อยๆ

White Balance เป็นค่าที่ใช้ในการปรับให้สีถูกต้องในสภาพแสงต่างๆ .. เนื่องจากกล้องดิจิทัลไม่รู้ว่าอะไรคือสีขาว เมื่อได้ค่าจาก CCD/CMOS มันจะเทียบเอาว่าค่าน้อยสุดคือดำ และค่าสูงสุดคือขาว แล้วค่อยเอามาปรับว่าสี R G B ของแต่ละพิกเซลควรจะเป็นเท่าไหร่ ผลก็คือสีในภาพอาจจะเพี้ยนไปจากที่ตาเห็น มากน้อยขึ้นกับปริมาณและชนิดแหล่งกำเนิดแสงใน scene นั้นๆ .. white balance เป็นค่าที่ปรับยาก ไม่มีสูตรสำเร็จ .. การปรับ white balance ได้ใกล้เคียงสภาพแสงจริง ช่วยให้แก้ไขสีของภาพได้ง่ายขึ้นเยอะ .. เอาเป็นว่าถ้าต้องการให้สี ‘ถูกต้อง’ หรือใกล้เคียงกับสีจริงให้เลือกปรับ white balance ที่ใกล้เคียงกับสภาพแสงในขณะนั้น ถ้าแสงแดดดีก็ใช้ sunny/daylight ฟ้าครึ้มก็ใช้ cloudy หลอดใส้ใช้ incandescent หลอดนีออนใช้ fluorescent ฯลฯ .. ส่วน auto white balance กล้องบางรุ่นก็แม่น บางรุ่นก็ไม่แม่น ต้องลองทดสอบกันเอง .. อันที่จริง เรื่อง white balance กับโทนเกี่ยวข้องกับความพึงพอใจเป็นหลัก ดังนั้นอาจจะไม่ต้องการให้แม่นยำถูกต้องเสมอไป .. บ่อยครั้งที่ผมจงใจตั้ง white balance ผิดไปจากแสงธรรมชาติเพื่อให้ได้ภาพอีกแบบ เช่นเดียวกัน การปรับชดเชยแสงก็ขึ้นกับเรา .. ประเด็นก็คือ หากบันทึกได้ใกล้เคียงกับ ‘ภาพสุดท้าย’ ที่ตั้งใจให้มันออกมา เวลาปรับแต่งมันก็จะง่าย

Sharpness ปรับความคมชัด .. มีหลายกรณีที่กล้องดิจิทัลไม่สามารถถ่ายภาพได้คมเป็นใบมีดเหมือนที่ใครเข้าใจ เพราะยังไงก็มีข้อจำกัดของเลนส์และการโฟกัส เพื่อให้ภาพดูคมชัดขึ้น กล้องดิจิทัลหลายๆ รุ่นมักจะทำ unsharp mask เพื่อปรับภาพให้ดูคมขึ้น .. การทำ unsharp mask จริงๆ แล้วก็คือทำให้สีเข้มให้เข้มยิ่งขึ้นและอ่อนให้อ่อนกว่าเดิมตรงจุดที่เป็นขอบของวัตถุในภาพ จะมีผลกระทบกับ histogram ของภาพ และทำให้เห็นเม็ดสีรบกวนเยอะขึ้นได้ด้วย จึงไม่ควรจะตั้ง sharpness เป็น + หรือ – (note: การไม่ทำ unsharp mask บางกล้องให้ตั้ง sharpness = 0 บางกล้อง sharpness = none ) .. หากต้องการปรับให้ภาพดูคมชัด มาทำบนคอมพิวเตอร์ดีกว่า พลาดก็ยังมี undo และยังปรับได้ละเอียดกว่าด้วย :)

โหมดถ่ายภาพแบบต่างๆ เช่น Portrait, Landscape, Macro, Hi-Speed, Night Portrait, Program, Aperture Priority (Av), Shutter Priority (Tv), Manual .. ถ้าเป็นไปได้ควรเลือกอยู่แค่ 3 แบบคือ Av, Tv, Manual เพราะโหมดอื่นๆ อาจจะมีการปรับแต่งสี ความคม ฯลฯ ให้อัตโนมัติ เช่น โหมด Portrait ของกล้องบางตัวจะปรับสีไปทางแดง-เหลืองนิดๆ เพื่อให้ผิวของแบบดูไม่ซีดและอาจจะปรับความคมให้ลดลงเพื่อให้ภาพ soft ลง .. โหมด Landscape มักใช้ถ่ายภาพวิวก็จะปรับสีไปทางเขียว-ฟ้าต้นไม้จะได้สวยท้องฟ้าจะได้แจ่ม และปรับความคมมากกว่าปกติ .. การเลือกโหมดบันทึกภาพที่เหมาะสมอาจจะช่วยให้ได้ภาพสวยได้ทันทีที่กดชัตเตอร์ แต่ถ้าจะเอามาปรับแต่งทีหลังจะกลายเป็นเพิ่มความยุ่งยากของ workflow .. อีกทั้งโหมดโปรแกรมอัตโนมัติทั้งหลายจะไม่ยอมให้ควบคุมความเร็วชัตเตอร์หรือระยะชัดลึกจึงอาจจะไม่ได้ภาพอย่างที่ต้องการ .. โหมดกึ่งอัตโนมัติอย่าง Av, Tv หรือ Manual เต็มๆ จะให้อิสระในการควบคุมมากกว่า และมีการปรับแต่งด้วยซอฟต์แวร์บนกล้องน้อยกว่าด้วย :)

หลักๆ ที่ควรจะปรับก็คงมีเท่านี้แหละครับ .. ออกไปกดชัตเตอร์กันดีกว่า :)

Shoot !

ในบางแง่มุม กล้องดิจิทัลเองก็มีข้อจำกัดมากอยู่เหมือนกันเมื่อเทียบกับกล้องฟิล์ม สิ่งที่กล้องดิจิทัลด้อยกว่ากล้องฟิล์มและเป็นสิ่งที่ต้องระวังเวลาจะบันทึกภาพก็คือ ‘Latitude’ อธิบายคร่าวๆ ก็คือ ค่าความยืดหยุ่นของฟิล์มว่าทนต่อความผิดพลาดในการวัดแสงได้มากน้อยขนาดไหน ฟิล์มมี latitude สูง เรียกว่ามีพื่นที่เผื่อในกรณีวัดแสงพลาดค่อนข้างมาก ฟิล์มสไลด์ดีๆ วัดแสงผิดสัก 1-2 สต็อปก็ยังได้ภาพที่ดีสีจัดจ้าน .. ส่วน CCD/CMOS จะมี latitude ต่ำมาก วัดแสงพลาดแล้วต้องมานั่งแก้ไข ซึ่งมักจะไม่ได้ผลดีเท่าไหร่ ดังนั้นการอ่านและวัดแสงให้แม่นยำเป็นเรื่องสำคัญอันนึงที่ต้องฝึก (จริงๆ แล้วไม่ว่าจะเป็นกล้องดิจิทัล หรือฟิล์มก็ต้องฝึกเรื่องวัดแสง) .. อย่างน้อยที่สุดคือต้องระวังเรื่อง blow out เพราะมันแก้คืนไม่ได้ .. blow out เกิดจากเราปล่อยให้กล้องบันทึกแสงในปริมาณมากเกินไป ทำให้ได้ภาพหรือบางส่วนของภาพขาวสว่างมากจนไม่เหลือรายละเอียดปรากฏ กล้องบางรุ่นหลังจากบันทึกภาพแล้วจะดู highlight ซึ่งเป็นจุดที่เกิด blow out ในภาพได้ หรือบางรุ่นจะมี histogram ก็ใช้ดูได้เช่นกัน .. histogram เป็นกราฟบอกการกระจายของโทนจากดำไปขาว ภาพที่ over expose ลักษณะ histogram จะเอียงไปทางขวา ยิ่งถ้าติดขอบด้านขวาก็แสดงว่าเกิด blow out แน่นอน .. และเพราะ blow out มันทำให้รายละเอียดของภาพหาย กล้องบางตัวจึงมีการปรับจูนการวัดแสงเพื่อให้ได้ภาพ under expose นิดๆ ประมาณ 0.3 – 0.5 stop .. ไม่ต้องกังวลมากถ้าภาพออกมามืดนิดๆ ยังไงก็ดีกว่าทำให้รายละเอียดหายเพราะถ่ายเวอร์เกินไป .. เอาล่ะ หลังจากได้ภาพมาแล้ว ที่เหลือเป็นหน้าที่ของซอฟต์แวร์บนคอมพิวเตอร์กันล่ะ :)

Generic Workflow

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

  1. ดาวน์โหลดภาพเข้าเครื่องคอมพิวเตอร์ มีคำแนะนำว่าควรจะแบ่งไดเรกทอรี่เป็นสัดส่วน ตั้งชื่อให้สื่อความหมายจะได้สะดวกในการค้น อาจจะตั้งชื่อไดเรกทอรี่ตามเหตุการณ์ที่ไปบันทึกภาพมา หรือชื่อสถานที่ท่องเที่ยว กำกับวันที่ไว้ด้วยก็อาจจะช่วยค้นหาได้ง่ายขึ้นเช่นกัน
  2. ซอฟต์แวร์สำหรับดูภาพหลายๆ ตัว ช่วยจัดระบบภาพได้ โดยให้เราการกำหนดหมวดหมู่หรือใส่คำบรรยายกำกับภาพ ถ้าจัดระบบดีๆ ก็จะช่วยให้ค้นหาภาพได้ง่ายขึ้น .. การกำหนดหมวดหมู่อาจจะแบ่งได้หลายแบบ เช่น แบ่งตามประเภทของภาพ เป็น ภาพบุคคล วิว น้ำตก ภูเขา ทะเล ฯลฯ .. หรือภาพถ่ายครอบครัวก็อาจจะแบ่งตามสมาชิกในครอบครัวก็ได้ .. คำบรรยายอาจจะเขียนกำกับลักษณะ บรรยากาศ หรือ ความรู้สึกขณะบันทึกภาพก็ได้
  3. สร้าง thumbnail ไว้ จะได้ browse ได้เร็วขึ้น .. โปรแกรมส่วนใหญ่จะทำให้อัตโนมัติ อย่างไรก็ตามมีคำแนะนำว่า ถ้าโปรแกรมสามารถบันทึก thumbnail แยกเป็นไดเรกทอรี่ได้ก็จะดี เพราะเวลาเก็บลง CD จะได้บันทึก thumbnail ไว้ด้วย ไม่ต้องเสียเวลาสร้าง thumbnail ใหม่
  4. เก็บต้นฉบับลง offline media สักสองสำเนา เอา CD-R ก็ได้ แผ่นไม่กี่ตังค์ เสียภาพบางภาพไปไม่คุ้มกันหรอกครับ .. หากภาพยังไม่เต็มแผ่นพอดี ก็เผาเก็บลง CD-RW ก่อนก็ได้ ทำไปจนกว่าแผ่น CD-RW เต็มค่อยถ่าย CD-RW ลง CD-R แล้วเอาแผ่น CD-RW มาหมุนเวียนใช้งานต่อ .. แผ่น DVD+/-R/RW ก็ใช้เทคนิคเดียวกัน
  5. คัดเลือกภาพจากต้นฉบับที่ต้องการเอาไปใช้งาน แนะนำว่าให้ลบไฟล์ที่ไม่ต้องการใช้จริงๆ ทิ้งไปก่อน (อย่าลืมเก็บลง offline media !) แล้วค่อยก๊อปปี้ไฟล์ที่จะเอาไปใช้แยกออกมาไว้อีกไดเรกทอรี่สำหรับเอาไปปรับแต่งภาพ .. วิธีนี้จะยังเหลือภาพต้นฉบับที่จะนำไปใช้บนฮาร์ดดิสก์ เกิดข้อผิดพลาดกับภาพที่แต่งยังไงก็มีต้นฉบับให้เริ่มใหม่โดยไม่ต้องไปค้นออกมาจาก CD-R
  6. ปรับแต่งภาพให้ดีขึ้น .. ก่อนอื่น ต้อง calibrate จอก่อน ถ้าไม่รู้จะทำไงก็ลองทำตามคำแนะนำ ของ http://www.displaycalibration.com/ หรือ http://www.normankoren.com/makingfineprints1A.html หลังจากได้จอที่เที่ยงตรงพอสมควรแล้วค่อยมาปรับแต่งภาพกัน .. การปรับแต่งภาพขั้นพื้นฐานอยู่ไม่กี่อย่างครับ แต่ถ้าได้ทำสักนิดภาพจะแจ่มขึ้นอีกเป็นกอง …

  • Rotate – โปรแกรมหลายโปรแกรมยังไม่ฉลาด มันไม่รู้ว่าเราถ่ายภาพมาแนวตั้งหรือแนวนอน หมุนภาพซะให้ถูกต้อง โปรแกรมหลายๆ ตัวจะทำ lossless JPEG rotation ได้ ช่วยให้ไม่เสียคุณภาพขณะหมุน
  • Crop – การเปลี่ยนกรอบภาพอาจช่วยให้องค์ประกอบของภาพดีขึ้น ได้ภาพน่าสนใจมากขึ้น .. เวลา crop ภาพพยายามให้ aspect ratio คงเดิมได้ก็ดี เช่นภาพขนาด 1600×1200 ถ้า crop แนวนอนได้ 400 pixels ก็ควรจะได้แนวตั้ง 300 pixels .. อย่างไรก็ตาม การปรับ aspect ratio ก็เหมือนกับกฏการจัดองค์ประกอบภาพอื่นๆ ที่ไม่จำเป็นต้องทำตามทุกครั้งไป .. ภาพบางภาพกำหนด aspect ratio เป็น 1:1 อาจจะสวยกว่า 3:2 หรือ 4:3 หรือ 16:9
  • Level – อันนี้ต้องอธิบายละเอียดนิด เพราะเป็นตัวหลักที่จะต้องปรับแทบทุกภาพ .. level เป็นค่าที่บอกระดับความต่างของโทนแต่ละสี ปกติแล้วมีค่า 0 -255 (i.e. 8 bits/channel) โดยที่ 0 = ดำ 255 = ค่าสว่างสุดของสีนั้น .. ภาพที่เราบันทึกมาบางครั้งมันจะมีโทนไปกองอยู่ช่วงใดช่วงนึง ดูได้จาก histogram .. การปรับ level จะเป็นการขยายช่วงโทนของภาพให้กระจายเต็มที่ตั้งแต่ 0 – 255 ทำให้ความแตกต่างของสีสันมีมากขึ้น brightness contrast สูงขึ้น ผลก็คือ ภาพจะดูมีมิติมากขึ้น สีสันสดใส … ตัวควบคุม level มีสามค่า คือ black point กำหนดค่าต่ำสุดอยู่ทางซ้ายมือ, white point กำหนดค่าสูงสุดอยู่ทางขวามือ และ gamma กำหนดแฟคเตอร์การกระจายโทน .. การปรับ level ทั่วไปแล้วจะดูจาก histogram ของสี โดยเลื่อน black point มาที่ปลายด้านซ้ายของ histogram และเลื่อน white point มาไว้ที่ปลายด้านขวาของ histogram เสร็จแล้วค่อยปรับ gamma ถ้าต้องการ .. การปรับ level อาจจะปรับที่โทน (สีดำ) ตัวเดียวก็ได้ หรือ ปรับแยกแต่ละช่องสี (R G B) ก็ยิ่งดี .. วิธีการปรับนี้ไม่ใช่สูตรสำเร็จ ดังนั้นไม่ต้องไปยึดติดกับวิธีการหรือค่าต่างๆ มากนัก คำแนะนำในการปรับ level เป็นแค่ตัวช่วยคร่าวๆ คนที่ตัดสินใจว่าพอดีไม่ใช่ histogram แต่เป็นตัวเราเองต่ะหาก :)

มากกว่านี้ก็อาจจะมี color balance, sharpening, soft, noise removal หรือตกแต่งกันระดับ pixel เช่น ลบสิวฟ้า ทำหน้าเด้งหน้าใส ฯลฯ .. ที่ควรจะต้องทราบคือ ลำดับก่อน-หลังในการปรับแต่งก็สำคัญเหมือนกัน อย่าง unsharp mark ถ้าเป็นไปได้ให้ทำเป็นอันดับท้ายสุด เพราะมันกระทบกับ histogram ของภาพ ถ้าทำ unsharp mask ก่อนแล้วมาปรับ level ทีหลังจะได้ผลลัพธ์ไม่ค่อยดีนัก

เก็บภาพที่แต่งเสร็จแล้วลง offline media ใช้วิธีเดียวกับการเก็บต้นฉบับ

My workflow

เวลานี้ผมใช้ workflow จัดการภาพเพื่อความสะดวกในการค้นหาและเลือกภาพ publish ขึ้นเว็บ อุปกรณ์ที่ใช้มีกล้องดิจิทัลสองตัว (Olympus C700UZ + Nikon D70) ทั้งสองปรับตั้งค่าต่างๆ ตามที่เขียนไว้ข้างบน + ใช้ Adobe RGB + Custom Curve สำหรับ D70 .. การบันทึกภาพ ถ้าเป็นไปได้จะบันทึกเผื่อพื้นที้ไว้แล้วมา crop ปรับองค์ประกอบภาพทีหลัง .. workflow บนคอมพิวเตอร์ทำบนลินุกซ์ทั้งหมด ขั้นตอนก็มีดังนี้

  • โหลดภาพจากกล้อง มีสองวิธี ถ้าเป็น USB Storage ก็ cp เอา ถ้าเป็น PTP mode ก็จะใช้ gtkam โหลดมาแทน .. ข้อดีของ gtkam คือ เห็น thumbnail ก่อน เลยเลือกโหลดเป็นภาพๆ ได้ แต่ข้อเสียก็คือ gphoto2 ที่เป็น library ในการโหลดภาพไม่ยอมปล่อยหน่วยความจำจนกว่าจะโหลดภาพครบ ถ้าโหลดภาพจำนวนเยอะๆ กินหน่วยความจำระบบเยอะไปด้วย .. ปกติผมจะใช้ USB Storage เพราะจะโหลดภาพทั้งหมดอยู่แล้ว ชื่อไดเรกทอรีตั้งในรูปแบบ yymmdd-place เปลี่ยน permission ภาพทั้งหมดเป็น 644
  • ภาพที่กำหนด color space เป็น Adobe RGB ชื่อไฟล์มันจะเป็น _dscxxxx.nef แทนที่จะเป็น dsc_xxxx.nef ตามปกติ ผมสั่ง rename โดยใช้ script นี้:
#!/bin/sh
for f in _dsc*.*; do
    x=`echo -n dsc_; echo $f | cut -f2 -dc`
    mv $f $x
done;
  • ภาพ NEF(Nikon raw image format) ตอนนี้ยังไม่มีโปรแกรม viewer บนลินุกซ์ เลยใช้วิธีถอด JPEG (full resolution + basic compression) ที่ฝังอยู่ใน NEF มาใช้ จะได้ browse เลือกดูสะดวกๆ
$ for f in *.nef; do exiftool -b -JpgFromRaw $f > `basename $f .nef`.jpg; done
  • ใช้ GQview ในการจัดการภาพ ตั้งให้ GQview เก็บ thumbnail ลงใน .thumbnail ในไดเรกทอรี่ที่เก็บภาพ เวลาเปิดดูภาพจาก CD-R จะได้มี thumbnail พร้อมใช้
  • สำเนาต้นฉบับลง CD-R สองชุด
  • เอา GQview คัดภาพที่ต้องการลงเว็บ สำเนามาไว้ในไดเรกทอรี่สำหรับแต่งภาพ .. ขั้นตอนการปรับแต่งจะทำในไดเรกทอรีแต่งภาพเท่านั้น จะได้ไม่เผลอไปแก้ภาพต้นฉบับโดยไม่ตั้งใจ
  • อ่านภาพ NEF เข้ามาบน The GIMP ด้วย UFRaw plug-in .. ภาพจากไฟล์ NEF สามารถปรับเปลี่ยน white balance , exposure, saturation และอื่นๆ ได้ขณะ import และยังเลือก input/output color profile ได้ด้วย

  • crop ภาพให้ได้กรอบที่ต้องการ
  • แก้ไขภาพระดับ pixel ถ้าจำเป็น
  • ปรับ level/curve
  • ย่อภาพลงเหลือ 500 x 331
  • ใส่กรอบภาพ ตัวหนังสือ ฯลฯ
  • บันทึกภาพเก็บเป็นไฟล์ JPEG ผมตั้งเป้าขนาดไฟล์ไว้ไม่ให้เกิน 100 KB/ภาพ ภาพบนเว็บใหญ่เกินไปมันจะโหลดช้า พารามิเตอร์ที่ใช้คือ
    • Quality อยู่ระหว่าง 85 – 92 มากกว่านี้ไฟล์จะขนาดใหญ่ขึ้นมาก น้อยกว่านี้จะเริ่มเห็นคุณภาพที่ตกลงไป
    • Smooth = 0 .. smooth เป็นค่าปรับการกลมกลืนของสี ยิ่งตั้งค่าสูงๆ ก็จะลดจำนวนสีไปได้มาก ตั้งค่าเป็น 0 เท่ากับว่าไม่มีการลดทอนสีด้วยการ smooth
    • Force Baseline JPEG เพื่อความมั่นใจว่า JPEG decoder ใดๆ ก็จะอ่านภาพขึ้นมาได้เสมอ
    • Progressive … ภาพ JPEG ทั่วไปเวลา decode จะเห็นภาพจากซ้ายไปขวา บนลงล่าง .. Progressive JPEG จะเห็นภาพเบลอๆ ทั้งภาพแล้วค่อยๆ ชัดขึ้นๆ ..เลือก Progressive JPEG ช่วยลดขนาดภาพลงได้นิดหน่อย
    • Subsampling = (1×1, 1×1, 1×1) .. ค่า subsampling เป็นอัตราการ downsampling channel แดง/เขียว น้ำเงิน/เหลือง brightness ตามลำดับ .. ถ้าตั้ง 2×2 1×1 1×1 แปลว่า channel แดง/เขียวจะถูก downsampling ลงเหลือครึ่งนึงของตัวอื่น เช่น เดิมมี 256 ระดับสีก็จะลดลงเหลือ 128 ระดับ จึงใช้พื้นที่เก็บน้อยลง .. ถ้าตั้ง 1×1 1×1 1×1 แปลว่าไม่มีการ downsampling เลย
    • DCT Method = Floating-point DCT .. Discrete Cosine Transform เป็นหัวใจของการบีบอัดของ JPEG ตัวเลือกนี้มีไว้เปลี่ยนความแม่นยำในการคำนวณ DCT ซึ่ง output จะไม่มีผลกับขนาดของภาพ แต่มีผลกับคุณภาพและเวลาในการคำนวณเป็นหลัก เลือกใช้ Floating-point ทำให้การคำนวณ DCT มีความแม่นยำสูง และได้คุณภาพของภาพที่ดีกว่า และแน่นอนว่ามันคำนวณช้ากว่าด้วย .. แต่คอมพิวเตอร์ทำงานเร็ว ไม่รู้สึกว่าช้าหรอก :)
    • ไม่บันทึก thumbnail / EXIF data ขนาดไฟล์จะลดลงได้อีก 10-30 KB :)
  • ใช้ jhead หรือ exiftool อ่านข้อมูล EXIF มาสร้างเป็น description จะอ่าน EXIF มาจากไฟล์ต้นฉบับ
$ for f in *.jpg; do
    exiftool /path/to/original/`basename $f .jpg`.nef > desc/$f.html;
done
  • ใช้ jhead ลบ EXIF และ header ที่ไม่จำเป็น ออกจากไฟล์ภาพใน web gallery ที่อาจจะเผลอทิ้งไว้
$ jhead -dc *.jpg
$ jhead -de *.jpg
$ jhead -dt *.jpg
  • สร้าง thumbnail ของ web gallery โดยใช้โปรแกรม convert ของ ImageMagick ย่อลงเหลือ 20% … สั่งเป็น batch เลยทีเดียว เร็วกว่าย่อทีละภาพบน GIMP :)
$ for f in *.jpg; do
    convert -quality 85 -resize 20%x20% $f tn/tn_$f;
done
  • เขียน description ของแต่ละภาพ ใช้ gedit หรือ leafpad
  • sync web gallery ขึ้นเว็บเซิร์ฟเวอร์ด้วย rsync
$ rsync -e ssh -auv --progress /path/to/gallery/ user@server:/path/to/gallery/

จบแล้ว .. สรุปสักนิด .. digital workflow อาจจะดูเหมือนสร้างภาระงานให้มากขึ้น ซึ่งก็เป็นอย่างนั้นจริงๆ .. แต่ที่เขียนมานี้ตั้งใจให้เป็นเพียง guideline และคำแนะนำคร่าวๆ สำหรับใครก็ตามที่ต้องการเริ่มต้นกับการปรับแต่งภาพ มากกว่าจะสูตรตายตัวที่ต้องทำทุกครั้งกับทุกภาพ .. ขั้นตอนทั้งหมดที่กล่าวมาจะทำตามก็ได้ ไม่ทำก็ได้ หรือทำแต่ไม่เหมือนกันก็ได้เพราะ workflow ส่วนนึงต้องหาแนวทางที่ถนัดกันเอง .. ขอให้สนุกกับการบันทึกภาพ

.. May the light be with you :)

Linux Kernel 2.6.11

rc ซะตั้งนาน ในที่สุดก็รีลีสซะที .. make oldconfig จาก 2.6.10-ac12 แล้วมี NEW ตามนี้

  • Preempt The Big Kernel Lock (PREEMPT_BKL) – This option reduces the latency of the kernel by making the big kernel lock preemptible สำหรับ desktop น่าจะทำให้ระบบตอบสนองได้ดีขึ้น
  • CPU frequency translation statistics (CPU_FREQ_STAT) – export สถิติเกี่ยวกับ CPU frequency scaling ผ่านทาง sysfs
  • PCI Express support (PCIEPORTBUS) – สนับสนุนบัส PCI Express
  • ATA over Ethernet support (ATA_OVER_ETH) – สนับสนุน ATA over Ethernet block devices (e.g. EtherDrive)
  • Backlight & LCD device support (BACKLIGHT_LCD_SUPPORT) – สนับสนุนการปรับตั้งค่า เปิด/ปิด ตั้ง power management ของ Backlight และ LCD
  • Emu10k1X (Dell OEM Version) (SND_EMU10K1X) – ไดรเวอร์สำหรับ SB Live! (Dell OEM)
  • SB Audigy LS / Live 24bit (SND_CA0106) – ไดรเวอร์สำหรับ SB Audigy LS และ Live 24
  • VIA 82C686A/B, 8233 based Modems (SND_VIA82XX_MODEM) – ไดรเวอร์ VIA MC97 Modem
  • USB Garmin GPS driver (USB_SERIAL_GARMIN) – ไดรเวอร์ USB สำหรับ Garmin GPS
  • USB TI 3410/5052 Serial Driver (USB_SERIAL_TI) – Serial ไดรเวอร์สำหรับ TI3410/5052
  • Siemens ID USB Mouse Fingerprint sensor support (USB_IDMOUSE) – สนับสนุนการใช้งาน fingerprint sensor ของ Siemens ID Mouse
  • InfiniBand support (INFINIBAND) – สนับสนุนอุปกรณ์ InfiniBand
  • JFS Security Labels (JFS_SECURITY) – JFS Security Label สนับสนุนการใช้งานร่วมกับ SELinux
  • Debug preemptible kernel (DEBUG_PREEMPT) – Print warnings if kernel code uses it in a preemption-unsafe way – ค่า default เป็น Yes ด้วย :P
  • NSA SELinux AVC Statistics (SECURITY_SELINUX_AVC_STATS) เก็บสถิติของ Access Vector Cache .. ใช้ avcstat ดูสถิติ
  • Support for VIA PadLock ACE (CRYPTO_DEV_PADLOCK) – สนับสนุน Advanced Cryptography Engine ใน processor ของ VIA บางรุ่น ทำให้เข้า/ถอดรหัสได้เร็วขึ้น

จริงๆ แล้วมีมากกว่านี้แน่ๆ เพราะบาง option ผม disable ไว้ตั้งแต่แรก อะไรใหม่ๆ ภายใต้ option ที่ disable ไว้ก็จะไม่แสดงเวลา make oldconfig ..หากันเอาเองเน้อะ ;p

In open source world, you contribute, not control (TM)

ต่อจากเมือสัปดาห์ก่อนที่แจ้งไปว่าทะเลตัวถัดไปจะเปลี่ยนมาใช้ deb แทน และจะใช้ ubuntu เป็นฐาน (ค่อนข้างแน่นอนแล้ว) .. หากเป็นไปตามที่คาด ทะเลตัวถัดไป (TLE 8.0 หรือ TLE-X ดี ? :P) จะไม่ใช่การสร้าง distro ทั้งตัวเหมือนที่ผ่านมา แต่เป็นการเอา ubuntu มา customize ให้เหมาะกับผู้ใช้คนไทย + ใส่ applications ที่สนับสนุนภาษาไทยเข้าไป ..ไลบรารีหลักๆ ควรจะเป็นของ ubuntu อยู่ เพื่อให้ทะเลตัวใหม่สามารถใช้แพ็คเกจจาก ubuntu/debian repositories ได้ด่้วย

สำหรับ kitty.in.th repository ก็จะมีการเปลี่ยนเหมือนกัน .. อย่างแรกสุด เครื่องที่ใช้งานประจำสองเครื่อง (peorth – notebook กับ yggdrasil – desktop to build package) เป็น ubuntu แล้วทั้งคู่ .. แพ็คเกจ .kit.rpm ของ kitty.in.th สำหรับ TLE 7.0 จะหยุดอัปเดตสิ้นเดือนกุมภาพันธ์นี้ และจะเปลี่ยนไป build/rebuild deb บน ubuntu แทน .. ตอนนี้เตรียม repository สำหรับ ubuntu ไว้แล้ว แต่ยังไม่รีลีสอย่างเป็นทางการ เพราะยังไม่ลงตัวเรื่องการจัด repository .. ยังไม่มี workflow ที่ดี .. ที่สำคัญคือยังต้องรู้จักวัฒนธรรมการทำงานในแบบของ debian/ubuntu มากกว่านี้ (/me กำลังอ่าน debian new maintainer’s guide :P) .. คาดว่าแพ็คเกจ .kit.deb จะมีปริมาณไม่มากนักเพราะ ubuntu/debian repository มีแพ็คเกจอยู่แล้วเยอะแยะ .. ที่คงไว้จะเป็นแพ็คเกจที่ยังต้องแพตช์ภาษาไทย แพ็กเกจที่ผมอยากใช้แต่ไม่มีใน ubuntu/debian หรือไม่สดอย่างที่ต้องการ (รอ gimp 2.2.3 ร่วมสองสัปดาห์แล้ว ยังไม่มาเลย .. ไหนจะ gaim กะ ufraw ตัวใหม่อีก .. :P)

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

[singlepic id=739]

ส่วน title blog เขียนไว้เท่ห์ๆ งั้นแหละ .. โปรดอย่านำไปโยงกับเนื้อหา ข้อความ #tlwg LTN หรือเหตุการณ์ใดๆ ที่เกิดขึ้นช่วงนี้เป็นอันขาด .. หุๆๆๆ :P

Ubuntu – part 2

เพิ่มเติม Ubuntu – Hoary

  • ตอนติดตั้งจะไม่มีภาษาไทยให้เลือก .. ติดตั้งเสร็จแล้วก็มา localedef ภาษาไทยเอง
  • keymap ภาษาไทย ตั้งบน GNOME ได้เลย
  • evolution 2.1.4 ใช้ calendar แล้วมีปัญหาเรื่อง new/delete events จะมี dialog ขึ้นมาแจ้ง error แต่ก็ยัง new/delete ให้ .. น่ารำคาญนิดๆ .. ส่วนการรับส่งเมลเสถียรดี .. Encoding ไม่มี TIS-620 ให้เลือก แต่กรอกเองได้ (ส่ง patch ไปเป็นชาติแล้ว ไม่ apply ซะที)
  • X.Org 6.8.1 .. DRI ของ i915 ทำงานได้ แต่ GL ไม่ยอมใช้งาน DRI .. เพิ่งเช็คดูวันนี้ พบว่าปัญหามาจาก DRM module ของ xorg เอง .. ก๊อปเอา i915 ของ TLE มาใส่ ใช้ได้เสยย .. glxgears เร็วขึ้นจาก 580 เป็น 610 fps (kernel 2.6.10)
  • Freetype 2 (libfreetype6) ของ Debian/Ubuntu enable unpatented bytecode interpreter by default ใช้กับฟอนต์ภาษาอังกฤษสวย ภาษาไทยเละ .. หาทางแก้ตั้งนาน มาเจอว่าเป็นที่ autohint .. แก้ใน /etc/fonts/local.conf นิดเดียว หาย .. ตอนนี้ full hinting งามทั้งไทยทั้งอังกฤษ :)
  • Nautilus ใน GNOME 2.9.90 ตั้ง icon = 75% แล้วตัวหนังสือก็ = 75% ไปด้วย อ่านยาก :(
  • หลายๆ โปรแกรมไม่ติดตั้ง menu .. บางตัวก็ยังไม่มีใน repository .. บางตัวก็หยิบยืมมาจาก Debian ซึ่งยังไม่สดเท่า TLE .. ตอนนี้เริ่มหัดทำแพ็คเกจ .deb .. สงสัยจะได้ run repository อีกแล้ว แต่คงไม่ได้ contribute เข้า Debian/Ubuntu เพราะ quality คงไม่ผ่าน :P
  • ควบคุม service ในแต่ละ runlevel ไม่ค่อยสะดวก .. gnome-system-tools ของ Ubuntu ก็ไม่มี services-admin ซะแล้ว :(

อ่อ .. Ubuntu ตั้ง default runlevel = 2 :)

Ubuntu

เมื่อวานลง Ubuntu (Warty Warthog) บนเครื่อง peorth แล้ว .. ลงเสร็จ ใช้งานแล้วไม่สะใจ .. เลย apt-get dist-upgrade เป็น Hoary Hedgehog .. Hoary เป็นรีลีสถัดไปของ Ubuntu ตอนนี้ยังเป็น unstable อยู่ และจะเป็น stable ในเดือนเมษายนนี้ .. ปัจจุบัน Hoary ใช้ kernel 2.6.10 + X.Org 6.8.x + GNOME 2.9.x + Evolution 2.1.x + .. bleeding edge พอสมควร แต่ก็เสถียรใช้ได้ .. ทำงานทั้งวัน apt-get update / upgrade / install / remove ไปเยอะ ยังไม่เกเร .. เอ้า .. ลองใช้ดูสักพักละกัน :P

ข่าวอย่างไม่เป็นทางการ TLE ตัวถัดไปจะ base on Debian หรือ Ubuntu .. ยังไม่รู้ว่าจะเป็น TLE == Ubuntu (maintain repo เองทั้งหมด) หรือ TLE = Ubuntu + customize (maintain เฉพาะ modified/customized packages เสริม packages ของ Ubuntu + Debian)

/me .. แบบหลังเบาแรงกว่ามาก concentrate กับงาน customize ได้มากกว่า มีเวลาไปพัฒนาเรื่องอื่นๆ ที่ต้องทำด้วย e.g. UI, Themes, PO files, Hacking, Debugging, Document

Linux Kernel 2.6.10

ลินุส ทอร์วาลด์ ประกาศรีลีส เคอร์เนล 2.6.10 เมื่อคืนคริสต์มาสอีฟที่ผ่านมา พอดีว่าอยู่บ้านเลยโหลด patch-2.6.10.bz2 มาแทนตัว full source .. สั่ง make oldconfig แล้วเห็นว่ามีอะไรใหม่ๆ อยู่พอสมควร จาก 2.6.9-ac14 (latest ac-patch = ac16) ..

  1. Kernel Userspace Events (KOBJECT_UEVENT) .. สำหรับสื่อสารกันระหว่าง kernel space กับ userspace ผ่านทาง netlink socket .. hotplug ก็สามารถสื่อสารผ่าน netlink socket ได้ด้วย ถ้า enable hotplug
  2. Source checksum for all modules (MODULE_SRCVERSION_ALL) .. ฝัง checksum ของ source ไว้ใน MODULE_VERSION สำหรับ identify source ที่คอมไพล์เป็น module ได้ละเอียดขึ้น .. อันนี้สำหรับ maintainer ที่มักแก้ source แต่ไม่เปลี่ยน version
  3. x86 Processor family มี Transmeta Efficeon (MEFFICEON) เพิ่มขึ้นมา
  4. ACPI: Video (ACPI_VIDEO) เพิ่ม ACPI สำหรับ on-board graphic devices ตามข้อกำหนดของ ACPI 2.0
  5. ACPI: IBM ThinkPad Laptop Extras (ACPI_IBM) ใช้กับเครื่อง IBM Thinkpad สนับสนุนคีย์พิเศษ bluetooth ultrabay ฯลฯ
  6. nVidia nForce2 FSB changing (X86_CPUFREQ_NFORCE2) ไดรเวอร์ frequency scaling สำหรับ FSB ของ nForce2
  7. เปลี่ยน CONFIG_PCMCIA เป็น CONFIG_PCCARD .. โดย PCCard แบ่งออกเป็น 16-bit PCMCIA กับ 32-bit CardBus … สรุปว่าใครใช้ PCMCIA/CardBus ได้ reconfig ใหม่หมดเลย (- -‘)
  8. Plug and Play ACPI support (PNPACPI) .. สนับสนุน Plug and Play ผ่าน ACPI สำหรับ detect อุปกรณ์ต่างๆ
  9. Default number of RAM disks (BLK_DEV_RAM_COUNT) จำนวน RAM disk โดยปริยาย = 16
  10. Source directory of cpio_list (INITRAMFS_SOURCE) กำหนดไดเรกทอรีที่ฝังใน initramfs
  11. Packet Writing on CD/DVD media (CDROM_PKTCDVD) สนับสนุน packet writing ผ่าน MMC/Mt Fuji ATAPI หรือ SCSI
  12. TCP socket monitoring interface (IP_TCPDIAG) สนับสนุน TCP socket monitoring interface
  13. Connection mark tracking support (IP_NF_CONNTRACK_MARK) สนับสนุน connection mark match ใน IP NetFilter
  14. Hashlimit match support (IP_NF_MATCH_HASHLIMIT) สนับสนุนการกำหนด policy เพื่อ limit อัตราการรับ/ส่งข้อมูล โดยใช้ IPTable rule เพียงข้อเดียว
  15. Conexant 2388x (bt878 successor) support (VIDEO_CX88) .. ไดรเวอร์ V4L สำหรับชิป Conexant 2388x .. อ่อ Conexant ซื้อ Brooktree ไปนิ
  16. Intel 830M/845G/852GM/855GM/865G support (FB_INTEL) .. ไดรเวอร์ framebuffer สำหรับชิป Intel 830M/845G/852GM/855GM/865G
  17. S3 Savage support (FB_SAVAGE) .. ไดรเวอร์ framebuffer สำหรับชิป S3 ตระกูล Savage
  18. SL811HS HCD support (USB_SL811_HCD) .. สนับสนุน SL811HS USB Controller
  19. USB Cypress M8 USB Serial Driver (USB_SERIAL_CYPRESS_M8) .. สนับสนุน Cypress CY4601 USB-to-Serial microcontroller
  20. USB IPWireless (3G UMTS TDD) Driver (USB_SERIAL_IPW) .. สนับสนุน IPWireless USB modem
  21. USB PhidgetKit support (USB_PHIDGETKIT) .. สนับสนุนการเชื่อมต่อกับ PhidgetKit USB device
  22. MMC support (MMC) .. สนับสนุน multi-media card interface
  23. Enable access key retention support (KEYS) .. สนับสนุนการ access key / keyring สำหรับการทำงานในระดับเคอร์เนล เช่น การเข้า/ถอดรหัสในระบบไฟล์ และอื่นๆ ทั้งในระดับ UID GID session process และ thread
  24. USB ATM/DSL driver .. ไม่รู้ว่ามีตั้งแต่เมื่อไหร่ ตอนนี้มี generic driver (CONFIG_USB_ATM) กับ Alcatel SpeedTouch (CONFIG_USB_SPEEDTOUCH)..ไดรเวอร์ทั้งสองตัวต้อง enable ATM support (CONFIG_ATM) ก่อน .. และถ้าจะให้ทำงานได้อาจจะต้อง enable PPP over ATM (CONFIG_PPPOATM) ด้วย .. อยากมี ADSL ลองจัง (รับบริจาค/ให้ยืม .. :P)

ฯลฯ

ที่ยังไม่รู้ก็คงมีอีกเยอะ .. เท่าที่ทดสอบดูการทำงานทั่วๆ ไปราบรื่นดี PCCard/PCMCIA/CardBus ทำงานได้ปกติ .. slmodem เหมือนจะทำงานไม่ได้ modprobe แล้วไม่ยอมติดตั้ง คาดว่าคงมีการ update / patch เร็วๆ นี้ .. NVIDIA ได้ยินว่า 2.6.10-ck1 รวมเอาแพตช์สำหรับคอมไพล์กับไดรเวอร์ NVIDIA เวอร์ชัน 6629 แล้ว .. udev กับ hal ทำงานปกติ แต่ g-v-m ไม่ทำงาน .. glxinfo เร็วพอๆ กับ 2.6.9-ac14 .. hdparm -tT เร็วขึ้นนิดหน่อย .. ก่อนหน้านี้ได้ข่าวมาว่า xattr ทำให้ระบบไฟล์ช้าลง เลยลองปลดออก ดูจะทำงานเร็วขึ้นแล้วก็ยังไม่เจอปัญหาอะไร ..

ภาคใต้มีข่าวไม่ดีอีกแล้ว .. เศร้า

gphoto2 again

ทดสอบ gphoto2 2.1.4 เพิ่มเติมพบว่ามันมีปัญหาเรื่องการโอนภาพที่ไม่ใช่ JPEG เลยทำให้ไม่สามารถโอนไฟล์ NEF raw ของ Nikon ได้ (หรืออาจจะ CRW raw ของ Canon ด้วย) .. hack อยู่พักใหญ่ .. มึน .. ยอมแพ้

แวะเข้าไปดู gphoto2 ก็เจอข่าวดี คือ gphoto 2.1.5 เพิ่งออก rc1 เมื่อไม่นานมานี้ แก้ปัญหาโอนไฟล์ raw แล้ว และเพิ่ม Nikon D70 เข้าไปแล้วด้วย .. แต่หลังจากเช็คดูก็พบว่ามันเพิ่มผิด ไปใส่ USB ID ของโหมด mass storage ในโหมด PTP (- -‘) .. วันนี้เลยทำแพตช์ (แก้ 1 character) ใส่เข้าไปในทะเลพร้อมกับส่งแพตช์เข้าที่ http://sourceforge.net/projects/gphoto .. ห้าชั่วโมงต่อมาก็ applied / closed ไปเรียบร้อย :)

มาต่อกันที่เรื่องโอนภาพ NEF raw จากกล้อง Nikon D70 .. ไฟล์ NEF (Nikon Electronic Format) เป็นไฟล์เก็บภาพแบบ raw ด้วยการ dump ค่าที่ได้จาก CCD มาบีบอัด (lossless) แล้วบันทึกลงไฟล์โดยไม่ผ่าน image processing/manipulation ด้วยซอฟต์แวร์ภายในกล้องเลย ในไฟล์จะบันทึกค่า parameter ต่างๆ ขณะถ่ายภาพ, tone curves, white balance, และ EXIF เพื่อมา post process ด้วยซอฟต์แวร์ในคอมพิวเตอร์ทีหลัง เรียกได้ว่าไฟล์ raw เป็นการเก็บโดยไม่เสียคุณภาพเลย CCD วัดได้ยังไงก็เก็บอย่างนั้น .. เนื่องจากไฟล์ raw มักมีขนาดใหญ่ (NEF ~ 5-6 MB / 6 megapixels) และเป็น proprietary format ไฟล์ raw เลยมักจะฝัง thumbnail ไว้ใน EXIF ตรงหัวไฟล์เพื่อให้ preview ได้ก่อนจะโหลดออกมาจากกล้อง กรณีของ NEF thumbnail จะเก็บเป็น TIFF (Tagged Image File Format)

เท่าที่ลองบนลินุกซ์ Nautilus จะ recognize *.nef เป็น TIFF คงเพราะ Nautilus มันสแกนไฟล์แล้วไปสะดุดที่ thumbnail เวลา browse ไฟล์ *.nef ใน Nautilus เลยแสดง thumbnail ขึ้นมาให้ดูด้วย อีกโปรแกรมที่แสดง thumbnail ใน NEF ได้คือ gtkam ซึ่งเป็น GUI frontend ของ gphoto2 สำหรับโอนภาพจากกล้องดิิจิทัล .. กรณี gtkam สังเกตได้ว่ามันอ่านไฟล์จากกล้องและแสดง thumbnail ได้เร็วมาก เข้าใจว่ามันใช้วิธีสั่งคำสั่งผ่าน PTP ไปที่กล้องให้โอนเฉพาะ thumbnail มาแสดงก่อน เพื่อให้ผู้ใช้เลือกโอนไฟล์ในภายหลัง .. ส่วน gthumb --import ไม่รู้จัก NEF และจะไม่แสดงไฟล์ *.nef มาให้เลือกเวลาโอนไฟล์ .. หลังๆ ชักไม่ชอบ gthumb อืดเหลือเกิน กินหน่วยความจำเยอะด้วย ..

บันทึกบล็อกเรื่อง Nikon D70 กับลินุกซ์บ่อยๆ นี่สงสัยจะได้เขียนเป็นเรื่องเป็นราวสักวัน :P

What does ‘Peorth’ mean ?

คุยกันเรื่องชื่อในห้อง #tlwg .. สมาชิกที่คุยกันเวลานั้นพากันลงความเห็นว่าชื่อ Peorth เป็นชื่อที่แปลกกว่าชื่ออื่นๆ .. ปกติชื่อนี้ก็คงแปลกหูอยู่ .. Peorth (พี – ออร์ท) เป็นชื่อของหนึ่งในห้าเทพธิดาเรื่อง Ah! My Goddess (AMG!) อันประกอบด้วย Belldandy Urd Skuld เทพธิดาสามพี่น้องที่เป็นตัวเอกของเรื่อง และ Peorth กับ Rind ซึ่งปรากฏตัวทีหลัง .. ไม่รู้ว่าเอะใจกันหรือเปล่า แต่ผมว่าชื่อเทพธิดาในเรื่องนี้แปลกหมดทุกชื่อ ครั้งนึงเปิดพจนานุกรมหาศัพท์ภาษาอังกฤษทั่วๆ ไป แล้วก็ไปเจอคำพวกนี้ด้วยความบังเอิญ เลยได้รู้ว่าชื่อพวกนี้มีความสัมพันธ์กันอยู่ และมีที่มาจากแหล่งเดียวกัน คือ Norse Mythology ซึ่งเป็นเทพนิยายแถบสแกนดินิเวียเล่าถึงเรื่องพิภพ เทพเจ้า ปิศาจ และชนเผ่าต่างๆ ..

Belldandy Urd และ Skuld มาจากชื่อหญิงสาวอันเป็นสัญลักษณ์ของชะตาที่ไม่อาจเลี่ยงได้ โดย Urd (fate) เป็นตัวแทนของอดีต Belldandy แผลงมาจาก Verdandi (being) เป็นตัวแทนของปัจจุบัน และ Skuld (necessity) เป็นตัวแทนของอนาคต .. Rind ก็ปรากฏในเทพนิยาย Norse เหมือนกัน เป็นชื่อของเทพธิดาฝ่ายยักษ์ (Giantess)

เทพนิยาย Norse เป็นพื้นฐานของ หนังสือ เกมส์ อีกเยอะ ที่คุ้นหูมากที่สุดเวลานี้คงเป็นคำว่า ‘Ragnarok’ มหาสงครามระหว่างเทพเจ้ากับปิศาจที่ทำลายล้างทุกสิ่ง โดยฝ่ายเทพเจ้า นำทัพโดยโอดิน (Odin) ส่วนปิศาจนำทัพโดยโลกิ (Loki) โอดินอาศัยในปราสาทชื่อ Valhalla (Red Hat 7.3 .. :P ) มีลูกชายคือ ธอร์ (Thor) เทพแห่งสายฟ้า ถือค้อนศึก Mjolnir เป็นอาวุธ .. ทั้ง เทพ ยักษ์ คนแคระ ปิศาจ มนุษย์ สัตว์ อาศัยอยู่ในพิภพทั้งเก้า โดยมี Yggdrasil เป็นต้นไม้ที่เชื่อมพิภพทั้งหมดและบ่อน้ำเวทย์ทั้งสามไว้ด้วยกัน หนึ่งในพิภพนั้นก็คือ Midgard (ใน Warcraft) หรือ Middle Earth (ใน LoTR) .. Yggdrasil ที่ว่าก็คือ World tree ใน Warcraft III .. ใน AMG! ก็ใช้เป็นชื่อระบบที่ดูแลความสมดุลย์ของพิภพ .. และยังเป็นชื่อ Linux Distro ตัวแรกๆ ด้วย

ยังมีศัพท์ที่คุ้นหูคุ้นตาอีกมากมายในเทพนิยาย Norse อ่านคร่าวๆ แล้วน่าสนุกไม่แพ้ ทรอย ลอร์ดฯ หรือสามก๊ก เลย :)

เทพนิยาย Norse เป็นที่มาและมีอิทธิพลต่อภาษาอังกฤษปัจจุบัน เช่น Niflheim เป็นพิภพใต้ดินอันมืดมิดและหนาวเย็น ปกครองโดยเทพธิดา Hel .. Niflheim มักจะถูกเปรียบว่าเป็นนรก บางทีคงเป็นเพราะแถบสแกนดินิเวียนี่มัน ‘หนาวนรก’ มากกว่า ‘ร้อนนรก’ เหมือนบ้านเราละมั๊ง :P และเพราะอย่างนี้ ชื่อเทพธิดา Hel เลยเป็นรากของคำว่า Hell ในภาษาอังกฤษ .. ชื่อวัน อย่าง Tuesday ก็มาจาก Tyr’s day หรือ Tiw’s day โดยที่ Tyr/Tiw/Tiu เป็นชื่อเทพเจ้าแห่งสงคราม .. Wednesday ก็มาจาก Woden’s day โดย Woden เป็นคำอังกฤษโบราณที่มาจาก Odin อีกที Thursday ก็มาจาก Thor’s day

ย้อนกลับมาที่ Peorth .. ที่มาจะต่างไปจากเทพธิดาใน AMG! ทั้งหมด .. Peorth มาจากตัวอักขระ ᛈ ใน Elder futhark script ซึ่งเป็นอักขระโบราณที่ใช้ในแถบสแกนดินิเวีย อักขระชุดนี้ภายหลังขยายเป็น Anglo-Saxon runes ซึ่งเป็นรากของตัวอักษรในภาษาอังกฤษอีกที ตัว ᛈ เทียบได้กับ P ในภาษาอังกฤษ ตามความหมายของ Anglo-Saxon rune ตัว ᛈ อ่านว่า ‘pertho’ หรือ ‘peorth’ หมายถึง เกมส์ หรือ ความไม่แน่นอน .. นอกจากนี้อาจจะหมายถึง การเริ่มต้น หรือ การกำเนิด ก็ได้ .. :)

ป.ล. อักขระ ᛈ มีในตาราง Unicode ด้วย (U+16C8 / Runic Letter / Pertho Peorth P) คิดว่าแสดงผลบน browser ฉลาดๆ ไม่น่าจะผิด :)

gphoto2 + Nikon D70 patch

กล้อง Nikon D70 ตั้งให้โอนภาพเข้าเครื่องได้สองวิธีคือ ตั้งเป็น USB mass storage ซึ่งจะเห็นเป็นไดรว์ หรืออีกวิธีคือใช้ PTP (Picture Transfer Protocol) ซึ่งต้องใช้โปรแกรมในการโอน บนลินุกซ์ก็จะมี libgphoto2 เป็นไลบรารีที่โอนภาพผ่าน PTP ได้ .. ปัญหาคือ libgphoto2 ตัวปัจจุบัน ยังไม่รู้จัก Nikon D70 .. วันนี้เลยลองไล่ code ของ libgphoto2 ดู แล้วก็เพิ่ม device ID เข้าไป (Mass storage กับ PTP ของ D70 จะใช้ USB device ID คนละตัวกัน) .. ตอนนี้ libgphoto2 ใน aowthai ก็รู้จักกล้องรุ่นนี้แล้ว :)

ปัญหาอีกข้อคือการใช้ PTP mode ในทะเล ผู้ใช้ธรรมดาไม่มีสิทธิในการใช้งาน device เลยต้องใช้ root ในการโอนภาพ หรือไม่ก็ต้องเปลี่ยน permission ใน /proc/bus/usb/*/* ซึ่งไม่สะดวกเอาเสียเลย จะ suid gthumb / gphoto ก็ไม่ได้เพราะโปรแกรมจะเช็ค suid ก่อน ถ้ามีการตั้งไว้มันจะไม่ยอมทำงาน (อ่านเพิ่มเติม) .. ไล่ไปไล่มาก็พบว่าปัญหามันเกิดเพราะสคริปต์ /etc/hotplug/usb/usbcam มันระบุ path ของไฟล์ console.lock ไม่ตรงกับ path ในทะเล .. พอไม่เจอไฟล์ console.lock pam_console เลยจัดการ permission ของ device ให้เป็นไปตามผู้ใช้ไม่ได้ .. แก้นิดเดียว พอ path ถูกต้องแล้วก็ฉลุยเลย ต่อสาย USB เปิด power ปุ๊บ g-v-m ก็เรียก gthumb มารอ import ภาพ .. สะดวกขึ้นเยอะ ;)