Leopard Notes

ลง Leopard ไปเมื่อคืน เพิ่งจะเสร็จตอนนี้ และนี่คือ impression คร่าวๆ และ installation notes กับตัวเอง (ไม่เรียงลำดับ คิดอะไรได้ก่อนเขียนก่อน)

  • Bash เป็น version 3.2.17(1) ไม่ต้องหาของใหม่มาลงแล้ว ไอ้นี่เป็นสิ่งแรกที่ check เลย ตอนที่เข้าไปใน iStudio ที่ใกล้บ้านที่สุด (ปิ่นเกล้า) … ผมคงเป็นไม่กี่คนในโลกที่เมื่อลองเล่น Leopard สิ่งแรก ที่ทำคือหา Terminal มาดู version ของ Bash
  • อันดับต่อไปก็ uname -a ได้ข้อสรุปว่า Darwin 9.0.0
  • และแล้ว Terminal มี tab ซะที
  • พอเริ่มลง อืมมม Installer แปลกตาไปแฮะ แต่ว่าก็ไม่ได้มีผลอะไรกับการลงง่ายลงยาก เพียงแต่บริเวณ active window มันมากขึ้น
  • มี Ruby 1.8.6 และ Rails 1.2.3 แต่ว่าก็ต้องลง MySQL เพิ่มเข้าไปเพราะว่ามันไม่มีให้ ก็เอา binary ของ Tiger มาใช้ได้เลย (warning: ยังไม่ได้ทดสอบ!) แต่ว่า Preference Pane มันจะไม่ work ต้องใช้งานผ่าน command line อย่างเดียว แล้วก็อีกอย่างก็ต้องแก้ symbolic link นิดหน่อย ตามนี้ อ่อ อ่าน troubleshooting นี่ด้วยนะ
  • มี PHP 5.2.4
  • Apache เป็น 2.2.6
  • Mail.app เร็วมาก เมื่อเทียบกับของเก่า แต่ว่ายังไม่ได้ลองใช้ ​RSS
  • Fink ประกาศรองรับ Leopard (สมควร) แต่ว่าตอนนี้ยังไม่มีอะไร ก็ bootstrap ใหม่ หรือว่า selfupdate (ทำที่ ม. ไม่ได้) แต่ว่าตอนนี้ก็ยังไม่มีอะไร และเนื่องจากที่ ม. ใช้ MacPorts ไม่ได้ ด้วยเหตุผลเดียวกัน ก็เลยต้องลงโน่นนี่ที่จำเป็นจาก source เอาเอง
  • Menu bar ใหม่ ทำให้เรื่องมากกับการเลือก background มากขึ้น เพราะว่าจะต้องเลือกให้ menu bar มันสวย อ่านออกง่าย ฯลฯ ด้วย เฮ้อ เป็นภาระนะเนี่ย แต่ว่ามันก็สวยดีอ่ะนะ
  • ลองทำ Dock เป็น 2D แล้ว กลายเป็นรำคาญเส้นขาวๆ ที่อยู่ตรงขอบมันแฮะ สรุปว่าก็เลยใช้มันแบบนี้แหละ
  • ยังไม่ได้ลองเล่น Xcode ใหม่ กับ Core Animation ทั้งๆ ที่เป็น priority หลัก (ตอนนี้ไล่ compile พวก lib ที่จำเป็นกับงานอื่นๆ ก่อน จะต้องทำไว้ให้พวกผู้ช่วยใน lab ด้วย)
  • Preference ใหม่หลายตัวเลย งงๆ กับตัว Network นะ มันทำให้ต้อง click มากขึ้นโดยใช่เหตุหรือเปล่าก็ไม่รู้ แต่ว่าก็มองเห็นภาพรวมดีขึ้นนะ สรุปว่าสำหรับผู้ใช้ทั่วไปที่ไม่ได้ยุ่งกับ advanced settings มากนักคงจะดี
  • ในที่สุดสีมันก็ Unified เสียที ปุ่มบนบาร์ก็ดูเนียนขึ้นเป็นส่วนมาก ความรู้สึกที่ว่ามันจะวิสต๊าวิสต้า น้อยลงไปเยอะ
  • Spaces ใช้งานร่วมกับ Desktop Manager 0.5.4r1 ได้เนียนดี ซึ่งเป็น plus มากสำหรับผม ที่ชินการตั้ง key combination ของ Desktop Manager และชอบที่เห็น visual ของ desktop ทั้งหมดที่ตัวเองมีอยู่บน Menu bar
  • QuickSilver ใช้ได้ไม่มีปัญหาอะไร (จริงๆ สำหรับ version นี้ Apple ประกาศเลยว่าจะให้ Spotlight เป็น Application Launcher ได้ด้วย … ก็ลองใช้ดูแล้วก็ OK นะ แต่ว่ายังชอบ QuickSilver มากกว่า มันฉลาดกว่ากับการพิมพ์ผิด)
  • แต่ว่า Spotlight รุ่นนี้ก็ on-steriod พอควรนะ ใช้เป็นเครื่องคิดเลขได้ด้วย
  • ชอบตอน unzip/untar.gz ไฟล์นะ มันจะขึ้นเป็น folder มาวางซ้อนกับ file ที่เรา unzip ไม่ต้องไปหาที่ไหนไกล แต่ว่าข้อเสียมันคือ ถ้ามันเป็นคนละชื่อกัน มันก็จะเป็นเหมือนเดิม คือไปวางเป็น folder ต่อตรงปลาย ซึ่งตรงนี้ทำให้เกิดพฤติกรรมที่ไม่ consistent เท่าไหร่
  • โปรแกรมส่วนมากที่ใช้ทำงานประจำก็ใช้ได้นะ แต่ว่า ecto (โปรแกรมที่ผมใช้เขียน blog) กลับมีปัญหาซะงั้นน่ะ ก็เลยต้องเอา version 3 มาลง ดีนะที่ serial เก่าที่เราซื้อมามันใช้ได้ ไม่งั้นต้องเสียตังค์ซื้อใหม่อีก (แต่ว่าพอตัวจริงออกมาจะต้องเสียตังค์ upgrade หรือเปล่าไม่รู้ ตอนนี้มัน beta อยู่)
  • Finder screams! เจ๋งโคตร เร็วมาก Cover flow เร็วและเนียนมาก และมีประโยชน์จริงสำหรับไฟล์ที่ใช้ visual แบ่งแยกได้ง่ายๆ
  • QuickLook ก็เป็น killer อีกอย่างหนึ่งที่ทำให้ Finder รุ่นนี้มัน killer มากขึ้นตามไปด้วย
  • ส่วนที่กังขากันมานาน ก็คือ มันช่วยให้ดู source code ได้หรือเปล่า คำตอบคือ ได้ แต่ไม่มีประโยชน์ เพราะว่าพี่ท่านเล่นให้ดูทั้งหน้า(แทนที่จะเป็นหัวไฟล์) ทำให้ตัวอักษรมันเล็กมาก….. และไม่มี syntax highlighting สงสัยต้องแงะ SDK ดูว่ามันทำ QuickLook plugin ได้หรือเปล่า (ถ้าเอา sense มาพูด ก็คงได้)
  • อ่อ สิ่งที่เคยเป็นคอขวดที่งี่เง่ามากใน Finder รุ่นก่อน คือการทำงานกับ network ก็ไม่เจออีกแล้วในรุ่นนี้ เนียนมาก

