Friday, October 29, 2004

TryLinux ภาค 4

Post นี้ตัดคำไว้ให้แล้ว

Subpixel Rendering

ตั้งแต่ Upgrade เป็น KDE 3.3.* โดยใช้ apt-get install kde ในตอนก่อนหน้านี้ พบว่าตัวอักษรบนจอน่าเกลียดมาก โดยเฉพาะใน URL Address ของ Mozilla

อ่านแทบไม่ออก เรียกว่าถ้าเอาไปให้คนอื่นใช้ Linux คงสอบตกไปเลย ตัวอักษรในเนื้อหาก็พออ่านได้ แต่ไม่น่าดูเท่าไร

พยายามจะเปิด Antialias หรือ Subpixel Rendering แต่ลองหาในเมนู K - Settings ก็ไม่เจอที่จะแก้ เห็น Otto ใน MSN เลยถามดู เขาบอกว่าอยู่ใน "K - Control Center - Appearance & Themes - Fonts" ให้เลือก "Use anti-aliasing for fonts" แล้วกดปุ่ม Configure ข้างๆ แล้วเลือก "Subpixel" ในนั้นอีกที

ทำเสร็จแล้วปิด Mozilla แล้วเปิดใหม่ ค่อยพอดูได้ขึ้นมาหน่อย

ยังแปลกใจทำไมไม่เอา "Control Center" ไปใส่ไว้ใน Settings ใน KDE มีเมนูที่ดูชื่อแล้ว ดูเหมือนคล้ายกันหลายอัน จนบางทีเลือกไม่ถูกว่าจะเปิดอันไหน

ลองเปรียบเทียบดูว่า ตัวอักษรธรรมดา, antialias (ไม่เลือก subpixel), และแบบ subpixel ต่างกันมากไหม จับหน้าจอแสดง Desktop Menu มาสามอัน ดังนี้


ธรรมดา

Antialias

Subpixel

ซูมดูยังไงสองอันหลังก็เหมือนกันเด๊ะ ไม่มีอะไรแตกต่าง

Java Plugin

พอดีวันนี้มีประชุม ลองใช้ Mozilla เปิดเว็บที่มีโปรแกรม Java Applet ที่ทำเอาไว้ จะได้เอาเครื่องนี้ไปแทน Windows Notebook ที่บังเอิญลืมไว้ที่บ้าน ในเครื่องนี้มี JRE ของ J2SE-1.4.2_05 อยู่แล้ว ดูเหมือน Otto ใส่ไว้ให้ในแผ่น KNOPPIX TH โดยไม่ได้สังกัดอยู่ภายใต้แพเกใดๆ เพราะใช้ dpkg -S แล้วหาไม่เจอ

พอเปิดหน้า Applet ด้วย Mozilla มันบอกว่าต้องติดตั้ง Java Plugin ก่อน แต่พอเปิดด้วย Konqueror มันใช้งานได้ !

Mozilla ไม่รู้จักหาเองแฮะ (Konqueror เก่งกว่า) ตกลงก็เลยต้องติดตั้ง Plugin ให้ Mozilla ดังนี้ (ดูรายละเอียดที่ PluginDoc: Linux (x86))

$ cd
$ mkdir .mozilla/plugins
$ cd .mozilla/plugins/
$ ln -s /usr/lib/j2se/1.4/jre/plugin/i386/ns610-gcc32/libjavaplugin_oji.so .
เขาบอกว่าห้าม copy ไฟล์ .so มาเป็นอันขาด ต้องสร้าง symlink เท่านั้น !

Java Applet ใช้งานได้แล้วแต่เจออีกปัญหาว่าเมนูภาษาญี่ปุ่นมันไม่ขึ้น ต้องไปเรียกโปรแกรม /usr/lib/j2se/1.4/jre/bin/ControlPanel แล้วเพิ่ม option สำหรับ Java Applet ว่า -Duser.language=ja

Shared Folder บน Windows

ในขั้นตอนจับหน้าจอ อยากส่งไฟล์มาแก้บนเครื่อง Windows ก็เลยต้อง mount โฟลเดอร์ Desktop ของ Windows ที่เปิดแชร์เอาไว้

ดูเหมือนตรงนี้ไม่มีอะไรเปลี่ยนแปลง จาก Linux รุ่นเก่าที่เคยเล่น คือ ทำได้โดย

$ mkdir /mnt/deskop
$ mount -t smbfs 
  -o username=vuthi,password=vuthipwd,uid=vuthi,gid=vuthi
  //winhost/desktop /mnt/desktop/
ตรงนี้ถ้าไม่ระบุ uid=vuthi,gid=vuthi ทุกไฟล์ใต้ /mnt/desktop ก็จะตกเป็นของ root ผู้ใช้ธรรมดา เช่น vuthi ก็จะเขียนแก้ไขไม่ได้

Thai xiterm

ลองเรียก xiterm เฮ้ยทำไมฟอนต์ปริยาย (Default) ไม่ใช่ภาษาไทย ลองกด F12 สลับภาษา ดูเหมือนจะพิมพ์ภาษาไทยได้ แต่อ่านไม่ได้

อุตส่าห์ใช้ xlsfonts | grep -i thai ดูว่ามีอะไรให้ใช้บ้าง เจอแล้วก็สั่ง xiterm -fn thai8x13 จึงจะอ่านไทยได้

ถาม Otto ดู แกบอกว่าให้ใช้ txiterm ใช้ได้แฮะ เรียกแล้วใช้ฟอนต์ไทยให้เลย อ้อ ที่แท้ก็คนละโปรแกรม xiterm กับ txiterm

แต่ดูดีๆ บน Title Bar มันมี "(Thai)" ทั้งคู่นี่หว่า ดูไปดูมา txiterm เป็นแค่ shell script ไปเรียก xiterm -fn nectec18 อีกที

PSP 20,790 เยน !


(รูปจาก SONY PlayStation.jp)

อ่านเจอข่าว SONY ประกาศแล้วว่าจะวางขาย PSP วันที่ 12 ธันวาคม นี้ ที่ราคา 20,790 เยน (หรือ 19,800 เยนก่อนรวมภาษีมูลค่าเพิ่ม 5%) ถูกกว่าที่คิด ราคานี้พนักงาน SONY เองยังช็อค ! (「社員も驚く」2万790円の秘密)

คู่แข่งสำคัญของ PSP คือ Nintendo DS ซึ่งชิงประกาศราคาตัดหน้ามาก่อนหน้านี้ว่า 15,000 เยน ทำให้ SONY ต้องคิดหนักว่าจะตั้งราคาขาย PSP เท่าไรดี จะตั้งตามต้นทุนคงไม่ได้ ของพวกนี้มักจะเริ่มวางขายในราคาต่ำกว่าทุน เอาปริมาณมาลดต้นทุนภายหลัง เห็นบอกว่าวางขายวันที่ 12/12 ตั้งเป้าสัปดาห์แรก 2 แสนเครื่อง ต่อจากนั้นสัปดาห์ละแสนเครื่อง ให้ได้ 5 แสนเครื่องภายในสิ้นปี (12-31 ~ 20 วัน) และ 1 ล้านเครื่องภายในมีนา 2005

เคยอ่านเจอในบทวิจารณ์ PSP อาจจะแพงกว่า Nintendo DS สัก 10,000 เยน คือที่ประมาณ 25,000 เยน เพราะคุณสมบัติหลายอย่างเหนือกว่า แน่นอนต้นทุนย่อมแพงกว่า (เดากันว่าทุนอยู่ที่ 30,000 เยน)

นอกจากเล่นเกมส์แล้ว PSP ยังดูหนังฟังเพลงได้อีก (เล่น MP3 จาก Memory Stick ได้) ราคาขนาดนี้ iPOD คงหนาวเหมือนกัน

Thursday, October 28, 2004

ลอง Fedora Core 2, ThaiLaTeX, swath

Post นี้ตัดคำไว้ให้แล้ว

ต่อจาก BLOG ก่อนหน้านี้: ลอง Thai LaTeX บน Fedora Core ได้รับ Feedback กลับมาว่า ลองทำบน FC2 ดูแล้วยังใช้ไม่ได้

สงสัยว่า FC2 อาจจะมี tetex หรืออะไรบางอย่าง แตกต่างกับ FC1 หรือเปล่า ? ก็เลยไปเอา ISO ของ FC2 จาก Mirror ที่ KDDI มาลองดูสักหน่อย ทีแรกเอา ISO ของ DVD (FC2-i386-DVD.iso) เลย แต่รอดาวน์โหลได้สักพัก wget ก็ตาย ดูเหมือนไฟล์จะโตเกินไป (4.37GB) โปรแกรม wget โหลได้แค่ 2GB ก็เลิก คิดไปคิดมาไม่รู้จะเอา Source ไปทำไม เปลี่ยนไป D/L CD1-4.ISO แทน รวมแล้วยังไม่ถึง 2GB แทน

ติดตั้ง FC2

บูทจากแผ่น 1 เลือกให้ติดตั้งแบบ workstation แล้วก็ไปกำหนดพิเศษตอนเลือกแพเกอีกทีนึงว่าให้เอา tetex ฯลฯ ด้วย จากนั้นก็รอ เปลี่ยนแผ่น 2, 3 ไม่มีอะไรน่าตื่นเต้น ทุกอย่างเป็นไปด้วยความเรียบร้อย (แผ่น 4 ไม่ได้ใช้) ลองตรวจดูว่ามี tetex หรือเปล่า พบว่ามีแพเกดังต่อไปนี้

[vuthi@localhost ~/source]$ rpm -qa | grep tetex
tetex-latex-2.0.2-13
tetex-afm-2.0.2-13
tetex-fonts-2.0.2-13
tetex-dvips-2.0.2-13
tetex-xdvi-2.0.2-13
tetex-2.0.2-13

ลอง ThaiLaTeX

ดาวน์โหลthailatex-0.3.3.tar.gz ไฟล์เดิม แตกออกมาแล้วก็ Build และทดสอบไฟล์ตัวอย่าง

