Misc

อัดรูปดิจิตอล ทำสมุดภาพของคุณเอง
รอรับได้. ท่องเที่ยว แต่งงาน ฯลฯ

www.tanabutr.co.th/photobook


สกัดเสียงจากไฟล์ avi ลง CD เพลง

เดี๋ยวนี้ใครๆก็ฟังเพลงจาก mp3 แต่บางครั้งก็ยังต้องพึ่งแผ่นเพลง CD ในกรณีที่ไม่มีเครื่องเล่น mp3. การแปลงเพลง mp3 ไปใส่ใน audio CD จะใช้ Linux ทำหรือ Windows ก็ได้. ก็มีซอฟต์แวร์อยู่หลายตัว. ตอนนี้ผมใช้ CDBurner XP Pro ซึ่งเป็นฟรีแวร์. ถ้าเข้าใจไม่ผิดโปรแกรมแปลง mp3 เป็น wav (ไม่มีบีบอัด) แล้วเอาไปเขียนเป็น track ใน CD เพลงให้. วันนี้เกิดความต้องการอีกอย่างหนึ่งคืออยากแปลงไฟล์ avi ซึ่งเป็นไฟล์วิดิโอ, สกัดเอาเฉพาะเสียงไปลงในแผ่น CD เพลง. เท่าที่คิดไว้คือแปลง avi -> mp3 หรือ wav -> เขียนลง CD -> เอาไปเปิดกับเครื่องเล่น CD.

Blognone Tech Day 2006

วันนี้ได้ไปร่วมงาน Blognone Tech Day ที่มาร์คและลิ่วแห่ง Blognone (บล็อกโน้น) จัดที่มหาวิทยาลัยเกษตรศาสตร์ตั้งแต่บ่าย. คนเยอะครับ. สำหรับผมเคยไปเกษตรฯครั้งเดียวเมื่อสักประมาณ 7-8 ปีที่แล้วสมัยที่ TLUG (Thai Linux User Group) จัดที่เกษตรฯ. ตอนนั้นก็ได้รู้จักกับ Densin, Geo, ]d. คราวนี้ก็ได้คนที่อยากเจอมานานคือคุณป็อก. โลกมันก็กลมจริงๆ, ต่างคนต่างก็รู้จักกับพี่จั้วซึ่งเป็นรุ่นพี่มหาวิทยาลัยเดียวกันตอนเรียนที่ญี่ปุ่น. คือพี่ป็อกกับพี่จั้วทำงานที่เดียวกัน. ดีใจครับที่ได้เจอตัวจริงทั้งครอบครัวเลย.

ความรู้คู่คุณธรรม

เคยเห็นบทกลอนนี้ติดอยู่ข้างฝาผนังเมื่อ 2 อาทิตย์ที่แล้วที่บริษัทแห่งหนึ่ง. ต้องจดและจำไว้.

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

พวกคำย่อ

คำย่อที่พึ่งเรียนรู้. ชอบย่อกันนัก, ทำให้ต้องเรียนรู้.

  • RoR นึกว่าอะไร มันคือ Ruby on Rails.
  • REST: Representational State Transfer.
  • CRUD: Create, Retrieve, Update, Delete.

Betta

น้องฝากเลี้ยงปลากัดสองตัวมาเกือบสองเดือนแล้ว ตอนนี้ออกไข่คลอดลูกเรียบร้อยแล้วก็ดีใจและพร้อมๆกับกังวลว่ามันจะรอดไหมเนี่ย. ตอนมัธยมเคยเลี้ยงปลากัดแล้วก็เพาะพันธ์เหมือนกัน จำได้ว่าต้องให้ไข่ต้มเอาเฉพาะไข่แดงมาให้มันกิน. ลูกปลากัดตัวเล็กมากๆไม่สังเกตดีๆไม่รู้ว่าเป็นลูกปลากัด.

หนังดนตรี

