หนังสือ iPhone App: 3 บทใหม่ (ที่เคยคิดจะเอาใส่หนังสือเล่ม 2)

เนื่องจากก่อนหน้านี้ผมได้เขียนหนังสือ “คู่มือเขียน iPhone App” ซึ่งออกมาในช่วงคาบลูกคาบดอก ระหว่างรอการเปลี่ยนแปลง จาก iOS 4 เป็น iOS 5 และ Xcode 4 เป็น Xcode 4.2 ซึ่งเป็นการเปลี่ยนแปลงระดับ “Major Change”

ใจจริงผมอยากจะเขียนให้อิงกับ iOS 5 และ Xcode 4.2 เป็นหลักตั้งแต่ต้น แต่ในขณะนั้นไม่มีใครบอกได้ว่าทั้งสองตัวนี้จะออกมาเมื่อไหร่ และด้วยเหตุผลหลายๆ อย่าง รวมถึงความต้องการของสำนักพิมพ์ ที่อยากจะออกสู่ตลาดเร็วๆ ในขณะที่ยังไม่มีเจ้าอื่นออกมา (ซึ่งผมเข้าใจเหตุผลนี้ และไม่มีปัญหาใดๆ ทั้งสิ้น) ทำให้เราตัดสินใจทำมันออกมาเป็น “iOS 4 และ Xcode 4” เพื่อให้ออกมาได้ก่อน และหลายคนได้เริ่มก่อน

และด้วยเหตุผลของ NDA ทำให้ผมไม่สามารถที่จะเขียนถึงรายละเอียดอะไรของ iOS 5 และ Xcode 4.2 ได้เลย

ทีนี้ปัญหาก็เลยเกิดขึ้น เมื่อ iOS 5 ออกมาแล้ว และ Xcode 4.2 ออกมาแล้ว (และไม่สามารถหา Xcode 4.0, 4.1 ได้ง่ายๆ อีกต่อไปแล้ว เพราะ Xcode ที่อยู่บน Mac App Store มันเป็น 4.2) ปัญหาง่ายๆ มันก็เลยเกิดขึ้น เพราะว่ามันมีการเปลี่ยนแปลงมากมาย อย่างที่ผมบอกไว้ ทั้งในระดับตัวภาษา Objective-C, iOS SDK และตัว Xcode เอง โดยเฉพาะอย่างยิ่งเมื่อ Default Settings ทุกอย่างนั้นกำหนดให้ใช้ความสามารถใหม่โดยปริยาย

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

สำหรับท่านที่ไม่สนใจจะศึกษาเพิ่มเติม หรืออยากจะทำตามหนังสือเล่มแรกอย่างเดียว ผมมีคำแนะนำว่า เวลาสร้างโปรเจคใหม่ ให้เลือก “ไม่ใช้ Storyboard” และ “ไม่ใช้ Automatic Reference Counting” เสมอครับ

ตอนนี้ผม “พับ” โครงการที่จะเขียนหนังสือเล่ม 2 ออกตีพิมพ์เรียบร้อยแล้วครับ แต่จะ “เขียนใหม่ทั้งหมด” เป็น iOS Development Series โดยไม่เหลือเยื่อใยกับของเดิม เป็นการเขียนใหม่ 100% ทั้งตัวอย่าง เนื้อหา เรียบเรียง โดยจะทำเป็น e-Book only และขายผ่านเว็บไซต์ของ Code App และอาจจะผ่าน App ซึ่งออกแบบมาเฉพาะสำหรับหนังสือเล่มนี้ เท่านั้น โดยมีเนื้อหาแบ่งเป็นหลายเล่ม ตั้งแต่เริ่มต้นเขียนโปรแกรมด้วย Objective-C เต็มๆ เล่มเลยทีเดียว

อดใจรอกันสักหน่อยนะครับ

สองวันกับ Nikon V1

เพิ่งได้ของเล่นใหม่มาปลอบใจตัวเองหลังน้ำลด เพราะว่า Fujifilm X100 ที่เคยเขียนรีวิวไว้ที่นี่ เกิดเปียกน้ำ จากการที่วางไว้บนพื้นรถ และน้ำเข้ารถตอนหนีน้ำ แล้วก็ยังไม่ได้ส่งซ่อม GF1 ก็โดนขโมยไปเรียบร้อย แต่คิดว่าต้องมีกล้องตัวเล็กๆ คุณภาพดีหน่อยไว้พาไปไหนมาไหนง่ายๆ ….. ก็หาเรื่องเสียเงินเล่นอีก ว่างั้นเถอะ … และคราวนี้ก็มาถึงคราวของ Nikon V1 น้องใหม่ของค่าย Nikon ที่ผมใช้ D-SLR อยู่

ตอนท้ายรีวิวของ X100 ผมเขียนทิ้งท้ายไว้ว่า

ลึกๆ แล้ว ผมก็ยังหวังว่าจะได้เห็น Nikon SP กลับมาเกิดใหม่เป็นกล้องคอมแพคเซนเซอร์ใหญ่ แบบ X100 สักวัน

ฝันนี้จะเป็นจริงหรือไม่ ลองดูกันเลยครับ

หมายเหตุเกี่ยวกับรูป: ทุกรูปที่เห็นในนี้ เป็น Out-Of-Camera JPEG (นอกจากรูปที่ผมลองดึงเพื่อลอง Dynamic Range) ใช้โหมด Standard บ้าง Vivid บ้าง และเพิ่ม Sharpen ในกล้อง เพราะค่า Default มันต่ำไป ใช้ Auto White Balance ทุกรูป โดยมีปรับไปทางสีเย็นบ้างเป็นบางรูป (ปรับในกล้อง) และตั้ง Auto ISO ไว้ ถ่ายโหมด A, S, P แล้วแต่กรณี ทุกรูปย่อโดย Lightroom ซึ่งจะติด Sharpen เพิ่มมาอีกนิด … รูปทั้งหมดสามารถดูรูปใหญ่ได้ที่ Flickr ซึ่งผมลงไว้ที่ Photoset นี้ [Review] 2 Days with Nikon V1 ซึ่งตอนนี้มีรูปเท่ากับที่ลงในบทความนี้ แต่อาจจะเพิ่มในอนาคต (ซึ่งจะลงใน Flickr แต่ไม่เอามาลงเพิ่มในบทความนี้แล้ว)


DSC_0032.jpg

เจ้าไอโฟน (V1, 10-30, 19.6mm, 1/30s, f/5.6, ISO 450)

Nikon V1 (และ J1 ด้วย) เป็นกล้องที่ผมเชื่อว่า “คนเล่นกล้อง” หลายคนดู spec แล้วส่ายหัว เบือนหน้า เพราะว่ามันเป็นกล้องที่ “ขนาดเซนเซอร์ใหญ่ไม่จริง” คือ เล็กกว่า Micro 4/3 เสียอีก เรียกได้ว่าขนาดของเซนเซอร์ของ Nikon 1 ทั้งสองตัว จะอยู่ตรงกลางระหว่าง M4/3 และเซนเซอร์กล้องคอมแพคขนาดใหญ่ (พวก LX5, P7000 อะไรพวกนี้) พอดีเป๊ะ

แล้วถ้าเซนเซอร์มันเล็ก แล้วมันมีข้อเสียอะไรล่ะ? ที่เห็นง่ายๆ ก็ 2 ข้อเต็มๆ ครับ คือ

  • การถ่ายภาพในที่แสงน้อย ซึ่งเรื่องนี้ผมเคยทำ Pencast ไปแล้วครั้งหนึี่ง ลองย้อนดูได้ที่ Pencast: Digital Camera Image Sensor 101 …. แต่เรื่องการใช้งานในที่แสงน้อยนี่ผมไว้ใจ Nikon นะ เพราะผมเคยตาค้างมาแล้วกับ D3s แล้วก็จะว่าไป P7000 ก็ไม่ได้น่าเกลียดเลย
  • เรื่อง Shallow-Depth-of-Field (DoF) หรือการถ่ายชัดตื้น ซึ่งเป็นข้อจำกัดเชิงฟิสิกส์แบบเดียวกัน ที่ว่ายิ่งเซนเซอร์เล็ก ก็ยิ่งถ่ายชัดตื้นยาก (เหตุผลอยู่นอกเหนือขอบเขตของรีวิวนี้ ถ้าสนใจวันหลังจะทำ Pencast ไม่ก็เขียนบทความให้อีกครั้ง วันนี้ขอบายก่อน)

แค่นี้ หลายคนก็ยี้แล้ว โดยไม่ต้องสนใจการใช้งานจริงแต่อย่างใด … แต่เมื่อผมลองใช้งานจริงแล้ว ผมคิดยังไงกับมันล่ะ?


DSC_0110.jpg

แมวมอง (V1, 30-110, 110mm, 1/30s, f/5.6, ISO 2800 — ยังพอดูได้)

รูปร่างและขนาด