tar zxf thailatex-0.3.3.tar.gz 
cd thailatex-0.3.3
./configure 
make
make install
cd doc/
latex orchid.tex 
xdvi orchid.dvi 
เย้ ภาษาไทยขึ้น ใช้ได้ ดูเหมือน tetex ใน FC2 ไม่มีปัญหาอะไรกับ thailatex เรื่องตัดคำเดี๋ยวค่อยไปหา swath หรือ cttex มาจัดการ

swath.rpm ใช้ไม่ได้

ทดลองใช้ swath-0.1-2.i386.rpm ไฟล์เดียวกับตอนที่แล้ว ปรากฏว่าใช้ไม่ได้ ติดว่าต้องการ libc บางรุ่นที่ไม่มี แบบนี้ต้องเอา source ของ swath มาคอมไพล์เอง

นับว่าจากหน้าของ linux.thai.net จะหา source ของ swath นี่ค่อนข้างลำบากแฮะ แต่ในที่สุดก็ไปเจออยู่ใน snapshot ของ cvs ที่ swath_cvs20040601.tar.bz2 จัดการคอมไพล์โดย

tar jxf swath_cvs20040601.tar.bz2 
cd swath
./autogen.sh 
./configure 
make
make install
แล้วก็ทดสอบด้วย
$ which swath
/usr/local/bin/swath
$ cd thailatex-0.3.3/doc
$ swath -f latex < orchid.tex > orchid.ttex
$ latex orchid.ttex
$ xdvi orchid.dvi
ปรากฏว่าเรียบร้อยดี ตกลงก็ใช้ thailatex-0.3.3 กับ swath_cvs20040601 บน FC2 (ยังไม่ Upgrade อะไรทั้งสิ้น) ได้

Wednesday, October 27, 2004

Firefox-friendly Post

This post is Firefox-friendly.

เห็นเขาเล่น SpreadFirefox กัน ก็เลยเอามาลองดูบ้าง ดูเหมือนบน Windows จะยังไม่ตัดคำไทย นึกได้ว่าหลายปีก่อน เคยตัดคำไทยสำหรับ Netscape โดยการใส่ <wbr> เข้าไปในเนื้อหาเว็บ น่าจะเอามาลองกับ Blog ตัวเอง

โปรแกรมตัดคำก็ต้องทำกับข้อความที่เป็น UTF-8 ได้ จะแปลงเป็น TIS-620 ก่อนแล้วใช้ cttex ตัดก็วุ่นวายเกินไป เอาโปรแกรม ThaiBreaker บน Java ที่เคยทำไว้มาแก้ก็แล้วกัน

ข้อความทดสอบ

สวัสดีครับ Hello สบายดีไหมครับ ? นีคือการทดสอบตัดคำภาษาไทยโดยใส่ <wbr> เพื่อช่วย Firefox: 1+2=3 as ผลเป็นอย่างไรโปรดติดตามชม

ดูเหมือนจะใช้ได้แฮะ Firefox ตัดคำที่ตำแหน่งของ <wbr> ได้ถูกต้องและไม่มีผลเสียต่อโปรแกรม IE

โปรแกรม

โปรแกรม Java สำหรับใส่/ถอด <wbr>: ThaiBreaker-WBR.jar
(ใช้งานโดยการตัดแปะ Copy/Paste ระหว่าง Browser กับ ตัวโปรแกรม ตัดคำโดยใช้ Java Engine)

Logo Firefox

ดูเหมือน Template/Style ของ BLOG นี้ยังไม่ค่อย Firefox-friendly สักเท่าไร ดูแปลกๆ ลองไปแก้ Template ให้ได้สัดส่วนคอลัมน์ ซ้าย:ขวา เมื่อเปิดดูด้วย Firefox พอกับ IE แล้วค่อยยังชั่วหน่อย เอาโลโก้ Firefox แปะไว้มุมบนขวาแล้วด้วย

ลอง Thai LaTeX บน Fedora Core

This post is Firefox-friendly.

มีคำถามเข้ามาทางเมล์ว่าจะใช้ Thai LaTeX บน Fedora Core ได้อย่างไร พอดีไม่เคยลอง ก็เลยส่ง URL ของ Thai LaTeX บน linux.thai.net (LTN) ไปให้แทน

พอดีมี Fedora Core 1 อยู่บนเครื่อง Crusoe ตัวเก่า เอามาลองดูหน่อยก็แล้วกัน

ติดตั้ง Thai LaTeX

ก่อนอื่นก็ D/L thailatex-0.3.3.tar.gz จากเว็บของ Thai LaTeX แตกกระจายออก เห็นว่ามี configure ก็เลยทำตามขั้นตอนปกติ

[vuthi@crusoe thailatex-0.3.3]# ./configure 
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
...
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking for rmdir... rmdir
checking for sed... sed
checking for latex... latex
checking for dvips... dvips
checking for pf2afm... pf2afm
checking for afm2tfm... no
configure: error: You need afm2tfm (from teTeX distribution)
...
ดูเหมือน tetex ที่ติดตั้งอยู่ มีไม่ครบ ลองทำ rpm -qa | grep tetex เทียบกับ yum list | grep tetex ดูว่าขาดอะไรไปบ้าง ลองติดตั้งเพิ่มสามตัวคือ
yum install tetex-latex
yum install tetex-afm
yum install tetex-xdvi
แล้วจัดการ configure ใหม่อีกครั้งหนึ่ง คราวนี้ผ่านตลอด จัดการ make แล้วตามด้วย make install ได้เรียบร้อยดี

ดูมีไฟล์ตัวอย่างอยู่ใน thailatex-0.3.3/doc ให้ด้วย จำได้จาก Blog ก่อนหน้านี้ ว่าก่อนส่งไฟล์ให้ latex ต้องตัดคำก่อนโดยใช้ cttex -W หรือ swath -f latex

ในเครื่องนี้ยังไม่มีสักตัว !

ทดสอบโดยไม่ตัดคำก่อนก็แล้วกัน

[vuthi@crusoe source]# cd thailatex-0.3.3/doc/
[vuthi@crusoe doc]# latex orchid.tex 
This is TeX, Version 3.14159 (Web2C 7.4.5)
(./orchid.tex
...
ทุกอย่างเรียบร้อยดี มีคำเตือนว่า Overfull \hbox ออกมาเยอะหน่อย ก็ไม่ตัดคำนี่ ใช้ xdvi orchid.dvi เปิดดูเอกสารได้เห็นเป็นภาษาไทย โล่งอกไปขั้นนึง

cttex ไม่ตรงกัน

ลองเอา cttex ล่าสุดของตัวเองมาใช้ นึกได้ว่า -W เราไม่มีนี่หว่า ไม่แน่ใจว่า -W เขาเอาไว้ทำอะไร ทดลองดูแบบเดิมก่อนก็แล้วกัน คือ ใช้ cttex ของตัวเองตัด (ตัดด้วย \tb) ปรากฏว่าไม่ได้ผลแฮะ latex บอกว่าไม่รู้จัก \tb ดูเหมือน thailatex ต้องการ \wbr

แล้วจะหา cttex ที่มี -W ได้ที่ไหน ? เท่าที่ดูบนเว็บของ LTN เขาบอกให้ใช้ apt-get install cttex ! บน Fedora จะทำได้ไงหว่า ?

กดเว็บไปเรื่อยๆ ไปเจอ cttex-1.21-1.i386.rpm ก็อุตส่าห์เอามาลอง ปรากฏว่าเก่ามาก เป็นคนละตัวกับ apt-get เหมือนกัน ใช้ไม่ได้

ใช้ swath ก็แล้วกัน

ในโฟลเดอร์เดียวกับ cttex บน LTN มี swath-0.1-2.i386.rpm อันนี้เก่าไปด้วยหรือเปล่าไม่แน่ใจ แต่เอามาลองก่อน

# rpm -ihv swath-0.1-2.i386.rpm
# swath -f latex < orchid.tex > orchid.ttex
# latex orchid.ttex
# pdflatex orchid.ttex
ท่าทางใช้ได้แฮะ เปิดดูด้วย xdvi และ xpdf ได้ ไม่มีปัญหา ตัดคำเรียบร้อย :)

สรุป

สรุปทุกอย่างคือ

  1. ใช้ yum install ติดตั้งโปรแกรม tetex ต่อไปนี้
    # rpm -qa | grep tetex
    tetex-latex-2.0.2-8
    tetex-fonts-2.0.2-8
    tetex-dvips-2.0.2-8
    tetex-2.0.2-8
    tetex-xdvi-2.0.2-8
    tetex-afm-2.0.2-8
    

  2. ติดตั้ง swath-0.1-2.i386.rpm ด้วยคำสั่ง rpm -ihv swath-0.1-2.i386.rpm ตามปกติ

  3. ดาวน์โหลthailatex-0.3.3.tar.gz, จัดการแตกไฟล์ออก (tar zxvf thailatex-0.3.3.tar.gz) แล้วสั่ง ./configure, make, make install ตามสูตร

  4. ทดสอบโดย
    # cd thailatex-0.3.3/doc/
    # swath -f latex < orchid.tex > orchid.ttex
    # latex orchid.ttex
    # xdvi orchid.dvi
    

Tuesday, October 26, 2004

TryLinux ภาค 3

ตอนจบของภาคที่แล้วสั่ง apt-get dist-upgrade ทิ้งเอาไว้ ก็ผ่านไปเกือบจะเรียบร้อยดี ติดที่ Package หนึ่งเกี่ยวกับ ntfs5 ติดตั้งไม่ได้ เพราะไฟล์ไปซ้ำกับ Package ที่มีอยู่เดิม ตกลงต้องอาศัยความช่วยเหลือของ dpkg -i --force-overwrite ตามเคย

ก่อนจะปริปากบ่นว่า Debian ทำไมมันมี Package ตีกันเองเยอะจัง Otto พูดมาก่อนว่า "Unstable ก็งี้แหละ ตีกันบ่อย" ถ้าไม่อยากเจอ Package ตีกัน คงต้องไปเล่น Test หรือ Stable แทน

KDE ที่สุดของที่สุด

Otto ถามว่า KDE เป็น 3.3 แล้วหรือยัง ก็ลอง Reboot ดู ปรากฏว่า KDE ยังเป็น 3.2.* อยู่ เอ ไม่ใหม่เท่าไรแฮะ

