Story & Thoughts
Tagged:  •    •  

อยากได้ตั้งแต่วันประกาศตัวละครับ กับเมาส์ใหม่ของ Apple ที่ตั้งชื่อว่า Magic Mouse (ไม่ใช่ Mighty ที่มีปัญหาเรื่องชื่อ อีกต่อไปแล้ว) พอดีตอนนั้น Mighty Mouse ตัวที่ใช้อยู่ ซึ่งตัวเก่ามาก มีปัญหา scroll-down มากมาย (ตัวใหม่ที่ยังดีๆ อยู่ หายไปกับเครื่องที่โดนทุบรถขโมยไป) แทบจะงัดทิ้งหรือไม่ก็ขว้างทิ้งอยู่ทุกวัน ก็เลยบอกพนักงาน iStudio ที่สนิทมากคนหนึ่ง คือ คุณแอน จาก SPV ให้เอามาให้ "ทันทีที่ออก" ซึ่งเมื่อคืนตอนสองทุ่ม คุณแอนก็เอามาให้ ไม่คิดค่าขนส่ง ขอบคุณมากนะครับ

รีวิวนี้ จะไม่มีการโชว์รูป unpacking นะครับ อันนั้นคงหาอ่าน หาดูได้เยอะแล้ว ผมคิดว่าคงจะเหมาะกว่า ถ้าผม ในฐานะหนึ่งใน dualGeek จะเล่าความรู้สึก โดยเน้นด้าน interaction design ว่าเป็นอย่างไร ว่าแล้ว ไปอ่านกันเลยดีกว่าครับ

Tagged:  •    •    •  

ว่าจะเขียน review ตั้งแต่สอนเสร็จล่ะครับ ว่าเป็นยังไงมั่ง ก็ขอสรุปแยกเป็นเรื่องๆ ละกันนะครับ

คนที่มาอบรม

เรื่องคนที่มาอบรมนี่ บอกตามตรงว่าเป็นปัญหากับผมและทีมงานค่อนข้างมาก เพราะว่า background หลากหลายเหลือเกิน ส่วนมากอาจจะมีประสบการณ์เขียน Java มาก่อนบ้าง แต่นอกนั้นถึงจะมีประสบการณ์เขียนโปรแกรมมาก่อน ก็เป็นพวก Web developer สาย PHP ซึ่งจะไม่ค่อยมีประสบการณ์ด้านการออกแบบ OOP เท่าไหร่นัก

ทำให้ผมค่อนข้างจะมั่นใจว่า การปูพื้นฐาน Object-Oriented ใหม่หมด โดยเฉพาะอย่างยิ่ง patterns ที่ Cocoa Framework ใช้งาน ไม่ว่าจะเป็น Property, Getter/Setter, Model-View-Controller, Target/Action, Outlet เป็นสิ่งที่ถูกต้องที่สุด เพราะว่าถึงจะเคยเขียน Java มาก่อน ก็ไม่ได้แปลว่าเราจะเข้าใจเรื่องพวกนี้ตรงกัน หรือว่าไปในทางที่เป็นประโยชน์ต่อการเขียนโปรแกรมใน Cocoa Framework

Objective-C

ผมเห็นว่า Objective-C มีปัญหากับหลายคนน้อยกว่าที่ผมคิด โดยเฉพาะอย่างยิ่งพวกที่เป็นภาษา Java มาก่อน เพราะว่ามันคล้ายกันมากๆ โดยเฉพาะอย่างยิ่งเมื่อมันมี Garbage Collector (ซึ่งใน Objective-C 2.0 มี แต่ยังไม่มีใน iPhone OS)

Tagged:  •    •  

เคยไหมที่คุณเปิดโปรแกรมหลายหน้าต่างยุ่งเหยิงเต็มไปหมด จะจัดการกับหน้าต่างเยอะแยะเช่นนั้นอย่างไรดี?

ใน Tiger เรามี Exposé เรามีตัวเลือกอื่นๆ ในการจัดระเบียบหน้าต่างอันแสนวุ่นวายนี้ เช่น Virtual Desktop ซึ่งเป็นสิ่งที่คล้ายๆ กับการ Multiple Desktop ในลินุกซ์หลายๆ ยี่ห้อ

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

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

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