เมื่อวานดูเรื่อง Swing Girls หลังจากที่อยากดูมาตั้งแต่ปีที่แล้ว. และก็ไม่ผิดหวัง, สนุกดี. หนังที่มีดนตรีผสมผมว่ามีเสน่ห์มาก คือดูแล้วติด. ยิ่งเป็นหนังเกี่ยวกับวัยรุ่น (คำว่า 青春 น่าจะเหมาะกว่าแต่ไม่รู้จะแปลว่าอะไรดี) แล้วยิ่งน่าดูเข้าไปใหญ่. ดูเรื่อง Swing Girls ฟังภาษาที่พูดตอนแรกก็เดาได้ว่าไม่ Hokkaido ก็แถวๆนั้นแน่เพราะพูดลงท้ายด้วย -dabe ด้วย. เปิดดูโฮมเพจก็เลยรู้ว่าจัดฉากว่าเป็นเรื่องของเด็กชนบท (田舎) ที่อยู่แถว Tohoku หรือภาคอีสานของญี่ปุ่น. เวลาเจอพวก brass band สดๆพวกนี้ผมชอบหยุดฟัง. ชอบครับ.

Knowhow ของ command line กับ GUI

ขอประติประต่อจากเรื่องของ Bad Knowhow and Good wrapper อีกซักนิดครับ.

UNIX มันสร้างขึ้นมาโดย engineer ชั้นเยี่ยมสองคนคือ Ken Thompson กับ Dennis Ritchie โดยตั้งอยู่บนความคิด Occam's Razor ที่กล่าวสั้นๆง่ายๆไว้ว่าทำอะไรให้ง่ายๆพอดีๆ. ใจความเดียวกันกับ KISS (Keep It Simple, Stupid). จะเห็นว่ามันโปรแกรมต่างๆในยูนิกซ์ทำอะไรอย่างเดียว, simple ๆ. จะทำให้ยากก็เอามาใช้รวมกันไม่ว่าจะด้วย pipe หรือเขียนเป็นเชลล์สคริปต์ (โปรแกรม). ก็เห็นได้ชัดเลยว่ายูนิกซ์มันออกแบบโดย engineer และตอนแรกๆก็คงไม่ได้ออกแบบมาให้ target ชาวบ้านใช้หรอก. ลินุกซ์มันสืบแนวคิดมาจากยูนิกซ์ก็เลยเป็นแบบนี้. พวก engineer ชอบแต่ชาวบ้านคงไม่ไหว. แต่นี่ก็มี GNOME, KDE ช่วยจนดีขึ้นๆ.

Bad Knowhow and Good Wrapper

ช่วงสองสามวันที่ผ่านมาอ่าน blog ของ Satoru Takabayashi คนที่เขียน Namazu. เหลือบเห็น icon ทางขวามือ Bad Knowhow เลยคลิ้กไปอ่าน. อ่านแล้วทำให้คิด, คิดแล้วก็เห็นว่าดีน่าเอามาเล่าสู่กันฟัง.

นาย Satoru เขียนไว้ว่า พอใช้คอมพิวเตอร์ไปก็ รู้สึกว่าทำไมมันต้องจำโน่นจำนี่เยอะแยะกว่าที่จะใช้ซอฟต์แวร์ให้คล่อง พวก knowhow แบบนี้มันเยอะเหลือเกิน. พวก knowhow พวกนี้ตอนแรกไม่ได้อยากจะรู้เลยและเขาเรียก knowhow พวกนี้ว่า Bad Knowhow. พวก Bad Knowhow เกิดมาจากข้อกำหนด (specification) ของซอฟต์แวร์ที่โยงใยมาจากอดีตจนถึงปัจจุบันแบบว่าแก้ไขลำบาก. ที่เห็นได้ชัดคือซอฟต์แวร์บน UNIX ต่างๆเช่น TeX, emacs, sendmail ฯลฯ. พวกนี้จะเป็นซอฟตแืวร์ที่มีประโยชน์มากแต่ในขณะเดียวกันก็มีความซับซ้อนอยู่ภายใย ใช้ลำบาก. นี่ก็เป็นสาเหตุที่ทำพวก Bad Knowhow ทั้งหลายมีเอกสารเกี่ยวกับการใช้ซอฟต์แวร์เหล่านี้ หรือข้อมูลบนเว็บเยอะ.

