ตอนที่เขียน รีวิว Apple Keyboard ใหม่ ไปใน blog คราวก่อน ผมค่อนข้างจะบ่นเรื่องที่ปุ่ม Caps Lock มันแข็งกว่าปกติ ซึ่งก่อปัญหาให้กับผมเวลาใช้งานพอสมควร เนื่องจากตัวเองใช้ปุ่ม Caps Lock ในการสลับภาษาแบบเร็วๆวันนี้ไปเจอมา ว่าจริงๆ แล้วนี่อาจจะเป็น ความตั้งใจ ของ Apple ที่ทำให้ Caps Lock แข็งกว่าปกติ
- rentzsch.com: apple’s antiCAPSLOCK โดย Jonathan ‘Wolf’ Rentzsch แห่ง Red Shed Software (จริงๆ ประวัติคนนี้ก็น่าสนใจ แต่ว่านั่นนอกประเด็น)
อืมมม ถ้าเป็นเช่นนั้นจริง และลองคิดถึงว่า จริงๆ แล้วก็มีคนกดปุ่ม Caps Lock ผิดแบบไม่ได้ตั้งใจ (เพราะว่าคิดจะกด tab หรือ shift ด้านซ้ายมือ) เยอะพอสมควร … จะว่าไปปุ่ม Caps Lock มันก็เป็นปุ่มที่ใช้งานน้อยพอสมควรปุ่มหนึ่งล่ะนะ ดังนั้นถ้าจะมองจาก Usability design ที่จะป้องกันความผิดพลาดล่ะก็ มันก็ make sense อยู่ล่ะ คือ ถ้ากดผ่านๆ แบบแตะๆ มันก็จะไม่ถือว่าเรากด ดังนั้นต้องกดนานกว่าปกตินิดนึง ซึ่งก็จะทำให้จังหวะการพิมพ์มันเสียไปนิดหน่อย หรือว่ากดแบบเน้นๆ นิดนึง ซึ่งจะเปลืองพลังงานมากกว่าปกตินิดหน่อยสรุปว่า อืมมมม คนแบบผมมันคงจะเป็นส่วนน้อยล่ะนะ หรือว่าคนที่ใช้ปุ่ม Caps เพื่อวัตถุประสงค์ในการเปลี่ยนภาษาเร็วๆ นี่คงจะเป็นส่วนน้อย เพราะว่าถ้าจะพิมพ์ตัวใหญ่แค่ตัวสองตัว ก็คงจะกด shift เอามากกว่าอืมมม make sense ล่ะครับ แต่ว่าสำหรับการใช้งานส่วนตัว ผมยังอยากให้มันอ่อนเท่ากับ key อื่นๆ เหมือนเดิม (ส่วนหนึ่งเพราะลักษณะการใช้งานของผม และส่วนหนึ่งมาจาการที่ผมไม่เคยกด Caps ผิด) … แต่ว่าครั้งนี้ ถ้า Apple ได้วิเคราะห์พฤติกรรมของผู้ใช้แล้วจริงๆ ว่ามีการกด Caps ผิดแบบไม่ได้ตั้งใจเยอะพอ และปุ่ม Caps ก็เป็นปุ่มที่ใช้งานน้อยอยู่แล้ว … ดังนั้นการออกแบบคีย์บอร์ดมาแบบนี้ก็เหมาะสมดีอยู่
เขียน 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 ที่ผิดหลายที่
งานซ้อน
งานชน
วิ่งวน
วุ่นวาย
แปลกนะ ทำไมทำงานหลายอย่าง หลายต่อหลายอย่าง วิ่งวนไปวนมาหลายที่ ….. กลับไม่ค่อยรู้สึกเหนื่อยเท่าไหร่
แต่ทำไมนะ ….. หลายครั้งที่ไม่ได้เป็นแบบนั้นกลับเหนื่อยเสียดื้อๆ

Recent Comments