แล้วยังมีปัญหาอีกอย่างหนึ่งคือ แล้วถ้าอยากให้หน้าต่างบางโปรแกรมแสดงบนแค่ไม่กี่ Spaces จะทำอย่างไร? ปัจจุบันสิ่งที่เป็นอยู่ในตอนนี้มีแค่ 2 ตัวเลือกคือ อยู่หนึ่ง Space หรืออยู่ทุกๆ Spaces ซึ่งระบบอื่นๆ สามารถจัดการได้ยืดหยุ่นกว่านี้

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

หวังว่าปัญหานี้จะได้รับการแก้ไขในเร็วๆ นี้

Tagged:  •    •  

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

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

แต่ที่จะมาโพสนี้เกี่ยวกับ Comment ในหัวข้อนี้บนเวป TUAW ครับ ของคุณ Andrew Soderberg

เหตุที่ผมคิดว่าน่าสนใจเพราะ เค้าเป็นหนึ่งในทีมพัฒนา FireWire รุ่นบุกเบิกในปี 1991-1993 ครับ .. ลองเข้าไปอ่านกันดู มีมุมมองและความเป็นมาที่น่าสนใจ ที่อาจจะถูกมองข้ามเพราะเป็นแค่ comment เล็ก ๆ ครับ

Tagged:  •    •    •    •    •  

JavaScript กลายมาเป็นส่วนสำคัญส่วนหนึ่งของ Web Experience ในปัจจุบันไปเสียแล้ว ด้วยการที่นักพัฒนา Web Application ทั้งหลายทั้งแหล่พยายามสร้าง User Experience ที่ลื่นไหลมากขึ้น ต่อเนื่องมากขึ้น มี Interaction กับผู้ใช้มากขึ้น ฯลฯ ให้กับโปรแกรมบนเว็บของตัวเอง และเทคโนโลยีที่เก่าเก็บอย่าง JavaScript ก็เลยคืนชีพมากลายเป็นพระเอกขี่ม้าขาวช่วยสร้างตรงนี้ให้เกิดขึ้น

แต่ว่ามันไม่ใช่ว่าไม่มีปัญหา ไม่ว่าจะเป็นความหลากหลายของชุดพัฒนา ที่นำมาซึ่งความเข้ากันได้เข้ากันไม่ได้มากมาย และความหลากหลายและความเข้ากันไม่ได้ของ Web Browser เอง ที่ทำให้นักพัฒนาต้องปวดหัวเป็นประจำ ยังมีเรื่องนึงก็คือ ความเร็ว เพราะว่ามักจะอืดเหลือเกิน

พักหลังๆ ในโลกของการพัฒนา Web Application ก็เลยมีเครื่องไม้เครื่องมือมาช่วยในการวัดประสิทธิภาพอยู่หลายตัว แต่ว่าอีกโลกหนึ่ง ฝั่งของ Web Browser และ Web Browser Engine ก็มีการพัฒนาฉากหลัง ที่ช่วยทำให้การทำงานของ JavaScript มันเร็วขึ้น

เมื่อ 3 เดือนก่อน WebKit ทีมได้ประกาศ SquirrelFish ซึ่งเป็น JavaScript Engine ตัวใหม่แกะกล่อง ที่จะช่วยเพิ่มประสิทธิภาพดังกล่าวให้กับการทำงานของ JavaScript ใน Browser ที่ใช้ Engine ของ WebKit (เช่น Safari และอีกหลายๆ ตัว)

มาตอนนี้ Engine ตัวที่ว่าก็เก่าไปซะล่ะ เพราะว่ามีการพัฒนา SquirrelFish Extreme (SFX) ที่เร็วกว่าของเดิมกว่าเท่าตัว (เร็วกว่าตัวที่อยู่ใน WebKit 3.0 กว่า 10 เท่า และ 3.1 กว่า 3 เท่า) อยากรู้ว่าเป็นอย่างไรก็เข้าไปดูใน link นะครับ มี chart ให้เรียบร้อย

image says it all

w-update.jpg

ใครได้อัพเดท Raw ไฟล์ของ Apple แล้วรู้สึกแปลกใจบ้างไหมครับ? ว่าอาจจะมีกล้องรุ่นใหม่หลุดออกมาในท้องตลาด ... =P

คุณพระช่วย

Tagged:  •    •  