ส่วนที่ยังไม่ได้ทำ แต่ว่าอยู่ใน list ก็คือ

  • ลง Qt, ImageMagick, RMagick ซะ คิดว่าคงต้องลงจาก source หมด สบายใจดี
  • เล่น Finder มากกว่านี้ ขุดหา limitation มันมากกว่านี้หน่อย ตอนนี้ก็มีเรื่องไม่ค่อยจะชอบใจมันบ้างล่ะนะ แต่ว่าไม่รู้ว่าเป็นเพราะเรายัง set มันไม่เป็นเองมากกว่าหรือเปล่า
  • เล่นกับ Developer Tools
  • ทดสอบ App ที่มันซีเรียสกว่านี้
  • ทดสอบ Time Machine และ potential ที่จะเอามาประยุกต์ใช้กับงานหลายๆ แบบว่ามันเหมาะสม/ไม่เหมาะสมยังไง
  • ทดสอบ OpenGL และ Core Animation
  • หา Usability flaws (ท่าทางจะว่างงาน)
  • เตรียมทำ dualGeek podcast ตอนพิเศษเรื่อง Leopard โดยเฉพาะ

คงแค่นี้ก่อนล่ะครับ มีอะไรจะมา post เพิ่มเติม

2D Dock กับ Leopard

ผมไม่ค่อยจะถูกชะตากับ new 3D Dock ของ Mac OS X 10.5 Leopard ตั้งแต่มันถูกประกาศแล้ว เพราะว่านอกจาก eye-candy แล้วไม่เห็นมันจะช่วยให้ usability มันดีขึ้นตรงไหน เผลอๆ จะทำให้แย่ลงด้วยซ้ำ เพราะว่ามันทำให้ Dock มัน high-profile ขึ้น มันมีความรู้สึก in-your-face มากขึ้น มัน visible มากขึ้น ซึ่งพวกนี้มักจะไม่ค่อยดีต่อ usability เท่าไหร่ (ในกรณีนี้)

จากข่าวล่าสุด สำหรับ build 9A581 (ที่น่าจะเป็น Gold-master) รู้สึกว่า Dock มันจะกลายเป็น 2D เมื่อวางไว้ด้านข้างของจอ (macrumors.com) ก็ลองเทียบกันดูกับ build เก่าๆ ที่ยังเป็น 3D อยู่แล้วกัน ว่ามันดูดีกว่ากันแค่ไหน




(ภาพจาก macrumors.com และ rogueamoeba.com ตามลำดับ)

ไม่พอ มีคนเจอ ว่าถ้าต้องการจะเอา 3D ออกแม้ว่าจะอยู่ข้างล่าง ก็ยังคงทำได้โดยอาศัย trick เก่าๆ บน Terminal แล้วก็พวก defaults write [option] ทั้งหลายแหล่ที่มีมาตั้งแต่โบราณ (สมัย NeXT โน่น)

defaults write com.apple.dock no-glass -boolean YES

จากนั้นก็ restart Dock ใหม่ (อาจจะ killall Dock ไปเลยก็ได้) แล้วก็จะได้ 2D Dock ที่ “เกือบ” เหมือนเดิม


(ภาพจาก lime.quickshareit.com)

ซึ่งจริงๆ แล้วก็ยัง high-profile อยู่ดี เทียบกับ Dock ตัวปัจจุบัน เพราะว่ามันยังมีขอบ มี texture มีอะไรมากเกินไป แต่ว่าก็ยังน่าจะดีกว่า 3D Dock ล่ะนะ

Clean RSS ที่เก็บไว้

ผมใช้ Vienna เป็น​ RSS reader ประจำ เนื่องจากมันใช้ค่อนข้างจะง่าย ฟีเจอร์ค่อนข้างจะครบ สำหรับการเป็น reader ธรรมดาทั่วไป (ก่อนหน้านี้เคยใช้ NetNewsWire Lite กับ NewsFire ก่อนที่จะเก็บตังค์)