ถึง V1 จะเป็นกล้องเซนเซอร์เล็ก แต่รูปร่าง ขนาด น้ำหนัก มันไม่ได้เล็กกว่าพวกตระกูลคอมแพคเปลี่ยนเลนส์ได้ทั้งหลายเลยนะ ยิ่งเทียบกับพวกตัวหลังๆ ที่พยายามทำให้ตัวกล้องมันเล็กๆ เช่นพวก NEX หรือ GF3 แล้วมันใหญ่กว่าด้วยซ้ำ ซึ่งทำให้เมื่อดูบนกระดาษแล้ว ต้องบอกว่ามันน่าสนใจน้อยกว่าตัวอื่น แต่ว่าเมื่อลองใช้จริงๆ แล้ว ต้องบอกว่า “ผมชอบมันว่ะ” เพราะ

  • ขนาดและน้ำหนักมันกำลังเหมาะกับมือพอดี ถ้าเล็กกว่านี้หรือบางกว่านี้ ผมคงจะถือมันลำบาก
  • “เลนส์” … เนื่องจากมันเป็นคอมแพคเปลี่ยนเลนส์ได้ ดังนั้นมีแต่บอดี้เปล่าๆ คงไม่มีประโยชน์เท่าไหร่แน่ แต่เมื่อใส่กับเลนส์แล้วมันจะบาลานซ์กันได้ดีแค่ไหน (ลองนึกถึง NEX กับเลนส์ 18-55 Kit ซึ่งผมลองจับดูแล้วรู้สึกว่ามันอยู่บนปากเหวของคำว่าบาลานซ์แล้ว ถ้าเป็นเลนส์ระยะไกลกว่านั้นคงรู้สึกมากกว่านั้นแน่ๆ หรือว่าจะลองนึกภาพ E-P, GF ใส่กับ Panasonic 45-200 ก็ได้ จะเห็นว่ามันไม่บาลานซ์เอาซะเลย นั่นแหละ ผมถึงแทบไม่เคยใช้ GF1 กับ 45-200 เลย)

ที่เคยมีการสัมภาษณ์ใครสักคน (ผมจำไม่ได้ ขออภัย) ว่า Nikon คิดเรื่องพวกนี้ “ทั้งระบบ” ไม่ใช่แค่เรื่องของเซนเซอร์ หรือขนาดตัวกล้อง เท่านั้น ท่าจะจริงแฮะ (แต่ว่าพอลองดูเลนส์ครอบจักรวาลอย่าง 10-110 แล้ว … เออ ตัวใหญ่อลังการเหมือนกัน ไม่รู้ว่าจะหลุดบาลานซ์ขนาดไหน)


DSC_0086.jpg
วาล์วน้ำหลังตึก (V1, 30-110, 74.3mm, 1/60s, f/5.0, ISO 200)

เลนส์

ไหนๆ ก็พูดถึงเรื่องเลนส์แล้ว ก็ขอเขียนถึงเรื่องนี้หน่อยก็แล้วกัน

V1 ชุดที่ผมได้มา เป็นชุด Dual Lens ซึ่งจะมีเลนส์ 2 ตัว คือ 10-30mm, f/3.5-5.6 (ระยะประมาณ 27-80mm) และ 30-110mm, f/3.8-5.6 (ประมาณ 80-300) ซึ่งครอบคลุมการใช้งานประมาณ 90% ที่ผมใช้ จะติดหน่อยก็ตรงที่หลายครั้งยังรู้สึกว่าเทียบเท่า 27mm มันแคบไปหน่อย (ตามประสาคนติด 24-70 และมี 14-24) ทำให้รู้สึกอยากได้อะไรที่มันกว้างกว่านี้ไว้สักตัวเหมือนกัน เช่น 6-13mm (ประมาณ 16-35) แต่คงจะตามมาทีหลัง เพราะว่าตอน M4/3 ออกใหม่ๆ ก็มีแต่ Prime, Normal Zoom กับ Tele เหมือนกัน แล้วก็มี 7-14 เป็น Ultra-Wide Zoom ออกมาทีหลัง


DSC_0670.jpg

สถานีสุดท้าย …​ ก่อนการเดินทางนิจนิรันดร์ (V1, 10-30, 10mm, 1/320s, f/7.1, ISO 100)

ทั้งสองตัวก็ทำงานได้ค่อนข้างดีนะ ผมยังไม่ได้ลองเอาภาพมาส่อง 100% ดูกลางภาพ ดูขอบ ดูอะไรเท่าไหร่ (ซึ่งปกติก็ไม่ค่อยได้ทำอยู่แล้ว) เอาเป็นว่าทั้งสองตัวนี้ใช้งานได้กำลังสบาย ขนาดและน้ำหนักกำลังดี ทำงานไวและเงียบ ก็คงจะพอแล้วมั้ง


DSC_0104.jpg

กองใบไม้ร่วงบนพื้น (V1, 30-110, 110mm, 1/250s, f/6.3, ISO 280)

สิ่งที่ผมรู้สึก “ชอบมาก” กับเลนส์ของ Nikon 1 ก็คือ “Telephoto Zoom ระยะ 80-300 ที่ตัวเล็กมาก” เวลาใส่กับกล้องแล้วไม่รู้สึกว่ามันไม่เข้ากัน หรือหน้าทิ่มแต่อย่างใด และทำให้เวลาเอาไปถ่ายคน มันดูเป็นมิตรมากขึ้นเยอะด้วย (ไม่รู้สึกเหมือนกำลังโดน “ซูม” ถ่าย) แบบนี้เวลาใช้งานคงมีความสุขขึ้นเป็นกองเลย

เรื่องเลนส์มีอีก 3 อย่างที่ไม่พูดถึงไม่ได้ ก็คือ การออกแบบ การ Focus และ Hood

เรื่องการออกแบบก่อน การออกแบบเลนส์ทั้งสองตัวนี้จะต่างจากเลนส์ตัวอื่นๆ ของระบบ D-SLR ของ Nikon ที่เมื่อเมาท์เข้ากับกล้องแล้วใช้งานได้เลย สำหรับเลนส์ของ Nikon 1 ทั้งสองตัวนี้ก่อนจะใช้งานจะต้องทำการ “เปิดเลนส์” เสียก่อน ซึ่งก็คือการเลื่อนออกจากตำแหน่ง Lock เลนส์ ซึ่งเมื่อเลนส์อยู่ในตำแหน่ง Lock จะทำให้เลนส์มีขนาดเล็กลงอีกนิดหน่อย (อารมณ์ Collapsible Design น่ะแหละ) และเมื่อเลื่อนเปิดเลนส์แล้ว ถ้ากล้องปิดอยู่ก็จะทำการเปิดกล้องให้อย่างอัตโนมัติด้วย ซึ่งไปๆ มาๆ ผมก็คุ้นเคยกับการเปิดกล้องจากเลนส์มากกว่าจากปุ่มเปิด/ปิดบนตัวกล้องเสียอีก และการเปิดเลนส์นี้ก็สามารถทำได้อย่างรวดเร็วพอสมควร


DSC_0499.jpg

แอบมอง (V1, 30-110, 74.3mm, 1/100s, f/5.6, ISO 200)

เรื่องการโฟกัส ก็ต้องยอมรับว่า “ไวและเงียบ” ทั้งสองตัว (ผมยังไม่ได้ลอง 10-110 และ 10/2.8) แต่มาตายเอาตรง Manual Focus เนี่ยแหละ คือ มันมีบางจังหวะที่ผมอยากจะปรับโฟกัสเองแบบด่วนๆ แต่ว่าเลนส์นี้มันดันไม่มีวงแหวนปรับโฟกัสบนตัวเลนส์เลยน่ะสิ ต้องปรับผ่านกล้อง (กดปุ่ม หมุนวงแหวนด้านหลัง ทำนองนั้น) ก็เลยรู้สึกว่า “อย่าดีกว่า ช่างมัน” หัดเรียนรู้นิสัย Auto-Focus ของมันให้ชินๆ จะดีกว่า


DSC_0106.jpg
ล้มในอ้อมกอด (V1, 30-110, 51.2mm, 1/125s, f/5.0, ISO 200)

สุดท้ายก็เรื่อง Hood ซึ่งจริงๆ ก็ไม่ได้เกี่ยวกับเลนส์โดยตรงหรอก … แต่ในกล่อง V1 มันมีมาให้แต่ HB-N103 สำหรับ 30-110 แต่ไม่ยักกะมี HB-N101 สำหรับ 10-30 มาให้ด้วย ตอนแรกผมคิดว่าผมเผลอทำตกหรือเอาไปวางไว้ไหน โทรไปถามที่ร้านก็ได้คำตอบว่า ไม่มีให้ (เหมือนกันทุกกล่อง) …. อันนี้พูดไม่ออก เพราะว่า Lens Hood นี่สำคัญมากเลยถ่ายรูปย้อนแสง มันช่วยเรื่อง Contrast เรื่องอะไรพวกนี้เยอะเลย ตอนนี้ก็เลยต้องยกมือป้องแสงเอา ลำบากเปล่าๆ ก็คงต้องรอใครเอาเข้ามาขาย ไม่งั้นก็ต้องสั่งจาก e-Bay อีกแล้ว

