Bangkok International Airport

สนามบินสุวรรณภูมิ กำลังได้รับความสนใจจากประชาชน มีจัดทัวร์ไปเที่ยว ไปเยี่ยมชม ก่อนหน้านี้ก็เคยมีจัดประกวดถ่ายภาพ (รางวัลที่หนี่งได้ตั้ง 1 ล้านบาท) .. อีกฝั่งนึงของเมือง สนามบินดอนเมืองกำลังจะหมดหน้าที่ในฐานะสนามบินนานาชาติของกรุงเทพ .. ไม่ช้าก็เร็วนักท่องเที่ยวคงได้ไปใช้บริการสุวรรณภูมิ จากนั้นเราอาจจะไม่มีโอกาสได้เหยียบย่างเข้าสู่ดอนเมืองอีกเลยก็ได้ .. เอาเข้าจริงๆ แล้ว เวลานี้ดอนเมืองน่าจะเป็นที่ๆ ควรไปถ่ายภาพมากกว่าสุวรรณภูมิเสียอีก บางทีเราอาจจะได้บันทึกภาพประวัติศาสตร์ไว้ก็ได้ :P

Scim-thai for Ubuntu Dapper Drake

เมื่อวานเอา scim-thai ที่ พี่ thep พัฒนาไว้ มาทำเป็นแพ็คเกจสำหรับ Ubuntu Dapper Drake .. ว่าจะทำ .deb ตั้งแต่พี่ thep release แล้ว แต่ก็เลื่อนๆๆๆ ไปเรื่อย :P

ใช้ Kitty Repository ก็

# aptitude update
# aptitude install scim-thai

หรือดาวน์โหลดได้ที่ ftp://ftp.kitty.in.th/pub/ubuntu/kitty/pool/dapper/scim-thai

File System over SSH Protocol

ปกติแล้ว Nautilus มันสามารถ connect network drive ผ่านทาง SSH ได้อยู่แล้ว โดยมันจำลองการทำงานเสมือนเป็น file system ผ่านทาง GNOME-VFS ซึ่งแปลว่ามันยังไม่ใช่ file system จริงๆ วันนี้คุยกับพี่ CoolNetClub ในห้อง #tlwg เรื่อง NFS กับ network drive ผ่าน SSH คุ้นๆ ว่าเคยเห็น sshfs แต่ยังไม่เคยลองซะที ก็เลยอาศัยโอกาสนี้ทดลองใช้ซักหน่อย

sshfs

sshfs อาศัย ssh/sftp/scp เป็นช่องทางในการ mount พื้นที่ในเครื่องๆ นึงมาเป็นส่วนนึงของ file system จริงๆ โดยใช้ Filesystem in Userspace (FUSE) ซึ่งเคอร์เนลของลินุกซ์สนับสนุนมาตั้งแต่รุ่น 2.6.14 สำหรับคนทีคอมไพล์เคอร์เนลเองก็ต้องคอนฟิก FUSE_FS=Y หรือ M ก็ได้

หลังจากได้เคอร์เนลที่สนับสนุน FUSE แล้ว ทีนี้ก็ติดตั้ง sshfs กัน .. บน Ubuntu ก็ง่ายหน่อย

# aptitude install sshfs

ซึ่งจะติดตั้ง sshfs พร้อมกับ dependencies (e.g. fuse-utils + libfuse2) ที่จำเป็น

จากนั้นเพิ่ม user ที่ต้องการใช้ FUSE เข้าไปอยู่ใน group fuse .. อันนี้จำเป็นต้องทำเพราะค่าปริยายแล้วโปรแกรมใน userspace มันบังคับให้เฉพาะ user ใน group fuse เท่านั้นที่ execute ได้

# usermod -G fuse -a username

ถ้าแก้ไข user ที่กำลัง login อยู่ อาจจะต้อง logout ออกจากระบบก่อน แล้ว login เข้ามาใหม่ถึงจะเริ่มมีผล

Mount!

สำหรับการใช้งานสำหรับคนที่คอมไพล์ FUSE_FS เป็นเคอร์เนลมอดูลก็สั่ง modprobe ซะก่อน

# modprobe fuse

จากนั้นก็สั่ง mount กัน

$ sshfs [email protected]:/path/ /mount/point/

sshfs ก็จะให้ใส่ password (หรืออาจจะต้องไม่ใส่ถ้าใช้ public-key authentication) พอผ่านขั้นตอน authentication ได้ sshfs ก็จะ mount /path/ บน host.domain.tld มาเป็นส่วนนึงของเครื่องที่เรียกใช้ sshfs .. ลองสั่ง mount ดูสักหน่อย

$ mount
...
...
...
sshfs#[email protected]:/path on /mount/point type fuse (rw,nosuid,nodev,max_read=65536,user=username)