พักหลังๆ นี่รู้สึกว่ามันจะ อืด มาก ส่วนหนึ่งอาจจะเป็นเพราะว่า feed ที่ผม subscribe ไว้มันเยอะจัด (ประมาณ 500 feeds) แล้วก็มี articles ที่เก็บไว้หลายหมื่น articles เพราะว่าผมไม่เคยให้มัน auto delete เลย (ด้วยความงก)

ว้นนี้เปิดเข้าไปดูใน ~/Library/Application Supports ที่มันน่าจะเก็บไฟล์ที่เก็บ feed เอาไว้ ตกกะใจกับขนาดมันมาก เพราะว่ามันตั้ง 300 กว่า MB (จำไม่ได้ว่าเท่าไหร่ แต่มากกว่า 350) อ่อ มิน่า มันก็เลยช้า ส่วนหนึ่งก็เพราะว่ามันจะต้อง load ไฟล์ฐานข้อมูลขนาดมหึมา (​มันใช้ SQLite storage นะ ที่รู้กันว่ามันค่อนข้างจะอืดถ้าข้อมูลมันเยอะ) ก็เลยต้องมานั่งจัดการมันซะมั่ง

ตอนนี้เหลือแค่ 70 MB เอง นี่แปลว่าข้อมูลที่เราลบทิ้งได้โดยไม่ต้องคิดอะไรนี่มันมากถึงกว่า 6/7 เลยสินะ นี่ขนาดผมยังไม่ได้สั่งให้ลบ articles ที่ผมยังไม่ได้อ่านนะ

จริงๆ ผมยังมี thought เกี่ยวกับ RSS และการ subscription ของ feed นิดหน่อย แต่ว่าตอนนี้ยังไม่มีเวลาเขียนถึง แล้วจะเขียนให้อ่านกันนะครับ .. เอาเป็นว่า ผมค่อนข้างจะเห็นด้วยกับ Daniel Jalkut แห่ง Red Sweater Software นะ ลองเข้าไปอ่านที่นี่ครับ

แต่เอาเป็นว่าตอนนี้ Vienna ก็กลับมา responsive อีกครั้งแล้ว ก็แน่นอน เบาสบายตัวไปเยอะนี่ รีดน้ำหนักที่ไม่ต้องการออกไปได้แล้ว คราวนี้คงต้องมานั่ง manage feed กันจริงๆ ซะที

Caps Lock บน Apple Keyboard ใหม่ แข็งเพราะจงใจ?

ตอนที่เขียน รีวิว Apple Keyboard ใหม่ ไปใน blog คราวก่อน ผมค่อนข้างจะบ่นเรื่องที่ปุ่ม Caps Lock มันแข็งกว่าปกติ ซึ่งก่อปัญหาให้กับผมเวลาใช้งานพอสมควร เนื่องจากตัวเองใช้ปุ่ม Caps Lock ในการสลับภาษาแบบเร็วๆวันนี้ไปเจอมา ว่าจริงๆ แล้วนี่อาจจะเป็น ความตั้งใจ ของ Apple ที่ทำให้ Caps Lock แข็งกว่าปกติ

อืมมม ถ้าเป็นเช่นนั้นจริง และลองคิดถึงว่า จริงๆ แล้วก็มีคนกดปุ่ม Caps Lock ผิดแบบไม่ได้ตั้งใจ (เพราะว่าคิดจะกด tab หรือ shift ด้านซ้ายมือ) เยอะพอสมควร … จะว่าไปปุ่ม Caps Lock มันก็เป็นปุ่มที่ใช้งานน้อยพอสมควรปุ่มหนึ่งล่ะนะ ดังนั้นถ้าจะมองจาก Usability design ที่จะป้องกันความผิดพลาดล่ะก็ มันก็ make sense อยู่ล่ะ คือ ถ้ากดผ่านๆ แบบแตะๆ มันก็จะไม่ถือว่าเรากด ดังนั้นต้องกดนานกว่าปกตินิดนึง ซึ่งก็จะทำให้จังหวะการพิมพ์มันเสียไปนิดหน่อย หรือว่ากดแบบเน้นๆ นิดนึง ซึ่งจะเปลืองพลังงานมากกว่าปกตินิดหน่อยสรุปว่า อืมมมม คนแบบผมมันคงจะเป็นส่วนน้อยล่ะนะ หรือว่าคนที่ใช้ปุ่ม Caps เพื่อวัตถุประสงค์ในการเปลี่ยนภาษาเร็วๆ นี่คงจะเป็นส่วนน้อย เพราะว่าถ้าจะพิมพ์ตัวใหญ่แค่ตัวสองตัว ก็คงจะกด shift เอามากกว่าอืมมม make sense ล่ะครับ แต่ว่าสำหรับการใช้งานส่วนตัว ผมยังอยากให้มันอ่อนเท่ากับ key อื่นๆ เหมือนเดิม (ส่วนหนึ่งเพราะลักษณะการใช้งานของผม และส่วนหนึ่งมาจาการที่ผมไม่เคยกด Caps ผิด) …​ แต่ว่าครั้งนี้ ถ้า Apple ได้วิเคราะห์พฤติกรรมของผู้ใช้แล้วจริงๆ ว่ามีการกด Caps ผิดแบบไม่ได้ตั้งใจเยอะพอ และปุ่ม Caps ก็เป็นปุ่มที่ใช้งานน้อยอยู่แล้ว … ดังนั้นการออกแบบคีย์บอร์ดมาแบบนี้ก็เหมาะสมดีอยู่