apt-get dist-upgrade
apt-get dist-upgrade
apt-get dist-upgrade
อีกสามรอบ ก็ไม่มีทีท่าว่าจะทำอะไรกับ KDE ให้ dpkg -l ก็เห็นว่า KDE เป็น 3.2.* อันนี้ Otto ก็งง เพราะเห็นบอกว่า apt-get dist-upgrade ควรจะเป็น(ใหม่)ที่สุดของที่สุด

ไม่เป็นไร Upgrade ด้วยมือเฉพาะ KDE ก็แล้วกัน

apt-get install kdebase
ที่ใช้ kdebase ก็เพราะ Otto บอกมา (อีกเหมือนกัน) รอสักพัก ค่อนข้างจะนานมาก เพราะว่าหลาย Package ไปเอามาจาก linux.thai.net ความเร็วประมาณ 3-6KBytes/sec ! เจอปัญหา Package ชนกันอีกแล้ว คราวนี้ถ้าจำไม่ผิดเป็น kde-data กับ office-tle

หลังจากเสร็จเรียบร้อย ลองเรียก startx ดู อ้าว KDE ไม่ขึ้น ค้างตรงหน้าจอโลโก้ ลูกโลกกะพริบไม่หยุด รอไม่ไหวกด Ctrl+Alt+BackSpace ฆ่า X11 ไปเลย

ลองดู dpkg -l ดูเหมือนยังมี KDE หลายตัวเป็น 3.2 อยู่ เอาใหม่

apt-get install kde
รอสักพัก ครั้งนี้เร็วกว่าเยอะ เพราะว่าเอามาจากไซต์ในญี่ปุ่นเอง คราวนี้เล่น KDE 3.3 ได้แล้ว เฮ ! มีอะไรใหม่บ้างไม่รู้เหมือนกัน แต่หน้าตาเปลี่ยนไปอย่างสังเกตเห็นได้

ลองใช้ KDM ดู (ก่อนหน้านี้ปิดไปเพราะอยากปิด X11/KDE ทุกอย่างระหว่างการ apt-get) ปรากฏว่าอ้าว Login ไม่ได้แฮะ พิมพ์ Login/Password กดปุ่ม Login ก็ไม่ไปไหน ค้างอยู่ที่หน้าจอ Login นั่น

สรุปว่า KDM มันก็เก่าไปต้องจัดการ apt-get install kdm อีกตัว แล้วตอนทำ kde เมื่อกี้ทำไมไม่ทำ kdm ให้ด้วยหว่า

ปริศนา dist-upgrade

ทุกอย่างเหมือนจะใหม่ล่าสุดเรียบร้อย ลองเรียก apt-get dist-upgrade เล่นๆดูอีกที โหมีโผล่มาจากไหนไม่รู้ให้ Upgrade กันอีกเป็นฝูงเลย เรียกว่ายังมีที่สุดของที่สุดของที่สุด

สรุปว่า KDE มันอยู่นอกเหนือรายการที่จะแตะต้องโดย apt-get dist-upgrade ? อันนี้ Otto ก็ยังไม่ค่อยเข้าใจ พอ Upgrade KDE แล้ว ก็มีรายการที่ควรจะ apt-get dist-upgrade เพิ่มขึ้นมาอีก จำได้ว่าตอนสั่งครั้งแรกมันบอกว่ามีอยู่ร้อยกว่ารายการที่ not upgraded ครั้งนี้ลดลงเหลือไม่กี่สิบ

ก่อนกลับปิด apmd แล้วเปิดเครื่องทิ้งไว้ ถึงบ้านดูเหมือนเครื่องเป็นไรไม่รู้ ssh เข้าไปไม่ได้แล้ว พรุ่งนี้ไปชิบะคงไม่ได้เล่น ภาค 4 คงอีกสองสามวัน

TryLinux ภาค 2

Services

พยายามจะเปิดบริการ ssh บนเครื่อง TryLinux เพื่อให้ต่อเข้ามาเล่นจากเครื่องอื่นบนเครือข่ายได้ มองหา /etc/init.d/sshd (ติดจาก RedHat) ไม่มีแฮะ มีแต่ /etc/init.d/ssh เฉยๆ คิดว่าถึงจะไม่มี d คงเป็น Server เหมือนกัน เพราะว่าตัว Client ไม่มีความจำเป็นที่จะต้องมาอยู่ใน /etc/init.d

ลองสั่ง /etc/init.d/ssh start ใช้ได้ SSH Server ทำงาน ต่อจากเครื่องอื่นเข้ามาได้ ทีนี้อยากให้เริ่ม ssh ทุกครั้งที่บูท ปกติถ้าเป็น Redhat ก็ใช้คำสั่ง ntsysv หรือ chkconfig (อันหลังนี้ใน SGI IRIX ก็มีเหมือนกัน) ปรากฏว่าไม่มีคำสั่งทั้งสองนี้ เอาละหว่าจะให้ไปสร้าง symlink ของ init.d/ssh ใน /etc/rc?.d เองคงไม่ไหว ลองค้น Google ดู ได้ความว่าบน Debian เขาใช้ rcconf ซึ่งยังไม่มี ต้องไป apt-get install rcconf เอาก่อน

ในขั้นตอนนี้มี Error อะไรไม่รู้ออกมา ไม่สนใจมัน (ดูเหมือน rcconf ต้องการ sysv-rc ซึ่งตีกับอะไรที่มีอยู่แล้วไม่รู้ ก็เลยลง sysv-rc ไม่ได้)

ลองเรียก rcconf หน้าตาคล้ายๆ ntsysv เลือก ssh จากรายการ แล้วลอง Reboot ทุกอย่างดูเหมือนจะโอเค sshd ทำงานเมื่อบูทตามต้องการ

รู้สึกว่าทำไมเครื่องมือพื้นฐานแบบนี้ไม่มีให้มาเลย ต้องมา apt-get install กันอีก ค้นไปค้นมาพบว่านอกจาก rcconf แล้ว ยังมี ksysv ซึ่งเป็น GUI สำหรับแก้รายการ Service ใน Runlevel ได้เหมือนกัน อันนี้ให้มาอยู่แล้ว เรียกใช้ได้เลย แต่ส่วนตัวยังชอบแบบ Console มากกว่า จะได้แก้ ได้โดยไม่ต้องมี X11

เครื่องมือพัฒนาโปรแกรม Mono

นึกได้ว่าเคยลองเล่น Mono อยู่ครั้งหนึ่ง ลองคำสั่ง mcs ยังไม่มี อันนี้แก้ได้ด้วย apt-get install mono ราบรื่นดี ไม่มีปัญหา

เครื่องมือพัฒนาโปรแกรม Java/Qt

Java ค่อนข้างใหม่ 1.4.2_05 ไม่รู้ว่า KNOPPIX ให้มาอยู่แล้ว หรือ Otto ใส่เข้าไปเองสำหรับเอาไว้เล่น Karaoke

TryLinux:~> java -version
java version "1.4.2_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_05-b04)
Java HotSpot(TM) Client VM (build 1.4.2_05-b04, mixed mode)
ส่วน gcc ให้มาเป็น 3.3.4 ตรงนี้อยากได้ 3.4 แต่ยังไม่กล้า apt ไม่รู้จะไปตีกับอะไรส่วนอื่นหรือเปล่า ไว้ลองเครื่องมือต่างๆ ให้พอรู้ก่อนว่ามีอะไรทำอะไรได้บ้าง เท่าที่ดูมี KDevelop มาให้ แต่ไม่มี QtDesigner
TryLinux:/home/vuthi# dpkg -l | grep qt
ii  gtk-engines-qt 0.28-1.1       QtPixmap GTK1.x theming engine
ii  libqt3-compat- 3.2.3-4thai1   Qt 1.x and 2.x compatibility includes
ii  libqt3-headers 3.2.3-4thai1   Qt3 header files
hi  libqt3-mt-dev  3.2.3-4thai1   Qt development files (Threaded)
ii  libqt3c102-mt  3.2.3-4thai1   Qt GUI Library (Threaded runtime version)
ii  qt3-dev-tools  3.2.3-4thai1   Qt3 development tools
ii  qtparted       0.4.4-2        A parted frontend using QT
เลยจำเป็นต้องติดตั้งเพิ่ม ลองใช้ apt-cache search designer | grep qt ได้ชื่อ Package ว่าเป็น qt3-designer แล้วจึง
TryLinux:/home/vuthi# apt-get install qt3-designer
Reading Package Lists... Done
Building Dependency Tree... Done
You might want to run `apt-get -f install' to correct these:
The following packages have unmet dependencies:
  qt3-designer: Depends: libqt3c102-mt (>= 3:3.3.3) but 3:3.2.3-4thai1 is 
to be installed
  rcconf: Depends: sysv-rc but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or 
specify a solution).
ลองทำตามคำแนะนำ ใช้ apt-get -f install
TryLinux:/home/vuthi# apt-get -f install qt3-designer
Reading Package Lists... Done
Building Dependency Tree... Done
You might want to run `apt-get -f install' to correct these:
The following packages have unmet dependencies:
  qt3-designer: Depends: libqt3c102-mt (>= 3:3.3.3) but 3:3.2.3-4thai1 is 
to be installed
  rcconf: Depends: sysv-rc but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or 
specify a solution).
ไม่เห็นมีอะไรแตกต่าง ? ดูเหมือนปัญหาอยู่ที่ rcconf: Depends: sysv-rc ซะมากกว่า ทำให้ติดตั้งอะไรไม่ได้เลย ขอข้าม designer ไปก่อนก็แล้วกัน

อ่านเมล์: MH

ปกติบน Unix จะอ่านเมล์ด้วย MH ตลอด (ใช้ mh-rmail ใน EMacs) แน่นอนว่ายังไม่มีต้องติดตั้งด้วย apt-get install nmh เจอปัญหาเดียวกับตอนติดตั้ง qt3-designer ข้างบน ชักเริ่มหงุดหงิด

ทดลอง apt-get -f install โดยไม่ระบุ Package ตามที่บอก