สุดท้าย … บ่นนิดหน่อย ที่ไม่มี Fast Prime (2.8 กับ Prime นี่ผมถือว่า “ไม่ Fast” แล้วนะ) สำหรับระยะ Normal หรือ Wide-Normal เลย 10mm เทียบเท่า 28mm นี่ ผมว่าใช้ยากไปหน่อย … ได้อิทธิพลมาจาก NEX มากไปหรือเปล่าไม่รู้ .. ถ้ามีประมาณ 18/1.8 (เทียบเท่า 50mm) จะน่าสนใจมาก แถมเลขด้วยซะด้วยนะ


DSC_0144.jpg
Lonely Chair (V1, 30-110, 110mm, 1/250s, f/6.3, ISO 180)

ก็คงต้องรอ Adapter ที่จะทำให้พวกเลนส์ AF-S จาก D-SLR มันใช้ได้นะ คิดๆ ดู 50/1.8 ก็ตัวไม่ใหญ่เท่าไหร่ เอามาใส่นี่ได้ระยะ 135 เลยทีเดียว (แถมได้ DoF เทียบเท่ากับ 135mm เปิดที่ประมาณ f/4.8 ซึ่งก็แคบพอดู ไม่น่าเกลียดเท่าไหร่เลย)

การใช้งาน

เท่าที่ลองใช้งานดู เห็นได้ชัดเจนว่า V1 ไม่ได้ถูกสร้างมาสำหรับพวกนักเล่นกล้อง ที่ชอบควบคุม ชอบเล่น DoF ชอบปรับค่าโน่นนี่ อะไรพวกนี้เลย แต่มันถูกสร้างมาสำหรับคนที่ต้องการยกกล้องขึ้นมาถ่าย ถ่าย ถ่าย แล้วก็ถ่าย ซะมากกว่า พูดง่ายๆ ว่าพวกชอบ D-SLR อาจจะหงุดหงิด จะปรับอะไรก็ต้องเข้าเมนู แต่ก็ยังดีนะที่เมนูมันไม่ซับซ้อนเท่าไหร่ ตรงไปตรงมา ง่ายพอควร ปรับไม่กี่ครั้งก็ชินแล้วว่าอะไรอยู่ตรงไหน ไม่ต้องอะไรมาก ขนาดการจะปรับ PASM ยังต้องเข้าเมนูเลย … แต่ว่าพวกที่เคยใช้คอมแพคตัวเล็กๆ (ที่ไม่ใช่พวก Advanced) มาก่อนจะรู้สึกเฉยๆ


DSC_0156.jpg
ถ่ายรูปวาด (V1, 30-110, 89.9mm, 1/10s, f/5.6, ISO 3200 — ก็ยังพอรับได้)

ถ้าใครเคยใช้กล้องคอมแพคของ Nikon มาก่อน ก็คาดหวังได้ไม่ยากว่ามันจะมีอะไรให้ปรับได้บ้าง นอกจาก PASM แล้วก็มีพวก Picture Control, Auto ISO, Vibration Reduction, อะไรพวกนี้น่ะแหละ แต่ที่ผมผิดหวังมากที่สุดก็คือ การตั้ง Auto ISO นี่เราไม่สามารถกำหนด “ความไวชัตเตอร์ต่ำสุด” ได้เลย นั่นคือ กล้องมันจะเลือก ISO ให้เราเองตามใจมัน โดยที่เราไม่สามารถควบคุมอะไรเลย อันนี้เป็นผลเชิงลบอย่างมากสำหรับผม เพราะว่าโดยปกติแล้วผมจะชอบตั้งความไวชัตเตอร์ต่ำสุดไว้เหมาะกับประเภทภาพที่จะถ่าย เช่น ถ้ารู้ว่าจะไปที่ๆ ต้องถ่ายคนเยอะหน่อย ก็จะตั้งความไวไว้สูงหน่อย (อย่างน้อย 1/125s) ถ้าลดลงต่ำกว่านี้เมื่อไหร่ เตะ ISO ขึ้นได้เลย ยอม ..​ แต่ว่าตัวนี้นี่ ไม่มีการตั้งพวกนี้เด็ดขาด ก็เลยต้องเลี่ยงไปใช้โหมด Shutter-Priority แทนอย่างเลี่ยงไม่ได้ (ปกติผมจะใช้โหมด Aperture-Priority และตั้ง Auto-ISO พร้อมกำหนด Shutter-Speed ต่ำสุดเอาไว้)


DSC_0120.jpg
สงบ (V1, 30-110, 71.6mm, 1/15s, f/5.6, ISO 800)

อ่อ แล้วก็ทุก Option จะแทบไม่มีปรับละเอียดนะ เช่น Active D-Lighting จะมีแค่ On/Off ไม่มีรายละเอียดแต่อย่างใด

ที่ผม “ไม่ชอบเลย” กับการใช้งาน V1 ก็คือ ปุ่มเลือกรูปแบบการถ่าย (ภาพนิ่ง ภาพเคลื่อนไหว ฯลฯ) มันอยู่ใกล้ตำแหน่งวางนิ้วมือ และแม่เจ้าประคุณก็เปลี่ยนง่ายซะเหลือเกิน ไปแตะๆ หน่อยก็เปลี่ยนซะแล้ว ยกกล้องขึ้นมากดชัตเตอร์ คิดว่าจะถ่ายภาพนิ่ง กลายเป็นภาพเคลื่อนไหวซะงั้น ใครออกแบบตรงนี้สมควรโดนด่าจริงๆ …. แล้ว Dial ก็มีไม่เต็มวง แบบนี้จะช่วยเอา PASM มาใส่ไว้ตรงนี้หน่อยก็ไม่ได้ (เหมือนพวก D-SLR ที่ยังมี PASM อยู่ปนกับ Scene-Mode เลย)


DSC_0486.jpg
นางรำ (V1, 30-110, 110mm, 1/500s, f/6.3, ISO 100)

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

แต่ Auto Focus มันไวจริงๆ นะ ;-) แล้วก็ถ้าเลือกใช้ Electronic Shutter ล่ะก็ เงียบเป็นเป่าสาก ไม่มีเสียงใดๆ ทั้งสิ้น และเนื่องจากเลนส์ Tele ระยะไกล (เทียบเท่า 80-300) มันตัวเล็กมาก มาก มาก ดังนั้นมันเป็นกล้อง Sniper ชั้นดีชัดๆ .. โดยเฉพาะอย่างยิ่งถ้าใช้ J1 ที่สีสันเป็นมิตร ไม่เป็นภัยนะ ยิ่งดูโอเคเข้าไปอีก


DSC_0380.jpg
เณรกระซิบ (V1, 30-110, 110mm, 1/200s, f/7.1, ISO 100)

ภาพที่ได้

หลายคนคงสนใจตรงนี้ที่สุด (หลายคนเลิกสนใจตั้งแต่ spec แล้ว)


DSC_0236.jpg
หลับปุ๋ย (V1, 30-110, 53.1mm, 1/15s, f/5.0, ISO 900)

จากข้อจำกัดของเซนเซอร์อย่างที่รู้กันดี ทำให้ผมบอกได้ว่า ถ้าเราคาดหวังคุณภาพระดับ D-SLR ละก็ ผิดหวังแน่นอน ก็แหงล่ะ ขนาดเซนเซอร์มันใกล้เคียงกับคอมแพคมากกว่า D-SLR นี่นา แต่มันทำได้ขนาดไหนล่ะ?

จากการใช้งานจริงๆ ผมพบว่ามันทำได้ดีกว่าที่ผมคาดไว้ … โดยความคาดหวังของผมคือ “P7000 ที่ถ่าย ISO สูงดีกว่า P7000 อยู่ 1 Stop และมี DoF ที่ตื้นกว่า P7000 ที่ความยาวโฟกัสเทียบเท่ากันในระบบ 35mm อยู่ 1 Stop เช่นเดียวกัน” พูดง่ายๆ ว่า P7000 ใช้ ISO 1000 ได้ผลเป็นไง หมอนี่ต้องใช้ ISO 2000 ได้ผลประมาณนั้น และ P7000 ที่ทางยาวโฟกัสเทียบเท่า 140mm เปิด f/5.6 ได้ผลยังไง หมอนี่ที่เทียบเท่า 140mm เปิด f/8 ต้องได้ผลประมาณนั้น


DSC_0454.jpg
เล่นลม (V1, 30-110, 110mm, 1/1250s, f/8, ISO 100)