เขายังเขียนไว้อีกว่า สิ่งที่ทำให้ซอฟต์แวร์เหล่านี้ใช้ยากก็มีหลายสาเหตุ ตั้งแต่คนสร้างโปรแกรมนั้นไม่มี sense บ้าง, เพิ่มความสามารถโน้นนี้จนซับซ้อนเกินเหตุ, ทำให้ซอฟต์แวร์ใช้ยาก. แต่ก็จะมีคนอยู่อีกพวกที่ใช้ซอฟตแืวร์เหล่านี้คล่องแคล่วจนรู้สึกว่า โปรแกรมพวกนี้ลึกซึ้ง (ภาษาญี่ปุ่นใช้คำว่า 奥が深い) จะมีความรู้สึกดีใจ ภาคภูมิใจที่ใช้ซอฟต์แวร์เหล่านี้ได้คล่องแคล่ว. เหมือนเป็นโรคชนิดหนึ่ง. ก็จะมีพวก mania เท่านั้นที่คลั่งไคล้อะไรแบบนี้.

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

เรื่อง Bad Knowhow นี้เป็นเรื่องที่คุยกันเยอะมากแต่คงเฉพาะในญี่ปุ่นมั้ง ถึงขนาดมีการจัด Bad Knowhow conference ปีที่แล้วประมาณเดือนพฤษภาคม. หัวข้อก็คือทำอย่างไรให้พัฒนาการใช้คอมพิวเตอร์ให้ดีขึ้น. ก็มีนัยๆว่าทำอย่างไรให้ Bad Knowhow มันน้อยลงนี่แหละ.

ในสไลด์ก็มีภาพประกอบที่น่าสนใจอันหนึ่งคืออันนี้

เขาพูดถึงการพัฒนาซอฟต์แวร์ไว้โดยใช้สามเหลี่ยมอธิบายการพัฒนาซอฟต์แวร์ว่า แ่บ่งสามเหลี่ยมออกเป็น 3 ส่วนตามลำดับจากบนลงล่างคือ

  • Universal knowhow เป็นพวกอัลกอริทึ่ม, data structure, object oriented ฯลฯ
  • System knowhow เป็นพวก knowhow ที่เกี่ยวกับตัวระบบเช่น OS, compiler, specification ของภาษาคอมพิวเตอร์, network, computer architecture ฯลฯ
  • Bad knowhow พวกที่อยู่ล่างสุดและมีเยอะ พวก API, เครื่องมือต่างๆ, การ configuration, ตัวเลือกบรรทัดคำสั่ง ฯลฯ

พูดง่ายๆคือพวกที่ 1 กับ 2 นี่ส่วนใหญ่จะเรียนกันในมหาวิทยาลัย. ส่วนที่ 3 คือ Bad Knowhow ไม่มีใครสอนต้องหาความรู้ใส่ตัวเอง เรียนรู้ได้จากการท่องเว็บไปวันๆ, ถามน้องเกิ้ลบ้าง. แล้วส่วนใหญ่ก็จะตายตรงช่วงที่ 3. ลองนึกดูว่ากกว่าจะพัฒนาโปรแกรมเองอะไรสักตัวต้องเรียนรู้อะไรไปบ้างเช่น editor ใช้ยังไง, เชลล์ใช้ยังไง, คอมไพล์อะไรทีมีตัวเลือกอะไรบ้าง สารพัด.