TryLinux:/home/vuthi# apt-get -f install
...
dpkg: error processing /var/cache/apt/archives/sysv-rc_2.86-5_all.deb (--unpack):
 trying to overwrite `/etc/init.d/rc', which is also in package sysvinit
dpkg-deb: subprocess paste killed by signal (Broken pipe)
...
สรุปปัญหาคือ
  • rcconf ที่ติดตั้งไปมันต้องการ sysv-rc
  • แต่ติดตั้ง sysv-rc ไม่ได้ เพราะมันมีไฟล์ /etc/init.d/rc ซึ่งตีกับ package sysvinit
  • ถ้าไม่แก้ปัญหานี้ ดูเหมือนจะ apt-get install อะไรก็ไม่ได้อีกแล้ว
ความจริง sysv-rc นี่ไม่ต้องการหรอก เพราะว่า rcconf ที่ติดตั้งไปแล้วเมื่อกี้มันดูเหมือนจะใช้ได้แล้ว ไม่เห็นต้องมี sysv-rc ลอง man apt-get ดู เขาบอกว่าถ้ามีปัญหาเยอะๆให้ลองใช้ dselect เดี๋ยวไปลองดูก่อนแล้วค่อยมาเขียนต่อ

เพิ่มเติม

Otto มาดูให้ที่โต๊ะ ตกลงก็จัดการทำในสิ่งที่ไม่อยากทำ คือบังคับให้มันลง sysv-rc ไปก็ละกัน ด้วยคำสั่ง "dpkg -i --force-overwrite /var/cache/apt/archives/sysv-rc_2.86-5_all.deb" จากนั้นก็ใช้ apt-get install xyz ได้ตามปกติ

เพิ่งรู้ว่าปกติเขาใช้ update-rc.d กัน ไม่จำเป็นต้องใช้ rcconf ตอนนี้สั่ง apt-get dist-upgrade ไป นานมาก ยังไม่เสร็จ Otto บอกว่าไม่ต้องปิด X11/KDE ก่อน เปิดทิ้งไว้ก็ได้ ชักไม่แน่ใจว่าจะโอเคหรือเปล่า เพราะเมื่อกี้เห็น Remove KDE-xxx เป็นยวงเลย

Monday, October 25, 2004

หัดเล่น Linux: Knoppix Debian ThaiLatex

มองดูรอบๆตัว ไม่ค่อยมีเครื่อง Linux เหลืออยู่แล้ว วันก่อนเครื่องล่าสุด precision ที่เคยอยู่ใต้โต๊ะ ก็ถูกย้ายไปอยู่โต๊ะอื่นเรียบร้อย แล้วเอาเครื่อง Gateway Athlon (Windows XP) มาวางแทน เวลาจะเล่น precision ก็ใช้ ssh เอา เพราะบน Linux ส่วนมากใช้เขียนโปรแกรมหรือไม่ก็ทำ Server ไม่ค่อยได้ใช้ Desktop App ฯลฯ เท่าไร

ก็เลยไม่ค่อยคุ้นเคยกับ Desktop ของ Linux ระยะหลังๆแล้ว ฟอนต์ไทยมีอะไรบ้างก็ไม่รู้ ภาษาไทยหรือ Thai Latex ใช้ยังไงก็ไม่รู้ (แต่ก็ยังมีคนเมล์มาถาม) ตอนนี้ไม่ค่อยรู้เรื่องแล้วว่าใน TLWG เขาคุยอะไรกัน

TryLinux

พอดีได้ Notebook เก่าๆของ Dell (Latitude P3-650, 384MB) คืนมาเครื่องหนึ่ง ข้อมูลเดิมไม่มีอะไรจำเป็นต้องเก็บ วันศุกร์ที่แล้ว Otto เอาแผ่น Thai Knoppix 3.6 มาให้ บอกว่าให้ลองดู ก็เลยจัดการติดตั้งลงเครื่องนี้ซะเลย

  1. บูทด้วย Thai Knoppix 3.6 เรียบร้อยไม่มีปัญหา เสียงออก X11 ขึ้น
  2. สั่ง knoppix-install จัดการแบ่ง Partition ใหม่ เลือกชื่อ User ตั้งรหัสผ่าน ตั้งชื่อเครื่องว่า TryLinux จากนั้นก็รอให้มันคัดลอกไฟล์
  3. ติดตั้งเสร็จเรียบร้อยก็รีบูท
ตัวเมนูของ LILO ตอนบูทขึ้นมา มีตัวเลือกให้เลือกสามตัว คือ
  1. Linux
  2. Linux 2.4-1
  3. Linux 2.6-2
(เพิ่งมาดูแล้วรู้ทีหลังว่า Linux ก็คือ Symlink ไปที่ Linux 2.4-1 นั่นแหละ)

บูทครั้งแรกก็ลอง 2.6 เลยละกัน ทุกอย่างดูเหมือนจะใช้งานได้เรียบร้อยดี เอาเมาส์ USB เสียบ (หลังจากที่ X11 ขึ้นมาเรียบร้อยแล้ว) ก็ใช้งานได้ดี

ลอง apt

Otto บอกให้ไปแก้ไฟล์ /etc/apt/sources.list จัดการเอา Comment ออก ณ บรรทัดที่ต้องการ เห็นมี stable, test, unstable แตกต่างกันยังไงไม่รู้เหมือนกัน เลือก unstable ละกัน น่าจะตื่นเต้นดี

พยายามเปลี่ยน shell จาก bash ให้เป็น tcsh (ใช้ตัวนี้มานานจนไม่อยากเปลี่ยน อีกอย่างใช้ bash กะเขาก็ไม่เป็น) ปรากฏว่า Knoppix TH นี่ไม่มี tcsh มาให้แฮะ ก็เลยต้องลอง "apt-get install tcsh" รอสักพักก็ได้ tcsh แถมมีข้อความบอกว่ามีปัญหาอะไรไม่รู้ ให้แก้โดยพิมพ์ "apt-get update" ก็ทำตาม

ก่อนหน้านี้เคยใช้แต่ Redhat เป็นประจำ คุ้นเคยกับคำสั่ง rpm, up2date, หรือ yum (ใน Fedora) มากกว่า พอมาเล่น apt จำได้ว่า Otto บอกว่าใช้ dpkg แทน rpm เลยต้องเปิด "man dpkg" มาอ่านพักนึง สรุปสิ่งที่รู้เพิ่มขึ้นมาว่า

  • ถ้าอยากรู้ว่ามี Package อะไรติดตั้งอยู่บ้าง (rpm -qa) ให้สั่ง dpkg -l
  • ถ้าอยากรู้ว่ามี Package นั้นมีไฟล์อะไรบ้าง (rpm -ql pkgname) ให้สั่ง dpkg -L pkgname
  • ถ้าอยากรู้ว่าไฟล์นี้อยู่ใน Package ไหน (rpm -qf filename) ให้สั่ง dpkg -S filename
ได้สามคำสั่งแล้วก็เริ่มสำรวจว่ามีอะไรที่เป็น thai บ้างโดย "dpkg -l | grep -i thai" เห็นมี thailatex ด้วย ลองสั่ง "dkpg -L thailatex" ดู อ้าวมีไม่กี่ไฟล์ ดูเหมือนจะถูกลบออกไปเพราะตอนสั่ง dpkg -l สองอักษรแรกขึ้นว่า rc ไม่เหมือน Package อื่นๆที่เป็น ii

ลอง ThaiLaTeX

ลองเรียก latex ดู ปรากฏว่าไม่มีคำสั่งนี้ เปิดดูใน "dpkg -l" ก็เห็น tetex-bin กับ tetex-base ติด rc อยู่ ก็เลยจัดการติดตั้งด้วยคำสั่ง

apt-get install tetex-bin tetex-extra tetex-doc
apt-get install thailatex
เสร็จเรียบร้อยดูเหมือน latex จะใช้ได้แล้ว ส่วน ThaiLaTeX นั้นยังไม่แน่ใจว่าใช้ยังไง ก่อนอื่นก็ดูว่ามีอะไรมาบ้าง
$ dpkg -L thailatex 
...
/usr/share/doc/thailatex/README
/usr/share/doc/thailatex/README.Debian
/usr/share/doc/thailatex/copyright
/usr/share/doc/thailatex/examples
/usr/share/doc/thailatex/examples/orchid.tex.gz
/usr/share/doc/thailatex/examples/teststd.tex.gz
/usr/share/doc/thailatex/examples/Makefile.gz
/usr/share/doc/thailatex/ChangeLog.gz
/usr/share/doc/thailatex/changelog.gz
...
รู้สึกโล่งใจที่มีตัวอย่าง จัดการคัดลอก examples (มีอยู่สามไฟล์) มาไว้ในโฮมตัวเอง ตามด้วย gunzip แล้วก็ make ปรากฏว่า
$ make
make: *** No rule to make target `Makefile.am', needed by `Makefile.in'.  Stop.
ทำไงละก็ทั้ง examples มีแค่สามไฟล์ จะไปหา Makefile.am ที่ไหน ?

MSN ไปถาม Otto ดู ปรากฏว่าไม่รู้เหมือนกัน สุดท้ายต้องเปิด Makefile ออกมาดู พบว่า teststd สามารถสร้างด้วยคำสั่ง

$ cttex -W < teststd.tex > teststd.ttex
$ latex teststd.ttex
$ pdflatex teststd.ttex
จากนั้นก็ใช้ xdvi หรือ acroread เปิดไฟล์ dvi หรือ pdf ดูได้

ปัญหา คีย์บอร์ด

อยากจะเปลี่ยน Caps Lock ให้เป็น Control ก็เลย man xmodmap แล้วคัดลอกส่วนที่สลับ Caps/Control ที่เคยใช้ประจำ แล้วสั่ง

$ cat mymap
            ! Swap Caps_Lock and Control_L
            !
            remove Lock = Caps_Lock
            remove Control = Control_L
            keysym Control_L = Caps_Lock
            keysym Caps_Lock = Control_L
            add Lock = Caps_Lock
            add Control = Control_L