เริ่มจากเรื่อง ISO สูงกันก่อน โดยหลังจากถ่ายรูปใช้ Auto ISO โดยใช้เพดานบนสำหรับ ISO คือ 3200 ผมพบว่าผมรับ ISO สูงของกล้องตัวนี้ได้สบาย ถ้าจะเอาแค่โพสท์ภาพลงเว็บ หรือว่าใช้ภาพทั่วๆ ไป ไม่ได้พิมพ์อะไรใหญ่มาก ไม่ได้โพสท์ Crop 100% ลงเว็บ ผมว่ามันใช้งานได้สบายๆ ถึง ISO 3200 นะ ปกติภาพลงเว็บก็ไม่ค่อยจะเกินกรอบขนาด 800×800 กันอยู่แล้ว แต่แน่นอนว่าเมื่อดูที่ 100% ก็จะเห็น Noise มาเพียบ และรายละเอียดหายไปบ้าง แต่สำหรับการใช้งานของผมกับกล้องตัวนี้ ก็ไม่มีปัญหาอยู่แล้ว และผมเชื่อว่ากลุ่มเป้าหมายของกล้องตัวนี้ก็คงไม่มีปัญหาเช่นกัน


DSC_0248.jpg
เงาสะท้อนในกระจก (V1, 30-110, 110mm, 1/125s, f/5.6, ISO 500)

ถัดมาก็เป็นเรื่องสีสันของภาพ …. และนี่คงจะเป็นคำตอบสำหรับสิ่งที่ผมค้นหามานานเสียที เพราะว่ามัน “น่าจะ” ให้สีได้ “Nikon” อย่างที่ผมคุ้นเคยมากพอสมควร แต่ว่าจะเป็นแบบนั้นจริงหรือเปล่าก็ไม่รู้ เพราะผมยังมีความรู้สึกนิดๆ ว่ามันต่างจากภาพจาก D3s ที่ผมคุ้นเคยอยู่หน่อย อาจจะเพราะว่า Auto White Balance มันให้ผลต่างกันก็เป็นได้ อันนี้เป็นความรู้สึกล้วนๆ เพราะว่ายังไม่ได้ลองเอา D3s มาถ่ายภาพเดียวกันเทียบดู แต่สำหรับ Auto White Balance นี่เราสามารถปรับแต่งค่าของมันใน 2 แกน (Temp และ Tint) ได้ไม่ยาก ก็ลองๆ ปรับเอาตามที่ชอบ เช่น ผมรู้สึกว่าภาพมัน “อุ่น” เกินไป ก็ไปปรับ Auto White Balance ให้มัน “เย็น” ลง 1 ช่อง เป็นต้น .. แต่สรุปว่า สีสวยครับ เขียวเป็นเขียว ฟ้าเป็นฟ้า ดูเป็นธรรมชาติ อาจจะติดอุ่นนิดๆ


DSC_0306.jpg
ประจันหน้า (V1, 30-110, 71.6mm, 1/125s, f/4.8, ISO 160)

ถัดมาก็เรื่อง “ชัดตื้น” ที่หลายคนฟันธงว่า “ไม่ได้” ตั้งแต่เห็น spec ของเซนเซอร์ (และเลนส์ที่ออกมา ไม่ใช่ Fast Tele-Prime) ทั้งที่จริงๆ แล้วการทำชัดตื้นขึ้นกับปัจจัยไม่กี่อย่าง คือ ระยะห่างสัมพัทธ์ระหว่างวัตถุ ฉากหลัง และตัวรับแสง ซึ่งพอเป็นเซนเซอร์ขนาดเล็ก ก็ต้องใช้เลนส์กว้าง และ Crop ตรงกลางมาใช้งาน (ที่เรียกว่า Crop factor ว่ากี่เท่าๆ น่ะแหละ กรณีของ APS-C คือ 1.5 M4/3 คือ 2 และ Nikon 1 คือ 2.7) ทีนี้พอเป็นเลนส์กว้าง จะให้ระยะห่างสัมพัทธ์มันได้มากพอที่จะทำชัดตื้น ก็ใช้วิธีง่ายๆ คือ อยู่ใกล้วัตถุที่จะถ่ายให้มากที่สุด จ่อได้ยิ่งดี ใช้รูรับแสงกว้างที่สุด และเลือกฉากหลังที่อยู่ไกลที่สุด และถ้าเป็นเลนส์ทางยาวโฟกัสยาว จะช่วยได้มากขึ้น

จะเห็นว่า ถ้าเรารู้ว่าเราทำอะไรอยู่ ก็เล่นชัดตื้นได้ไม่ยากไม่เย็นอะไรเท่าไหร่


DSC_0730.jpg
ผลิใบ (V1, 30-110, 110mm, 1/400s, f/5.6, ISO 100)

แต่พอมาถ่ายคน ก็ยากขึ้นไปอีกนิด ที่จะให้หลังมันละลายหายไปเลย เพราะข้อจำกัดทางฟิสิกส์ทั้งหมดที่มีน่ะแหละ


DSC_0360.jpg
คุณพ่อ (V1, 30-110, 110mm, 1/200s, f/6.3, ISO 400)

จะเห็นว่าฉากหลังที่ไกลหน่อย เบลอจะไม่กวนใจกวนสายตาก็จริง แต่ตรงต้นไม้เนี่ยสิ “รก” มาก … และที่สำคัญ เจ้าเลนส์ 30-110 นี่ไม่ใช่เลนส์ที่ Bokeh สวยแต่อย่างใดเลย ลักษณะแย่ๆ ของ Bokeh เห็นชัดเจนมาก ไม่ว่าจะเป็นพวก Double-Line หรือพวกขอบหนานุ่มยัดไส้กรอก ดังนั้นยิ่งต้องเลือกฉากหลังดีๆ เพราะว่าถ้ามันไกลไม่พอแล้ว มันจะรกจนบางทีรู้สึกว่า “แล้วจะเบลอทำไมวะ ยิ่งเบลอยิ่งรำคาญ”

แต่เนื่องจากมันเป็นกล้องเซนเซอร์เล็ก ที่ทำ “ชัดตื้น” ยาก … ดังนั้นมันจึงทำ “ชัดลึก” ง่าย ซึ่งแน่นอนว่าหลายคนก็ต้องการแบบนั้น โดยเฉพาะอย่างยิ่งคนที่ผมคิดว่าเป็นกลุ่มเป้าหมายของกล้องตระกูลนี้ ซึ่งก็คือ ผู้ทั่วไปที่อยากถ่ายรูปคนในครอบครัว งานปาร์ตี้ ใช้ถ่ายแบบ Snap เวลาไปเที่ยวเป็นที่ระลึก ฯลฯ


DSC_0513.jpg
เศร้ากันถ้วนหน้า (V1, 10-30, 16.3mm, 1/50s, f/5.6, ISO 400)

ผมเคยถ่ายรูปเวลาไปเที่ยวให้กับคนในกลุ่มเป้าหมายที่ว่านี้ด้วย D3s แล้วฉากหลังมันเบลอนิดหน่อย ด้วยธรรมชาติของกล้อง Full-Frame ถึงจะเปิดถึง f/8 ก็ยังมีปัญหา … คนในภาพบอกผมว่า “ภาพเสีย เพราะมันมีส่วนเบลอ” นี่แหละคือ “กลุ่มเป้าหมาย” ก็ลองคิดดูขำๆ เล่นๆ ว่ารูปที่ต้องการชัดทั้งรูปแบบข้างบนนี้ ถ้าใช้ Full-Frame ถ่าย จะต้องเปิดรูรับแสงเท่าไหร่


DSC_0638.jpg
ดอกไม้ช่อสุดท้าย (V1, 10-30, 30mm, 1/125s, f/5.6, ISO 110)

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


DSC_0398-before.jpg
JPEG จากกล้อง (V1, 10-30, 30mm, 1/320s, f/5.6, ISO 100)

ลองทำรูปนี้ง่ายๆ ด้วยการดึง Shadow ตบ Highlight และปรับโน่นนี่นั่นนิดหน่อยแบบลวกๆ ใน Lightroom 3 ก็จะเห็นว่าหลายอย่างยังอยู่


DSC_0398-after.jpg
ลองปรับ Highlight, Shadow ง่ายๆ ใน LR3

ส่งท้าย

สรุปง่ายๆ เรื่องรูปและการใช้งาน ว่าให้คิดว่ามันเป็น “กล้องเซนเซอร์เล็ก ที่เซนเซอร์ใหญ่กว่าปกติ และเปลี่ยนเลนส์ได้” ดีกว่าจะมองว่ามันเป็น “กล้องเซนเซอร์ใหญ่ ที่ขนาดเล็ก และเปลี่ยนเลนส์ได้” อย่างที่หลายคนได้เคยมองมัน คือให้คิดว่ามันเป็น P7000 ที่เซนเซอร์ใหญ่กว่า P7000 และประสิทธิภาพการทำงานน้องๆ D-SLR ดีกว่าจะคิดว่ามันเป็น D-SLR ขนาดย่อส่วน


DSC_0726.jpg
ใบไม้ในสวน (V1, 30-110, 110mm, 1/250s, f/5.6, ISO 200)

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