อัพเกรด bash

เขียน shell script ใน bash (Bourne-Again SHell) มาก็หลายตัว สิ่งที่รำคาญที่สุดก็คือการเขียน loop เพราะว่าต้องเขียน

for i in 1 2 3 4 5

อะไรทำนองนี้ ถ้ามันเป็นตัวเลขก็ยังพอจะหาโปรแกรมพวก seq หรือว่า jot มาใช้ได้ไม่ยากนัก หรือว่าจะเขียนเองก็ไม่ได้ยากเย็นอะไรเท่าไหร่ ถ้าบางทีเป็นตัวอักษรนี่ก็คงจะลำบากหน่อย แต่ว่าก็เขียน Ruby script ที่จะสร้าง sequence ตัวอักษรต่อๆ กัน ก็ไม่ได้ยากเท่าไหร่ …. แต่ว่าคำถามก็คือว่า ทำไมต้องมาทำแบบนี้ด้วยหว่า มันน่าจะมีอะไรซักอย่างที่ช่วยได้สิ

และแล้ววันนี้ก็ไปเจอมาจาก blog ของ Sam Danielson

เห็นแล้ว โอ้โฮ!

for i in {1..12}

ไม่พอๆ หรือว่า

mkdir {a..z}{1..12}

ไอ้นี่สิ killer ชัดๆ

wget http://www.anoyingpages.com/page_{1..12}.html

เพิ่งจะรู้ว่า bash มันทำแบบนี้ได้ด้วยแฮะ! ทำไมไม่เคยรู้มาก่อนเลยหว่า

และแล้วเราก็ลองไปเล่นใน bash เรามั่ง … และแล้วเราก็มานั่ง bashing มัน ทำไมมันไม่ work วะ ให้ตายเถอะ ก็เลยลอง search หาเรื่อง Brace expansion ใน bash ต่อไป และแล้วเราก็มาถึงบางอ้ออีกครั้ง

บางอ้อที่ว่านี่ก็คือเลข version และแล้วเราก็เลยต้องรีบไป check version ของ bash เราว่ามันเป็นไง

echo $BASH_VERSION

สรุปว่าเป็น 2.05b … โห OS X 10.4 (Tiger) มันให้ bash เก่าขนาดนี้เลยหรือนี่ (ปล. ห้ามใช้ bash –version นะครับ เพราะว่ามันไม่ได้หมายความว่ามันเป็น bash ตัวที่คุณใช้อยู่ มันแค่เป็นตัวแรกที่อยู่ใน path เท่านั้นเอง)

ก็เลยเข้าไป check ดูจาก new features list ของ bash 3 มีเยอะแยะมากมาย ….​ อืมมม ถึงเวลาที่จะต้องเปลี่ยน shell แล้วหรือนี่

ก็หามาลงสิครับพี่น้อง! และแล้วเราก็ไปเอา source ของ bash 3.2 มาลง ก็ compile ลงตาม step ปกติ โดยผมให้ไปลงที่ /usr/local/ ครับ แล้วเดี๋ยวค่อย chsh กับทำ symbolic link เอา อ่อ อย่าลืม backup bash ตัวเก่าไว้ด้วยนะครับ (เก็บเป็น bash2 หรือว่าอะไรก็ได้) เดี๋ยวจะมีปัญหา….. กลัวเหมือนกัน

ไม่ได้ apply patch อะไรเลยนะ (เห็นมีตั้ง 25 ตัว) ขี้เกียจ …

พอลงเสร็จแล้ว ตอนนี้ใช้งาน bash 3.2 เฮ้อ ใช้ command-line บน terminal มีความสุขขึ้นเยอะเลย ลองทำตามตัวอย่างใน web ของ Sam Danielson ก่อนก็ได้ครับ สนุกดี :-D

หวังว่า OS X 10.5 (Leopard) จะเป็น bash 3 โดย default นะ … (ใครลง beta หรือว่า preview อยู่ ช่วยทดสอบหน่อยครับ)

[update 1]: เพิ่ม killer example อีกตัว (wget)
[update 2]: เพิ่ม link ไปที่ source code ของ bash 3.2 แล้วก็แก้เลข version ที่ผิดหลายที่

นับถอยหลัง Boot Camp Beta

Apple ได้ ออกโรงเตือน ผู้ใช้ Boot Camp ว่าซอฟต์แวร์รุ่นทดลอง (beta) ตัวนี้ได้หมดอายุลงไปเรียบร้อยแล้วเมื่อวานนี้​ (30 กันยายน) สำหรับ Boot Camp รุ่น 1.2 หรือก่อนหน้า โดยที่เมื่อหมดอายุแล้วจะไม่สามารถใช้งาน Boot Camp Assistant ได้อีกต่อไป

To continue using Boot Camp Beta for Microsoft Windows on your Intel-based Mac, you’ll need to update to Boot Camp Beta 1.4, until Mac OS X 10.5 Leopard is available.

อันนี้ confirm เพราะว่าเครื่องผมลงไว้เป็น 1.2 เท่านั้น (แต่ว่าไม่เคยใช้เลย)

สำหรับรุ่นหลังจากนั้น (ถึง 1.4) ทาง Apple ก็ได้บอกว่าจะยังคงทำงานต่อได้อีกสักพักจนกว่า Leopard (ซึ่งจะมี Boot Camp ตัวจริง) จะออกมาในเดือนนี้ ซึ่งเมื่อวันนั้นมาถึง ทาง Apple ก็ได้บอกว่าการที่จะใช้งาน Boot Camp ต่อไปนั้นจะต้อง upgrade เป็น Leopard จาก statement นี้นะ