ผ่านไปแล้วเรียบร้อยกับงาน "Let's Rock" งานแถลงข่าวผลิตภัณฑ์ของ Apple ที่นำ iPod nano 4th Gen มาเปิดตัวพร้อมกับ iPod touch 2nd Gen รวมถึง iTunes 8 และผลิตภัณฑ์เสริมอีกพอสมควร

ยิ่งใหญ่เป็นยักษ์ไปเรียบร้อยแล้วสำหรับ iTunes ที่ขึ้นแท่นอันดับหนึ่ง Distributor แทนที่ Wal-mart และ Best Buy ไปแล้ว ขณะเดียวกัน Steve Job ก็เปิดเผยตัวเลขจำนวนสมาชิกที่มากถึง 65 ล้านบัญชี โดยเป็นตัวเลขเฉพาะของสมาชิกที่แจ้งหมายเลขบัตรเครดิตไว้กับ iTunes Store ไม่น้อยเลยทีเดียวกับตัวเลขนี้ อีกไม่นานคงจะทะยานเยอะกว่าจำนวนประชากรในประเทศเราเป็นแน่แท้ และสำหรับ App Store ที่พึ่งเปิดตัวไปเมื่อสองเดือนก่อน ก็สร้างสถิติกับยอดการ Download Application กว่าร้อยล้านครั้ง

Tagged:  •  

อีกวันกว่าๆ ก็จะถึงหมายกำหนดการงานแถลงข่าวผลิตภัณฑ์ใหม่ของ Apple ในครั้งนี้มีคำโปรยของงานนำเสนอไว้ว่า "Let's Rock"

ย้อนกลับไปในปีที่ผ่านมา 5 กันยายนของปีที่แล้ว Apple ก็จัดงานแถลงข่าวของ iPod รุ่นใหม่ด้วยคำโปรยของงานในครั้งนั้นว่า "The beat goes on" แล้วเราก็ได้พบกับ iPod nano ตัวสั้นป้อมซึ่งดูวีดีโอได้ แม้ว่าจะจอเล็กนิดเดียว iPod Classic ปรับโฉมเล็กน้อยพร้อมเพิ่มความจุ และทั้งสองตัวมาพร้อมกับ Feature ที่เรียกได้ว่าเป็น "ของเล่น" ใหม่นั่นก็คือ Cover Flow รวมถึงมีเกมส์ให้เลือกซื้อเพื่อมาเล่นเพิ่มเติมได้ทั้ง Classic และ nano และน้องใหม่ที่ Apple จัดให้อยู่ในสายผลิตภัณฑ์ของ iPod นั่นก็คือ iPod touch

Tagged:  •    •    •  

เพิ่งจะสังเกตแฮะ ไม่เคยสังเกตเลยมานานมากแล้ว (ตั้งแต่ใช้งาน) ว่า Aperture มันไม่ยอม export metadata บางตัวมากับรูปด้วยเวลาที่ export รูป

เรื่องของเรื่องคือ ผมพยายามจะเขียนโปรแกรมดึง metadata จากรูปที่ export แล้วออกมาแสดง ด้วยความพยายามทั้งหมดไม่ว่าจะเป็นการใช้ ImageIO.framework หรือว่าการใช้ ImageMagick (RMagick) หรือว่าการใช้ Exiftool ต่างก็ล้มเหลวหมด

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

กลับไปดูใน Aperture .... อืมมม ข้อมูลเลนส์มันก็มีนี่นา

เอ๊ะ เดี๋ยวก่อน หรือว่ามัน export ข้อมูลมาให้ไม่ครบ? ไม่น่าเป็นไปได้ ... แต่ลองหน่อยดีกว่า ว่าแล้วก็ลากรูปที่เพิ่งจะ export มาน่ะแหละ กลับลงไปใน project แล้วเปิด metadata ดู .. เฮ้ย หายจริงๆ ด้วย

อืมมม แบบนี้หมายความว่าไงเนี่ย ลอง export master ดูซิ ทีงี้ล่ะมาเชียวนะ แต่ว่าไหงพอ export versions กลับไม่ยอม export ให้ละเนี่ย ... สิ่งที่ผมต้องการน่ะเหรอ แค่ resize รูปเองนะ ไม่ได้ต้องการทำอย่างอื่นเลย

ลองใช้โปรแกรมอย่าง ImageMagick ทำหน้าที่ลดขนาดรูปดูบ้าง .....