DSC_0679.jpg
แม้ร่างตน เขาก็เอา ไปเผาไฟ (V1, 30-110, 30mm, 1/1600s, f/4.0, ISO 100)

ไว้ F-Mount Adapter ออกมาเมื่อไหร่ ผมคงจะกลับมาเขียนถึงตัวนี้อีกครั้ง ว่าเป็นอย่างไรบ้าง สำหรับตอนนี้คงต้องจบแค่นี้ก่อนครับ


DSC_0656.jpg
ลาก่อนครับ คุณยาย (V1, 10-30, 15.7mm, 1/500s, f/5.6, ISO 100)

[ประกาศ] iOS SDK 5 & Xcode 4.2 Training

ทีมงาน Code App จัด Training สำหรับ iOS 5 SDK & Xcode 4.2 ครับ จัดเต็ม 4 วัน 17, 18, 24, 25 ธันวาคม รายละเอียดดูได้จากเว็บไซต์ของ Code App ครับ

พัฒนา iOS Application ด้วย iOS 5 SDK & Xcode 4.2

หลังจากนี้จะมี Training ระดับ intermediate และ advanced แบบเจาะเฉพาะเรื่องมาเรื่อยๆ ครับ เช่น Data Persistent & Core Data, Web Services, Core Image, Social Network Applications เรื่องละ 1-2 วัน คอยติดตามนะครับ แต่สำหรับแต่ละเรื่องพวกนี้จะไม่ลงพื้นฐานแล้ว จะเจาะเข้าเรื่องเลย เพราะว่าผมไม่อยากทำ Training แบบกว้างๆ เรื่อยๆ แต่ไม่ได้อะไรแบบลงลึกเท่าไหร่

สำหรับคอร์สนี้ ลงทะเบียนได้ในลิงค์ข้างบนครับ

คุณยายครับ หลับให้สบายนะ

6 ธันวาคม 2554 … วันที่คุณยายได้จากไปอย่างไม่มีวันกลับ

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


DSC_6090.jpg

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

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

แต่ผมเชื่ออะไรบางอย่าง ว่าถึงช่วงหลายเดือนสุดท้าย คุณยายจะป่วยหนัก เหมือนไม่รับรู้ไม่รู้สึกอะไรอีกแล้ว แต่ผมเชื่อว่าแกยังห่วงลูกห่วงหลานทุกคน แกทนรอจนผมกลับเข้ามาอยู่บ้านได้แล้ว น้ำแห้งแล้ว และเดินทางได้แล้ว … ทันทีที่ผมกลับเข้ามาบ้านได้ และบ้านเริ่มลงตัว คุณยายคงหมดห่วง


DSC_5968.jpg

ประกอบกับการที่คุณยายรักในหลวงมาก … อุตส่ารอให้ผ่านวันที่ 5 ธันวาคมไปเสียก่อน เพราะพอผ่านวันเฉลิมฯ ไปไม่กี่นาที คุณยายก็จากไปสงบ

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

ผมแค่อยากบอกว่า … คุณยายครับ หลับให้สบายนะครับ ไม่ต้องห่วงหลาน หลานทุกคนของคุณยายดูแลตัวเองได้


DSC_7517.jpg

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

นั่นสินะ … ผมเข้าใจอะไรบางอย่างผิดไป … เพราะคุณยายรักหลานทุกคนมาก แต่หลานยายทุกคนกระจัดกระจายไปอยู่คนละที่คนละทาง บางคนอยู่เมืองนอกและคงไม่กลับด้วยซ้ำ … ดังนั้นผมควรจะบอกว่า …

6 ธันวาคม 2554 … วันที่คุณยายได้อยู่กับหลานๆ ทุกคนพร้อมๆ กันได้ในทุกที่ ไม่ว่าหลานยายแต่ละคนจะอยู่ที่ไหน ไม่มีข้อจำกัดของเวลา ร่างกาย และสังขารมาเป็นกำแพงกั้น


DSC_5974.jpg

คุณยายเหนื่อยมาเยอะแล้วครับ หลับให้สบายนะครับ คุณยายจะไม่ต้องเหนื่อยอะไรอีกแล้ว คุณยายได้ตื่นแล้ว จากฝันที่เรียกว่า “ชีวิต”

หนีน้ำ 2554

วันที่ 28 ตุลาคม 2554 วันที่ชีวิตผมเริ่มเปลี่ยนไปอีกครั้ง

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


photo1.JPG
จากระเบียงชั้นสอง ไม่กี่วันก่อนจะตัดสินใจหนีออกมา



photo-2.jpg
ทางเข้าหมู่บ้าน ไม่กี่วันก่อนหนีออกมา จุดนี้ความสูงพื้นที่มากกว่าตรงบ้านประมาณหนึ่งฟุต

แต่มันทำให้ผมพบความจริงง่ายๆ หลายอย่างมาก กับวิถีชีวิตที่เปลี่ยนไป … และมันอาจจะเปลี่ยนชีวิตผมไปแบบไม่มีวันกลับ

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

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

จากการที่ไม่มีรถ และถนนเส้นทางที่รู้จักในการไปที่ต่างๆ ถูกตัดขาดหลายเส้น ทำให้ชีวิตผมเปลี่ยนไป ….

เมื่อเช้านี้ ผมได้โพสท์ใน Facebook ของตัวเองว่า

จากการหนีน้ำครั้งนี้ ทำให้เข้าใจเรื่องง่ายๆ หลายอย่างมากขึ้น ว่าจริงๆ ชีวิตคนเรามันต้องการแค่ไหนถึงจะพอ

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

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

ที่เขียนไปในหนังสือ และประวัติตัวเองเวลาส่งไปไหนว่า “ชีวิตผม คงเหลือแค่เขียนโปรแกรม สอนเขียนโปรแกรม เขียนหนังสือสอนเขียนโปรแกรม และถ่ายรูป” เป็นเรื่องจริง และหวังว่าจะเป็นจริง 100% ไม่ต้องมีเรื่องอื่นเร็วๆ นี้

คงบรรยายความรู้สึกตัวเองที่มีในขณะนี้ได้พอสมควร

ผมมองกลับไปยังชีวิตผมที่ผ่านมาหลายปี หลายเดือน ด้วยความไม่เข้าใจ .. ความสงบสุขในชีวิตแบบนี้ หรือ ความซับซ้อนวุ่นวายยุ่งเหยิงทั้งหลายทั้งปวง ที่โลกภายนอกกำหนดให้เราต้องเป็นคนทำ เหมือนมี checklist กำกับไว้ตลอดเวลา ว่าต้องทำอะไร ทำอะไร ทำอะไร ต่อด้วยทำอะไร กันแน่ ที่เป็นสิ่งที่มนุษย์เราต้องการ?

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

ซึ่งมันก็เหมือนกับชีวิตของผมในช่วงหนีภัยน้ำท่วมนี้

ผมมองกลับไปยังชีวิตก่อนหน้านี้ ด้วยความไม่เข้าใจมากขึ้น กับความซับซ้อนยุ่งยากไม่รู้จักจบจักสิ้นของมัน การประชุม ระบบระเบียบ กฏเกณฑ์ รายละเอียดปลีกย่อย การแก่งแย่งชิงดี การแก่งแย่งทรัพยากร การชิงไหวชิงพริบ การหักหน้าหักตา การเล่นพรรคเล่นพวก รายการสิ่งที่ต้องทำซึ่งคนอื่นที่ไหนไม่รู้เป็นคนกำหนด ฯลฯ … นี่หรือโลกที่เราอยากให้ “ชีวิต” เราอยู่? นี่หรือรูปแบบ “ชีวิต” ที่เราต้องการ?

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

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

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

ผมหลับตา เห็นตัวเองในชนบทไกลๆ ….. ปลีกวิเวกจากสังคม เข้าวัดเข้าวา คุยกับพระ อยู่กับอะไรที่เรียบๆ ง่ายๆ …. นั่นคงจะเป็น “ความสำเร็จ” อีกแบบ ที่ลึกๆ แล้วผม “อยากได้” อยู่ก็เป็นได้ ….

ปิดด้วยรูปลูกชายสุดที่รัก ผู้ลี้ภัยหมายเลข 1. ที่พาหนีออกมาตัวแรกเลย


iphonephoto1.jpg

เพิ่มเติมกับบทสัมภาษณ์ผมในกรุงเทพธุรกิจ

ขอเขียนอะไรเพิ่มเติมให้กับบทสัมภาษณ์ผมที่ลงหนังสือพิมพ์กรุงเทพธุรกิจเมื่อวันจันทร์ที่ 3 ตุลาคม (วันนี้แหละ) สักนิดหน่อย

Link: “รวิทัต ภู่หลำ” เผยเคล็ด สร้างซอฟต์แวร์ต้องลงมือ “ทำ” (กรุงเทพธุรกิจ)

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