To continue using Boot Camp at that time, upgrade to Mac OS X 10.5 Leopard.

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

แต่ว่าอนาคตเป็นเรื่องไม่แน่นอน ยังไงอาจจะมี Boot Camp รุ่นสำหรับ Tiger ตัวเต็มออกมาให้ใช้งานก็ได้นะ (แต่ว่าอ่านจาก statement ของ Apple แล้วไม่อยากจะหวังอะไรมากแฮะ ยิ่งพักหลังๆ นี่ยิ่งเขี้่ยวๆ อยู่ด้วยกับเรื่องพวกนี้)

ทำไมผมรู้สึก negative กับ Apple พักหลังๆ ยังไงก็ไม่รู้แฮะ ส่วนหนึ่งก็เข้าใจอ่ะนะ ว่า policy ส่วนมากมันก็ผูกพันกับการตลาด ธุรกิจ แล้วก็ผลประโยชน์ร่วมกัน (เช่นเรื่อง iPhone เป็นต้น) แต่ว่าเรื่องเล็กน้อยแบบ Boot Camp นี่ ทำไมถึงกับต้องให้ upgrade เป็น Leopard ทั้งๆ ที่ตอนนี้มันก็ยังทำงานได้ไม่ขัดข้องอะไร หรือว่ามันจะต้องไปใช้ feature อะไรที่ Leopard มันมีแต่ Tiger ไม่มี? อันนี้ไม่น่าใช่หนัก แล้วเพราะอะไร? คนอยากจะใช้ Leopard เต็มบ้านเต็มเมืองอยู่แล้ว คิดว่าไม่ต้องพยายาม force คนทุกครั้งที่มีโอกาส และทุก feature หลักที่ทำให้หลายคนยอมใช้ Mac อยู่ก็ได้นะ

แต่ว่าก็มองอีกแง่นึงแฮะ เพราะว่าคนที่แคร์กับ Boot Camp “ส่วนมาก” ย้ำ “ส่วนมาก” จะเป็นพวก switcher ที่อาจจะไม่ค่อยจะสนใจ OS X หรือเปล่านะ ก็เลยต้องหาเรื่อง force แบบนี้ ไม่งั้นอาจจะไม่สนใจ upgrade กัน ทำให้เสียโอกาสและ revenue?

แต่ช่างเถอะ … ยังมีเวลาเหลืออีกหน่อย ไว้ค่อยดูกัน

อ้างอิง: When does Boot Camp Beta expire?, Apple Support Article ID: 306583

ของเล่นใหม่: Mac mini (review)

อยากได้เครื่องซักเครื่องมาเป็น internal application server ใน lab มานานแล้ว เพราะว่าให้พวกผู้ช่วยพัฒนาโปรแกรมสำหรับใช้งานภายในขึ้นมาหลายตัว แต่ว่ามันกระจายๆ อยู่ตามเครื่องคนที่พัฒนา (ทั้งหมดเป็น laptop) ทำให้มีปัญหาในการเรียกใช้งานเยอะมาก เพราะว่าไหนเลยจะต้องบอกให้น้องเค้า start application server (ถ้าเป็น rails ก็พวก embedded server ในตัว application ทั้งหลาย) แล้วก็ถาม IP กันวุ่นวาย แล้วพวกข้อมูลก็เอามาใช้ด้วยกันลำบากอีกตะหาก เพราะว่า db มันเก็บคนละเครื่องคนละที่ ถ้าจะให้เปิด REST ให้ใช้ มันก็ขี่ช้างจับตั๊กแตนไปหน่อย