ก็มีอีกคนหนึ่งคือ Hiroshi Yuki ก็ให้ความเห็นโดยเขียนในเว็บไซด์ของเขาในหัวข้อ From Bad Knowhow to Good wrapper ไว้ว่า เวลาเจอโปรแกรมที่ใช้ยากๆดูเหมือนจะเป็น Bad Knowhow ก็อย่าไปว่ามันเลย มาสร้าง Good wrapper ดีกว่า. คือเขาก็บอก Bad Knowhow ก็จริงแต่ทำไมมีคนใช้? เช่น Emacs จำ key binding ไปได้ยังไงตั้งเยอะแยะ, ไฟล์ configuration ของ sendmail อ่านไม่รู้เรื่องแต่ก็มีคนใช้ค่อนโลก, TeX/LaTeX เขียนยากจะตายแต่ก็ไม่ตาย เป็นต้น. แสดงว่าพวกซอฟต์แวร์ที่เป็น Bad Knowhow เหล่านั้นมันให้ "ผลลัพธ์ที่ดี" เลยมีคนใช้. โปรแกรมพวกนี้อาจจะจัดเป็น Bad Knowhow ที่ดี. ส่วน Bad Knowhow ที่ไม่ดีคือพวกที่เรียนรู้แล้วไม่ได้ประโยชน์ ต่อยอดอะไรไม่ได้ เ่ช่น ระบบที่มีแต่ GUI อย่างเดียวคือ knowhow แบบกดปุ่มอย่างเดียว, "คน" ต้องมานั่งกดตามขั้นตอนจะให้ "เครื่องคอมฯ" ทำแทนไม่ได้.

ก็ได้ความคิดที่ว่าไม่ต้องกลัว Bad Knowhow ของพวกระบบที่ซับซ้อน. ถ้ามันเป็น Bad Knowhow ก็สร้าง Good Wrapper ทับมันซะ. ตัวอย่างเช่น nmap คำสั่งสแกน IP มีตัวเลือกเยอะแยะเลือกไม่ถูก, ก็ใช้ nampfe เป็น GUI ช่วยทำให้ใช้ง่ายขึ้น. ทำให้ใช้ได้ทั้งแบบบรรทัดคำสั่งกับ GUI. apt-get เป็นบรรทัดคำสั่ง, ไม่อยากใช้หรือใช้ไม่คล่องก็ไปใช้ synaptic แทน.

ตลาดหนังสือลินุกซ์ในเมืองไทย

จุดมุ่งหมายในชีวิตอย่างหนึ่งของผมคือเขียนและผลิตหนังสือลินุกซ์ดีๆอย่างน้อยหนึ่งเล่มสำหรับคนไทย. เป็นหนังสือเน้นคำอธิบายและตัวอย่างไม่เน้น screen shot ที่บอกให้คลิ้กตรงโน้นตรงนี้. ไม่เน้นเดสก์ท็อปแต่เน้นความรู้พื้นฐานที่เป็นแก่นความรู้. ไม่เน้นดิสทริบิวชันใดดิสทริบิวชันหนึ่ง แต่เน้นเรื่องเกี่ยวกับลินุกซ์และซอฟต์แวร์พื้นฐานที่ประกอบกันเป็นระบบลินุกซ์. เป็นหนังสือที่่สอนให้เข้าใจและต้องการให้คนอ่านขยายความรู้ต่อยอดต่อไป. นี่ก็คือจุดมุ่งหมาย, ส่วนความเป็นจริงมันอาจจะไม่สวยหรูอย่างที่คิดก็ได้ อาจจะมีอุปสรรคที่ต้องฝ่าฟันบ้าง และสุดท้ายคนที่ตัดสินคุณค่าของหนังสือคือคนอ่าน. ผมก็ได้แต่เขียนให้ดีที่สุดเท่านั้น.

ภาษาอังกฤษที่มักใช้ผิด

วันนี้เจอคนทักว่าใช้สำนวนภาษาอังกฤษหนึ่งผิดๆมาตั้งแต่ต้นแล้ว. เลยเปิดหาเรื่องเกี่ยวกับไวยกรณ์ภาษาอังกฤษบนเว็บก็ไปเจอเว็บไซด์ Common Errors in English มีออกเป็นหนังสือด้วย. คงอ่านแล้วเพลินดี, มีประโยชน