$ xmodmap mymap
ไม่ได้ผลแฮะ มันไม่เหมือนเดิมแฮะ สุดท้ายต้องไปกดเมาส์ขวาตรงรูปธงชาติ แล้วเลือก Configure แล้วไปเลือกที่ Xkb Options อันที่บอกว่า "Make CapsLock an additional Control"

ปัญหา USB Mouse

ลองพอหอมปากหอมคอ ก็ Reboot หน่อยสักครั้งหนึ่ง คราวนี้เลือก Kernel 2.6 เหมือนเดิม ปรากฏว่าอ้าวบูทไม่ขึ้น พอนกเพนกวินโผล่ขึ้นมา มันบอกว่า

audit(.....): initialized
Unable to handle kernel NULL pointer dereference at virtual address 00000000
...
...
 <0>Kernel panic: Attempted to kill init!
ลองบูท Kernel 2.4 จาก LILO ดู ปรากฏว่าบูทได้ แต่พอเข้า X11 ไปแล้ว USB Mouse ใช้ไม่ได้ !

มันน่าจะเกี่ยวกับเมาส์ ?

ถอดสาย USB Mouse ออก แล้วลองใหม่ คราวนี้บูท Kernel 2.6 ได้เหมือนครั้งแรก ที่แท้เป็นที่ Mouse สรุปว่าต้อง

ถอดสายเมาส์ - บูท 2.6 - รอให้ X11 ขึ้น - เสียบเมาส์

ลำบากพิกล ลองบูทใหม่ดูข้อความผิดพลาดดีๆ พบว่า

audit(.....): initialized
Unable to handle kernel NULL pointer dereference at virtual address 00000000
...
...
Call Trace:
 [<........>] psmouse_interrupt+0x88/0x298
 ....
 <0>Kernel panic: Attempted to kill init!
มันเห็น USB Mouse ของเราเป็น PSMouse แสดงว่า BIOS อาจจะเข้ามาเกี่ยวข้องด้วย ลองไปเปลี่ยนใน BIOS ตรง USB Legacy จาก Enabled ให้เป็น Disabled ดู คราวนี้บูท 2.6 โดยเสียบ USB Mouse ค้างไว้ได้แล้วแฮะ

ระหว่างใช้งานอยู่ลองปิดฝา ดูเหมือนจะ Suspend ได้ พอเปิดฝากลับขึ้นมา หน้าจอเดิมกลับมาแต่เมาส์ไม่กระดิก คีย์บอร์ดไม่ตอบสนอง ต้องปิดสวิตช์อย่างเดียว

วันนี้พอแค่นี้ก่อน วันหลังค่อยมาเล่นต่อ คงอีกสักพักกว่าจะตามคนอื่นเขาทัน

Mt. Fuji Livescope

เป็น WebCam ที่ติดตั้งอยู่ที่ 河口湖 (ทะเลสาบแห่งหนึ่งใกล้เขาฟูจิ) เอาไว้เปิดดูก่อนออกเดินทาง ว่าวันนี้เห็นเขาฟูจิหรือเปล่า ถ้าไม่เห็นก็ไม่ต้องไป

>> Mt. Fuji Livescope (ใช้ Java Applet)

Friday, October 22, 2004

ซ่อม Server

ตั้งแต่สัปดาห์ที่แล้ว เครื่อง Server (HP/Linux) ของบริษัทที่ทำโครงการร่วมกันอยู่ เกิดอาการ "เจ๊ง" เปิดเว็บโครงการไม่ได้ ssh เข้าไปก็ไม่ได้ บอกให้เขาช่วยแก้ รอจนถึงวันพุธก็ยังไม่หาย โทรไปถามได้ความว่ามันบูทไม่ขึ้น หน้าจอบอกให้ทำ fsck แต่เขาไม่กล้าทำ

วันนี้ตอนเช้าเลยเดินไปดู (ออฟฟิสอยู่ห่างกันแค่ 300 เมตร) สั่ง fsck -y ได้เรียบร้อยดี (ดูเหมือนจะมีไฟล์หายไปบ้าง) บูทได้รอบนึงก็มีปัญหาเดิมอีก ดูเหมือนเป็นที่ HD จะเสีย

ไม่เป็นไร ย้ายข้อมูลออกจาก Partition ที่เสีย แล้วเอาข้อมูลที่หายไปกลับคืนมาจาก Backup ก็แล้วกัน เครื่องนี้ตอนซื้อมาซื้อทั้งระบบ มีเครื่อง Server HP ติดตั้ง Linux มาให้เรียบร้อย พร้อม NAS ของ HP อีกตัว ต่อผ่าน GigabitEthernet คนขายเขาทำ cron ให้ dump ทุก Partition ไปไว้บน NAS เป็นประจำ

ตอนเลือกซื้อจำได้ว่า เขาบอกเหมือนกับว่าระบบ Backup เจ๋งมาก ถ้ามีปัญหาใดๆ ให้เอา CD ที่ให้มาบูท แล้วมันก็จะจัดการ Restore ทุกอย่างจาก NAS ให้เอง เหมือนกับง่ายมาก

วันนี้ก็เลยได้ลองของจริง ไหง CD ที่ว่าดันเป็นแผ่น Knoppix 3.4 ธรรมดา ไม่มีอะไรอัตโนมัติเลย บูท Knoppix ขึ้นมา ก็ต้อง Mount NFS ไปที่เครื่อง NAS เอง แล้วก็สั่ง restore เองทุกอย่างด้วยมือ เดิมดันทำ MD (Software RAID) ไว้อีก ก็ต้องเขียน raidtab กันใหม่ใน KNOPPIX ให้เหมือนของเดิมแล้วค่อยสั่ง raidstart

พอได้ข้อมูลที่ต้องการจาก NAS ครบ ก็ปิดเครื่องเลย รอให้คนขายเอาดิสก์ใหม่มาเปลี่ยนสัปดาห์หน้า

บ่ายกลับมาประชุมโปรเจคเดียวกันพอดี บอกว่าตอนนี้ Server เจ๊ง พอ ศ.รู้ว่าเป็นยี่ห้อ COMPAQ/HP แกก็เล่นเลย เห็นไหมบอกแล้วให้ซื้อของญี่ปุ่น ถ้าเป็นของผู้ผลิตญี่ปุ่นละก็ ไม่เสียง่ายแบบนี้หรอก (พอดีเพิ่งใช้มาไม่ทันถึงปี)

คนจากบริษัทผู้ร่วมโปรเจคก็เสริมว่า ตอนนี้กำลังรอ PowerMac G5 อยู่ สั่งไปตั้งนานแล้วยังไม่มา Supplier บอกว่า PowerMac มันผลิตจากหลายโรงงาน เมืองจีนบ้าง เมืองอื่นบ้าง ของที่รอมาจากเมืองจีน ล็อตที่ผ่านมามีปัญหาเยอะ ก็เลยยังไม่ได้เครื่องสักที ที่น่ากลัวคือเขาไม่ QC เท่าไร ส่วนมากจะเป็นว่า ผู้ใช้ซื้อไปแล้ว เจอปัญหาแล้วค่อยส่งคืน บางคนซื้อไปหลายเดือนแล้วเพิ่งรู้ว่า DVD เขียนไม่ได้ เพราะเพิ่งจะลองใช้

เขาว่าบริษัทญี่ปุ่นเคยลองทำบ้าง (ลดขั้นตอน QC) เพราะไม่งั้นทำรุ่นใหม่ออกไม่ทันแข่ง แต่เจอลูกค้าเคลมเยอะจนล้มเลิก

SGI Origin ที่ซ่อมทุกเดือนก็ถูกยกเป็นตัวอย่างเหมือนกัน

.. จริงหรือเปล่าไม่รู้ .. ที่แน่ๆเครื่องหน้าคงต้องเป็น NEC หรือ FUJITSU ความจริง Server ของ DELL ที่ใช้อยู่อีกเครื่องก็ยังไม่เจ๊ง

เครื่องบินที่ชื่อ "ไทยคู่ฟ้า"


(รูปจากผู้จัดการออนไลน์)

ได้ยินว่ามาถึงนานแล้วแต่ไม่กล้าเอาออกมาใช้ เพราะว่ากำลังอยู่ในช่วงขาลง วันก่อนไปอิตาลีก็ไม่ได้ใช้ ?

เพิ่งได้เห็นรูปของจริงวันนี้จากข่าว

ยัน “แอร์ฟอร์ซวัน” เสริมศักยภาพบริหารแผ่นดิน
ผู้จัดการออนไลน์ 22 ตุลาคม 2547 13:40 น.

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

" ...ทั้งนี้เพื่อให้เกิดความคล่องตัว และเสริมสร้างศักยภาพในการบริหารราชการแผ่นดิน... "

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

เงินสองพันล้าน เอาไปทำประโยชน์อย่างอื่นได้มากกว่านี้ บินไปต่างประเทศ เขาจะว่าเอาได้ว่าไม่เจียมตัว

Blog เก่าที่เกี่ยวข้อง: เซ็งรัฐบาล: หรูเกินไปมั้ง ?

Wednesday, October 20, 2004

กรอบรูปสามมิติ 3D-PhotoPrint

หลายเดือนก่อน เห็นชุดกรอบรูปสำหรับทำรูปสามมิติของ Canon วางขายอยู่ในแผนกขายอุปกรณ์เครื่องพิมพ์ ก็เลยซื้อกลับมาชุดนึง (~900เยน) ข้างกล่องบอกว่าสำหรับเครื่องพิมพ์ Canon รุ่นนั้นรุ่นนี้เท่านั้น (ซึ่งไม่ตรงกับรุ่นที่มี) คิดว่าคงไม่เป็นไร ข้างกล่องอาจจะเก่าแล้ว ไม่มีรุ่นที่เรามี

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

ปัญหาคือ จะพิมพ์ภาพแบบนี้ออกมาได้ยังไง ก็ในเมื่อรูปถ่ายที่มีอยู่มันเป็นสองมิติหมด ถ่ายมาก็แบนราบไม่มีข้อมูลในแนวลึกอยู่เลย วิธีการก็คือใช้โปรแกรมที่ชื่อว่า Canon Utilities 3D-PhotoPrint ซึ่งดาวน์โหลดได้ฟรีจากโฮมเพจของ Canon