แต่มีประเด็นสุดท้าย ที่เกี่ยวข้องกับ Silicon Valley ที่ผมคงต้องขอขยายความเพิ่มอีกนิด ว่าทำไมผมถึงต้องพูดถึงมันในการสัมภาษณ์นั้นด้วย

เพื่อให้เข้าใจง่ายๆ ผมขอย้อนกลับไปตอนที่ผมเคยให้สัมภาษณ์ออกรายการ “แบไต๋” เมื่อวันอาทิตย์ที่ 25 กันยายน ที่ผ่านมา ว่าจริงๆ แล้วในวงการพัฒนาโปรแกรมที่โตได้และยั่งยืนนั้น มันมีองค์ประกอบสำคัญด้วยกัน 4 อย่าง คือ

  1. Skill ซึ่งถ้าไม่มีแล้วมันก็ทำอะไรได้ไม่ได้ ต่อให้ฝันได้เก่งแค่ไหน เปลี่ยนมันให้เป็นความจริงไม่ได้ ก็เท่านั้น และอย่าคิดว่าไม่เห็นจำเป็นเลย แค่คิดๆ ว่าอยากได้อะไร แล้วก็ไปจ้างคนอื่นทำๆ ก็หมดเรื่อง … ถ้ากรณีแบบนี้จะเกิดเรื่องเพ็ดโด้ๆ ขึ้นมากมาย (คิดว่าต้นตอหลักๆ ของเรื่องการ์ตูนเพ็ดโด้มันมาจากไหนล่ะครับ มันเริ่มต้นมาจากคนที่อยากได้ แต่ประเมินอะไรไม่เป็นเลย ทั้งเวลา ค่าใช้จ่าย ความยากง่าย ฯลฯ ตัวอย่างเช่น เมื่อ 2-3 ปีก่อนเคยมีคนต้องการจะจ้างผมทำเว็บแบบเฟสบุ๊ค ในเวลา 3 เดือน และราคาแค่ครึ่งแสน มาแล้ว)
  2. Budget ยังไงเราก็ยังต้องกินอะไรบ้าง ต้องมีความเป็นอยู่ที่พออยู่ได้บ้างตามอัตภาพ ผมไม่ได้บอกว่าเราต้องรวย แต่แค่ไม่ต้องจนถึงขนาดอยากจะกินมาม่ารสอื่นนอกจากรสที่มันถูกๆ ยังต้องคิด หรือไม่กล้าเดินเข้าร้านอาหารตามห้าง ทั้งๆ ที่เด็กมหาวิทยาลัยที่ยังแบมือขอเงินพ่อแม่เดินเข้ากันเยอะแยะ เท่านั้นไม่พอ ค่าหนังสือ ค่า Video Screencast ดีๆ ค่าอุปกรณ์ที่จะใช้ในการทดสอบโปรแกรม ค่าการ “ขยายทีม” (สำคัญนะครับ … พูดง่ายๆ ก็เงินเดือนเพื่อนร่วมงาน)
  3. Marketing ต่อให้ทำโปรแกรมเจ๋งๆ มาเยอะแค่ไหน โปรแกรมที่คนไม่รู้จัก ก็คือโปรแกรมที่คนไม่ซื้อ ผมพูดถูกมั้ยล่ะ ดังนั้นจะให้คนรู้จักได้ยังไง การทำ Marketing เป็นเรื่องสำคัญ และจริงๆ แล้วมันก็เกี่ยวข้องกับเรื่อง Budget ด้วยน่ะแหละ ตอนนี้บอกตรงๆ ว่าผมยังว่าจะต้องจ้างทำการตลาดให้กับ App บางตัวของผมบ้างแล้วเลย สิ่งนี้จะส่งผลโดยตรงกับเรื่อง Budget ด้วย
  4. Community (และ Environment) เรื่องนี้ “สำคัญที่สุด” ในบรรดาทั้ง 4 เรื่อง ในการจะทำอะไร “สภาพแวดล้อม” ที่เอื้ออำนวยในการทำสิ่งนั้นๆ เป็นเรื่องสำคัญมาก ตัวอย่างเช่น พวกลูกหมอ หรือเด็กที่เกิดและโตในโรงพยาบาล จะมีความต้องการเป็นหมอเฉลี่ยแล้วมากกว่าเด็กอื่นๆ เป็นต้น อันนี้ผมพูดได้จากประสบการณ์ตรงของตัวเอง ว่าสภาพแวดล้อมที่มีการสร้างนวัตกรรมตลอดเวลา เป็น Open & Friendly competition คือ แต่ละคนบอกกันตลอดว่ากำลังทำอะไรอยู่ สิ่งที่แต่ละคนทำ มันเสริมกัน มันคล้ายกัน มันต่างกัน อะไรใช้ด้วยกันได้ อะไรที่เปิด source ให้ช่วยกันพัฒนา อะไรที่ ฯลฯ และเมื่อต่างคนต่างทำได้ ต่างคนต่างเรียนรู้ ก็นัดกันมาทำ Conference ปล่อยของ และสร้าง Partnership ใหม่ ตลอดเวลา เป็นสิ่งที่ผม “คุ้นเคยมาก ที่ญี่ปุ่น” และเป็นสิ่งที่ผมไม่ค่อยจะเห็นเท่าไหร่เลย ในบ้านเรา

Link: คลิปรายการแบไต๋ ผมออกตั้งแต่นาทีที่ 1:08:00​ โดยประมาณ เป็นต้นไป

บ้านเราสนใจแต่เรื่อง Skill ของคนเป็นหลัก “มากเกินไป” คิดว่าคนเก่ง จะอยู่ได้ สร้างสรรค์งานได้ แต่ไม่มีปัจจัยอื่นๆ ที่เอื้ออำนวยเลย โดยเฉพาะอย่างยิ่งข้อสุดท้าย คือเรื่อง Environment และ Community ซึ่งเมื่อผมพูดถึงคำว่า Community นี่ผมไม่ได้หมายถึง การที่เราแค่รู้จักกัน หรือมีรายชื่อ และมีการพบปะกันนานๆ ครั้ง หรือเกาะกันแบบหลวมๆ แบบบ้านเรา และปกติก็ต่างคนต่างอยู่กันอยู่ดี แต่ผมกำลังพูดถึง Virtual Learning Organization ของคนที่ทำงานด้านเดียวกัน ใน Environment ที่เอื้อการสร้างสรรค์ แบบ Open & Friendly.

ผมพูดถึง Silicon Valley เพราะมันเป็นตัวอย่างในการมีสิ่งเหล่านี้ครบ ตั้งใจพูดถึงปัจจัยอีก 3 ตัว (เรื่อง Budget จะเป็นเรื่องของ Venture Capital) ว่าบ้านเราขาดอะไรไปบ้าง และคงเป็นความฝันของคนทำงานด้านนี้ ที่จะไปสัมผัส Community & Environment ที่นั่นสักครั้ง …​ เหมือนกับคนทำงานด้านแฟชั่น คงจะไม่ได้อะไร หากจะเป็นแต่คนเก่งอยู่ใน “กรุงเทพเมืองแฟชั่น” (ตั้งใจประชด) แต่ไม่เคยสัมผัสงานในมิลานเลยสักครั้ง อะไรทำนองนี้แหละครับ

ลูกค้าคือพระเจ้า (จากมุมมองของ​ “การศึกษา”)

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

เรื่องนี้รู้กันดีอยู่แล้ว แล้วผมจะเขียนทำไม?

ผมอยากจะมองเรื่องนี้ในด้าน “การศึกษา” เท่านั้นครับ ด้านอื่น เรื่องอื่น ที่ไม่ใช่เรื่องที่ตัวเองมี authority อะไรด้วยเลย ผมขอไม่มองก็แล้วกัน

ผมถามคำถามนี้มานาน ว่า “ถ้า” ข้อความว่า “ลูกค้าคือพระเจ้า” ไม่ผิด และใช้ได้กับวงการศึกษา “แล้ว” ลูกค้าของสถาบันการศึกษา เช่น มหาวิทยาลัย “คือใคร”?

คำตอบที่ต่างกันในจุดนี้ จะทำให้ทุกอย่างต่างกันราวฟ้ากับเหวแน่นอน และผมมีคำตอบให้เลือก 2 คำตอบ คือ

  1. ผู้เข้ามาเรียน หรือผู้ที่กำลังจะเข้ามาเรียน
  2. สังคมที่อยู่รอบตัวสถาบันการศึกษา หรือสังคมที่ใหญ่กว่านั้น เช่น อุตสาหกรรมที่เกี่ยวข้อง หรือแม้แต่ประเทศชาติ

แน่นอนว่า ในความเป็นจริง เราต้องคำนึงถึงตัวเลือก 2 ตัวนี้ควบคู่กัน แต่ว่าอะไรล่ะ ที่เป็น “ตัวเลือกหลัก” ที่สำคัญกว่าอีกตัวหนึ่ง?

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

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

แต่ถ้าเราเลือกข้อ 2. แล้ว “ผู้ที่จ่ายเงินเข้ามาเรียน” ล่ะ? ไม่ใช่ลูกค้ากระนั้นหรือ?

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

