Unix

Minix on AdWord

Today I saw a Minix advertisement on Gmail AdWord. Just wonder how can Minix people have money to pay for this.

minix-adword

Plan 9 From Outer Space

อ่าน OSNews แค่ประโยคแรกก็ได้ใจแล้ว

Plan 9 is an operating system designed by the same people who created the original UNIX.

(CLI) Linebreak Conversion

บนดอส+วินโดวส์ใช้ CR+LF (\r\n) ในการขึ้นบรรทัดใหม่
ยูนิกซ์ ลินุกซ์ แมค (OS X ขึ้นไป) ใช้ LF (\n) เฉยๆ

เวลาเอาไฟล์จากวินโดวส์มาแก้ด้วย vi มันก็จะเห็น ^M ซึ่งก็คือ \r แถมมาด้วย หรือถ้าเป็นกรณีอื่นก็อาจจะขึ้นบรรทัดใหม่ให้สองรอบ

อันนี้เป็นปัญหาซูเปอร์คลาสสิค text editor หลายยี่ห้อสามารถสั่ง convert linebreaker ได้ในตัว อย่าง SubEthaEdit ที่ผมใช้อยู่ก็ทำได้ หรือไม่งั้นก็ใช้พวก utility มีแจกฟรีเยอะแยะ

แต่ปัญหามีอยู่ว่าเวลาอยู่ใน commandline ขี้เกียจเปิด text editor มาเราจะทำยังไงถึงจะง่ายที่สุด Wikipedia เจ้าเก่ามีคำตอบ

คำตอบคือใช้ tr ซึ่งเป็นโปรแกรมที่มากับยูนิกซ์แทบทุกตัว (รวมถึง OSX) สั่งดังนี้

tr -d '\r' < inputfile > outputfile

ป.ล. คิดว่าโหมด substitute ใน vi น่าจะทำได้ด้วย แต่ลองแล้วไม่เวิร์คแหะ (ใช้ :%s/$\/r//)

Unix is too old?

ตอนผมเรียนอ่าน textbook ภาษาอังกฤษจบแบบครบถ้วนกระบวนความจริงๆ เล่มเดียว คือ The Practice of Programming ของ Brian W. Kernighan กับ Rob Pike



นอกจากนี้ยังมีตำราปรมาจารย์ The C Programming Language ที่ Kernighan เขียนกับ Dennis Ritchie คนสร้าง C โดยตรง อีกเล่มคือ The Unix Programming Environment ซึ่ง 2 คนของเล่มแรกเป็นคนเขียน สองเล่มนี้เปิดใช้ยามจำเป็นครับ (มันยากนะ อ่านแล้วจะรู้) ถึงแม้เรียนจบแล้ว ชื่อของสามคนนี้ก็ยังฝังหัวอยู่ Unix และ C มีรากฐานมาจากทีมงาน Bell Labs ทีมนี้ และมั่นคงมาจนถึงปัจจุบัน (ได้ฟีลเหมือนปรมาจารย์ตั๊กม้อตั้งเส้าหลินเลย)



วันนี้มาเจอสไลด์ของ Rob Pike ก็เลยดีใจ



The Good, the Bad, and the Ugly: The Unix Legacy (pdf)



ในบรรดาคนที่ใช้ Unix (ซึ่งรวมถึง Linux) มักจะภูมิใจในระบบปฏิบัติการที่ออกแบบมาอย่าง "สวยงาม" (ถ้าเคยใช้และเข้าใจถึงคอนเซปต์พวก everything is file, pipe และ regular expression จะรู้ว่ามัน "สวยงาม") ซึ่ง Pike ได้เขียนว่า Unix นั้นมีข้อดีอย่างที่ว่า แต่มันถูกสร้างตั้งกะยุค 70 ที่ยังไม่มีอินเทอร์เน็ต และกราฟฟิก ดังนั้นข้อดีพวกนั้นมันเลยกลายเป็นข้อจำกัดไปในยุคปัจจุบัน



สไลด์อันนี้เป็นเกริ่นนำก่อนที่ Pike จะพูดเรื่อง Plan 9 ซึ่งเป็นลูกของยูนิกซ์อีกตัวนึง สร้างขึ้นเพื่อชดเชยข้อจำกัดข้างต้น เป็นระบบปฏิบัติการทดลองของ Bell Labs ตัวนี้ว่าจะลองเอามาเล่นหลายทีแล้วลืมทุกที อ่านดูผ่านๆ ฟีเจอร์ของ Plan 9 อยู่ในระดับน่าสนใจมากเลยอันเลยล่ะ เสียดายที่มันเป็นแค่ระบบปฏิบัติการทดลอง



พวกนี้ได้มาจากข่าว 10 Things I hate about (U)NIX จาก OSNews อีกที ในนั้นมี Geek เยอะ รุมด่าคนเขียน (ด่า Unix) กันกระจาย แต่หลายอย่างผมก็เห็นด้วยกับคนเขียนนะ เห็นด้วยกับ Pike ด้วย ที่ว่า Unix ดีแต่เก่าไปแล้ว



กลับมาอ่านพวกนี้แล้วมีความรู้สึกว่ามันโปรแกรมมิ่งดีจัง หลังๆ ไม่ได้ยุ่งกับ low-level แบบนี้มานานแล้ว

Vim7

Vim7 มี code completion แล้ว (ดูรูปเอาเอง)

ใช้ Vim 6 มาตั้งหลายปี ไม่รู้ว่ามันมี Text folding ด้วย จน Vim7 มันจะออกแล้วเนี่ย

วิธีใช้แบบสั้นๆ ก็กด v เข้า Visual mode แล้วลากๆ กด zf เพื่อบอกว่ามันอยู่ในชุดเดียวกัน zc ย่อ zo ขยายคืน แบบละเอียดอ่านใน Tutorial นี้เข้าใจง่ายดี ดู manual แล้วใครมันจะไปอ่านรู้เรื่องวะ