<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener("load", function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <iframe src="http://www.blogger.com/navbar.g?targetBlogID=7355927&amp;blogName=Poonlap%27s+Linux+blog&amp;publishMode=PUBLISH_MODE_BLOGSPOT&amp;navbarType=BLUE&amp;layoutType=CLASSIC&amp;searchRoot=http%3A%2F%2Fpoonlap.blogspot.com%2Fsearch&amp;blogLocale=en_US&amp;homepageUrl=http%3A%2F%2Fpoonlap.blogspot.com%2F" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" height="30px" width="100%" id="navbar-iframe" allowtransparency="true" title="Blogger Navigation and Search"></iframe> <div></div>
 Poonlap's Linux blog  ใช้ซอฟต์แวร์เสรี, มีทางเลือก, ประเทืองปัญญา, พึ่งพาตนเอง.
 
      « Home

เนื้อหาที่ผ่านมา

ลาก่อน blogspot
ใช้ ange-ftp กับ emacs
บันทึกด้วย script
ปีใหม่แล้วเวลาช้าลง 1 วินาที
เปรียบ Java กับ Ruby (ด้วยความหนาของหนังสือ)
แปลคำศัพท์ด้วย Longdo dictionary จาก Firefox
Object Oriented ใน ruby
พวกคำย่อ
ruby เบื้องต้น
del.icio.us/poonlap
 
      เนื้อหาในอดีต
06/01/2004 - 07/01/2004
07/01/2004 - 08/01/2004
08/01/2004 - 09/01/2004
09/01/2004 - 10/01/2004
10/01/2004 - 11/01/2004
11/01/2004 - 12/01/2004
12/01/2004 - 01/01/2005
01/01/2005 - 02/01/2005
02/01/2005 - 03/01/2005
03/01/2005 - 04/01/2005
04/01/2005 - 05/01/2005
05/01/2005 - 06/01/2005
06/01/2005 - 07/01/2005
07/01/2005 - 08/01/2005
08/01/2005 - 09/01/2005
09/01/2005 - 10/01/2005
10/01/2005 - 11/01/2005
11/01/2005 - 12/01/2005
12/01/2005 - 01/01/2006
01/01/2006 - 02/01/2006
02/01/2006 - 03/01/2006
03/01/2006 - 04/01/2006
 
      เชิ่อมโยง

รูปประกอบ (Flickr)
โค้ด
รูปประกอบ (อดีต)
deli.icio.us/poonlap

Thai Linux Working group
TLWG Planet
Blognone
Home at LTN
Bact's blog
Hui blog
Theppitak's blog
Noi's life & thoughts
Kitty.in.th
Sf-alpha
Vee blog
too - blogin'
Mk's blog
Pok's blogger
Vmlinix blog
Sothorn's Web log
คุณอุทัย
DrRider's Blog
Donga's memories

This page is powered by Blogger. Isn't yours?

Creative Commons License

ธนาบุตรโฟโต้บุ๊ค
อัดรูปดิจิตอล ทำสมุดภาพของคุณเอง
รอรับได้. ท่องเที่ยว แต่งงาน ฯลฯ
www.tanabutr.co.th/photobook

Betta

ที่อยู่ใหม่ของ Poonlap's Linux blog : http://mm.co.th/poonlap

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

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

ได้รู้ศัพท์ใหม่ว่า Betta Splendens เป็นชื่อวิทยาศาสตร์ เรียกย่่อๆว่า betta. ชื่อทั่วไปว่า Siam Fighting Fish. และที่สำคัญเป็นปลาพื้นเมืองมีถิ่นกำเนิดในไทย.

Betta - Friday, October 28, 2005 -

หนังดนตรี

ที่อยู่ใหม่ของ Poonlap's Linux blog : http://mm.co.th/poonlap

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

ทำให้นึกถึงหนังที่เกี่ยวดนตรีที่เคยดูๆมา. หนังทำนองนี้ที่ชอบก็มี The Commitments เป็นหนังวัยรุ่นฝรั่งที่พยายามตั้งวง Soul หานักร้อง, เรื่องวุ่นๆและในที่สุดก็สลายวง (ไม่ค่อย happy เท่าไร). เรื่องนี้ทำให้รู้จัก Otis Redding มากขึ้นและหลงไหลเพลงของเขาไปช่วงหนึ่ง.

อีกเรื่องที่เพิ่งดูทาง UBC เรื่อง School of Rock สนุกมาก. ผู้ชายบ้า rock ปลอมตัวไปสอนนักเรียนประถมแล้วพยายามจะสอน rock. อยากรู้เหมือนกันคนแสดงนำนั่นเป็นนักดนตรีจริงๆหรือเปล่า.

หนังดนตรี - Wednesday, October 26, 2005 -

เหตุที่ใช้ coLinux

ที่อยู่ใหม่ของ Poonlap's Linux blog : http://mm.co.th/poonlap

  1. รักพี่เสียดายน้่อง -> ชอบ Linux แต่ยังต้องใช้ Windows ด้วย (ใครเป็นพี่เป็นน้อง)
  2. เคยมีปัญหาเรื่อง soft modem, sound (jwz ก็มีเลยเปลี่ยนไปใช้ Mac OS X แทน linux desktop), ปัญหาฮาร์ดแวร์อื่นๆกับลินุกซ์ -> ยอมแพ้ (บางทีก็ต้องรู้จักยอมแพ้บ้าง)
  3. อยากใช้ Linux กับ Windows พร้อมๆกัน ในเครื่องเดียว ไม่ต้องบูตไปมาให้เปลืองเวลา เปลืองที่
  4. อยากใช้โปรแกรม GUI แค่บางตัวของลินุกซ์บนวินโดวส์ -> ใช้ XWin หรือ Xming ช่วย
  5. อยากลอง Linux แต่ไม่อยากลงในเครื่อง
  6. เหตุผลง่ายๆคือ ชอบลอง
ของคุณคืออันไหน?
เหตุที่ใช้ coLinux - Friday, October 21, 2005 -

Firefox แบบ vi binding

ที่อยู่ใหม่ของ Poonlap's Linux blog : http://mm.co.th/poonlap

เกิดอยากใช้ vi binding กับ Firefox ขึ้นมาเพราะรู้สึกว่าสะดวกกว่าใช้ touch pad ของแล็ปท็อป. สำหรับคนที่ไม่ได้ใช้ vi ก็ต้องแนะนำกันก่อนว่าคือเวลากดคีย์ h j k l นี่จะถึงการเลื่อนเคอร์เซอร์ไปทางซ้าย (h), ล่าง (j), บน (k) และขวา (l). ซึ่งกดให้ผลเหมือนกับการกดคีย์ลูกศรนั่นแหละ แต่มันสะดวกกว่าตรงที่บริเวณที่วางมือบนแป้นพิมพ์ นิ้วชี้ของมือขวาจะอยู่ที่ตัว j พอดีเหมาะสำหรับการเลื่อนเคอร์เซอร์ไปข้างล่าง. ถ้าจะเลื่อนเคอร์เซอร์ไปทางซ้ายก็เขยิบนิ้วชี้นั้นเลื่อนมาที่ตัว h. ถ้าจะเลื่อนเคอร์เซอร์ขึ้นก็ใช้นิ้วกลางของมือขวากด. ส่วนนิ้วนางนั้นเอาไว้กดตัว l เพื่อเลื่อนไปทางขวา. สรุปง่ายๆคือใช้ 3 นิ้ว 4 คีย์ครับ.

เข้าเรื่อง Firefox, ปรกติที่เคยเห็นในเว็บทั่วๆไปก็จะแนะนำให้สร้างไฟล์ userHTMLBindings.xml ซึ่งไปแก้ที่ไฟล์ของระบบ. แต่ีเมื่อวันก่อนที่่ไปเจอมาคือใช้ firefox extension ที่ชื่อว่า keyconfig เข้าช่วย. สรุปง่ายๆคือ

  • ติดตั้ง keyconfig ก่อนโดยไปที่ http://mozilla.dorando.at/ แล้วคลิ้ก keyconfig.xpi. Firefox ก็จะถามให้ติดตั้ง extension ตัวนั้น.
  • ปิด firefox ให้หมดเมื่อติดตั้ง extension เสร็จ
  • หาไฟล์ prefs.js ที่อยู่ในไดเรกทอรี profile ของตัวเอง. ถ้าเป็นพวกลินุกซ์ก็จะอยู่ที่ ~/.mozilla/firefox/[profile]/prefs.js โดยที่ [profile] จะเป็นตัวเลขกับอักษรแบบสุ่มๆ. หรือถ้าเป็น Windows ก็มักจะอยู่ที่ %AppData%\Mozilla\Firefox\Profiles\[profile]\prefs.js. ตรง %AppData% ให้เปิด Windows Explorer มาแล้วพิมพ์ %AppData% ที่ address bar เลยก็จะไปถึงที่ %AppData% ซึ่งปรกติก็จะเป็น c:\documents and settings\[user]\Application Data.
  • เพิ่มบรรทัดต่อไปนี้ลงไป
    user_pref("keyconfig.main.xxx_key_PageUp", "][-][][goDoCommand('cmd_scrollPageUp');");
    user_pref("keyconfig.main.xxx_key_ScrollBottom", "shift][G][][goDoCommand('cmd_scrollBottom');");
    user_pref("keyconfig.main.xxx_key_ScrollLeft", "][H][][goDoCommand('cmd_scrollLeft');");
    user_pref("keyconfig.main.xxx_key_ScrollLineDown", "][J][][goDoCommand('cmd_scrollLineDown');");
    user_pref("keyconfig.main.xxx_key_ScrollLineUp", "][K][][goDoCommand('cmd_scrollLineUp');");
    user_pref("keyconfig.main.xxx_key_ScrollPageDown", "][ ][][goDoCommand('cmd_scrollPageDown');");
    user_pref("keyconfig.main.xxx_key_ScrollRight", "][L][][goDoCommand('cmd_scrollRight');");
    user_pref("keyconfig.main.xxx_key_ScrollTop", "alt][,][][goDoCommand('cmd_scrollTop');");
    
    คีย์ที่ตั้งไว้ได้แก่
    • - เป็นการเลื่อนหน้าขึ้นไป อันนี้อดีตเคยชินกับการใช้ pine เลยใช้อันนี้
    • Shift + G เลื่อนหน้าไปที่ข้างล่าง (บรรทัดสุดท้าย) ของเพจ
    • h เลื่อนหน้าไปทางซ้าย
    • j เลื่อนหน้าไปข้างล่าง
    • k เลื่อนหน้าไปข้างบน
    • l เลื่อนหน้าไปทางขวา
    • Alt+, ไปข้างบนสุดของหน้า อันนี้ผสมกับ emacs keybinding M-<
  • เสร็จแล้วเปิด Firefox ขึ้นมาใช้อีกทีก็น่าจะใช้ vi binding ได้
พอเปิดขึ้นมาก็จะเห็นว่าที่ Tools จะมีเมนูของ key config. และจะเห็นว่าบรรทัดที่เพิ่มเข้าไปในไฟล์ prefs.js นั้นแก้ไขได้จากเมนู.

Firefox แบบ vi binding - Wednesday, October 19, 2005 -

apt-get ให้เร็วด้วย apt-spy

ที่อยู่ใหม่ของ Poonlap's Linux blog : http://mm.co.th/poonlap

ตอนที่อยู่ญี่ปุ่นอินเทอร์เน็ตอะไรๆก็เร็วไปหมด. ใน /etc/apt/sources.lst ก็มักจะใช้ ftp.jp.debian.org เป็น repository. กลับมาอยู่เมืองไทยรู้ว่าไปญี่ปุ่นมันช้า คงต้องปรับ sources.lst ซะหน่อย. เคยอ่านที่คุณเทพเขียนไว้สรุปคำสั่ง apt-* ก็เลยมาใช้ apt-spy ดู.

apt-spy มันเป็นโปรแกรมบรรทัดคำสั่งสำหรับตรวจสอบความเร็วของ mirror list ที่จะเขียนในไฟล์ /etc/apt/sources.lst. พูดง่ายๆคือช่วยหาว่าที่ไหนเร็วสุดก็เขียนไฟล์ sources.lst ให้แล้ว เวลา apt-get ก็ไปเอาแพ็กเกจจากที่นั่น.

ก่อนอื่นต้องติดตั้งก่อน

# apt-get install apt-spy
แล้วก็ update รายการ mirror site.
# apt-spy update
แล้วก็จัดการให้มันเขียน sources.lst ให้โดยระบุ พื้นที่ (-a) ให้หา mirror ใน asia และใช้ดิสทริบิวชัน (-d) แบบที่ต้องการ
# apt-spy -a asia -d unstable
มันจะลองทดสอบความเร็วจากเครื่องไปหาที่ต่างๆแล้วเลือกอันที่เร็วที่สุดมาเขียนไฟล์ sources.lst ให้.
apt-get ให้เร็วด้วย apt-spy - Sunday, October 16, 2005 -

Knowhow ของ command line กับ GUI

ที่อยู่ใหม่ของ Poonlap's Linux blog : http://mm.co.th/poonlap

ขอประติประต่อจากเรื่องของ 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 ช่วยจนดีขึ้นๆ.

ยูนิกซ์มันบอกว่า Keep it simple. แต่ "Simple" (เรียบง่าย) ไม่ได้หมายความว่า "Easy" (ใช้ง่าย). ในทางกลับกัน "Easy" ไม้ได้หมายความว่า "Simple". เรียบง่ายไม่ได้หมายความว่าง่าย. เรียบง่ายมีความหมายนัยๆว่า "สง่า" อย่างเสื้อผ้าเรียบง่ายโดยทั่วไปจะดูดี เหมาะกับทุกสถานะ. ยูนิกซ์ก็คงเช่นกันไม่งั้นคงไม่อยู่มากว่า 30 ปี (ยูนิกซ์จะตายแล้วแต่ลินุกซ์ยังไม่ตาย). ในทางกลับกันอาจจะบอกว่าได้ว่า Easy is complex. ลองนึกถึง GUI สิให้คิดไปถึงระดับ X เลยนะ กว่าจะสร้างปุ่มหนึ่งอันมันซับซ้อนมากกว่าที่รูปปุ่มที่เห็นว่าเสร็จแล้ว. แต่ก็พูดได้ว่าใช้ง่ายกว่าบรรทัดคำสั่ง.

ทีนี้มาดู Knowhow ของการใช้โปรแกรมในวินโดวส์หน่อย เวลาต้องการจะถ่ายทอดวิธีทำอะไรให้ใครซะหน่อยก็ต้องบอกเป็นขั้น ให้กด ให้คลิ้กโน่น คลิ้กนี่ ... ผมว่านี่เป็น Bad Knowhow สุดๆเลยนะ. คือไม่มีอะไรประเทืองปัญญาระหว่างขั้นตอนการเรียนรู้เลย จำอย่างเดียวแล้วไม่ต้องเข้าใจ. ลองเทียบกับการถ่ายทอดวิธีของโปรแกรมที่เป็นบรรทัดคำสั่ง เขียนไปเปรี้ยงแล้วจบเลยไม่ได้. คือการถ่ายทอดที่ดีต้องอธิบายด้วยเช่นเขียนว่า ls -lt, ก็ต้องอธิบายว่า -l นี่เป็นตัวเลือกบอกรายละเอียดนะ, -t นี่ sort ตามเวลานะ, ยูนิกซ์มันเขียนตัวเลือกรวมกันได้ก็เลยใช้ -lt นะ อะไรทำนองนี้. ก็จะไปตกวงวนถูกหาว่าใช้ยากอีก. ผมว่า command line + frontend นี่แหละดีสุด. ที่ชินๆก็ใช้บรรทัดคำสั่งไป (bad knowhow), ที่ไม่ชินก็ใช้ frontend (good wrapper).

เกี่ยวข้อง:

เขาบอกว่า Jamie Zawinski ก็อยู่ในพวก Unix Hater เหมือนกัน. พอจะคล้อยตามเหมือนกันว่าทำไมคนใช้ยูนิกซ์บางคนหันไปใช้ Mac.
Knowhow ของ command line กับ GUI - -

คุณเปิด terminal กี่บาน?

ที่อยู่ใหม่ของ Poonlap's Linux blog : http://mm.co.th/poonlap

สำหรับคนที่ใช้เทอร์มินอลไม่ว่าจะเป็นคอนโซลหรือเทอร์มินอลเอมิวเลเตอร์, บางทีมีความจำเป็นต้องเปิดเทอร์มินอลหลายตัวดูพร้อมๆกัน. แต่จริงๆแล้วเวลาใช้ก็ได้อันเดียวแหละเพราะคนเราก็ทำอะไรได้อย่างเดียวในเวลาหนึ่งๆ. ลองมาสรุปดูว่ามีวิธีใช้เทอร์มินอลหลายๆตัวในเวลาเดียวกันแบบไหนบ้าง.
  • ใช้เทอร์มินอลเสมือน (virtual terminal) ก็คือลินุกซ์คอนโซลนั่นเอง. กด Alt+F1 (สมมติว่าใช้เท็กซ์โหมดอย่างเดียว), Alt+F2, Alt+F3, ... หรือด้วยคำสั่ง chvt แต่ต้องสั่งด้วย root. มักใช้เปลี่ยนเทอร์มินอลไปมาเวลาใช้คอนโซลที่ต่อกับเซิร์ฟเวอร์โดยตรง.
  • เปิด xterm หลายๆตัวถ้าใช้ X window ได้. เห็นหมดทุกหน้าต่าง, ตัดคัดลอกแปะได้สะดวกแต่รกหูรกตาถ้าเปิดมากเกินไป.

  • เปิดพวก gnome-terminal หรือ konsole ตัวเดียวแล้วใช้แท็บ. พวกเทอร์มินอลรุ่นใหม่มันสะดวกครับ. ใช้แืท็บได้, ไม่ต้องเปิดหลายหน้าต่าง. เลือกเปิดแท็บจากเมนูหรือกด Ctrl+Shift+t ในกรณีที่ใช้ gnome-terminal. เปลี่ยนแท็บไปมาโดยกด Ctrl+PageUp, Ctrl+PageDown (เหมือน Firefox). หรือเลือกแท็บที่อยากใช้ตามเบอร์โดยการกด Alt+[ตัวเลข].

  • ใช้ screen. เห็นใครใช้ screen ก็ีรู้ได้เลยว่าเป็นพวก geek, มือเก๋า. คือใช้เทอร์มินอลอะไรก็ได้ตัวเดียวแล้วสั่งคำสั่ง screen.

    screen เป็นคำสั่งที่ไปรันเชลล์อีกที และก็รันเชลล์ได้หลายตัวในเทอร์มินอลเดียว. ถ้าใช้ครั้งแรกสั่งคำสั่ง screen ก็จะมี welcome message ให้ดูรับทราบว่าเข้าสู่ screen แล้ว. พอกด space ก็เข้าเชลล์ตัวใหม่สั่งคำสั่งอะไรได้เหมือนไม่มีอะไรเกิดขึ้น. พออยู่ในโปรแกรม screen จะใช้คีย์ Ctrl+a เป็นตัว escape สั่งคำสั่งต่างๆเช่น

    • Ctrl+a c สำหรับสร้างเชลล์อีกตัว
    • Ctrl+a n ย้่ายไปหน้าจอของเชลล์ถัดไป
    • Ctrl+a p ย้ายไปหน้าจอของของเชลล์ตัวที่แล้ว
    • Ctrl+a d ใช้ detach หน้าจอ ออกจากคำสั่ง screen แต่โปรแกรมหรือเชลล์ยังไม่ตาย
    การใช้เชลล์ได้หลายๆหน้าจอด้วยเทอร์มินอลเดียวก็มีประโยชน์แต่ที่เป็นประโยชน์อย่างยิ่งคือการ detach ที่เราควรจำกันไปใช้. การใช้ detach นี่เองทำให้ใช้เชลล์ได้เหมือนกับพวก remote desktop (มีมาก่อน remote desktop อีก) เช่นที่ทำงานใช้ screen รันโปรแกรมค้างไว้รอนานไม่เสร็จก็ detach ปล่อยหน้าจอ. พออยู่ที่บ้านก็ ssh เข้าไปในเครื่องที่ทำงานแล้วสั่งคำสั่ง
    $ screen -r 
    
    screen ก็จะไปต่อติดหน้าจอ (เชลล์) ที่รันค้างไว้ได้ซึ่งเป็นหน้าจอเดียวกัน และโปรแกรมที่รันค้างไว้มันก็อยู่อย่างนั้น (หรือทำงานเสร็จไปแล้ว). หรือบางทีไม่แน่ใจว่ามี screen รันค้างไว้หรือไม่ก็สั่งคำสั่ง
    $ screen -ls
    There is a screen on:
            12058.pts-0.colinux     (Detached)
    1 Socket in /var/run/screen/S-poonlap.
    
    

    screen เป็นโปรแกรมที่ควรจำโปรแกรมหนึ่ง. มันทำอะไรได้มากกว่าที่แนะนำในที่นี่และซับซ้อนเหมือนกัน. เห็นบอกว่าแชร์หน้าจอก็ได้ด้วย (ในเครื่องเดียวกัน, คือมันใช้ยูนิกซ์ซ็อกเก็ต), คัดลอกเท็กซ์, เก็บล็อก, บอกเตือนเวลา silent หรือ active ฯลฯ ลองไปอ่าน man screen หรือหาอ่านตามเว็บ ดูครับ.

    สุดท้ายไฟล์ ~/.screenrc เป็นไฟล์ตั้งค่าเริ่มต้น, ปรับแต่งอะไรได้เยอะ. ตัวอย่างก็ก็อปๆเขามาครับ. ใช้ดีขึ้นกว่าไม่ปรับแต่งเยอะคือมีแสดงแถบ status อยู่ด้านล่างและเปลี่ยน Ctrl+a ให้เป็น Ctrl+t แทนจะได้ใช้ Ctrl+a ใน bash เป็น beginning-of-line ได้เหมือนที่คุ้นเคยครับ.

    # ไม่เอาข้อความต้อนรับ
    startup_message off
    
    # ตั้งค่า scroll มากกว่าค่าปริยาย (100)
    defscrollback 1024
    
    # ทำให้มีแถบ status ด้านล่าง
    hardstatus on
    hardstatus alwayslastline
    hardstatus string "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %m/%d %C%a "
    
    # ใช้ Ctrl+t แทน Ctrl+a
    escape ^Ta
    
อ่านเพิ่มเติม:
คุณเปิด terminal กี่บาน? - Saturday, October 15, 2005 -

Bad Knowhow and Good Wrapper

ที่อยู่ใหม่ของ Poonlap's Linux blog : http://mm.co.th/poonlap

ช่วงสองสามวันที่ผ่านมาอ่าน 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 แทน.


หมายเหตุ: Picture from http://www.hyuki.com/techinfo/knowhow2.gif

ใน conference ก็มีการบรรยายของ Tatsuhiko Miyakawa ให้ข้อคิดไว้ดีทีเดียว ว่า Bad Knowhow เป็น "สิ่งที่ไม่ดีแต่จำเป็น" (ภาษาญี่ปุ่นใช้คำว่า 必要悪). แถมยังบอกว่า "ค่าของ engineer อยู่ที่จำนวนของ BK (Bad Knowhow) ที่เรียนรู้ไป" ! เขายังอธิบายต่อไปว่า BK หนึ่งๆ ที่ต้องเรียนรู้นั้น ใจความสำคัญไม่ได้อยู่ที่ Knowhow แต่อยู่ที่ "ขั้นตอนที่หา knowhow" ต่างหาก. ตัว BK จริงๆแล้วอาจจะไม่มีประโยชน์อะไรเลย. API, configuration file ที่เรียนไปวันนี้พรุ่งนี้อาจจะใช้ไม่ได้แล้ว (ตรงเผงเลย). แต่สิ่งที่สำคัญของคนที่สู้กับ BK แต่ละอันๆ คือมีประสบการณ์, จะมีสัญชาตญาณว่าควรจะปรับตัวอย่างไร ควรจะทำอย่างไรให้แก้ปัญหาให้ได้. นี่เองที่เขาบอกไว้ว่า "ค่าของ engineer อยู่ที่จำนวนของ BK (Bad Knowhow) ที่เรียนรู้ไป". ในสไลด์ของเขาน่าสนใจมาก แยกประเภทต่างๆของ Bad Knowhow และวิธีแก้ไขให้ด้วยว่าทำอย่างไร. สิ่งที่ช่วยแก้ Bad Knowhow คือเอกสารต่างๆ ไม่ว่าจะเป็น manual, mailing list, web site หรือ blog ที่เขียนๆกัน. คือทางที่ดีรู้คนเดียวไม่พอควรจะเขียนเป็นนิสัย (คนญี่ปุ่นมีแบบนี้เยอะ) ช่วยแก้ Bad Knowhow ได้แบบหนึ่ง (ทางแก้จริงๆอาจจะต้องไปแก้ที่สาเหตุตั้งแต่การออกแบบโปรแกรมดีๆตั้งแต่แรก). และมีทัศนะคติใหม่ต่อ Bad Knowhow ว่า "Let's face it, Bad Knowhow is fun!". คือคุณ Miyakawa เขาคิดแบบคนเป็นวิศวกร.

กลับมาคิดอีกที คนที่ "ชอบ" ใช้ลินุกซ์นี่เป็นพวกชอบ Bad Knowhow ? ผมว่าส่วนหนึ่งคงใช่ ดูแต่ละคนที่อยู่ใน LTN สิ. ชอบอ่าน ชอบค้นคว้าเอง. คีย์เวิร์ด (หรือ key phrase) มันก็มีอยู่บ้างเช่น "ทำอะไรด้วยตัวเอง", "ไม่ยอมแพ้ง่ายๆ", "ถ้าคนอื่นทำได้, ฉันก็ต้องทำได้", "ปัญหาที่เจอ คงมีคนเจอแล้วและอยู่ใน google" ฯลฯ

Bad Knowhow นี่แหละที่ผมว่าเป็นอุปสรรคสำหรับคนใช้ลินุกซ์หน้าใหม่ หรือที่เรียกว่า newbie. เมื่อวานไปอ่านเว็บ I am a newbie, I have a problem, so you must help me! ชี้ให้เห็นเหมือนกันว่า newbie แตกต่างกับพวกไม่ newbie อย่างไร และคนที่ไม่ใช่ newbie มัน (แน่นอนว่าต้องเคยเป็น newbie มาก่อน) มีคุณลักษณะอย่างไร. ลองอ่านดูครับ.

เนื้อหาที่เกี่ยข้อง:

Bad Knowhow and Good Wrapper - Friday, October 14, 2005 -

Image module bug ใน Drupal 4.6

ที่อยู่ใหม่ของ Poonlap's Linux blog : http://mm.co.th/poonlap

สำหรับคนที่ใช้ Drupal แล้วเจอปัญหาแก้ไขรูปที่เคยอัปโหลดไปแล้วมันไม่ยอมทำ thumbnail ให้. เจอมากับตัวเองคือรับทำเว็บไซด์ด้วย Drupal ให้คนอื่น. โหลดรูปที่มีมากมายของลูกค้าเสร็จเรียบร้อย พอลองแก้ทีมี error "Unable to create thumbmail image". แถมรูปที่โหลดไปแล้วหาไปเลย (โดนลบแบบไม่มีปี่มีขลุ่ย). หาข้อมูลตั้งนานพอควรก็รู้ว่าคนอื่นก็เจอปัญหา critical นี้เหมือนกันแต่ยังไม่มีคำตอบ แถมบางทีใช้ได้บ้างใช้ไม่ได้บ้างหาสาเหตุลำบาก. เลยต้องมานั่งดูโค้ด php เองก็พอจะรู้แล้วว่าเป็นเพราะอะไรก็เลยแก้ และรายงานกลับไปแล้ว.

ใครเจอปัญหา Drupal นี้ก็ลองดูบั้กตัวนั้นแล้วกันครับ. มัน critical จริงๆ.

Image module bug ใน Drupal 4.6 - Wednesday, October 12, 2005 -

จัดระเบียบ ssh, smbfs ใน coLinux

ที่อยู่ใหม่ของ Poonlap's Linux blog : http://mm.co.th/poonlap

วันก่อน mount โฟลเดอร์ c:\cygwin\home\poonlap ไปไว้ที่ /home/poonlap โดยใช้ samba. ใช้ได้ไม่นานก็พอว่ามันไม่ดีเท่าไรนัก. คือในโฟลเดอร์ c:\cygwin\home\poonlap ก็มีไฟล์ตั้งค่าเริ่มต้นต่างๆของเชลล์บ้าง, X บ้าง, ssh บ้าง ซึ่งมันไปตีกัน. เลยจับแยกดีกว่า.

  • /home/poonlap/cygwin เป็นจุดเมาต์ของ c:\cygwin\home\poonlap (ชื่อแชร์โฟลเดอร์เวลามองจาก samba คือ //192.168.0.1/poonlap)
  • /home/poonlap/mydocuments เป็นจุดเมาต์ของ c:\Document and Settings\poonlap\My Documents (ชื่อแชร์โฟลเดอร์เวลามองจาก samba คือ //192.168.0.1/poonlap-documents)
เปลี่ยนใหม่เขียน /etc/fstab เป็นแบบนี้
...
//192.168.0.1/poonlap /home/poonlap/cygwin smbfs        defaults,username=poonla
p,password=xxx,workgroup=stardust,uid=1000          0       0
//192.168.0.1/poonlap-documents /home/poonlap/mydocuments smbfs defaults,usernam
e=poonlap,password=xxx,workgroup=stardust,uid=1000          0       0
...
ทีนี้ก็มาถึงเรื่องของ sshd ที่รันอยู่บน coLinux เปลี่ยนให้มันยอมรับ Forward X11 โดยที่ไปแก้ไฟล์ /etc/ssh/sshd_config.
...
X11Forwarding Yes <- เปลี่ยน No ให้เป็น Yes
...
แล้วสั่งรีสตาร์ท sshd ใหม่
# /etc/init.d/ssh restart
ส่วนทางด้านของ cygwin ก็ไปแก้ ~/.ssh/config (หรือสร้างใหม่) แล้วเติมบรรทัดต่อไปนี้เพื่อให้ใช้ X วินโดว์ได้อัตโนมัติ.
...
ForwardX11 yes
...
ทีนี้จากเทอร์มินอลของ cygwin พอ ssh เข้าไปหา coLinux เสร็จก็ใช้โปรแกรมพวก X ไคลเอ็นต์ได้เลยไม่ต้องมานั่งเซ็ต DISPLAY. cd ไปที่ cygwin ก็จะไปที่โฮมของ cygwin. cd ไปที่ mydocuments ก็จะไปที่ My Documents.
จัดระเบียบ ssh, smbfs ใน coLinux - Sunday, October 09, 2005 -

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

ที่อยู่ใหม่ของ Poonlap's Linux blog : http://mm.co.th/poonlap

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

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

ฟังอย่างนี้แล้วสงสัยว่าคนที่ซื้อหนังสือลินุกซ์น้อยจนหนังสือมันขายไม่ได้ต้องคืนสำนักพิมพ์เยอะมากเลยหรือ. หรือว่าเนื้อหาหนังสือไม่ดีพอที่คนซื้อจะเลือกซื้อ.

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

อ่านเขียนไฟล์ใน Windows จาก coLinux

ที่อยู่ใหม่ของ Poonlap's Linux blog : http://mm.co.th/poonlap

พอใช้ coLinux ไปเรื่อยก็เริ่มมีความจำเป็นที่จะต้องถ่ายโอนข้อมูลระหว่าง coLinux กับ Windows. ตรงนี้ก็มีหลายวิธี. เอาแบบสะดวกสุดก็เป็น bash shell ของ cygwin บนวินโดวส์ออกมาแล้ว scp หรือ sftp ถ่ายโอนไฟล์ไปให้ coLinux. แต่ถ้าต้องมีการถ่ายโอนไฟล์บ่อยๆวิธีนี้ก็จะไม่มีประสิทธิภาพ.

ใน Wiki ของ coLinux บอกว่ามี CofsDevice ใน coLinux ให้เข้าถึง (access) ไฟล์ที่อยู่ในวินโดวส์ได้เลยด้วยการเมาต์ดีไวซ์ที่ไปเชื่อมต่อกับโฟลเดอร์ในวินโดวส์. ก็น่าลอง แต่เห็นบอกว่ามันเป็น experiment และ very bugy เลยไม่อยากใช้ เพราะเข็ดกับความหายนะที่เกิดขึ้นของข้อมูลที่เกิดขึ้นกับการลองของพวกนี้. ใครอยากลองก็ลองเองครับ. เลยเอาแบบนี้, ให้ Windows แชร์โฟลเดอร์ออกมาแล้ว coLinux เมาต์ด้วย samba.

ใน coLinux ก็ติดตั้งแพ็กเกจ smbfs

# apt-get install smbfs

ทางฝั่งวินโดวส์ก็ไปสร้างแชร์โฟลเดอร์. ก็คิดว่าควรจะสร้างแชร์โฟลเดอร์ไว้ที่ไหน? ก็เลยเลือก c:\cygwin\home\poonlap เป็นแชร์โฟลเดอร์แล้วใน coLinux ก็ mount เป็น /home/poonlap. เรื่องการทำแชร์โฟลเดอร์ก็ไม่มีอะไรมาก คลิ้กขวาที่โฟลเดอร์แล้วเลือกแชร์. นี่ก็เป็นสาเหตุที่เมื่อวานอยากได้การตั้ง permission ของวินโดวส์ให้ละเอียดหน่อย ไม่งั้นคนในเน็ตเวิร์กก็เห็นโฟลเดอร์ที่แชร์หมด. ตรงนี้ให้เลือกยูสเซอร์ที่อนุญาตให้เข้าถึงแชร์โฟลเดอร์เช่น poonlap ซึ่งเป็นยูสเซอร์ที่อยู่ในวินโดวส์. เลือกเอา everyone ออกแล้วใช่เฉพาะชื่อตัวเอง.

กลับมาที่ส่วนของ coLinux แก้ไฟล์ /etc/fstab ซึ่งเป็นไฟล์ที่กำหนดว่าจะ mount อะไรบ้างตอนบูตเครื่อง. fstab ย่อมากจาก file system table. เพิ่มบรรทัดคล้ายๆตัวอย่างปรับแต่งให้เข้ากับกรณีของตัวเอง.

//192.168.0.1/poonlap /home/poonlap smbfs defaults,username=poonlap,pasword=xxx,workgroup=stardust,uid=1000 0 0
  • //192.168.0.1/poonlap คือ IP ของเครื่องวินโดวส์ที่แชร์โฟลเดอร์มีชื่อแชร์ (share name) เป็น poonlap
  • /home/poonlap คือตำแหน่งที่ต้องการไปเมาต์
  • smbfs คือประเภทของระบบไฟล์ว่าเป็น samba file system
  • defaults,... เป็นตัวเลือกของการ mount. ตรง workgroup ให้เติมชื่อเครื่อง. uid เป็น user id ของยูสเซอร์บน coLinux ที่จะให้เข้าถึงไดเรกทอรีที่เมาต์เสร็จ. uid=1000 นี่ก็หมายถึงยูสเซอร์ poonlap ใน coLinux.
รีบูตเครื่องใหม่มันก็จะ mount โฟลเดอร์ c:\cygwin\home\poonlap ของวินโดวส์ไปปะไว้ที่ /home/poonlap ใน coLinux. จริงๆไม่ต้องรีบูตก็ได้. เอาให้เห็นผลทันที
# mount -a
ทีนี้ก็จะใช้ไดเรกทอรีเดียวกันเวลาใช้ coLinux และ cygwin. ต้องระวังนิดนึงคือโปรแกรมที่คอมไพล์บนตัวใดตัวหนึ่งจะเอาไปรันอีกฝั่งไม่ได้ (ก็แน่นอนอยู่แล้ว). อันนี้ทำไว้ให้ส่งโอนถ่ายข้อมูลได้ง่ายขึ้นเท่านั้นเอง. เช่นใช้ Thai LaTeX ใน coLinux สร้าง PDF แล้วอ่านด้วย acrobat reader บนวินโดวส์อะไรทำนองนี้. ไม่ต้องมานั่่ง scp, sftp ไปๆมาๆ รหัสต้นฉบับก็อยู่ที่เดียวกัน.
อ่านเขียนไฟล์ใน Windows จาก coLinux - Saturday, October 08, 2005 -

เซ็ต permission ของไฟล์ในวินโดวส์ XP

ที่อยู่ใหม่ของ Poonlap's Linux blog : http://mm.co.th/poonlap

ปรกติเครื่องวินโดวส์ XP สามารถแชร์โฟลเดอร์ของตัวเองได้ง่ายโดยคลิ้กขวาโฟลเดอร์นั้นและเลือก share. แต่ปัญหาคือตัวเลือกมันมีให้ไม่เยอะ. มีแค่ให้ใครก็ได้ในเครือข่ายเข้ามาอ่านได้, เขียนได้. ไม่สามารถกำหนด permission จำกัดคนที่มีสิทธิ์อ่านเขียนโฟลเดอร์นั้นได้. ผมก็เคยจำได้ว่าถ้าเครื่องวินโดวส์มันเข้าไปร่วม Windows Domain มันจะมีแท็บ security ให้เช็ตแบบละเอียดเลย. อยากจะทำแบบนั้นแต่เครื่องวินโดวส์ที่ใช้ไม่ได้ร่วม Windows Domain อะไร มันอยู่แบบ workgroup. ก็นึำกว่าต้องสร้าง NT Domain ด้วย Samba แล้วเข้่าไป join ซะแล้ว. แต่ก่อนที่จะทำอย่างนั้นก็หาข้อมูลด้วย google ว่ามีวิธีอะไรไหมที่จะเซ็ต permission ได้ ก็เจอว่ามันทำได้.

วิธีทำก็เหมือนกับที่เขียนไว้คือ

  • เปิด Windows explorer
  • ไปที่ Tools
  • ไปที่ Folder options
  • ไปที่แท็บ view
  • ยกเลิกการแชร์แบบง่าย

ทีนี้ก็เซ็ต access permission ของแชร์โฟลเดอร์ได้ละเอียดกว่าเก่าเยอะ.

เซ็ต permission ของไฟล์ในวินโดวส์ XP - Friday, October 07, 2005 -

แป้นพิมพ์ภาษาไทยใน XWin

ที่อยู่ใหม่ของ Poonlap's Linux blog : http://mm.co.th/poonlap

ปรกติชอบใช้ dia เขียน flow chart. และช่วงนี้ก็ใช้วินโดวส์เสียเป็นส่วนใหญ่เลยเอา dia ที่รันบนวินโดวส์มาใช้ แล้วก็เจอปัญหาว่ามันไม่เสถียร memory allocation error บ้างทำให้สิ่งที่วาดๆไปหายไปกับสายลม. เลยนึกได้ว่าน่าใช้ dia ที่อยู่ใน coLinux ซึ่งมันต้องเสถียรกว่าอยู่แล้วเพราะเป็นต้นตำหรับ. แต่ก็เจอปัญหาเรื่องแป้นพิมพ์ภาษาไทย.

จากเรีืองการทำให้ XWin เป็นเซอร์วิสในวินโดวส์ เราก็รู้มาว่าใส่ตัวเลือกของ XWin ตอนสั่งคำสั่ง cygrunsrv ได้. ก็ใส่ตัวเลือกเพิ่ม -xkblayout กับ -xkboptions ซึ่งเกี่ยวกับแป้นพิมพ์. ก็สรุปง่ายๆต้องถอนเซอร์วิสแล้วทำเซอร์วิสใหม่

> cygrunsrv -R xwin
> cygrunsrv -I xwin -d "Cygwin XWin server" -p /usr/X11R6/bin/XWin  -a  "-multiwindow -clipboard -ac -xkblayout us,th -xkboptions grp:ctrl_alt_toggle" -c /usr/X11R6/bin
เสร็จแล้วก็ไปเปิดหน้าจอ services ของวินโดวส์อนุญาตให้เซอร์วิสที่บันทึกเข้าไปใหม่โต้ตอบกับเดสก์ท็อปได้ด้วย. ไม่งั้นเซอร์วิสก็รันไป แต่ไม่แสดงผล. ประเด็นสำคัญคือการเพิ่มตัวเลือก -xkblayout us,th และ -xkboptions grp:ctrl_alt_toggel คือใช้ผังแป้นพิมพ์ us กับ th (Kedmenee) และกดคีย์ Ctrl+Alt เป็นคีย์เปลี่ยนภาษา. ปรกติคีย์ Alt+Shift เป็นคีย์สำหรับเปลี่ยนแป้นพิมพ์บนวินโดวส์อยู่แล้วเลยต้องเปลี่ยนวิธีการเปลี่ยนผังแป้นพิมพ์ใน XWin ให้ไปใช้คีย์อื่นแทน. ไม่เช่นนั้น XWin จะไม่เปลี่ยนแป้นพิมพ์.

ขอบ่นหน่อยคือปรกติเวลาผมเปลี่ยนแป้นพิมพ์ภาษาอังกฤษ/ไทยบนวินโดวส์จะใช้คีย์ Alt+Shift (ซ้าย) อันนี้เป็นวิธีซึ่งผมก็คิดว่าเป็นมาตรฐานในวินโดวส์นะ. ดูที่ Language and Setting มันก็มีให้ใช้คีย์ Alt+Shift นี้. วินโดวส์ภาษาไทยจะใช้กด ~ เพื่อเปลี่ยนแป้นพิมพ์ไทย/อังกฤษซึ่งผมก็สงสัยมานานแล้วว่าใครเป็นคนคิด. แล้วถ้าจะพิมพ์ ~ จริงๆแล้วจะทำอย่างไร. ทำให้คนบางคนติดนิสัยไปอีกว่าพอไปใช้ลินุกซ์แล้วก็อยากใช้ ~ เป็นคีย์เปลี่ยนแป้นพิมพ์ไปด้วย.

แป้นพิมพ์ภาษาไทยใน XWin - -

ที่อยู่ใหม่ของ Poonlap's Linux blog : http://mm.co.th/poonlap

เนื้อหาย้่ายไปที่นี่ครับ.
- -

รูปตลกๆ

ที่อยู่ใหม่ของ Poonlap's Linux blog : http://mm.co.th/poonlap

ดูเอาเองแล้วกัน
รูปตลกๆ - Saturday, October 01, 2005 -

Virtual desktop บนวินโดวส์

ที่อยู่ใหม่ของ Poonlap's Linux blog : http://mm.co.th/poonlap

จำได้ว่าสมัยใช้ FVWM ตอนที่มันออกใหม่เมื่อนานมาแล้ว, สิ่งที่ชอบมากอย่างหนึ่งคือ virtual desktop. คำนี้ไม่รู้ว่ายังใช้กันอยู่หรือเปล่าหรือใช้คำอื่นแทนกันแล้ว. เจ้า virtual desktop เป็นความสามารถของ window manager ที่แสดงเดสก์ท็อปได้เสมือนมีหลายๆตัว. คนใช้สามารถลากหน้าต่างเลื่อนไปวางบนเดสก์ท็อปตัวที่ต้องการ. ถ้าต้องการเปลี่ยนเดสก์ท็อปก็ดันเมาส์ไปสุดขอบก็จะเปลี่ยนเดสก์ท็อปให้. ตรงนี้ผมว่าดีกว่า Windows เยอะมีหลายเดสก์ท็อปให้ใช้. ใช้วินโดวส์ทีเราก็อยากได้คุณสมบัตินี้มาใช้ด้วย. เมื่อหลายสัปดาห์ก่อนไปเห็น power toy ที่ Microsoft แจกเอามลงก็ใช้ไม่ได้เรื่อง. ไม่ได้เรื่องคือมันเปลี่ยนหน้าจอช้ามากๆ.

วันนี้อ่าน slashdot (ข่าวจาก Tom's hardware อีกที) ก็เลยรู้จักกับ Virtualwin เป็นซอฟต์แวร์ที่เพิ่มความสามารถใช้วินโดวส์ใช้ virtual desktop ได้นี่แหละ. อยากได้มานานแล้ว. เจอซะทีเลยรีบดาว์นโหลดมาใช้เลย. โปรแกรมนี้มีสัญญาอนุญาตแบบ GPL ซะด้วย. ของฟรีและดี, ของดีและฟรี.

อ่านข่าวนั้นแล้วได้ลงหลายตัวเลย ที่น่าสนในก็มี Keynote, Litestep ฯลฯ.

Virtual desktop บนวินโดวส์ - -


 
Search this blog:


Google Home - Blogger - Blogger Templates

© 2005 Poonlap's Linux blog