ทุกวันนี้ ในวันที่การศึกษากลายเป็นธุรกิจอย่างเต็มตัว ผู้เข้ามาเรียน (สังเกตว่าตั้งแต่ต้น ผมใช้คำนี้ แทนคำว่า “นักเรียน” หรือ “นักศึกษา”) มีทัศนคติว่าตัวเองเป็น “ลูกค้า” มากขึ้นทุกวัน เพราะว่าพวกเขาคือผู้จ่ายเงิน จ่ายแล้วต้องได้อย่างที่ตัวเองอยากจะได้ จ่ายแล้วจะเรียกร้องเอาอะไรก็ได้ ด้วยความที่ว่า “ลูกค้าคือพระเจ้า”

แต่น้อยคนนักที่จะมองว่าตัวเองเป็นผู้สร้าง เป็นนักลงทุน เป็นผู้ประกอบการ และต้องลงแรงอีกมากมาย สร้างตัวเองให้เป็นโปรดักท์ เพื่อให้ผู้รับประโยชน์ หรือ “ลูกค้า” ของตัวเอง ซึ่งก็คือ “สังคม” ได้อะไรบ้าง ว่าเขาต้องการอะไรบ้าง ….. ครับ “ลูกค้าคือพระเจ้า” เช่นเดียวกัน แต่สำหรับผม อะไรก็ตามที่เป็น “การศึกษา” ลูกค้า ไม่ใช่ผู้เข้าเรียน ผู้เข้ารับการอบรม คนซื้อหนังสือ ฯลฯ ที่จ่ายเงินผมครับ

ไม่ผิดครับ “ลูกค้าคือพระเจ้า”

ป.ล. คงได้มีโอกาสเขียนเรื่อง Consumer & Creator หรือ “ผู้เสพ & ผู้สร้าง” ที่ผมพูดถึงบ่อยๆ ในทุกการบรรยาย ไม่ว่าจะในห้องเรียนหรือบรรยายสาธารณะ และเขียนถึงในบางส่วนใน Facebook ในโอกาสถัดไป

ชี้แจง: “คู่มือเขียน iPhone App”

หนังสือเล่มแรกของผม “คู่มือเขียน iPhone App” ก็ได้ออกวางตลาดเรียบร้อยแล้ว ก็หวังว่าจะช่วยเป็นจุดเริ่มต้นเล็กๆ น้อยๆ สำหรับหลายๆ คนที่อยากจะหัดเขียนโปรแกรม หรือแอพ เพื่อใช้งาน iPhone, iPad, iPod touch กันได้บ้าง


iphoneapps.gif

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

บางครั้งที่ผู้อ่านหลายท่าน พิมพ์โค้ดตามหนังสือ และเกิด Error หรือ Warning ขึ้นมา ทั้งๆ ที่พิมพ์ตามตรงเป๊ะทุกตัวอักษรแล้ว และเมื่อเกิดเรื่องเช่นนั้นขึ้น บางครั้งผู้อ่านบางท่าน อาจจะเริ่มทึกทักว่าหนังสือผมผิด หรือหนังสือผมลืมโน่นลืมนี่ ฯลฯ

ผมขอชี้แจงอะไรบางอย่างตรงนี้ครับ โดยอ้างอิงตัวอย่างจาก e-mail ที่ผมตอบผู้อ่านผมบางท่าน (ขอสงวนชื่อผู้อ่านนะครับ ว่าผมตอบใคร)

กรณีแรก ผู้อ่านประสพปัญหาจากโค้ดในหน้า 157

การวางตำแหน่งต่างๆ ต้องประมวลความรู้เองจากหน้า 121 ครับ ผมเขียนว่า

“ก่อนจะใช้งานสิ่งใดๆ ต้องประกาศสิ่งนั้นก่อน” ดังนั้น …. (พร้อมกับบอกวิธี)

เป็นความตั้งใจของผู้เขียน ที่ต้องการให้ผู้อ่านประมวลความรู้เอง จากสิ่งที่ทำไปแล้วในบทก่อนๆ

ลำดับ Code ที่ปรากฏในหนังสือ สะท้อนลำดับความคิดของผมครับ ไม่ได้สะท้อนลำดับของโค้ดในไฟล์
การที่ผมเขียน Code หนึ่งๆ ทีหลัง ไม่ได้แปลว่าจะต้องปรากฏภายหลังในไฟล์ครับ เราอาจต้อง
ใส่ Interface ของมันไปก่อนใน .h หรือว่าอาจจะต้องเขียน private interface เสียก่อน หรือว่าอาจจะใช้
วิธีการประกาศไว้ก่อน ก็ได้

กรณีที่สอง ผู้อ่านประสพปัญหาจากโค้ดในหน้า 78

Code ที่คุณเขียน และบอกว่ามีปัญหา อยู่ในหนังสือหน้า 78 นะครับ

ลองย้อนไปอ่านดูในหน้า 64 ครับ ตั้งแต่บรรทัดแรกเลย ว่าผมเขียนว่าอะไร และผมมีตัวอย่างให้ดูแล้วด้วย (เรื่อง @synthesize)
ซึ่งจะว่าไป ก็สืบมาตั้งแต่ขั้นตอนการเขียนที่บอกไว้ตั้งแต่หน้า 59 :-)

เป็นความตั้งใจของผมครับ ที่ผู้อ่านจะต้อง “นำความรู้ที่อ่านผ่านไปแล้ว และเห็นตัวอย่างไปแล้ว มาประมวลใช้เอง”

ทีนี้คงจะไม่มีทางลืม @synthesize สิ่งที่กำหนด @property เลยสินะครับ ดีกว่าให้พิมพ์ตามๆ ไปอย่างไม่รู้เรื่องอะไร
เพราะว่ามีหลายคนที่เคยเจอมา อ่านหนังสือไม่ละเอียด ไม่คิด จะดูแต่ code อย่างเดียว และพิมพ์ตามอย่างเดียว
ถ้า code ทำงานได้หมด ไม่เจอปัญหาจากการอ่านไม่ละเอียดและไม่คิดเลย ก็จะ take everything for a grant
(ขออภัย นึกภาษาไทยไม่ออก … ประมาณว่า มองข้ามโน่นนี่ นึกว่าเป็นเรื่องเล็กๆ) ทำให้แก้ปัญหาต่างๆ ไม่ได้ในที่สุด

สิ่งที่คุณเจอ และการแก้ปัญหาของคุณ เป็นเจตนาของผมทีี่อยากให้เกิดขึ้นครับ

มาถูกทางแล้วครับ ยินดีด้วย

ดังนั้น เพื่อ Make Statement ให้ชัดเจนตรงนี้ ผมขอบอกอีกครั้งนะครับ (ซึ่งเป็นการเขียนซ้ำข้อความที่ผมเขียนไว้ในหน้า 14 ของหนังสือ ซึ่งหลายท่านอาจจะอ่านข้ามไปแบบไม่สนใจเท่าไหร่)

หนังสือเล่มนี้จะไม่มี “การรวมโค้ด” ของโปรแกรมเอาไว้ที่หน้าใดหน้าหนึ่ง ให้พิมพ์ตามหรือลอกเฉพาะส่วนของโค้ดได้ โดยไม่อ่านเนื้อหาและความคิดอันเป็นที่มาของโค้ด

นอกจากนี้ โค้ดหลายส่วนที่ซ้ำหรือคล้ายกับที่เคยผ่านมือกันมาแล้ว บางส่วนผู้อ่านจะต้องเขียนเพิ่มเติมเอง

ผมไม่ปฏิเสธครับ ว่าลักษณะการเขียนหนังสือของผมนั้น ได้รับอิทธิพลจากหนังสือต่างประเทศ ทั้งอเมริกาและญี่ปุ่น เป็นอย่างมาก

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

หลายต่อหลายคน หัดเขียนโปรแกรมตามตัวอย่าง คอมไพล์ผ่าน ทำงานได้ ตามตัวอย่างเป๊ะๆ ก็หลงระเริง คิดว่าเข้าใจแล้ว ทำได้แล้ว พอเขียนจริง ต่อให้เป็นโปรแกรมง่ายๆ ไม่ต้องยาก (แค่เปิดไฟล์ นับคำในไฟล์ว่ามีกี่คำ ที่ผมชอบใช้เวลาสอนหนังสือที่ ม.ศิลปากร) ก็เริ่มต้นไม่ถูก พอเขียนแล้วเจอปัญหาเล็กน้อย ก็ไปต่อไม่เป็น เจอข้อความจาก Compiler ก็กลัว ฯลฯ

ขอให้ค่อยๆ พยายามๆ ครับ อ่านหนังสือให้ละเอียด ใช้เวลากับมันให้มากสักนิด เพื่อรากฐานที่มั่นคง

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