จะเห็นว่า sshfs มัน mount พื้นที่ปลายทางมาเป็นส่วนนึงของ filesystem ของเราเรียบร้อย .. ทีนี้ทดสอบกันด้วยคำสั่งทั่วๆ ไปที่ทำงานกับ filesystem เช่น

$ ls /mount/point/

ก็จะเห็นไฟล์ที่อยู่บนเครื่อง host.domain.tld .. จะก๊อปปี้ไฟล์ ฯลฯ ก็ทำได้สบายๆ ไม่ต้องง้อ NFS

วิธี unmount ก็ใช้คำสั่ง fusermount -u เช่น

$ fusermount -u /mount/point

ปิดท้าย … สังเกตดูจะเห็นว่าการ mount / unmount FUSE ไม่จำเป็นต้องใช้สิทธิของ root เลย … เจ๋ง :D

Filesystem over SSH

คุยกับพี่ CoolNetClub ในห้อง #tlwg ไปๆ มาๆ เลยได้ลอง sshfs ซึ่งทำงายอยู่บน FUSE อีกที .. สรุปว่าเจ๋งดี .. sshfs สั่ง mount ผ่าน SSH protocol ได้ .. ในขณะที่ FUSE ก็ทำให้เป็น Filesystem in Userspace ตามชื่อ เอาสองอย่างมาผสมกัน ผู้ใช้ทั่วไปก็สามารถสั่ง mount sshfs ได้ ไม่จำเป็นต้องเป็น root :)

บันทึกเรื่อง Filesystem over SSH Protocol เข้าห้องแล็บไว้แล้ว สนใจก็ตามไปอ่านได้ :)

Updated – Kitty Repository for Dapper Drake

ขี้เกียจรอแพ็คเกจเวอร์ชันใหม่ ก็เลย build เองเพิ่มนิดหน่อย

  • dosbox 0.65
  • exiv2 + libexiv2 + libexiv2-dev + libexiv2-doc 0.10 สำหรับ gimp-ufraw 0.9
  • inkscape 0.44
  • libexif12 + libexif-dev 0.6.13 อันนี้ก็สำหรับ gimp-ufraw 0.9
  • stellarium + stellarium-data 0.8.1
  • xchat-gnome 0.11 default เป็นภาษาไทย ท่าน vee build deb มาฝากไว้นานแล้ว ลืมเอามาโฆษณา :P

วิธีเพิ่ม repo และ ลิสต์รายชื่อแพ็คเกจอื่นๆ ที่อยู่ใน kitty repo เคย blog ไว้แล้ว

Genius WizardPen บน Ubuntu Dapper Drake

Dapper ใช้ Xorg 7.0 มีการเปลี่ยนโครงสร้างพอสมควร และกระทบไดรเวอร์ WizardPen ที่ใช้อยู่เหมือนกัน จะคอมไพล์ไดรเวอร์ก็อาจจะต้อง hack นิดหน่อย

อย่างแรก ติดตั้งเครื่องมือในการพัฒนาที่จำเป็น และต้องไม่ลืม imake x11proto-core-dev x11proto-input-dev

โหลดซอร์ส wizardpen มา ตัวล่าสุดใช้ได้ทั้งเมาส์และปากกาแล้ว :D

$ tar xzf wizardpen-0.5.tar.gz
$ cd wizardpen-0.5

ทีนี้ต้องแก้ไฟล์ Imakefile นิดนึง .. ประมาณบรรทัดที่ 5 ให้ลบ

#Include  "/usr/X11R6/lib/X11/config/Server.tmpl"

ออกซะ จากนั้นก็คอมไพล์ตามคำแนะนำ

$ xmkmf
$ make
$ sudo make install

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

# mv /usr/X11R6/lib/modules/input/wizardpen_drv.o /usr/lib/xorg/modules/input/

จากนั้นใส่ udev rules สักหน่อยให้สร้าง symlink ไปยัง /dev/input/event? ของแท็ปเล็ต

$ vi /etc/udev/rule.d/10-local.rule

ใส่ตามนี้

BUS="usb", KERNEL="event[0-9]", SYSFS{product}="Tablet WP5540U", NAME="input/%k", SYMLINK="tablet"

ทีนี้ก็

/etc/init.d/udev restart
/etc/init.d/gdm restart

เรียบร้อย :)

#tlwg log

เรื่องของเรื่องคืออยากทำ log bot ตั้งนานแล้ว ยิ่งมีการสุมหัวกันแปลในห้อง #tlwg ก็เลยคิดว่าต้องลงมือ code ซะที นั่ง code อยู่พักนึง ตอนนี้ยังไม่เรียบร้อยเท่าไหร่ ..แต่พอจะเข้ามาดูได้แล้ว (มั้ง) ..

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

เอาเป็นว่าใครอยากเข้ามาอ่านว่าห้อง #tlwg คุยอะไรกันก็เชิญที่ http://skuld.kitty.in.th/tlwg-log/ ได้เน้อะ