เมื่อเปิดรูปถ่ายด้วยโปรแกรมนี้แล้ว จะมีหน้าจอให้เรากำหนดจำนวนชั้นในแนวลึก (Layer) ของวัตถุต่างๆในภาพ ตั้งแต่ Background ออกมาใกล้ตัวมากขึ้นเรื่อยๆ แล้วตีกรอบรอบวัตถุในแต่ละชั้น แบบนี้

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

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

เมื่อปรับแต่งจำนวนชั้นและระยะใกล้ไกลของแต่ละชั้นจนพอใจแล้ว ก็สั่งพิมพ์ได้ ตรงนี้แหละที่โปรแกรมแสดงความเป็น Canon ออกมา เพราะในจำนวนเครื่องพิมพ์ที่ติดตั้งอยู่ทั้งหมด โปรแกรมจะให้เลือกได้เฉพาะเครื่องพิมพ์ของ Canon เท่านั้น ! (ไม่เช่นนั้นคงไม่แจกโปรแกรมให้ดาวน์โหลดได้ฟรี)

เท่าที่ลองทำกับรูปที่ถ่ายมาเอง ก็พอใช้ได้ ดูออกเป็นสามมิติ แต่อะไรๆที่อยู่หลังวัตถุหลักอันหน้าสุดจะออกเบลอๆไปหน่อย

หมายเหตุ: เขียนต่อจาก Draft ตั้งแต่เดือน 7

ห้องกันเสียง Yamaha AVITECS

เพิ่งเขียน BLOG เกี่ยวกับหูฟังตัดเสียงรบกวนไป ก็มาเจอข่าวผลิตภัณฑ์ห้องกันเสียงของ Yamaha นี่ขายมาเป็นตู้เลย ให้เข้าไปนั่งทำงาน ฟังเพลง ดู DVD เล่นคอม โดยกันเสียงนอกไม่ให้เข้า เสียงในไม่ให้ออก

เห็นว่าเดิมเขาขายสำหรับนักดนตรี เอาไว้เข้าไปซ้อมดนตรีข้างใน

เว็บผู้ผลิต: YAMAHA AVITECS Myroom


รูปจากข่าวใน Impress Watch

ราคา 380,000 เยนขึ้นไป ถูกกว่า PowerMacG5+จอ อีกแฮะ

Tuesday, October 19, 2004

BOSE QC2: Noise Cancelling Headphones

หูฟังตัดเสียงรบกวนเป็นอะไรที่สนใจอยากลองมานานแล้ว หลักการคือ หูฟังจะมีไมค์รับเสียงรบกวนจากด้านนอก แล้วส่งสัญญาณเสียงเฟสตรงข้ามออกมาหักล้าง น่าในใจว่าทางปฏิบัติจะทำได้ดีแค่ไหน

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

พอดีไม่ค่อยมีเวลา เดินหาไม่กี่ร้านแต่หาไม่เจอ ก็เลยไม่ได้ซื้อ

วันก่อนกลับเมืองไทย เห็นโฆษณาในหนังสือบนเครื่องบิน เป็นของ BOSE รุ่น Quiet Comfort 2 (QC2) ท่าทางน่าสนใจ กลับมาถึงญี่ปุ่นเห็นมีแนะนำในวารสารคอมพิวเตอร์ด้วย ลองไปเดินตามร้านเครื่องไฟฟ้า หาไม่ได้เลย ถามดูเขาบอกว่าหูฟัง BOSE ไม่วางขายตามร้าน (มีขายแต่ลำโพงกับ Home Theater) ต้องซื้อบนเว็บเท่านั้น ที่ bose-export.com


(รูปจาก bose-export.com)

เท่าที่อ่าน Review บนเน็ตก็ค่อนข้างดี แต่มีความเห็นว่าค่อนข้างแพง (US$299) พอเข้ามาในญี่ปุ่นก็ยิ่งแพงขึ้นไปอีก (41,790 เยน) จะให้เสียเงินขนาดนี้ซื้อเลยโดยไม่ได้ลองก็กะไรอยู่

c|net: Bose Quiet Comfort 2 (noise-canceling headphones)

ได้ลองของจริงก็ตอนไปเจอร้าน BOSE โดยบังเอิญที่ Seattle เมื่อเดือนที่แล้ว ลองฟังดูหน่อยก็ซื้อเลยเพราะเคยหามานาน (คนขายก็น่ารัก) ค่อนข้างประทับใจเพราะเอามาให้ ผบ.ทดลองตอนอยู่บนเครื่องบินขากลับญี่ปุ่น ใช้ดูหนังบนเครื่อง (Spider Man 2) ผบ.หันกลับมาถาม "ทำไมไม่ซื้อมาอีกอัน?" รอดตัวไปคิดว่าจะโดนด่า

จะว่าไปตามจริงแล้ว QC2 มันก็ตัดเสียงรบกวนไม่หมด 100% บนเว็บของ BOSE บอกว่าตัดเฉพาะเสียงต่ำ (เพราะเสียงสูงถูกตัดไปเยอะแล้วโดยนวมที่ครอบปิดใบหูหมด วงจรจะตัดเฉพาะเสียงต่ำที่เล็ดลอดเข้ามาได้)

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

เท่าที่ลองบนรถไฟก็ช่วยได้พอสมควร

เพิ่มเติม

เพิ่งเห็นบนเว็บ bose-export ว่า ถ้าซื้อ QC2 บนเว็บตอนนี้ แถมเครื่องเล่น CD ให้ด้วย !

เคยเห็นแต่หูฟังแถมมากับเครื่องเล่น CD นี่กลายเป็นเครื่องเล่น CD แถมมากับหูฟัง

Monday, October 18, 2004

ข่าวเครื่องบินโอเรียนท์ไทยบินใกล้ Tokyo Tower

タイのジャンボ機、都心を低空飛行

เขาบอกว่าก่อนลงอยู่เหนือ Tokyo Tower ประมาณ 200 เมตร

เพิ่มเติม

เอารูป Tokyo Tower มาใส่ วันก่อนพาเพื่อนไปเที่ยว

Sunday, October 17, 2004

ความผิดพลาด

ได้รับข้อความส่งต่อมาทางเมล์ น่าสนใจดี เก็บใส่ Blog ไว้สักหน่อย

ข้อความส่งต่อ

สมัยเด็กๆ ครูสอนศิลปะท่านหนึ่งสอนฉันเสมอว่า เวลาเราใช้ดินสอวาดภาพเราห้ามใช้ยางลบ

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

แม้ตอนนั้นฉันจะไม่เข้าใจว่า ทำไมฉันจึงไม่ได้รับอนุญาตให้ใช้ยางลบ และแม้ฉันจะไม่เคยคิดวาดรูปหน้าคนใส่แว่นตามาก่อน แต่ฉันก็ได้รูปหน้าคนตามที่ต้องการ แถมยังภูมิใจว่า ฉันสามารถวาดภาพๆนั้นด้วยความมั่นใจ และไม่ต้องใช้ยางลบลบภาพเลยสักครั้ง

เวลาผ่านไป ฉันโตขึ้น ฉันเรียนรู้ว่า สิ่งที่ครูสอนวันนั้น แท้จริงแล้วมันปลูกฝังนิสัยหนึ่งให้กับฉัน นั่นคือ การเข้าใจธรรมชาติของความผิดพลาด

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

ฉันไม่ได้รับอนุญาตให้ใช้ยางลบ ลบความผิดพลาด แต่ฉันจำเป็นต้องใช้สมองต่อเติมแก้ไขภาพวาดของฉันให้สมบูรณ์ด้วยตัวเอง ดังนั้น ถ้าความผิดพลาดมันเกิดขึ้นกับเราแล้ว การที่เราจะมานั่งร้องห่มร้องไห้ อ้อนวอนขอแหกกฎเพื่อใช้ยางลบกลับไปลบแก้ไขมันนั้นย่อมเป็นไปไม่ได้ สิ่งเดียวที่จะทำได้ ก็คือ รู้จักพลิกแพลงแก้ไขสิ่งเหล่านั้นด้วยสติ และวาดภาพของตัวเองต่อไปด้วยความระแวดระวังมากขึ้น ทุกคนมีดินสอหนึ่งแท่งเพื่อจะวาดภาพชีวิตของเราให้สวยงาม แต่เราไม่มียางลบสักก้อนที่จะเอาไปลบสิ่งที่เราทำผิดพลาดมาแล้วได้ ดังนั้นเราต้องตั้งใจ และมีสติทุกครั้งที่ลากเส้น และถึงแม้ภาพที่เราวาดจะออกมาไม่เหมือนกับภาพที่เราฝันไว้สักเท่าไหร่ แต่มันก็มาจากมือของเรา เราควรจะภูมิใจกับมันได้เสมอ

ไม่ต้องกลัวหรอก แม้จะรู้ดีว่าสักวันหนึ่ง เราอาจลากเส้นบิดเบี้ยวไปบ้าง เพราะถึงอย่างไร ฉันเชื่อว่า ถ้าสมองและหัวใจของเราทำงานอย่างเต็มที่ ภาพชีวิตของเราก็งดงามได้ โดยไม่ต้องใช้ยางลบ

แก้ไข: เอาส่วนที่เป็นสีเทามาเติมต่อ เพิ่งสังเกตเห็นจากอีก ML ว่าของเดิมมันไม่ครบ

Friday, October 15, 2004

เมื่อ DVD/HD Recorder ถูกเจาะระบบ ฯลฯ

เดี๋ยวนี้เครื่องอัดรายการทีวีใส่ HD/DVD กำลังเป็นที่นิยม หลายรุ่นสามารถต่อเน็ตได้ เพื่อเช็ครายการทีวี แถมยังมี Web Server ให้ผู้ใช้ตั้งอัดจากนอกบ้านหรือมือถือได้อีก

เมื่อกี้เห็นออกข่าวทีวี เครื่องรุ่นหนึ่งของ TOSHIBA ถูกเจาะระบบ ! ส่งข้อมูลไปรบกวนตามเว็บบอร์ดต่างๆ จนเจ้าของเว็บต้องตามสืบว่ามาจากไหน... นึกไม่ถึงว่าจะมาจากเครื่องเล่น/อัด DVD !