และ … คาดเข็มขัดนิรภัยให้แน่นนะครับ เพราะว่าเมื่อพื้นฐานของทุกคนแน่นแล้ว “เล่ม 2” จะเร็วกว่านี้ หนักกว่านี้ ยากกว่านี้ แน่นอน เพราะจะเป็นสิ่งที่ผมทิ้งท้ายไว้ในบทสุดท้าย (บทที่ 16) แต่ถ้าไม่มีสิ่งที่เป็นความรู้ “ระดับสูงขึ้นไป” เลยล่ะก็ การเขียน App หลายตัวสำหรับ AppStore ปัจจุบันนั้นทำไม่ได้แน่นอนครับ

Prisoner’s Dilemma

ทางสองแพร่งของนักโทษ หรือ Prisoner’s Dilemma เป็นทฤษฎีหนึ่งที่ผมชื่นชอบมากเป็นพิเศษตั้งแต่อ่านครั้งแรกๆ ในหนังสือพวก Mathematical Models in Economics เมื่อครั้งเรียนปริญญาตรี และยิ่งเห็นโลกมากขึ้น ผมยิ่งชอบที่จะตีความมันมากขึ้น จนถึงวันนี้กลายเป็นปรัชญาชีวิตตัวหนึ่งที่ผมนึกถึงเสมอเวลาทำอะไรก็ตาม

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

ผลลัพธ์: ถ้าทั้งสองคนต่างเห็นแก่เพื่อน เงียบทั้งคู่ ก็จะโดนขังกันไปคนละ 1 เดือน ถ้าทั้งสองคนต่างก็เห็นแก่ตัวเอง บอกทั้งคู่ ก็โดนกันไปคนละ 3 เดือน แต่ถ้ามีคนหนึ่งพูด อีกคนไม่พูด (คนหนึ่งเห็นแก่เพื่อน อีกคนเห็นแก่ตัว) คนที่พูดจะได้เป็นอิสระ แต่คนที่เงียบจะโดน 12 เดือน

ลองเปลี่ยนรูปแบบให้เป็นรูปแบบของการได้คะแนน แทนการเข้าคุก เราจะได้ตารางแบบนี้


prisonerdilemma.png

โดยมีคนสองคน P1 และ P2 แต่ละคนมีทางเลือกคือ “Cooperate” (ร่วมมือกัน) หรือ “Defect” (หักหลังกัน) … ซึ่งแม้ตามตำราจะใช้คำนี้ แต่นับวันผมยิ่งมีความรู้สึกว่ามันคือ “เพื่อคนอื่น” (เห็นแก่คนอื่น) และ “เพื่อตัวเอง” (เห็นแก่ตัว) มากกว่า แต่ผมขอใช้ตัวย่อตัวเดิม คือ C และ D ตามลำดับ

ถ้าทั้ง 2 คนต่างคิดเพื่ออีกฝ่าย จะได้คนละ 3 คะแนน รวมแล้ว 6 คะแนน ถ้าคนหนึ่งเห็นแก่ตัว ฝ่ายเห็นแก่ตัวจะได้ 5 และอีกฝ่ายจะไม่ได้อะไรเลย 0 รวมแล้ว 5 คะแนน แต่ถ้าเห็นแก่ตัวทั้งคู่ (จะเอาทั้งคู่) ก็จะได้คนละ 1 คะแนน รวมแล้ว 2 คะแนน

เรื่องที่น่าสนใจคือ

  • ถ้าเราจะต้องตัดสินใจเพื่อให้ตัวเองได้ประโยชน์สูงสุด เราจะเลือก D หรือทางเลือกแบบเห็นแก่ตัว เสมอ เพราะว่าคะแนนที่เรามีโอกาสได้คือ 5, 1 (Max: 5, Min:1) ในขณะที่ถ้าเราคิดเผื่ออีกฝ่าย จะได้ 3, 0 (Max: 3, Min 0)
  • แต่ถ้าเรามองทั้งระบบเป็นหลัก เราจะเห็นว่าทางเลือกแบบเห็นแก่ตัว ที่ทำให้เราได้คะแนนส่วนตัวสูงสุดที่เป็นไปได้ มันจะทำให้ระบบมีโอกาสได้คะแนน Max: 5, Min: 2 แต่ถ้าเรายอมเสียประโยชน์ส่วนตัว จะได้ Max: 6, Min: 5
  • ถ้าทุกคนคิดเพื่อคนอื่น ทุกคนจะได้มากกว่าที่คิดเห็นแก่ตัว (คนละ 3 vs. คนละ 1) และระบบได้สูงสุด (6)
  • ถ้าทุกคนคิดเห็นแก่ตัวกันหมด แต่ละคนจะได้น้อยกว่าที่ตัวเองหวังไว้ (หวัง 5 vs. ได้ 1) และระบบแทบจะไปไม่ได้ (2)

ตัวอย่างที่เห็นกันเกลื่อนกลาด ก็เช่นเรื่องตั้งงบประมาณ เรื่องขออัตรากำลังคน เรื่องขอทุนวิจัย เรื่องขอเปิดหลักสูตร เรื่อง ฯลฯ ที่มีหลักคิดจากการ Maximize by Part ของตัวเอง ว่าถ้าฉันมีนี่นั่นโน่น แล้วจะทำหน้าที่ตัวเองได้ดีที่สุด แล้วเมื่อทุกคนคิดเหมือนกัน ก็ต้องมานั่งเกลี่ยกันตรงกลาง หารกันไป ถัวกันไป ซึ่งจะทำให้แต่ละคนได้แบบเบี้่ยหัวแตก น้อยกว่าที่ตัวเองคาดหวังและอยากได้ และทำอะไรไม่ได้ สุดท้ายระบบแย่ที่สุด

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

ผมขอจบ Entry นี้ ด้วย Statement ที่ว่า

ระบบที่ห่วยที่แย่ที่สุด บางครั้งมันเกิดจากการที่แต่ละคนแต่ละส่วน พยายามทำดีที่สุด “เพื่อตัวเอง”

(โดยบางครั้ง การทำเพื่อตัวเองนั้นๆ อาจไม่ได้มาจากเจตนาที่เลวร้าย เพียงแต่เห็นประโยชน์ตัวเองเป็นหลักก่อน ก็เท่านั้น)

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

[update 1:] เพิ่มเติมอีก Statement หนึ่ง

The Whole is greater than sum of its Parts

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

ทดสอบ Dynamic Range กับ X100 JPEG

เห็นคุณ RBJ ทดสอบ Dynamic Range (DR) จาก RAW ของ D7000 แล้วรู้สึกว่ากล้องสมัยนี้มันเก็บ Dynamic Range ได้ดีน่าใจหายมากๆ เมื่อเทียบกับแค่ไม่กี่ปีที่แล้ว … ก็เลยนึกสนุกลองดูบ้าง ว่า JPEG จากน้องเล็ก X100 มันจะทำได้ดีแค่ไหน

ว่าแล้วก็เอากล้องไปเดินเล่นแถวสยามตอนเย็นๆ แล้วก็กดรูปนี้มาซะ


DSCF1250.jpg

เป็นรูปที่ตั้งใจให้มี contrast ของแสงค่อนข้างมาก จะเห็นว่าฟ้า (Highlight) ค่อนข้างหายและจืด ส่วนด้านล่าง (Shadow) ค่อนข้างมืดมองอะไรไม่เห็นเท่าไหร่ และนี่เป็น “JPEG” จากกล้อง ไม่ใช่ RAW ดังนั้นโอกาสที่จะมีข้อมูลเหลือๆ เก็บอยู่ในไฟล์ให้เอามาทำอะไรได้ก็น้อยลงไปเยอะ

เอาล่ะ ก็ถึงเวลาทดสอบซะทีว่ามันเก็บไว้ได้แค่ไหน ว่าแล้วก็เปิด Lightroom แล้วก็ปรับแบบไม่คิดอะไรมาก ลาก Recovery กับ Fill Light ให้สุด จากนั้นก็ปรับๆ นี่นั่นโน่นนิดๆ หน่อย พวก +/- Contrast, Saturation, Brightness, Exposure ให้มันพอดูได้บ้างอะไรบ้าง

ใช้เวลาลวกประมาณ 2-3 นาที ผลลัพธ์นี่อยากจะกรี๊ดสลบเลยทีเดียว …. ไม่ใช่กรี๊ดเพราะรูปสวยนะ แต่กรี๊ดเพราะ “DR มันมีให้เล่นเยอะขนาดนี้เลยหรือนี่?”


DSCF1250-2.jpg

อีกครั้งนะครับ นี่เป็นการ “ตบและดึง” ดื้อๆ จากไฟล์ JPEG ธรรมดาๆ จากกล้อง ไม่ได้ถ่าย RAW ไม่ได้ทำ HDR

(ป.ล. รูปนี้ดูบนจอ MacBook Pro แล้วสีมันสวยกว่า Samsung ที่ใช้เป็นจอ 2 อยู่มากมายเลยแฮะ สงสัยได้เวลา Calibrate ใหม่)