ว่าแล้ววันหนึ่ง เราก็เห็นว่า เออ มันไม่ค่อยจะเข้าท่าเท่าไหร่ถ้าจะทำแบบนี้ต่อไป ซื้อ dedicated internal server มาเลยตัวนึงดีกว่า ว่าแล้วเราก็บึ่งไปในกรุงเทพ หิ้ว Mac mini รุ่น 1.83 GHz กลับมาหนึ่งตัว

  • สิ่งแรกที่ทำก็คือ ลงเครื่องใหม่ จริงๆ อยากจะลง Mac OS X Server เพราะว่าจะได้ลองหัดเล่นจริงๆ จังๆ ซะที แต่ว่าก็ไม่อยากจะทำผิดลิขสิทธิ์อ่ะนะ อีกอย่างแค่ใช้เป็น internal application server นี่แค่ใช้ client edition ก็เหลือเฟือแล้ว ว่าแล้วก็ลง OS X 10.4.10 ไป
  • ตั้งชื่อเครื่องก่อน ..​ เอาชื่ออะไรดี ตอนนี้เครื่องของผม (PB17″ ที่ผู้ช่วยคนหนึ่งใช้ กับ MBP15″ ของผม) ชื่อ chaos กับ entropy ตามลำดับ ..​ อืมมม ตอนแรกคิดว่าจะตั้งชื่อ turing แต่ว่าไปๆ มาๆ เนื่องจากตัวมันเล็ก ก็เลยตั้งชื่อว่า quantum
  • แล้วลงก็ iWork กับ iLife …​ ซึ่งจริงๆ แล้วก็คงไม่ได้ใช้เครื่องนี้หรอก แต่ว่าก็เผื่อไว้ก่อนไม่เสียหลาย ถ้ามันไม่ได้ใช้จริงๆ แล้ว HDD มันจะเต็ม ก็ค่อยมาลบทิ้งเอาทีหลังได้
  • ลง Xcode จะได้ compile โปรแกรมที่จะต้องใช้งานได้
  • อืมมม อยากได้พวก lib ต่างๆ ทำไงดีหว่า จะ compile ลงใหม่ก็ขี้เกียจ ก็เลย copy /sw (ที่ๆ Fink มันลงโปรแกรม; ผมไม่ได้ใช้ MacPorts นะ เพราะว่ามันมีปัญหาอะไรไม่รู้กับ netไม่work ที่มหาวิทยาลัย)
  • จากนั้นก็ เลือก copy /usr/local ไปลงด้วย ตรงนี้ก็ประหยัดเวลาไปได้เยอะเหมือนกัน แทนที่จะต้องไป compile ใหม่หมด อีกอย่าง ปกติเวลา compile พวกนี้ผมไม่ได้ fine-tune พวก options ให้มัน optimized มากไปกับเครื่องใดเครื่องหนึ่ง (เครื่องที่ผมใช้น่ะแหละ) อยู่แล้ว ก็เลยใช้ได้ อ่อ แล้วก็เวลาที่ลงโปรแกรม ถ้ามันใหญ่หรือว่าเป็นโปรแกรม+lib (ไม่ใช่ lib อย่างเดียว) เช่น ImageMagick หรือว่า Graphviz เนี่ย ผมจะ configure ให้มี prefix ที่ /usr/local/[program_name] อยู่แล้ว ก็เลยเลือกง่ายหน่อย
  • เนื่องจากว่า application ส่วนมากที่จะไปลง จะเป็น Rails application ก็เลยทดสอบ ruby กับ rails ก่อน ปรากฏว่าใช้ได้ไม่มีปัญหาอะไร โดยที่ไม่ต้องลงอะไรเพิ่มเติม (ก็เล่น /usr/local มาแล้วนี่หว่า)
  • เนื่องจาก netไม่work ที่ ม. มันมักจะมีปัญหาอะไรก็ไม่รู้อยู่บ่อยๆ ก็เลยให้ตัว Mac mini นี้เปิด network ของตัวเอง เวลาที่คนจะใช้ application ตัวนี้ก็ connect เข้ามาใน network นี้เอา
  • แต่ว่าปัญหาก็คือ application บางตัวดันต้องใช้ web services ของ amazon ก็เลยไม่มีทางเลือก ต้องกลับเชื่อมกับ network ที่มันออกข้างนอกได้ (ขี้เกียจ setup)
  • ตอนนี้ก็เริ่ม deploy application หลายตัวลงไปใช้แล้ว ทำงานได้ดีนะ พวกบรรดาผู้ช่วยที่ทำงานก็ชอบกัน ได้มี dedicated server กับ internal application ตัวโน้นตัวนี้ที่ทำเล่นกันใน lab เสียที จะได้เป็นต้นแบบ/ตัวทดลองก่อนที่จะไป deploy ลง Xserve ที่เพิ่งจะได้มาใช้งานจริงซะที
  • นอกนั้นไม่ได้ทำอะไรมาก
  • อ่อ ลืมบอกไป ซื้อ keyboard ถูกๆ กับ mouse ถูกๆ มาอย่างละตัวเพื่อมาใช้งานกับตัวนี้ เพราะว่าคงไม่ได้ใช้งานมันตรงๆ มากมาย ส่วนมากก็ remote login เข้ามามากกว่า ส่วนจอ ก็แบ่งๆ จอ external ของผมไปใช้งานเป็นครั้งคราวถ้าจำเป็น (ผมมี Acer 22 นิ้วอยู่ตัวนึงน่ะ ต่อเป็น 2nd monitor ไว้)

สรุปว่า มันเป็น a cute little machine นะ ชอบๆ แต่ว่ามันก็ powerful enough สำหรับงานที่ผมเอามาใช้มันน่ะแหละ (ยิ่งคิดถึงว่า มีบางที่ บางคน บางองค์กร ซื้อ Mac Pro รุ่นใหม่มาเพื่อทำ data entry เท่านั้น ที่ก็ไม่ได้มีมากมายเท่าไหร่ …​ นี่ยิ่งรู้สึกว่า เราคงใช้งาน Mac mini ตัวนี้คุ้มกว่าล่ะนะ) จริงๆ น่าจะซื้อมานานแล้วจริงๆ (ก็ว่าจะ ว่าจะ ว่าจะอยู่หลายครั้งแล้ว บอกเด็กๆ ที่ทำงานไปหลายครั้งแล้ว แต่ว่าเราก็ไม่ได้ซื้อเสียที) น่ารักดีเวลาวางมันไปบนโต๊ะ ใครจะไปคิดว่ามันเป็น server ล่ะ

ไม่แปะรูปนะ ไว้แปะร่วมกับ entry เรื่องของเล่นชิ้นต่อไปเลยละกัน (ยังไม่บอกว่ามันคืออะไร) เพราะว่าถ่ายรูปคู่กันไว้อยู่

Apple ตบเกียร์เข้าโค้งสุดท้าย Leopard

Apple เร่งเครื่องทำ Leopard (OS X รุ่น 10.5) เพื่อให้ออกทันตุลาคมนี้ และให้มีความสมบูรณ์ที่สุดเท่าที่จะทำได้ (แน่นอน มันไม่สมบูรณ์หรอก ไม่มี software ตัวไหนหรอกที่สมบูรณ์ไม่มีปัญหาหรือว่ามี feature ครบถ้วน)