TOSHIBA บอกว่าออก Patch แล้ว โหในอนาคตคงวุ่นวาย เครื่องใช้ไฟฟ้าก็ต้อง Patch ด้วยแฮะ

เพิ่มเติม: ข้อมูลจากโฮมเพจของ Toshiba

Thursday, October 14, 2004

เบื้องหลังซุกหุ้น: บ้านเมืองนี้ต้องมีขื่อแปไปทำไม

อ่านแล้วเพิ่งเข้าใจ นี่หรือคือบรรทัดฐานการทำงานของ "ตุลาการศาลรัฐธรรมนูญ" คนหนึ่ง

เบื้องหลังซุกหุ้น (ผู้จัดการ 14 ตุลาคม 2547)

"... นายจุมพลตอบว่าประชาชนกว่า 11 ล้านคนเลือก พ.ต.ท.ทักษิณมาเป็นนายกฯ จะให้เสียงของคนไม่กี่คนมาทำให้ พ.ต.ท.ทักษิณพ้นตำแหน่งได้อย่างไร ... "

เห็นด้วยอย่างยิ่งกับผู้เขียนบทความว่า "บ้านเมืองนี้ต้องมีขื่อแปไปทำไม ?" และ "ตุลาการศาลรัฐธรรมนูญ" คนนั้น น่าจะพิจารณาตัวเองได้แล้ว

รวมข่าวอื่นที่เกี่ยวข้อง

Wednesday, October 13, 2004

IP Forwarding on Windows XP

เกิดความจำเป็นต้องเอา Windows XP มาทำ Router สำหรับเป็น Gateway เพื่อให้คอมพิวเตอร์ใน LAN ต่อกับ Robot ตัวใหม่ที่บังเอิญมากับ Wireless LAN ยี่ห้อ Corega สุดห่วย

เครื่อง WinXP มี 2 NICS ด้านสายต่อเข้ากับ LAN ภายใน ด้านไร้สายต่อกับ Robot ทดลองจับมา Bridge กัน โดยต้องไปปิด DHCP Server ที่มากับ Robot ก่อน ปรากฏว่าฝั่ง Wireless ตายไปเลย ใช้ไม่ได้

ตกลงก็ไม่ Bridge ละกัน ทำเป็น Static Route ไว้ เครื่องใน LAN เครื่องไหนอยากใช้ Robot นี้ก็ใส่ Route เพิ่มเอาเอง ลองไปลองมา WinXP มันไม่ Forward Packet ให้แฮะ ค้นๆ Google ดู ไปเจอที่

Tweaks for Windows XP

เขาบอกว่า WindowsNT/2000 มีที่ให้เลือก IP Forwarding แต่สำหรับ Windows XP ต้องไปแก้ Registry

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouter
จาก 0 เป็น 1 แล้วก็ Reboot ใช้ได้แฮะ :)

Tuesday, October 12, 2004

เก็บข่าวงาน CEATEC 2004

เสาร์ที่ผ่านมา เดิมตั้งใจจะไปดูงานแสดง CEATEC 2004 ซึ่งเห็นโฆษณาอยู่ในอาคารแสดงครั้งเมื่อไปดู Tokyo Game Show 2004 หลายสัปดาห์ก่อน

แต่เนื่องจากติดธุระจำเป็น และมีไต้ฝุ่นเข้าพอดี กำหนดการนี้จำต้องถูกยกเลิก ดูๆแล้วก็โชคดีเหมือนกัน เพราะเห็นว่าเขาเลื่อนปิดงานเร็วขึ้นเป็นบ่ายโมง (หนีไต้ฝุ่น) ถ้าไปคงไม่ค่อยได้ดูอะไรเท่าไร

เป็นงานแสดงพวกสินค้าอิเลคโทรนิกส์ ไม่จำกัดอยู่แค่คอมพิวเตอร์ แต่มีพวกโทรทัศน์ มือถือ เทคโนโลยีพื้นฐาน (Wireless USB ฯลฯ) ร่วมแสดงด้วย ลองหาข่าวเกี่ยวกับงานนี้ดู เจอสรุปไว้ค่อนข้างดีที่

CEATEC JAPAN 2004レポートリンク集

อ่านสรุปแทนไปดูงานก็แล้วกัน เจอข่าว SONY ประกาศคอมพิวเตอร์รุ่นใหม่ VAIO Type X สำหรับเป็นแหล่งบันเทิงในบ้าน ให้ HD มา 4 ตัว (250GB x 2 + 400GB x 2) รวมความจุ 1.3TB ! เอาไว้อัดรายการทีวี แถมมี TV Tuner ให้มา 6 ตัว อัดได้พร้อมๆกัน 6 ช่อง ! ราคา 5 แสนกว่าเยน เวอร์ไปมั้ง


(รูปจาก SONYSTYLE.com)

งานต่อไปที่อยากจะไปดู World PC Expo 2004 เริ่มสัปดาห์หน้าวันที่ 20 คงไปดูวันเสาร์ที่ 23 ลงทะเบียนบนเว็บเรียบร้อยแล้ว

Saturday, October 09, 2004

Biggest Typhoon is Coming !

ไต้ฝุ่นหมายเลข 22 (รุนแรงที่สุดในรอบ 10 ปี) กำลังมา (อีกแล้ว) เขตลมแรงจะเข้าโตเกียว 100% คืนนี้ ประมาณ 21:00น.

ทีวีบอกว่าความเร็วลมจะประมาณ 25m/sec หรือเกือบ 100km/hr ! พัดคนปลิว ยืนไม่ได้ หลังคาที่หลวมอาจปลิวหลุด แต่ Otto บอกว่าเตรียมกล้องพร้อมแล้ว จะออกไปยืนทดลองลมดูสักครั้งในชีวิต

ปีนี้เจอที่สุดมาหลายเรื่องแล้ว อากาศร้อนที่สุด จำนวนวันที่ร้อนสูงสุด จำนวนไต้ฝุ่นก็มาก (ไม่รู้ที่สุดหรือเปล่า) แล้วก็นี่ไต้ฝุ่นลูกโตที่สุด ชักน่ากลัวว่าแผ่นดินไหวครั้งใหญ่ที่ทำนายว่าน่าจะเกิดช่วงนี้ จะตามมาปีนี้ด้วยหรือเปล่า ?

เพิ่มเติม

ข่าวความเสียหายจาก CNN (Japan typhoon kills 5 )

Friday, October 08, 2004

Sleepless-in-Seattle House

ไม่ได้ตั้งชื่อ Blog เลียนแบบใครนะ เพียงแต่บ้านหลังนี้แหละที่เขาบอกว่าใช้เป็นที่ถ่ายทำหนัง Sleepless-in-Seattle

นับและบวกลบเลขด้วย Prolog

กลับจากพักผ่อนมาทำงานวันแรก อ้าว วันนี้ไม่มีประชุม นึกๆอยู่ว่าจะทำอะไรแทนดี งานที่ยังไม่เสร็จก็มีมากโข หาอะไรเล่นก่อนดีกว่า

เคยเล่น Prolog สมัยอยู่ ม.ปลาย ตอนนั้น Turbo Prolog เพิ่งจะออกมา กำลังฮิต และมีบทความข่าวคราวเกี่ยวกับพวก Expert System เยอะ บรรยากาศ คือ คอมพิวเตอร์กำลังจะฉลาดขึ้น ยุคของ AI กำลังมา

บ้า Prolog อยู่พักนึง นานพอสมควรเพราะมีเพื่อนคู่หูสนิทคนนึงเล่นด้วยกัน ตกเย็นหรือเสาร์อาทิตย์ก็มานั่งอ่านหนังสือ Prolog มีกันคนละเล่ม เพื่อนคนนี้เรียกได้ว่าระดับอัจฉริยะคนนึง ไม่ได้สอบเทียบ หลังเรียนจนจบ ม.6 ก็ได้ทุนไปเรียนต่อวิศวะที่ญี่ปุ่น แต่เรียนได้สักพักเกิดเปลี่ยนใจอยากเป็นหมอ ก่อนผมมาญี่ปุ่นก็เจอกันหนหนึ่ง ตอนนั้นแกเพิ่งกลับไปพอดี กำลังเตรียมตัวสอบเอ็นท์หมอ

มาญี่ปุ่นได้ไม่นาน ได้ข่าว อ้าวพี่แกสอบเข้าได้ที่หนึ่งหมอจุฬาฯ แซงรุ่นน้องๆ ม.5-6 ปีนั้นเลย เห็นไหมละ เก่งจริงๆ ยังรื้อฟื้นวิชา ชีวะ ได้อีก (ของตัวเองคืนอาจารย์ไปหมดแล้ว) สรุปเลยมีเพื่อนร่วมห้องสอบเข้าได้ที่หนึ่งหมอจุฬาฯสองคน คนละปี

โม้เรื่องเพื่อนเสร็จแล้ว กลับมาเรื่องเดิม สรุปว่าวันนี้ว่าง (เพราะขี้เกียจทำงาน) ก็เลยลองเอา Prolog มาปัดฝุ่น ตั้งแต่เข้ามหาลัยก็ไม่ได้เล่น Prolog เลย จนปี 4 ปีสุดท้าย เอามาทำ Senior Project

ตอนนี้ Turbo Prolog ไม่รู้จะไปหาที่ไหนแล้ว พอดีบนเครื่อง WebLS ดูเหมือนอ็อตจะลง GNU Prolog เอาไว้ ลองเล่นตัวนี้ก็แล้วกัน

หลังจากอ่านคู่มืออยู่สักพัก ก็พอเข้าใจวิธีการใช้งาน ใครเคยอ่าน Prolog คงรู้ว่าภาษานี้ค่อนข้างจะแหวกแนว ไม่ได้ตรงไปตรงมาทำทีละคำสั่ง บนลงล่าง ซ้ายไปขวา เหมือน BASIC/C ฯลฯ แต่ทุกอย่างเขียนเป็น ขอเท็จจริง และ กฏ

บทที่หนึ่ง: นับเลข

วันนี้ บทเรียนแรก สอนให้มันนับเลขก่อนก็แล้วกัน