ช่วงนี้เราจะเห็น build ต่างๆ ของ Leopard เริ่มออกมาถี่ยิบ ซึ่งเป็นพฤติกรรมปกติของ Apple ช่วงโค้งสุดท้ายก่อนจะออก OS รุ่น gold master อยู่แล้ว หลังจาก 9A499 ออกไม่นานก็มี 9A500n ซึ่งถึงแม้ว่ามันจะดูเหมือน minor revision มากๆ (เลข build เพิ่มนิดเดียว) แต่ว่าจาก blog ชาวบ้านและ web ข่าวหลายที่ บอกว่าขนาดตั้ง 500 กว่า MB แน่ะ เยอะเอาเรื่องนะเนี่ย และเท่าที่อ่านมา ก็รู้สึกว่าจะ stable มากขึ้นเยอะ (หลายคนด่า 499 ว่า buggy มาก และไม่ stable มาก) … หลังจากนั้นอีกไม่นานก็มี 9A527 อีก ซึ่งตัวนี้เห็นบอกว่ามี interface tweak หลายจุด (โดยเฉพาะ menu bar ที่ transparent น้อยลงเยอะ ดูดีขึ้นเยอะ แล้วก็เรื่อง color tone ที่ deep กว่าเดิมและดู unified มากขึ้น) ซึ่งอันนี้หา screenshots ดูได้ทั่วไป

แล้วมีอะไรอีก? อืมมม ตอนนี้ท่าทางจะเริ่มเข้าช่วง optimization ล่ะ เพราะว่าเห็นรายงานเหมือนกันว่าขนาดของซอฟต์แวร์หลายตัวเล็กลงกว่า build ก่อนๆ เยอะ (ถึงส่วนมากมันจะยังใหญ่กว่ารุ่นที่อยู่ใน Tiger ก็เถอะ ก็อย่างว่า feature มันคงจะเยอะขึ้น optimize ยังไงก็ยังใหญ่กว่าอยู่ดีมั้ง แต่ว่าไม่แน่ iWork 08 ยังเล็กกว่า iWork 06 ตั้งเยอะ)

ยังไม่รวมถึงเรื่องที่ผมไม่ค่อยสนใจ พวก welcome video ใหม่ หรือว่า default background ที่เป็นอวกาศนะ (ยังไม่รู้เลยว่าตัว final จะเป็นตัวนี้หรือเปล่า) เพราะว่าพวกนี้มันไม่ได้มีผลกับ user experience โดยรวมอยู่แล้ว

เท่าที่ดูจาก refinements ล่าสุด ผมค่อนข้างจะ possible นะกับสถานะของ Leopard แต่ว่าตอนนี้ผมอยากจะรู้รายละเอียดของ Leopard Server แฮะ ตื่นเต้นกับเจ้าตัวนี้ที่ WWDC 06 มากกว่าตัว workstation ที่เราใช้ๆ กันเยอะ อยากเห็นอะไรตั้งหลายอย่าง ไม่รู้จะเป็นไงมั่ง

แต่ว่าก่อนจะถึงรุ่น Gold master จริงๆ ก็คงจะมีอีกประมาณ 2-3 builds เป็นอย่างน้อยละมั้ง โดยเฉพาะช่วงท้ายๆ จริงๆ ที่อาจจะมีหลาย build เลยแหละที่เป็น Release Candidate (RC) แล้วตัวใดตัวหนึ่งที่จะกลายเป็น Gold master ….

Upgrade เป็น Ruby 1.8.6 กับปัญหา IRB, Readline

หลังจากใช้ Ruby 1.8.5 มานาน ก็อยากจะลองของไปเล่น 1.8.6 ซึ่งมันก็ออกมาได้ซักพักแล้วล่ะ ซึ่งเราก็ลงตาม step ล่ะนะ ไม่ยากไม่เย็น

  • Download source ของมันมาก่อน อันนี้หาไม่ยาก แล้วก็เอามา untar ตามปกติ
  • configure มันไปซะ ใช้ pthread กับ readline ด้วย แล้วก็เอาไว้ที่ /usr/local ตามปกติ
    ./configure --prefix=/usr/local \ 
    --enable-pthread --with-readline-dir=/usr/local
  • ไม่มีปัญหาอะไร ก็ make แล้วก็ sudo make install ซะ ก็ไม่มีอะไร
  • check version ซะหน่อย
    [rawitat@entropy rawitat]$ ruby -v
    ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-darwin8.10.1]
    
  • น่าจะปกติ แต่ว่าพอเรียก irb ปุ๊บ
    [rawitat@entropy rawitat]$ irb
    dyld: NSLinkModule() error
    dyld: Symbol not found: _rl_clear_signals
      Referenced from: /usr/local/lib/ruby/1.8/i686-darwin8.10.1/readline.bundle
      Expected in: flat namespace
    
    Trace/BPT trap
    [rawitat@entropy rawitat]
    

เฮ้ย อะไรเนี่ย!!!!!

ไม่เป็นไรๆ ไม่ต้อง panic มันต้องมีคนเจอปัญหานี้ก่อนหน้าเราบ้างล่ะน่า ว่าแล้วเราก็ลอง search google ดูหน่อย อืมม มันไม่มีคนเจอปัญหาเดียวกันเป๊ะๆ แฮะ เจอแต่ใกล้เคียงมากๆ เพราะว่าชาวบ้านเค้าเจอ _rl_filename_completion_function กัน แต่ว่าเราดันเจอ _rl_clear_signals แทน