next(0,1).
next(1,2).
next(2,3).
next(3,4).
next(4,5).
next(5,6).
next(6,7).
next(7,8).
next(8,9).
เป็นการนิยามคำว่า next โดยให้ next ของ 0 คือ 1, next ของ 1 คือ 2 ฯลฯ จนถึง next ของ 8 คือ 9

สมมติว่าเอาโปรแรกมนี้เขียนใส่ไฟล์ชื่อ add.pro แล้วเรียกคำสั่ง prolog --query-goal "['add.pro']" จะได้

GNU Prolog 1.2.9
By Daniel Diaz
Copyright (C) 1999-2001 Daniel Diaz
| ?- ['add.pro'].
compiling /.../add.pro for byte code...
/.../add.pro compiled, 14 lines read - 1476 bytes written, 15 ms

(1 ms) yes
ตอนนี้ Prolog ก็รู้แล้วว่ามีเลขอะไร เป็น next กับเลขอะไรบ้าง เช่นอยากรู้ว่า next ของ 5 เป็นเท่าไร ก็ถามไปว่า next(5,A).
| ?- next(5,A).

A = 6

(1 ms) yes
ใน Prolog สายอักขระที่ขึ้นต้นด้วยอักษรใหญ่ เช่น A จะถือเป็นตัวแปร โปรแกรมจะพยายามหาค่ามาใส่ ตัวแปร เพื่อให้คำสั่งที่พิมพ์เข้าไป (next(5,A).) เป็น จริง โดยใช้ข้อมูลจากที่สอนไว้ ซึ่งพบว่าคำสั่งนี้จะเป็นจริงเมื่อ A=6

จะถามกลับกันก็ได้ เช่น

| ?- next(B,9).

B = 8

yes
หรือตรวจสอบว่าจริงหรือไม่จริง
| ?- next(7,6).

no
ถ้าถามในสิ่งที่ไม่รู้ ก็จะบอกว่า no เช่นกัน
| ?- next(12,A).

no
และสุดท้าย ตัวแปรอาจจะมีได้มากกว่าหนึ่งตัว
| ?- next(A,B).

A = 0
B = 1 ? a

A = 1
B = 2

A = 2
B = 3

A = 3
B = 4

A = 4
B = 5

A = 5
B = 6

A = 6
B = 7

A = 7
B = 8

A = 8
B = 9

yes
Prolog จะไปขุดมาให้หมดว่า จากความรู้ที่มีอยู่ มี A,B อะไรบ้างที่ทำให้ next(A,B). เป็นจริง

บทที่สอง: บวกลบเลข

หลังจากนับเลขเป็นแล้ว ก็ลองสอนให้บวกเลขดูบ้าง (โดยสมมติว่าคอมพิวเตอร์ไม่มีเครื่องหมาย + ให้ใช้)

เขียนกฏการบวกใน Prolog คล้ายกับการเขียน Recursive Function เริ่มจากกฏที่ตายตัวก่อน คือ 0 บวกอะไรก็เป็นตัวนั้น

add(0,X,X).
จากนั้นก็ คิดต่อว่าถ้าตัวแรกเป็นค่าถัดจาก 0 คือ 1 คำตอบก็เป็นค่าถัดจาก X เหมือนกัน ซึ่ง เขียนเป็นกฏได้ดังนี้
add(A,B,C) :- next(K,A), 
              add(K,B,L), 
              next(L,C).
คือ A บวก B จะเท่ากับ C ถ้าหากว่า มี K ซึ่งเป็นตัวก่อนหน้า A และ K บวก B เท่ากับ L และ C เป็นค่าถัดจาก L

ซึ่งสองกฏนี้ก็ดูเหมือนจะเพียงพอสำหรับการบวกเลข A, B, C ใดๆ ซึ่งมีค่า 0-9 แล้ว

| ?- add(3,4,A).

A = 7 

| ?- add(3,0,A).

A = 3 
เนื่องจาก Prolog จะพยายามหาค่าตัวแปรที่ทำให้คำสั่งเป็นจริง ก็เลยสามารถเปลี่ยนตำแหน่งตัวแปร ให้ หาผลลบได้ด้วยเช่นกัน
| ?- add(3,A,9).

A = 6 

| ?- add(A,7,8).

A = 1
และจะใส่หลายๆตัวแปรก็ได้ อะไรบ้างที่บวกกันได้ 8 ?
| ?- add(A,B,8).

A = 0
B = 8 ? a

A = 1
B = 7

A = 2
B = 6

A = 3
B = 5

A = 4
B = 4

A = 5
B = 3

A = 6
B = 2

A = 7
B = 1

A = 8
B = 0
หรือว่า อะไร บวก อะไร เป็นอะไร ได้บ้าง ?
| ?- add(A,B,C).

A = 0
C = B ? a

A = 1
B = 0
C = 1

...
A = 8
B = 1
C = 9

A = 9
B = 0
C = 9
เลขตัวเดียวกัน บวกกันเป็นอะไรบ้าง ? (หาคำตอบที่เป็นไปได้ของสมการ A+A=B โดยที่ A,B = 0...9)
| ?- add(A,A,B).

A = 0
B = 0 ? a

A = 1
B = 2

A = 2
B = 4

A = 3
B = 6

A = 4
B = 8
และสุดท้าย เลขอะไร ที่บวกตัวมันเอง แล้วเป็นตัวมันเอง ?
| ?- add(A,A,A).

A = 0 ? a
ถ้าขยายให้คำนวณหลายหลักได้ คงจะเอามาแก้ ปริศนาแทนตัวเลขด้วยอักษร ได้เหมือนกัน

ตัวโปรแกรม

add.pro

เพิ่มเติม

  • อาจใช้ตัวอักษรแทนตัวเลข คือ next(one,two) ได้เหมือนกัน เพื่อให้เห็นชัดเจนว่าเป็นการบอกความสัมพันธ์ของสองสิ่ง (ซึ่งไม่จำเป็นต้องเป็นตัวเลข)

  • สรุปว่า การบวกลบ ก็มาจาก การนับเลข

Google Print

เริ่มกระจายสู่สิ่งที่ไม่ได้อยู่บนเว็บแล้ว

Google Print - FAQ

"Google Print enables publishers to promote their books on Google. Google scans the full text of participating publishers' titles so that Google users can see books that match the topics that they are searching on. ..."

ในที่สุด Hotmail 250MB / 2MB

เห็นออกข่าว มานานแล้วว่า Hotmail จะขยายเนื้อที่ให้เป็น 250MB เพื่อแข่งกับ Gmail/Yahoo

ลองสังเกตเป็นระยะๆ จนป่านนี้วันนี้เวลานี้ ของตัวเองก็ยังเป็น 2MB อยู่ ไม่ขึ้นให้เป็น 250MB สักที บังเอิญเมื่อวานเพิ่งเห็นของ ผบ. ว่าเพิ่มเป็น 250MB แล้ว ไม่รู้ Hotmail ใช้หลักอย่างไรเพราะว่า ผบ. สมัครทีหลังแน่นอน แต่อาจจะใช้บ่อยกว่า และอ่านจาก Outlook เป็นประจำ

ค้นดูใน Google บางเว็บบอร์ดก็เห็นคนได้กันมานานแล้วเหมือนกัน แต่ปกติ Hotmail เอาไว้ Login MSN กับสมัครสมาชิกบริการเว็บต่างๆ+เก็บ SPAM เท่านั้น ไม่เดือดร้อนเท่าไร

Tuesday, October 05, 2004

The Seattle Public Library

ตั้งแต่ออกจากญี่ปุ่นมาไม่ได้เขียน BLOG หลายวันแล้ว มา Seattle ครั้งนี้เป็นครั้งที่สอง ที่เที่ยวหลักๆของเมืองนี้ก็ไปมาเกือบหมดแล้ว ตกลงเลยไม่ได้ทำอะไรมาก หัดขึ้นรถเมล์ (ในเมืองฟรี) เดินเข้าเดินออกร้านหนังสือ พิพิธภัณฑ์ และนั่งทำงานในห้องสมุดเป็นกิจกรรมหลัก ถือว่าเปลี่ยนบรรยากาศก็แล้วกัน

BLOG นี้ก็เอาโน้ตบุ้กมาต่อเน็ตนั่งเขียนจากห้องสมุด

Central Library ของที่นี่เพิ่งเปิดใหม่ สถาปัตยกรรมแปลกตาดี เข้ามาครั้งแรกก็ Ooow, Ohhhh สุดยอดของห้องสมุด อุปกรณ์ครบครัน มีคอมพิวเตอร์จอแบนให้ใช้เยอะแยะ คงเหมา IBM มา แถมมีโต๊ะพร้อมปลั้กไฟให้เอาคอมพิวเตอร์มาต่อเล่นก็ได้ วางไว้เป็นหย่อมๆ มี WiFi ให้เล่นเน็ตฟรีทั้งอาคาร (8 ชั้นได้มั้ง)

นอกจาก Notebook ยังเห็นมีคนเอา PS2+จอแบน มาต่อนั่งเล่นเกมส์ด้วยเหมือนกัน

ไปกดๆใช้บริการค้นหนังสือเล่นดูบ้าง ดูเหมือนระบบ (IBM/Microsoft) จะทำมาเป็นพิเศษ เปิดเครื่องขึ้นมาหน้าจอก็ขึ้นแค่ Seattle Public Library.. Loading Program... ทำนองนี้ ไม่เห็น BIOS หรือ OS อะไรเลย รอสักพักก็เข้าเมนูหลัก ซึ่งดูเหมือนจะเป็น Browser ที่ตัดโน่นตัดนี่ออกไป ให้ใช้ได้เฉพาะแต่รายการที่กำหนด ลองกด Ctrl+Alt+Del ดู ได้ Task Manager ขึ้นมา อ้าวตกลงเป็น MS-Windows 2000 :)

นอกจากนี้ก็มีคอมพิวเตอร์ที่มี Browser, MS-Word, MS-Excel ติดตั้งไว้แล้ว อีกประมาณ 400 เครื่อง ให้จองเล่นได้ฟรี แต่ต้องทำบัตรชั่วคราว ก็เลยไม่ได้ลอง