อืมมมๆ ไม่เป็นไรๆ ลองทำตามวิธีแก้ปัญหาของเขาดูก็แล้วกัน

  • วิธีนี้ เคยใช้ได้ผลมาแล้วตอนลง 1.8.5 (แล้วทำไมตอนนั้นไม่ได้ blog ไว้ก็ไม่รู้) ก็คือให้ไป rebuild readline.bundle ใหม่ แล้วก็ copy ไปลงที่ปกติมันเก็บ readline.bundle ไว้ แต่ว่าคราวนี้ ล้มเหลว
  • วิธีนี้ ก็คือวิธีเดียวกัน แต่ว่า verbose หน่อย ไม่ต้องบอกก็รู้ว่าผลเป็นไง
  • วิธีนี้ ให้แก้ rbconfig.rb ไปเพิ่ม -lreadline ใน CONFIG[“LIBS”] ก็ลองแล้ว สรุปว่า ล้มเหลว เหมือนกัน

ทำไงดีหว่า อืมมมมม เริ่ม panic นิดหน่อย ผิวปากกลบเกลื่อนๆ

  • เริ่มมั่ว เอา readline 5.1 มาลงใหม่ (ตอนแรกใช้ 5.2 อยู่ แต่ว่าเห็นตาม web มันยังเขียน 5.1 อยู่ เออ ไม่เสียหลายน่า)… ไม่เวิร์ก
  • มั่วต่อไป ลง readline 5.2 อีกทีเด๊ะ …. ไม่ได้อยู่ดี (มันควรจะได้มั้ยล่ะนั่นน่ะ ไอ้บ้า)
  • เฮ้ย …..​ configure, build ruby ใหม่อีกรอบ (สิ้นคิด เมื่อกี้มันไม่ work คราวนี้มันจะ work ได้ไง) ก็ ไม่ได้

เฮ้อ เหนื่อย…..​ ทำไงดีหว่า พอดีเหลือบไปเห็น

 Referenced from: /usr/local/lib/ruby/1.8/i686-darwin8.10.1/readline.bundle

ใน error message ก็เลยลอง cd เข้าไปเล่นดู (อีกที จริงๆ เข้าไปหลายครั้งแล้ว) ก็เห็นว่านอกจาก i686-darwin8.10.1 แล้ว ข้างในนั้นยังมี i686-darwin8.9.1 ด้วย ก็เลยลองเข้าไปดู …… ก็เห็น readline.bundle อยู่ตัวนึง คงเป็นตัวที่เรา build ครั้งก่อนๆ หน้าโน้น (ไม่รู้เมื่อไหร่ ก็ตั้งแต่ darwin 8.9.1 น่ะแหละ ตอนนี้ใช้ darwin 8.10.1 อยู่) ……​

ก็ในเมื่อ rebuild readline.bundle ใหม่ (configure ใหม่แล้วนะ) แล้วก็ replace มันตามวิธีที่ linkๆ ไปให้ใน link ข้างบนแล้วไม่ work ลองบ้านนอกดูเด๊ะ

sudo cp /usr/local/lib/ruby/1.8/i686-darwin8.9.1/readline.bundle \
   /usr/local/lib/ruby/1.8/i686-darwin8.10.1/readline.bundle

……
……. แล้ว

[rawitat@entropy rawitat]$ irb
irb(main):001:0> 

ดันได้ซะงั้นอ่ะ ………. เนี่ย ถ้าไม่เคย build ไว้เลย ไม่รู้จะทำไมนะเนี่ย ไม่รู้มันไปติดตรงไหนแล้ว (ตอน configure ที่จะ rebuild readline.bundle มันก็ check เจอนะ ไอ้ _rl_clear_signals เนี่ย …​ไม่รู้ว่าทำไมเวลาจริงมัน ref ไม่ได้)

เอวัง

Lecture ที่มหาวิทยาลัยราชภัฏภูเก็ต

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

  • มาภูเก็ต ถึงจะไม่มีเวลาเที่ยวก็เถอะ ได้เห็นบ้านเมืองบ้าง ได้เห็นโน่นนี่บ้าง เห็นการ recover เมืองจากภาพที่เราเคยเห็นจาก Tsunami tragedy แล้วก็ดูความเป็นไปได้ที่จะมาเที่ยวในอนาคต
  • ได้บินสายการบิน low-cost ภายในประเทศครั้งแรก อยากรู้มานานแล้วว่ามันเป็นยังไง

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

ส่วนเรื่องที่ถูกเชิญมาพูดน่ะ พอดีเค้าให้รายละเอียดมาค่อนข้างน้อย หัวข้อมีแค่ “Macintosh” เท่านั้นเอง เราเลยต้องเล่นเกมเดาใจว่าเค้าอยากให้เราพูดเรื่องอะไร สรุปก็เลยพูดหัวข้อที่ว่า “Me, My work, My life, My Mac” ที่เป็นมุมมองของผม ในฐานะ Academic lecturer, Research scientist, และ Software developer ที่บังเอิญ พอดีเป็นผู้ใช้ Mac

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

เท่าที่คุยกับอาจารย์เค้า รู้สึกว่าจะมีอาจารย์คนหนึ่งจบมาจาก MIT เสียด้วยสิ เห็นบอกว่าทำเรื่องเอา remote sensing ไปตรวจวัดค่าต่างๆ ในอากาศ เพื่อเอามาพยากรณ์อากาศ และได้ model ที่แม่นมาก ชักอยากจะรู้เหมือนกันว่าเค้าใช้ model อะไร เพราะว่าเราสนใจเรื่อง Mathematical models ของเรื่องพวกนี้มานานแล้ว และ Weather forecasting นี่ถือเป็น chaotic system ตัวหนึ่งที่น่าสนใจและ classic มากๆ ด้วย

สงสัยคงต้อง e-mail ไปคุยด้วยแฮะ อ่อ แล้วใครอยากจะเชิญผมไปพูด ติดต่อมาได้นะแต่ว่าพักหลังๆ อาจจะยุ่งนิดหน่อย