Sunday, August 29, 2004
GmailFS - Gmail Filesystem
ต่อมจริยธรรม
ระหว่างที่อ่านหนังสือ "แปลงทักษิณเป็นทุน" ของ ดร.เจิมศักดิ์ ปิ่นทอง บทที่ว่าด้วยเรื่อง "ข้อสอบเอนทรานซ์รั่ว" ติดตาติดใจที่แกสรุปลงท้ายได้น่าสนใจหน้า 120 ว่า
|
หาก "จน" และ "ไร้อำนาจ" จะใช้กลโกง ชาวบ้านก็ยังเห็นใจอยู่บ้าง
แต่สำหรับลูกเศรษฐีผู้มีอำนาจ ซึ่งมีช่องทางและโอกาสของตนมากมาย หากกลับมาทำตัวเจ้าเล่ห์ เป็นศรีธนญชัย คนในสังคมจึงแสดงความรังเกียจ และรับไม่ได้ ว่าแต่ว่าเจ้าตัวการจะรู้ร้อนรู้หนาว จะรู้สำนึกบ้างหรือไม่ หรือว่าต่อมจริยธรรมถูกตัดทิ้งส่งขึ้นดาวเทียมไปแล้ว |
คิดๆดู ถ้าเก็บเอาดาวเทียมลงมาเปิดดูได้ คงเจออยู่หลายต่อม ทั้งต่อมกลม ต่อมแบน ต่อมสาว ต่อมแก่ และต่อมเหลี่ยม
นึกอยากจะค้นดูว่า การสอบวินัยของ ศ.ร.ต.อ.วรเดช จันทรศร อดีตเลขาธิการคณะกรรมการการอุดมศึกษา ไปถึงไหนแล้ว เจอบนเว็บผู้จัดการอยู่ข่าวหนึ่ง
10 สิงหาคม 2547 13:42 น. สอบวินัย “วรเดช” เอนท์รั่วยังสรุปไม่ลง
ไม่รู้ทำไมกินเวลามากมายนัก เพราะว่าตั้งแต่มีข่าว "สุเมธ" แนะสอบวินัย "วรเดช" เมื่อวันที่ 1 มิ.ย. ก็ผ่านมาเกือบสามเดือนแล้ว !
โดยส่วนตัวแล้ว เรื่องนี้คิดว่ารั่วในวงแคบจริง
เพิ่มเติม
เอารูปปกหนังสือมาใส่ [2004/09/05]Saturday, August 28, 2004
ADSL ที่เปิดเว็บไม่ค่อยจะได้
เท่าที่ทดลองดู ใช้ MSN คุยด้วยเสียง, ต่อ ssh ไปญี่ปุ่น ได้ดีไม่มีปัญหา
จะหงุดหงิดหน่อยก็ตรงดูเว็บ มันเปิดได้บ้างไม่ได้บ้าง IE ขึ้น Error ประจำ ต้อง Reload หลายๆครั้ง เช่น พวก blogger.com/blogspot.com เนี่ยแหละ เขียนเสร็จจะ Publish สักหน่อย มันก็ขึ้น Error จะเปิด gmail.com/apple.com ก็ Error
ต้อง Retry สามสี่ทีเป็นประจำ
บางทีดูเหมือนจะเปิดได้แต่ภาพก็ไม่มา เป็น x ซะหมด
ลอง telnet ไปที่ host:80 ดูมันก็บอกว่า
Connection Refused
อาการเหมือน Port 80 โดนฟิลเตอร์ไว้ คิดว่าคงเป็น Transparent Proxy
ทดลองเปิดเว็บบนเซิร์ฟเวอร์ตัวเองดู Log บนเซิร์ฟเวอร์บอกว่า เป็นการต่อมาจาก
REMOTE_ADDR = 203.144.144.186ซึ่งไม่ใช่ IP ของที่บ้านแน่นอน ดูดีๆมันยังมีอีกว่า
HTTP_X_FORWARDED_FOR = 61.90.xx.xxxซึ่งเป็น IP ของที่บ้าน เหมือนกับที่
who รายงานเมื่อ ssh เข้าไป
แสดงว่าเป็น Transparent Proxy จริง
จะ Proxy/Cache ก็ไม่ว่าไร แต่ทำให้มันมีเสถียรภาพหน่อยเถอะ ไม่ใช่ Error ซะเรื่อยแบบนี้
เมื่อวานเปิด geocities.com ไม่ได้เลย คงเป็นเพราะโดนสั่งให้บล็อคเหมือนที่เป็นข่าว แต่แปลกใจที่วันนี้เปิดได้ !
อีกไซต์ที่น่าจะโดนปิดมากๆ คือ "manu...." ก็เปิดไม่ได้เหมือนกัน
WinGsl: Windows vesrsion of the GNU Scientific Library
Friday, August 20, 2004
Dictionary of Algorithms and Data Structures
เมื่อเครื่องเล่นเกมส์กลายเป็นล่าม (PSP)
เขาว่าเครื่องเล่นเกมส์ชนิดพกพาใหม่ของ SONY PSP ที่กำลังจะออกปลายปีนี้ มีซอฟต์แวร์ที่น่าสนใจตัวนึง รหัสว่า TALKMAN เป็นล่ามแปลภาษา คือ พูดใส่ชุดหูฟังเข้าไป แล้วมันก็จะแปลให้ ! รายละเอียดยังไม่เปิดเผย
เขาบอกว่า "พูดเข้าไป" แสดงว่าคงแปลแบบ voice-to-{voice|text} แต่โปรแกรมพวก text-to-speech มีเยอะแยะแล้ว อีกอย่างรหัสคือ TALKMAN แสดงว่าน่าจะเป็น voice-to-voice ?
Thursday, August 19, 2004
Yahoo BB อัพเกรดให้ฟรี
ไม่เห็นมีเมล์มาจาก Yahoo เลย ลองไปค้นๆเว็บดู เจอรายละเอียดที่นี่
เขาบอกว่า ผู้ใช้ไม่ต้องทำอะไรเลย เดี๋ยวมันจะจัดการอัพเดท Firmware ในตัว ADSL โมเด็มที่บ้านให้เอง! สำหรับเขต Chiba จะอัพให้ประมาณวันที่ 19-22
หลังจากอัพเสร็จแล้ว Downlink จะเพิ่มเป็น 50Mbps และ Uplink จะเป็น 3Mbps
Downlink ไม่ค่อยสนเท่าไร เพราะตอนนี้ 45Mbps ได้จริงแค่ 6-8Mbps เพิ่มอีก 10+% คงไม่เพิ่มเท่าไร
แต่ Uplink ตอนนี้ 1Mbps ได้จริงประมาณ 800Kbps เพิ่มอีกตั้ง 200%!
จดชื่อ ตุลาการ
... ศาลรัฐธรรมนูญโดยเสียงข้างมากมีมติ ๘ ต่อ ๗ ว่า ผู้ถูกร้องไม่มีความผิดตาม รัฐธรรมนูญ มาตรา ๒๙๕ โดยตุลาการศาลรัฐธรรมนูญเสียงข้างมาก ๘ คน คือ
วินิจฉัยว่า ผู้ถูกร้องไม่มีความผิดตามรัฐธรรมนูญ มาตรา ๒๙๕
ส่วนตุลาการศาลรัฐธรรมนูญเสียงข้างน้อย ๗ คน คือ
วินิจฉัยว่า ผู้ถูกร้องมีความผิดตามรัฐธรรมนูญ มาตรา ๒๙๕ ...
จดชื่อ ส.ส.
18 ส.ส. ไทยรักไทย ลงชื่อหนุน “เหลิม” เป็นผู้ว่าฯ
ขอจดไว้หน่อยว่า 18 ส.ส. มีใครบ้าง
- นาย อารีเพ็ญ อุตรสินธุ์ ส.ส.นราธิวาส รองเลขาธิการนายกรัฐมนตรี
- นาย รณฤทธิชัย คานเขต ส.ส.ยโสธร
- นาย เวียง วรเชษฐ์ส.ส.ศรีสะเกษ
- นาย มุข สุไลมาน ส.ส.ปัตตานี
- นาย นิสิต สินธุไพร ส.ส.ร้อยเอ็ด
- นาย ธีระชัย ศิริขันธุ์ ส.ส.อำนาจเจริญ
- นาย เกษม อุประ ส.ส.สกลนคร
- นาย ประเสริฐ บุญเรือง ส.ส.กาฬสินธุ์
- นาย วิสันต์ เดชเสน ส.ส.ยโสธร
- น.พ. สุทธิชัย จันทร์อารักษ์ ส.ส.ยโสธร
- นาย พิทยา บุญเฉลียว ส.ส. ศรีสะเกษ
- นาย เฉลิมชัย อุฬารกุล ส.ส.สกลนคร
- นาย ศุภชัย โพธิ์สุ ส.ส.นครพนม
- นาย พีระเพชร ศิริกุล กาฬสินธุ์
- นาย คงกริช หงษ์วิลัย ส.ส.ปราจีนบุรี
- นาย ชวลิต วิชยสุทธิ์ ส.ส.นครพนม
- นาย บูราอานุดิน อุเซ็ง ส.ส.ยะลา
- นาย ไพศาล ยิ่งสมาน ส.ส.ยะลา
Wednesday, August 18, 2004
ข่าวสุวัจน์ ใน นสพ. ญี่ปุ่น
หรือจะลอง อ่านผ่าน PopThai
ไปฟัง Stephen Wolfram พูดเรื่อง A New Kind of Science
เท่าที่ดูวิชานี้น่าสนใจมาก เชิญนักวิทยาศาสตร์ที่มีชื่อเสียงหลายคนมาบรรยาย (มีวิดีโอให้ดู) พูดแต่ละเรื่องน่าฟังทั้งนั้น (Google, Gentoo, EyeToy, AMD Opteron, ฯลฯ)
วันนี้ลองฟัง Stephen Wolfram พูดเกี่ยวกับหนังสือของเขา "A New Kind of Science" ที่เคยพูดถึงว่ามีให้อ่านบนเว็บ
ฟังเอาก็รู้เรื่อง(คร่าวๆ)เร็วดีเหมือนกัน ให้ไปอ่านเองหมดคงไม่ไหว หนังสือมันโตมาก
Tuesday, August 17, 2004
เด็กประกอบคอมพิวเตอร์
วันนี้ไปเห็นหน้าข่าว เขาประกอบกันเสร็จไปเรียบร้อยแล้ว
(ภาพจากหน้าข่าว)
แล้วก็ไปเจอว่า Fujitsu ก็มีโครงการคล้ายๆกัน แต่เป็นการประกอบเครื่อง Desktop แทน
(ภาพจากหน้าข่าว)
ช่อง Search ที่ไร้ประโยชน์
blogspot.com
ตอนบนจะขึ้นโฆษณาหน่อยนึง.
วันนี้เพิ่งสังเกตเห็นว่าเขาเปลี่ยนโฆษณาเป็น Search Bar
หน้าตาแบบนี้แทนแล้ว
ลองค้นคำ่ว่า "crusoe" ดู อ้อที่แท้ส่งไปให้ Google หา
http://www.google.com/search?q=crusoe&sitesearch=vuthi.blogspot.com&x=0&y=0โดยจำกัด
sitesearch=vuthi.blogspot.com
ซึ่งคงไม่เจออะไร เพราะว่า Blog นี้ห้ามไว้ไม่ให้ Robot ทั้งหลายมายุ่งตั้งแต่แรกเริ่มแล้ว
โดยใส่ใน Template ไว้ว่า
<meta name="ROBOTS" content="NOINDEX,NOFOLLOW" />แค่นี้ Robot ที่พูดฟังรู้เรื่องก็จะไม่เข้ามาวุ่นวาย ความจริง BlogSpot น่าจะให้เลือกได้ว่าจะเอาโฆษณา หรือเอา Search Bar
เคยไปอ่าน mBlog มีบริษัทมาเขียนถึงเรื่อง "Search Engine Marketing" เล่าถึงเทคนิคว่า ทำอย่างไร เว็บจึงจะปรากฏในอันดับแรกๆของ Search Engine เช่น Google ฯลฯ และก็รับจ้างทำให้อีกด้วย รับประกันว่าติด Google 20 อันดับแรก
ดูในตัวอย่างลูกค้า ค้นหาด้วยคำที่กำหนด ก็ดูเหมือนจะติดอันดับจริง (คิดในใจว่าคำมันเจาะจงซะจน เว็บที่มีคำพวกนี้จะเกิน 20 หรือเปล่าหว่า ?) แต่พอลองค้นคำว่า "Thai Search Engine Marketing" ไม่ยักเจอชื่อบริษัทที่รับจ้างทำนี่ สงสัยยังไม่ได้ทำ Marketing ให้ตัวเอง
swsusp กับ Linux 2.6.8.1 บน Vaio-C1
วันก่อนเอา Kernel 2.6.8.1 มาลองคอมไพล์บน Crusoe ดู
เพราะ suspend to ram ด้วย apm -s ไม่ได้ อยากลองว่า kernel ใหม่จะใช้ได้แล้วหรือยัง
ถ้าใช้ได้แล้วก็ดีเลย เพราะจะได้ไม่ต้อง reboot บ่อยๆ โปรแกรมที่เคยรันแล้วและใช้บ่อยและยังอยู่ใน cache ของ
code morphing ของ crusoe มันก็จะได้เร็วอยู่ตลอด
(จากที่เคยทดสอบ)
อ่านเจอในเอกสาร Documentation/power/swsusp.txt ของ 2.6.8.1 เขาบอกว่า
ตอนนี้ swsusp มีสองรุ่นให้เลือกใช้ คือ
"echo 4 > /proc/acpi/sleep" calls the old version (software suspend) "echo disk > /sys/power/state" calls the new one (swap suspend)ถ้าของใหม่เข้ามาแทนที่เมื่อไรจะเรียก swsusp ว่า "Swap Suspend" แทน
ลองเล่นดูโดย config kernel ดังนี้
CONFIG_MCRUSOE=y ... # # Power management options (ACPI, APM) # CONFIG_PM=y CONFIG_SOFTWARE_SUSPEND=y CONFIG_PM_DISK=y CONFIG_PM_DISK_PARTITION="/dev/hda3"บูทขึ้นมาใหม่ ปรากฏว่าของเก่า
/proc/acpi/sleep ยังมีให้เล่น
แต่ไม่เห็นมี /sys/power/state ให้ลองเล่น
สงสัยเขาสะกดผิด /sys ลองดูใน
/proc/sys/ ก็ไม่มี power
เอาไว้วันหลังค่อยหาๆดูใหม่ว่าทำไม ตอนนี้เล่น swsusp ของเก่าไปก่อนก็แล้วกัน
วิธีใช้เขาบอกว่า
In a really perfect world:
echo 1 > /proc/acpi/sleep # for standby
echo 2 > /proc/acpi/sleep # for suspend to ram
echo 3 > /proc/acpi/sleep # for suspend to ram,
but with more power conservative
echo 4 > /proc/acpi/sleep # for suspend to disk
echo 5 > /proc/acpi/sleep # for shutdown unfriendly the system
and perhaps
echo 4b > /proc/acpi/sleep # for suspend to disk via s4bios
แต่ก่อนอื่นต้องดูก่อนว่า เครื่องเรายอมให้ echo เลขอะไรได้บ้าง
[vuthi@crusoe ~]# cat /proc/acpi/sleep S0 S3 S4 S5แสดงว่า
echo ใส่เข้าไปได้แค่ 0, 3, 4, 5
จากที่ลองดู
0,
5
ไม่มีอะไรเกิดขึ้น ส่วน
3 ได้ผลเหมือน apm -s
คือ เครื่องหลับไปแต่ปลุกไม่ตื่น
ตื่นขึ้นมาก็ตายไปเลย ต้องถอดสายหม้อแปลงและถ่านออก
(ไม่มีปุ่ม reset ให้กด)
echo 4 ใช้งานได้ดีเลยทีเดียว
แต่ก็ไม่มีอะไรใหม่ เพราะเคยใช้ได้ตั้งแต่ kernel 2.6.2 แล้ว
เปิด X11 อยู่ก็ใช้ได้ resume กลับมาก็เข้า X ให้เรียบร้อยเหมือนเดิม
แต่ถ้าจะให้มัน resume ต้องเพิ่ม resume=/... ใน
grub.conf แบบนี้
title Fedora Core (2.6.8.1)
root (hd0,1)
kernel /boot/vmlinuz-2.6.8.1 ro root=LABEL=/ rhgb resume=/dev/hda3
initrd /boot/initrd-2.6.8.1.img
ตรงนี้ต้องระวัง ถ้า suspend ไปแล้วบูทขึ้นมาโดยไม่มี resume=...
มันจะบูทแบบปกติ พอถึงขึ้นตอน fsck ข้อมูลในดิสก์อาจจะเละ
เพราะก่อนหน้านี้ปิดเครื่องแบบ suspend ยังไม่ได้ unmount ให้เรียบร้อย
สรุปแล้ว crusoe เครื่องนี้ยังทำ suspend to ram ไม่ได้ ต้องใช้ swsusp แบบ Hibernate ของ Windows เหมือนเดิม resume ขึ้นมาโปรแกรมทั้งหลายก็ช้าลงเหมือนเปิดเครื่องใหม่ๆแต่แรก
Monday, August 16, 2004
iMac รุ่นใหม่
Exclusive specs: New 17 and 20-inch G5 iMacs to offer 1.6 and 1.8GHz speeds
เขาว่าหน้าตาจะคล้ายๆ SONY VAIO® W700G จอ widescreen (รูปขวา)
ดีเลยเป็นแบบเดียวกับที่ ผบ. เคยอยากได้
เย็นนี้ต้องลองปรึกษาดู
เสียดายที่เร็วสุดแค่ 1.8GHz
ตอนนี้ Apple มี
Desktop: eMac / iMac / PowerMacG4-G5
Notebook: iBook / PowerBook
Server: Xserve G5
เครือข่ายเดี้ยง
ทีแรกคิดว่า Thaigate มันเก่าแล้ว เครื่องอาจจะมีปัญหา วันนี้มาดูอาการแต่เช้า อ้าวเป็นปกติดี. Uptime มาสามร้อยกว่าวัน จับ reboot ดูสักที ข้อความทุกอย่างก็เป็นปกติ
ดูเหมือนปัญหาจะอยู่ที่ Router ที่ไหนสักแห่ง เมื่อวันเสาร์เขาปรับปรุงอุปกรณ์เครือข่ายครั้งใหญ่ อะไรๆอาจจะยังไม่เรียบร้อย
นอกจาก Thaigate แล้ว ดูเหมือนเครือข่ายไป Chiba ก็จะมีปัญหาด้วย ต่อไปที่เครื่องฝั่งโน้น (Origin ฯลฯ) ไม่ได้เลย
เพิ่มเติม
รอจนบ่ายสาม ไม่มีอะไรดีขึ้น ขี้เกียจรอแล้วเมล์ไปหา Network Security ปรากฏว่าหายดีเป็นปกติใน 3 นาที ! เขาบอกว่า config ผิด น่าจะเมล์ไปตั้งแต่เช้าแล้วSaturday, August 14, 2004
กิจกรรมบนรถไฟ/G-Code/iEPG
หลายคนเสียเวลาบนรถไฟวันละหลายชั่วโมง เคยบ่นกับผู้จัดการแผนกคนหนึ่งตอนไปทำงานล่ามว่า หอพักอยู่ไกล ต้องนั่งรถไฟไปโรงเรียนวันละชั่วโมง เขาตอกกลับว่าจิ๊บจ๊อย ลูกน้องเขาใช้เวลาเดินทางจากบ้านโดยเฉลี่ย 1 ชั่วโมงครึ่ง หรือ ไป-กลับวันละ 3 ชั่วโมง !
ผู้ช่วยอาจารย์ที่แล็บเดินทางจากบ้านมาโรงเรียนเที่ยวละ 2 ชั่วโมง ไปกลับวันละ 4 ชั่วโมง หรือ 1/6 ของวัน เขาเรียนที่มหาลัยนี้ตั้งแต่ ตรี โท และเอก ใช้เวลา 9 ปี คิดแล้วอยู่บนรถไฟ 1.5 ปี ! ตอนนี้ย้ายมาอยู่ใกล้ๆโรงเรียนแล้ว
ก่อนหน้านี้กิจกรรมที่เห็นทำกันมากบนรถไฟก็คือ อ่านหนังสือ หนังสือการ์ตูน หนังสือพิมพ์ นิยาย ฯลฯ ทุกประเภท มองไปทางไหนก็เห็นแต่คนอ่านหนังสือ แต่เดี๋ยวนี้เห็นจิ้มๆมือถือกันซะมากกว่า เขียนเมล์บ้าง เล่นเกมส์บ้าง
นึกๆดูก็ตลก สมัยก่อนจอ LCD มันมองจากด้านข้างไม่ค่อยเห็น เดี๋ยวนี้มองเห็นชัดทุกมุมจนต้องหาสติกเกอร์มาแปะให้มองไม่เห็นจากด้านข้าง
จากที่เคยพบเห็น คนญี่ปุ่นชอบอ่านหนังสือคู่มือกันพอสมควร คู่มือกล้อง คู่มือโทรศัพท์มือถือ เครื่องเล่นวิดีโอ ฯลฯ พี่แกอ่านแหลก บางทีเพิ่งออกจากร้านเครื่องไฟฟ้า ก็แกะกล่องอ่านกันบนรถไฟเลย
ลองถามเพื่อนๆคนไทยดู ส่วนมากจะไม่เคยอ่าน ซื้อมาก็กดๆเล่นๆเลย บางทีมันทำอะไรได้บ้างก็ไม่รู้
มีคนเคยบอกว่านี่เป็นเหตุผลหนึ่งที่ทำให้ ญี่ปุ่นทำของเล่นแปลกๆออกมาได้เยอะ เพราะผู้บริโภคเขาชอบลองของ มีไอเดียอะไรก็ทำๆออกมาก่อน มันจะวุ่นวายสลับซับซ้อนแค่ไหนก็ไม่ว่า ฟลุ้คๆอาจจะฮิต
วันก่อนเจอคุณป้านั่งอ่านหนังสือ Excel ก็ทึ่งหนนึงแล้ว
วันนี้เจอคุณลุงยืนอ่านคู่มือ Hard-Disk/DVD Recorder
(เครื่องอัดรายการทีวีใส่ Hard-Disk/DVD) สงสัยเพิ่งซื้อมาฉลองโอลิมปิก
เลยนึกขึ้นได้ว่าเมื่อมาญี่ปุ่นใหม่ๆ มีข่าวหนังสือพิมพ์เริ่มพิมพ์รหัส G-Code ซึ่งเป็นระบบที่ช่วยให้ตั้งเวลาวิดีโอ สำหรับอัดรายการทีวีได้ง่ายขึ้น โดยหนังสือพิมพ์จะพิมพ์รหัส G-Code ของรายการทีวีต่างๆไว้ข้างๆรายการ เราอยากอัดรายการไหนก็เอาตัวเลข G-Code มาป้อนที่เครื่องเล่นวิดีโอ
เข้าไปดูที่เว็บ G-Code เขาบอกว่า ตัวเลขพวกนี้จะเข้ารหัส ช่องทีวี เวลา ระยะเวลาของรายการเอาไว้ มีการบีบอัดข้อมูลให้เหลือไม่กี่หลัก และช่วงเวลา Prime Time ก็จะใช้รหัสที่สั้นกว่า เพื่อให้ผู้ใช้ป้อนได้ง่ายกว่า
แรกๆใครอยากใช้ G-Code ก็ต้องซื้อรีโมทคอนโทรลพิเศษมาใช้ แต่หลังจากนั้นเครื่องเล่นวิดีโอก็รับ G-Code ได้กันหมด นับเป็นสุดยอดของไอเดียอันหนึ่ง เพราะตอนนั้นเขาสำรวจกันแล้วว่า การตั้งเวลาอัดรายการ เป็นคุณสมบัติหนึ่งที่ใช้กันไม่ค่อยจะเป็น
เคยคิดว่าถ้าจะเอาระบบพวกนี้ไปใช้ในเมืองไทย อาจจะต้องดัดแปลงหน่อย เพราะรายการทีวีในเมืองไทยมันไม่ค่อยจะตรงเวลา ไม่เหมือนที่ญี่ปุ่น ซึ่งเริ่มและจบตรงเวลาเป๊ะ ระดับวินาทีเลยทีเดียว (ยกเว้นถ่ายทอดสดรายการกีฬา ที่ชอบเกินเวลา) เครื่องเล่นวิดีโอมันก็ปรับเวลาตัวเองทุกวัน โดยอาศัยสัญญาณที่ถ่ายทอดมากับสัญญาณ TV
มาถึงยุคดิจิตอล เดี๋ยวนี้เครื่องเล่น VHS ไม่ค่อยมีคนซื้อแล้ว ปีนี้สินค้าขายดีเห็นจะเป็น HardDisk/DVD Recorder แหละ คงถือฤกษ์โอลิมปิก โละวิดีโอ VHS กันเยอะ หรือไม่ก็เปลี่ยนเป็นเครื่องคอมพิวเตอร์ที่อัดรายการทีวีได้ (ส่วนมากก็ได้กันหมดทุกยี่ห้อ)
ตารางรายการทีวีก็เริ่มปรับเปลี่ยนให้เข้ากับยุคคอมพิวเตอร์ จาก G-Code ก็เปลี่ยนเป็น iEPG เช่น TV-Guide (คลิกที่ iEPG ในแถบเมนูด้านซ้าย) อยากอัดรายการไหนก็กดที่ iEPG ของรายการนั้น ก็จะได้รายละเอียดของรายการนั้นมาแบบนี้
Content-type: application/x-tv-program-info; charset=shift_jis version: 1 station: NHK総合 year: 2004 month: 07 date: 24 start: 06:00 end: 08:15 program-title: おはよう日本 [N][天] ▽日本選手団いざ出陣 ▽2リーグ案に巨人は ▽アキハバラを世界へ ▽失敗しないカブトムシの飼い方 ▽すてき旅大谷石の里Browser ก็จะส่งข้อมูลนี้ให้โปรแกรมอัดรายการ (ซึ่งรู้จัก
application/x-tv-program-info)
แค่นี้ทุกอย่างก็เรียบร้อย
โปรแกรมสำหรับตั้งอัดรายการทีวีด้วย iEPG บน Linux ก็มีเหมือนกัน
Friday, August 13, 2004
เวลาที่ใช้คอมไพล์ gcc-3.4.1
| เครื่อง | คำสั่ง | ชั่วโมง:นาที:วินาที |
| SGI R1200-400 x24/12GB | gmake -j 20 bootstrap MAKE="gmake -j 20" | 00:22:05 |
| Linux Xeon 2.4 x2/2GB | make -j 4 bootstrap MAKE="make -j 4" | 00:28:47 |
| Linux Celeron-400/256MB | make -j 2 bootstrap MAKE="make -j 2" | 04:23:xx |
| Linux Crusoe5400-600/192MB | make -j 2 bootstrap MAKE="make -j 2" | 04:46:xx |
| Ultra-450 UltraSPARC2-300 x2 | make -j 4 bootstrap MAKE="make -j 4" | Error เมื่อผ่านไป 2:35:19 |
บน Ultra-450 (Solaris 2.6 เก่าแล้ว) ขึ้น Error ว่า
... make[1]: *** [all-target-libjava] Error 2 make: *** [bootstrap] Error 2 13924.52u 2427.90s 2:35:19.38 175.4%ระหว่างกำลังสร้าง libjava
Thursday, August 12, 2004
นี่หรือหน้าเรา
เห็นรูปอุ๋ยใน MSN เป็นการ์ตูนหน้าคล้ายตัวจริง อยากได้ของหน้าตัวเองบ้างก็เลยถามดูว่าใช้โปรแกรมอะไรทำ
อุ๋ยบอกว่าทำที่
Abi-Station
(เลือกเมนู Illustration Maker)
จะเป็นเมนูให้เลือกชิ้นส่วนต่างๆ เช่น ลำคอ รูปหน้า หนวด ตา จมูก ทรงผม สี ริมฝีปาก ฯลฯ (มากจนขึ้เกียจเลือก) เพื่อประกอบขึ้นมาเป็นรูปหน้า ลองๆอยู่พักนึง ผลที่ได้ครั้งแรกเป็นดังรูปทางขวามือ
ดูยังไงก็ไม่เหมือน ไม่ไหว รอให้คนอื่นทำให้ดีกว่า
Windows XP Starter Edition
Starter Edition มีข้อจำกัดหลายอย่าง เช่น
- ขนาดหน้าจอสูงสุดไม่เกิน 800x600
- แชร์ไฟล์/เครื่องพิมพ์ ไม่ได้
- เปิดโปรแกรมได้พร้อมกันไม่เกิน 3 โปรแกรม
- แต่ละโปรแกรมเปิดได้ไม่เกิน 3 หน้าต่าง
- สร้างหลาย Account ไม่ได้
หรืออาจจะเอามาใช้ในบริษัท จอ 800x600 ยังพอไหว ? แชร์ไฟล์ผ่านเว็บเอา ?
เจอเหมือนกัน: Windows Update ขู่ว่าติด Mydoom
เมื่อวานรัน Windows Update เจอข้อความบอกให้ติดตั้ง Update กำจัด Worm เนื่องจากเครื่องนี้อาจติด Worm จำพวก MyDoom ฯลฯ
ต๊กกะใจหมด รีบไปเปิด Virus-Scan มาตรวจดูสักหน่อย ผ่านไปหลายชั่วโมง Scan ทั้ง C: เลย สี่แสนกว่าไฟล์ มันบอกว่าไม่เจออะไร
กลับบ้านบน Windows ญี่ปุ่น ก็เจออีก
คอมไพล์ gcc-3.4.1 บน SGI Origin
วันก่อนเห็นออกมาพักนึงแล้ว แต่ก็ยังไม่มีโอกาสได้ลอง พอดี Otto บ่นๆว่าอยากได้ Qt-3.3 บนเครื่อง SGI ซึ่งดูเหมือนจะยังไม่มีอยู่ในรายการ Freeware ของ SGI (มีให้แค่ Qt-3.0.3) คงต้องเอามาคอมไพล์เอง
ใครเคยคอมไพล์ Qt คงรู้ว่ามันช้าขนาดไหน อยากรู้ว่า Precompiled Header จะช่วยได้หรือเปล่า ถือโอกาสนี้ลอง gcc-3.4.1 ด้วยซะเลย
เริ่มจากในเครื่องมี gcc 3.3 อยู่
(เอามาจาก
Freeware ของ SGI)
ดาวน์โหลด gcc-3.4.1.tar.gz เสร็จก็ทำตามขั้นตอน
$ tar zxf gcc-3.4.1.tar.gz $ mkdir gcc-build $ cd gcc-build/ $ ../gcc-3.4.1/configure $ gmake -j 20 bootstrap MAKE="gmake -j 20"บนเครื่องหลายๆ CPU นี่คอมไพล์โปรแกรมสนุกมาก ชอบเปิด
top ขึ้นมาดูว่ามันเป็นไงบ้าง
สะใจดี
gmake -j 20 ใช้เวลา 22 นาที 5 วินาที (โดยประมาณ)
ดูหน้าจอ Scroll ขึ้นเร็วๆ ดูเหมือนมันจะทำตามลำดับดังนี้
- ใช้
gccเดิม สร้างgcc/stage1/xgcc - ใช้
gcc/stage1/xgccสร้างgcc/stage2/xgcc - ใช้
gcc/stage2/xgccสร้างgcc/xgcc - ใช้
gcc/xgccสร้าง library ทั้งหลาย เช่นF77,U77,stdc++ฯลฯ
ปล. เครื่องนี้แหละที่วันก่อนขึ้น Warning จนต้องไปปิดสวิตช์ตัดออกไปอีกกล่อง เดิมมี 32 CPUs ก่อนหน้านี้ตัดไปเหลือ 28 ตอนนี้เหลือ 24 :( พังหมดเมื่อไร เลิกใช้
เพิ่มเติม
ลองบน Linux: Dual Xeon 2.4 HT (4 Logical CPUs) ได้ผลดังนี้$ time make bootstrap MAKE="make -j 4" -j 4 ... 3968.545u 1220.798s 28:47.17 300.4% 0+0k 0+0io 3170pf+0w28 นาที 47 วินาที ช้ากว่า SGI หน่อยเดียวเอง
Wednesday, August 11, 2004
Nature's Linux ของญี่ปุ่น
นั่งอ่านๆคุณสมบัติดูสักพัก ยังไม่รู้เรื่องว่ามันเด่นหรือดีกว่ายังไง ที่อ้างว่า "เร็ว" ก็แค่เขียนว่า "จะเปิดเผยข้อมูลเปรียบเทียบความเร็ว เร็วๆนี้"
Tuesday, August 10, 2004
WinXP SP2 ออกแล้ว
Windows XP Service Pack 2 Network Installation Package for IT Professionals and Developers
ตอนนี้ดาวน์โหลดได้แค่รุ่นภาษาอังกฤษกับเยอรมัน เขาว่า SP2 ภาษาญี่ปุ่นและภาษาอื่นๆจะออกมาภายในเวลาไม่เกิน 2 เดือน
เอกสาร
เจอเอกสาร (ประมาณ 8 บท) เกี่ยวกับคุณสมบัติต่างๆของ SP2 ที่Changes to Functionality in Microsoft Windows XP Service Pack 2
Monday, August 09, 2004
หนังสือหนัก
ล่าสุด(หลายเดือนก่อน)มีคนฝรั่งเศษโต๊ะข้างๆ บอกว่าอยากขอยืมคัมภีร์ "Introduction to Algorithms" หนังสืออ้างอิงยอดนิยมเล่มหนึ่ง ขนาดเกือบๆ A4 หนาประมาณ 1028 หน้า !
มันยืมไปนาน(ให้สมกับความหนา)จนเกือบลืม สัปดาห์ก่อนเขาเอามาคืน แต่ขี้เกียจขนกลับบ้านก็เลยตั้งทิ้งไว้ที่ที่ทำงาน วันนี้อารมณ์ดี หาถุงใส่หิ้วขึ้นรถไฟ
โห มันหนักเสียจนต้องมาเขียน Blog !
หนังสือโตๆแบบนี้ฝรั่งขยันเขียนจริงๆ ดูๆหนังสือญี่ปุ่นไม่ค่อยจะมีขนาดเท่านี้ ส่วนมากเล่มบางๆเล็กๆซะมากกว่า ที่โตๆมักเป็นพวกพจนานุกรมหรือรวบรวมข้อมูลทางสถิติ
สาเหตุหนึ่งคงเป็นเพราะ ให้เนื้อหาเดียวกัน ถ้าเอามาเขียนเป็นภาษาญี่ปุ่น มักจะได้ประโยคที่สั้นกว่าภาษาอังกฤษ เพราะญี่ปุ่นใช้ตัวอักษรคันจิ ตัวนึงก็มีความหมายได้หลายคำในอังกฤษ
อีกสาเหตุหนึ่ง คือ ถ้าเนื้อหามันเยอะ เขาชอบแบ่งออกเป็นสองสามเล่ม เช่น 上(บน) กับ 下(ล่าง) จะยกตัวอย่างก็คงมีหนังสือยอดฮิต "The Unix Super Text"
ในชุดนี้มีอยู่สองเล่ม แต่ละเล่มก็ขนาดเกือบๆ A4 เกือบๆ 1000 หน้าเหมือนกัน เขียนแทบจะทุกอย่างที่เกี่ยวกับ UNIX ตั้งแต่คำสั่งพื้นฐาน vi, talk, ls, cp, mv ไปจนถึงโปรแกรมใช้งาน emacs (ซึ่งรวมเรื่อง lisp), latex, X11 (รวมถึงการเขียนโปรแกรม X11) และการตั้งค่าบริการต่างๆ เช่น ftpd, sendmail, news, NFS, NIS, DNS ฯลฯ
มันเนื้อหาเยอะจนนึกไม่ออกว่ามีเรื่องอะไรที่หนังสือนี้ไม่ได้เขียนถึง แต่เนื่องจากหนังสือนี้มีมานานก่อน Linux จะเริ่มฮิตเสียอีก เนื้อหาส่วนมากจึงอิง Sun-OS หรือ Solaris เป็นหลัก แน่นอนว่า พวก Gnome, KDE ไม่มีกล่าวถึง
ไม่แน่อีกไม่นานอาจจะมีฉบับภาษาไทยออกมา เห็นคนแถวนี้กำลังเขียนๆอยู่
Crusoe ภาคต่อ
- โปรแกรมเล็กๆ เช่น พวก Benchmark จะทำงานค่อนข้างเร็วอยู่แล้ว
- โปรแกรมโตๆจะช้าลงหลายสิบเท่าจนรับไม่ได้ แต่จะทำงานเร็วขึ้นเมื่อเรียกมาทำงานหลายๆครั้ง
- ถ้า cp โปรแกรมไปอีกไฟล์ มันจะถือว่าเป็นคนละโปรแกรม การทำงานจะช้าลงเหมือนเรียกครั้งแรก
- ถ้า mv เปลี่ยนชื่อเฉยๆ มันยังรู้ว่าเป็นโปรแกรมเดิม การทำงานจะเร็วเหมือนเดิม
- ความเร็วที่คำนวณได้ของ Crusoe-600MHz ประมาณอยู่ที่ Celeron 17MHz-440MHz
java -version
เรียก "java -version" ซึ่งเป็นโปรแกรมค่อนข้างโต[vuthi@crusoe ~]$ time 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) 2.580u 0.100s 0:04.70 57.0% 0+0k 0+0io 1250pf+0w [vuthi@crusoe ~]$ time 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) 0.800u 0.070s 0:00.89 97.7% 0+0k 0+0io 1250pf+0w [vuthi@crusoe ~]$ time 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) 0.720u 0.100s 0:00.83 98.7% 0+0k 0+0io 1250pf+0w [vuthi@crusoe ~]$ time 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) 0.730u 0.070s 0:00.90 88.8% 0+0k 0+0io 1250pf+0wถ้าตัดเวลาในการอ่านข้อมูลจากดิสก์ในครั้งแรกออก ดูเฉพาะเวลา cpu อย่างเดียว จะเห็นว่ามันก็เร็วขึ้นตามลำดับ 2.85 -> 0.8 -> 0.72 วินาที
3000 x5 ครั้ง
เอาโปรแกรมเดิม (bench-3000) (ที่ต้องเรียกมาทำงาน 5 ครั้งจึงจะได้ความเร็วถึงที่สุด) มาแก้ ให้มันวนลูปภายในโปรแกรม 5 ครั้งเลย ไม่ต้องกลับมาที่ shell แล้วเรียกโปรแกรมใหม่
struct timeval t1, t2;
for(k=0;k<5;k++) {
gettimeofday(&t1, 0);
for(i=0;i<2500;i++) {
/* 2500 Repeat 3,000 times */
x += 1.0/j - 1.0/(j+2); j+=4;
...
x += 1.0/j - 1.0/(j+2); j+=4;
}
printf("Pi %lf\n", x * 4.0);
gettimeofday(&t2, 0);
double seconds = t2.tv_sec-t1.tv_sec+(t2.tv_usec-t1.tv_usec)/1000000.0;
printf("%3d: %lf\n", k, seconds);
}
ได้ผลดังนี้
[vuthi@crusoe Samples]$ time ./huibench-3000-x5 Pi 3.141593 0: 37.064915 Pi 3.141593 1: 22.283039 Pi 3.141593 2: 7.737691 Pi 3.141593 3: 2.117348 Pi 3.141593 4: 2.130969 71.100u 0.020s 1:11.38 99.6% 0+0k 0+0io 121pf+0w [vuthi@crusoe Samples]$ time ./huibench-3000-x5 Pi 3.141593 0: 2.151069 Pi 3.141593 1: 2.117074 Pi 3.141593 2: 2.119463 Pi 3.141593 3: 2.135293 Pi 3.141593 4: 2.121363 10.650u 0.010s 0:10.66 100.0% 0+0k 0+0io 121pf+0w [vuthi@crusoe Samples]$ time ./huibench-3000 Pi 3.141593 37.100u 0.010s 0:37.10 100.0% 0+0k 0+0io 118pf+0wผลลัพท์เหมือนกับเรียกโปรแกรม 5 ครั้งคราวที่แล้ว แสดงว่า จะคำนวณซ้ำ 5 ครั้งในโปรแกรมหรือนอกโปรแกรมมันก็ไม่ต่างกัน ยังไม่แน่ใจว่ามันใช้หลักอะไรดูว่าเป็นโปรแกรมเดิมหรือเปล่า เพราะปิดท้ายด้วย
huibench-3000 ซึ่งเนื้อหาลูปในสุดเหมือนกันเด๊ะ
มันช้าเหมือนไม่เคยเห็น code แบบนี้มาก่อน
9000 x5 ครั้ง
คราวนี้ลองแก้ให้โปรแกรมโตขึ้นอีก จาก 3000 บรรทัดเป็น 9000 บรรทัด ให้คำนวณ 5 ครั้งต่อการเรียกโปรแกรม 1 ครั้งเหมือนกรณีข้างต้น[vuthi@crusoe Samples]$ time ./huibench-9000-x5 Pi 3.141593 0: 43.415493 Pi 3.141593 1: 42.009296 Pi 3.141593 2: 40.617840 Pi 3.141593 3: 39.259297 Pi 3.141593 4: 37.943564 203.270u 0.020s 3:23.28 100.0% 0+0k 0+0io 181pf+0w [vuthi@crusoe Samples]$ time ./huibench-9000-x5 Pi 3.141593 0: 36.670147 Pi 3.141593 1: 35.442751 Pi 3.141593 2: 34.162813 Pi 3.141593 3: 32.618100 Pi 3.141593 4: 31.064975 169.960u 0.020s 2:49.97 100.0% 0+0k 0+0io 181pf+0w [vuthi@crusoe Samples]$ time ./huibench-9000-x5 Pi 3.141593 0: 29.595852 Pi 3.141593 1: 28.137752 Pi 3.141593 2: 26.773090 Pi 3.141593 3: 25.302357 Pi 3.141593 4: 23.722087 133.540u 0.000s 2:13.54 100.0% 0+0k 0+0io 181pf+0w [vuthi@crusoe Samples]$ time ./huibench-9000-x5 Pi 3.141593 0: 22.213004 Pi 3.141593 1: 20.673250 Pi 3.141593 2: 19.106657 Pi 3.141593 3: 17.578757 Pi 3.141593 4: 16.042067 95.620u 0.010s 1:35.62 100.0% 0+0k 0+0io 181pf+0w [vuthi@crusoe Samples]$ time ./huibench-9000-x5 Pi 3.141593 0: 14.432032 Pi 3.141593 1: 12.813109 Pi 3.141593 2: 11.156587 Pi 3.141593 3: 9.513688 Pi 3.141593 4: 7.843944 55.760u 0.000s 0:55.76 100.0% 0+0k 0+0io 181pf+0w [vuthi@crusoe Samples]$ time ./huibench-9000-x5 Pi 3.141593 0: 6.180543 Pi 3.141593 1: 4.490356 Pi 3.141593 2: 2.964806 Pi 3.141593 3: 2.491097 Pi 3.141593 4: 2.523717 18.670u 0.000s 0:18.66 100.0% 0+0k 0+0io 181pf+0w [vuthi@crusoe Samples]$ time ./huibench-9000-x5 Pi 3.141593 0: 2.498555 Pi 3.141593 1: 2.489768 Pi 3.141593 2: 2.470934 Pi 3.141593 3: 2.471768 Pi 3.141593 4: 2.471174 12.400u 0.020s 0:12.41 100.0% 0+0k 0+0io 181pf+0wการคำนวณแต่ละครั้งเร็วขึ้นเรื่อยๆ (ประมาณ 1.5 วินาทีต่อครั้ง) โดยดูเหมือนโปรแกรมที่โตขึ้นทำให้มันเรียนรู้ได้ช้าลง แต่ในที่สุดก็คำนวณเสร็จที่เวลา 2 วินาทีกว่า เหมือนกรณีของ 3000 บรรทัด หลังจากที่เรียกโปรแกรมไป 6 ครั้ง (คำนวณ 30 ครั้ง)
Crusoe มันก็สนุกดีเหมือนกันแฮะ โปรแกรมเดียวกัน เดี๋ยวช้า เดี๋ยวเร็ว
ตัดคำไทย ด้วย Java
เคยเขียนโปรแกรม Java เล่นๆ เพื่อเปิด Text ไฟล์ภาษาไทย (TIS-620) แล้วลองตัดคำและแสดงผลดู ได้ผลดังนี้
ตัวอย่างการเขียนโปรแกรมให้ตัดคำไทย เป็นดังนี้
public void printEachForward(BreakIterator boundary, String source) {
StringBuffer strout = new StringBuffer();
int start = boundary.first();
for (int end = boundary.next();
end != BreakIterator.DONE;
start = end, end = boundary.next()) {
strout.append(source.substring(start, end)+"-");
}
}
Locale thaiLocale = new Locale("th");
String input = "xxxxxxxx";
BreakIterator boundary = BreakIterator.getWordInstance(thaiLocale);
boundary.setText(input);
printEachForward(boundary, input);
นอกจาก BreakIterator.getWordInstance สำหรับหาจุดแบ่งคำแล้ว
Java ยังมี BreakIterator.getLineInstance เพื่อหาตำแหน่งที่ขึ้นบรรทัดใหม่ได้อีกด้วย
ผลมันดูคล้ายๆกัน ไม่ได้ดูรายละเอียดว่าแตกต่างกันตรงไหน
โปรแกรม ThaiBreaker
A Linux laptop that 'just works'? from HP
"It appears that for the first time, this notebook, the HP Compaq nx5000 (SUSE® Linux HP Edition 9.1), just works !"
Saturday, August 07, 2004
Crusoe ช้าหรือเร็ว: Benchmark กับความเป็นจริง
BenchMark: ยอมรับได้
ความเป็นจริง: มันช้ามาก
ความเป็นมา
ตระกูล PictureBook นี่อยากได้มาตั้งแต่ใช้ Pentium-II แล้ว แต่ราคายังค่อนข้างสูง มีรุ่นนี้แหละที่ลดลงมาฮวบฮาบ ตอนนั้นเห็นราคาแล้วไม่คิดไรมาก ซื้อเลย ตัว Crusoe มันจะเป็นยังไง ไม่สนใจมาก อย่างน้อยมันก็ 600MHz น่าจะเร็วกว่า Desktop ที่บ้าน (P2-266) ดู Benchmark ฯลฯ ก็ไม่แย่นัก ความอยากลองมันเข้าครอบงำ
เอามาเล่น มันช้ากว่าที่คิดค่อนข้างเยอะ อะไรๆก็ดูอืดไปหมด เปิดโปรแกรม IE รอนานมาก จนดูเหมือนน่าจะช้ากว่า P2-266 ที่บ้าน ลองซื้อ RAM มาใส่จนเต็มที่ 192MB ก็ไม่ดีขึ้นเท่าไร
ชักสงสัยว่าเป็นเพราะอะไร เอาโปรแกรม hdbench มารัน เปรียบเทียบกับ Pentium-III 600MHz
ThinkPad s30: P3-600MHz, 256MB, Lynx3DM 1024x768x16
SONY PictureBook PCG-C1VR/BP, Crusoe TM5400-600, 192MB, ATI RAGE Mobilty-M1, 1024x480
เทียบอัตราส่วนดู Integer น่าจะเท่ากับ P3-444MHz, ส่วน Float ก็ประมาณ P3-300MHz อยู่ในระดับที่น่าจะพอใช้งานได้ ! ความเร็ว Memory, HardDisk หรือ Graphic ก็ไม่ด้อยไปกว่ากัน
หรือว่าเป็นเพราะ Windows มันอืด ?
ลองแบ่ง Partition เอา Linux มาทดสอบ ติดตั้ง Fedora Core I เข้าไป มันก็ยังอืด ! เรียก startx ทีไปกินกาแฟรอได้เลย ! พวก GNome/KDE ไม่อยากจะเล่น ต้องเล่นแค่ xinit+twm. Mozilla ยังไม่ค่อยอยากจะเรียก
ตกลงเลยไม่ได้ใช้งานเท่าไร
เมื่อวาน
เอาเครื่องมาปัดฝุ่น ลองทดสอบ Benchmark อีกทีโดยใช้โปรแกรม PiBench พอดีมีตัวเลขให้เปรียบเทียบเยอะ ลองเทียบกับ Celeron-400 ตัวเก่าที่ลง Fedora ไว้เหมือนกันCELERON-400$ time ./huibench Pi 3.141593 1.410u 0.010s 0:01.41 100.7% 0+0k 0+0io 86pf+0w CRUSOE-600$ time ./foo Pi 3.141593 1.290u 0.000s 0:01.28 100.7% 0+0k 0+0io 88pf+0wดูจากตัวเลข Crusoe-600 น่าจะเร็วกว่า Celeron-400 อีก (ประมาณ Celeron 440MHz) แต่ในความเป็นจริง Celeron-400 เล่น Linux ยังทนเล่นได้ แต่ Crusoe-600 ไม่อยากเล่นเลย
คงเป็นเพราะ Code Morphing ของ Crusoe มัน cache โปรแกรมที่แปลงจาก x86 เป็นคำสั่งของ Crusoe เองเอาไว้ พวกโปรแกรม Benchmark ทั้งหลายที่มีขนาด Code เล็กๆ ก็เลยทำงานได้ดี
แต่พอเปิดโปรแกรมโตๆหลายๆโปรแกรม เช่น startx ความเร็วมันก็เลยตกลงไปเยอะ เพราะ cache ช่วยอะไรไม่ได้มาก เจอคำสั่งอะไรก็ต้องมาแปลงใหม่หมด
อยากจะทดลองให้เห็นจะๆ ก็เลยเอาโปรแกรม PiBench มาแก้เป็น
for(i=0;i<2500;i++) {
/* 2500 Repeat 3,000 times */
x += 1.0/j - 1.0/(j+2); j+=4;
... 3000 lines ...
x += 1.0/j - 1.0/(j+2); j+=4;
}
คือลดลูปลง ในแต่ละลูปเขียนคำสั่งเหมือนๆกัน 3000 บรรทัด
ปริมาณงานที่ทำเท่าเดิม แต่แกล้งทำให้โปรแกรมมันโตขึ้นมากๆ
ผลบน Celeron-400
CELERON-400$ time ./huibench-3000 Pi 3.141593 1.530u 0.000s 0:01.50 102.0% 0+0k 0+0io 116pf+0wไม่เปลี่ยนแปลงมาก ช้ากว่าเมื่อกี้ (1.41) หน่อยนึง คงเป็นเพราะโปรแกรมโตเกิน instruction cache ของ Celeron เหมือนกัน
ผลบน Crusoe-600
CRUSOE-600$ time ./huibench-3000 Pi 3.141593 36.990u 0.010s 0:36.99 100.0% 0+0k 0+0io 118pf+0wCrusoe กลายเป็นเต่าไปเลย ช้าลง 28 เท่า ! ช้ากว่า Celeron-400 ชนิดไม่เห็นฝุ่น (ประมาณ Celeron 17MHz) ที่น่าสนใจคือ เมื่อลองหลายๆครั้ง
CRUSOE-600$ time ./huibench-3000 Pi 3.141593 22.220u 0.000s 0:22.21 100.0% 0+0k 0+0io 118pf+0w CRUSOE-600$ time ./huibench-3000 Pi 3.141593 7.440u 0.000s 0:07.43 100.1% 0+0k 0+0io 118pf+0w CRUSOE-600$ time ./huibench-3000 Pi 3.141593 2.160u 0.000s 0:02.15 100.4% 0+0k 0+0io 118pf+0w CRUSOE-600$ time ./huibench-3000 Pi 3.141593 2.160u 0.010s 0:02.15 100.9% 0+0k 0+0io 118pf+0w CRUSOE-600$ time ./huibench-3000 Pi 3.141593 2.140u 0.010s 0:02.14 100.4% 0+0k 0+0io 118pf+0wมันเร็วขึ้นเรื่อยๆ จนหยุดที่ 2.14 ช้ากว่า Celeron-400 อยู่ดี (ประมาณ Celeron 285MHz) ลองแกล้งเปลี่ยนชื่อไฟล์โปรแกรม
CRUSOE-600$ mv huibench-3000 foo-3000 CRUSOE-600$ time ./foo-3000 Pi 3.141593 2.150u 0.010s 0:02.15 100.4% 0+0k 0+0io 118pf+0wความเร็วไม่เปลี่ยนแปลง ซึ่งก็ควรจะเป็นเช่นนั้น เพราะ Code Morphing มันคง cache ที่ระดับ CPU ไม่เกี่ยวกับชื่อโปรแกรม/OS แต่พอทดลอง copy ไฟล์
CRUSOE-600$ cp foo-3000 foo-3000-2 CRUSOE-600$ time ./foo-3000-2 Pi 3.141593 37.070u 0.000s 0:37.06 100.0% 0+0k 0+0io 118pf+0w CRUSOE-600$ time ./foo-3000-2 Pi 3.141593 22.880u 0.010s 0:22.88 100.0% 0+0k 0+0io 118pf+0wความเร็วมันตกไปที่ 37 วินาทีอีกแล้ว ! รันโปรแกรมที่มี Binary หน้าตาเหมือนเดิม แต่ Copy ไปอีกไฟล์นึง แสดงว่า Code Morphing มันคิดว่าเป็นคนละโปรแกรม ? Crusoe มันไม่ได้ดูเฉพาะที่ code ที่เข้ามา แต่อาศัย Hint อะไรบางอย่างจาก OS ด้วย ?
กลับไปลองโปรแกรมเดิม
CRUSOE-600$ time ./foo-3000 Pi 3.141593 2.140u 0.010s 0:02.14 100.4% 0+0k 0+0io 118pf+0wความเร็วก็ยังไม่ตก (ยังอยู่ใน cache ?)
ยังเป็นปริศนาอยู่ว่า
- รัน startx หลายๆทีจะเร็วขึ้นไหมเนี่ย ?
- โปรแกรมเล็ก ทำไมมันเร็วอยู่แล้ว ?
- โปรแกรมโต ทำไมรันหลายๆครั้งจึงจะเร็วขึ้น ?
หมายเหตุ
เจอเรื่องแปลกของ gcc อย่างหนึ่ง ก่อนที่จะใช้คำสั่งเดียวกัน 3,000 บรรทัด ทดลองใช้ 30,000 บรรทัด (เพราะอยากให้ได้ binary ออกมาสัก 1MB ซึ่งน่าจะเกินขนาด cache ของ Crusoe) ปรากฏว่า$time gcc -O2 -o huibench-huge huibench-huge.c cc1: out of memory allocating 2812893760 bytes after a total of 17616896 bytes 7676.542u 5.068s 2:08:04.07 99.9% 0+0k 0+0io 40pf+0wบนเครื่อง Xeon 2.4GHz ผ่านไปสองชั่วโมงมันขึ้น out-of-memory ข้างต้น สงสัยมัวแต่พยายาม Optimize หรือทำอะไรสักอย่าง แทนที่จะแปลคำสั่งเดิมๆ 30,000 บรรทัดตรงๆ
Friday, August 06, 2004
ภาษา C++/CLI
C++ : The Most Powerful Language for .NET Framework Programming
เห็นเครื่องหมาย ^ ตอนกำหนดตัวแปรแล้ว แลดูแปลกๆ
int^ h = 123;
Java Technology Concept Map
Thursday, August 05, 2004
IBM to Open Source 'Derby' Java Database
เอามาจาก cloudscape ซึ่งได้มาจากการซื้อ informix ซึ่งไปซื้อกิจการบริษัท cloudscape (หลายต่อแฮะ)
D/L ได้เมื่อไรต้องเอามาลอง
O'Reilly Open Books Project
และจะมีเพิ่มขึ้นมาอีก (after either 14 years or 28 years after the publication date, given author permission)
Wednesday, August 04, 2004
Multi-Tasking Virtual Machine
ลอกมาสั้นๆได้ว่า "MVM is a general-purpose virtual machine for executing multiple Java applications. Applications executing in MVM are referred to as isolates."
ดีเหมือนกันจะได้ไม่ต้องเรียก JVM หนึ่งตัว ต่อ Application หนึ่งตัวเหมือนตอนนี้ อีกหน่อย OS เป็นอะไรก็ไม่สนแล้ว Application ทั้งหลายทำงานอยู่บน VM หมด
จะเรียกว่า OS เก่งขึ้นจนมี VM ให้ใช้ (แบบ .Net) หรือ VM มันเก่งขึ้นจนให้บริการพื้นฐานที่จำเป็นสำหรับ App ทั่วไปได้ โดย App ไม่ต้องพึ่ง OS โดยตรง (แบบ Java) ก็คงเหมือนๆกัน
ที่แน่ๆ Java/.Net กำลังฮิต อีกหน่อยโปรแกรมที่ทำงานบน VM คงมีมากขึ้นเรื่อยๆ โปรแกรมที่คอมไพล์เป็น Native คงลดลง ?
โปรแกรมทำงานช้าลงแต่คนเขียนโปรแกรมสบายขึ้น คงไม่เป็นไรเพราะ CPU ตอนนี้ยังเร็วเกินพอ ?
ชอบ .Net ตรงที่เขียนด้วยภาษาอะไรก็ได้ เขาชอบยกตัวอย่างว่า "เขียน class ด้วย C++ แล้ว subclass อีกทีด้วย VB.Net แล้วเอา class นั้นไปใช้ในโปรแกรม Perl" โปรแกรมเมอร์ถนัดภาษาอะไรก็ใช้ภาษานั้น ไม่ต้องมานั่งเรียนใหม่อีก
ชอบ Java ที่ทำงานบน CPU/OS อะไรก็ได้ แต่เดี๋ยวนี้ .Net ก็เริ่มมี Mono มาช่วยตรงนี้
เพิ่มเติม
เคยเห็น PDA ของ Kyocera (PocketCosmo) ใช้ Intent platform ของ Tao Group ซึ่งดูเหมือนจะเป็น VM อย่างหนึ่งเหมือนกันเพื่อรันโปรแกรม Java โดยใช้ intent JTEเคยซื้อหนังสือ MSX Magazine มีแถมโปรแกรม MSXPlayer ซึ่งเป็น Emulator ของคอมพิวเตอร์ MSX โปรแกรมนี้พัฒนาให้ทำงานบน Intent มี Binary ให้เล่นได้ทั้งบน Windows และ PocketPC
Spin - Formal Verification
เอกสารน่าอ่าน
The Model Checker Spin
IEEE Trans. on Software Engineering,
Vol. 23, No. 5, May 1997, pp. 279-295.
Tuesday, August 03, 2004
เว็บน่าสนใจจาก BBC: StumbleUpon | Making the Modern World
StumbleUpon Toolbar: "StumbleUpon is a new way to surf the web. It lets you channel-surf pages recommended by friends and peers ? great sites you can't find using search engines. "
Making the Modern World: "Making the Modern World brings you powerful stories about science and invention from the eighteenth century to today. It explains the development and the global spread of modern industrial society and its effects on all our lives. The site expands upon the permanent landmark gallery at the Science Museum, using the Web and dynamic multimedia techniques to go far beyond what a static exhibition can do."
และถ้าอยากบินได้ ก็นี่เลย Fly Guy
พจนานุกรมไทย<->อังกฤษสัญชาติ Oxford
Monday, August 02, 2004
ภาษาไทยกับโปรแกรมวาดกราฟ graphviz บน Mac
บน Windows มีคนทำ WinGraphviz ซึ่งเป็น COM สามารถเรียกใช้ได้ง่ายๆผ่าน VisualBasic/C++ หรือพวก .Net (C#) ทั้งหลาย เขาแก้ให้ใช้ฟอนต์ภาษาญี่ปุ่นกับจีนได้ด้วย เคยพยายามลองกับภาษาไทยหลายครั้ง แต่ยังไม่สำเร็จสักที
วันก่อนดูเว็บงาน 2004 Apple Design Awards เจอโปรแกรม graphviz บน Mac ได้รับรางวัล Best Open Source Product ก็เลยเอามาเล่นดู พยายามลองเขียนกราฟภาษาไทยเหมือนกัน แต่ไม่เป็นผล
วันนี้ลองใหม่ พบว่าถ้าเลือกฟอนต์ไทย Krungtep/Thonburi ฯลฯ และเก็บไฟล์ .dot โดยใช้รหัส UTF-8 มันจะวาดกราฟภาษาไทยได้ !
ตัวอย่างนี้ได้มาจาก .dot ที่เขียนแบบนี้
digraph g {
node [fontname=Thonburi];
edge [fontname=Thonburi];
a [label="ผู้จัดการใหญ่"];
b [label="หน่วยวิจัย"];
c [label="ฝ่ายขาย"];
d [label="โปรแกรมเมอร์"];
e [label="ออกแบบ"];
a->b;
a->c [label="คำสั่ง"];
b->d; b->e; e->c;
}
AppleScript ต้องใจเย็นๆ
เป็นโปรแกรม AppleScript สำหรับเรียก PowerPoint มาแปลงไฟล์ .PPT ให้เป็น .JPG แบบ Batch
$ cat conv-ppt-mac.sh osascript <<EOF (* -- Test script for automating Microsoft PowerPoint -- Open a ppt file and save as JPG -- By Hui *) tell application "Microsoft PowerPoint" activate do Visual Basic "Presentations.Open FileName:=\"$1.ppt\" ActivePresentation.Export Path:=\"$1-sli\", FilterName:=\"jpg\" Do While Presentations.Count > 0 ActivePresentation.Close Loop " quit end tell EOFเขียนเสร็จใหม่ๆ ลองบน PowerBook G3/500 ก็ใช้งานได้ดี แต่พอเอาไปลองบน G4/400 มันตายทุกที บอกว่า "do Visual Basic: Invalid Command" ทำนองนี้
สงสัยว่าเป็นเพราะ PowerPoint คนละ Version ? OS คนละ Version ? แต่มันก็ต่างกันไม่มาก แค่ Office X + Mac OS 10.2 (เครื่องที่ใช้ได้) กับ Office X SR1 + Mac OS 10.3 (เครื่องที่มีปัญหา)
ลองหลายๆที พบว่าถ้าเปิด PowerPoint ทิ้งไว้ก่อน มันจะทำงานได้แฮะ เดาว่าเป็นเพราะส่งคำสั่งเร็วเกินไป PowerPoint อาจจะยังไม่พร้อม แก้เป็น
... activate delay 3 do Visual Basic "Presentations.Open FileName:=\"$1.ppt\" ...เพิ่ม delay 3 วินาทีบรรทัดเดียว ใช้ได้เลย หาอยู่ตั้งนาน
osascript นี่ก็หาไม่เจอเหมือนกันว่าจะให้อ่านค่าชื่อไฟล์ PPT จาก Argument ยังไง (หรือ AppleScript มันไม่รับ Command-Line Argument อยู่แล้วเพราะเน้นใช้งานแบบ GUI ?) เห็นเขาใช้ผ่าน shell script อีกทีแบบนี้ ก็เลียนแบบมาเลย
Sunday, August 01, 2004
WARNING มาอีกแล้ว
เดี๋ยววันพุธจะไปถอดปลั้กออก เลิกใช้ดีกว่า 001c32 เนี่ย ก่อปัญหาประจำ
ตอนนี้คงได้แต่ลุ้นว่าอย่าตายก่อนวันพุธละกัน
Jul 29 05:51:38 4A:sissrv unix: |$(0x15a)WARNING: 001c32 ATTN: PIMM0 CPU low warning limit reached 1.706V. Jul 29 05:51:48 4A:sissrv unix: |$(0x160)WARNING: 001c32 ATTN: PIMM0 CPU level stabilized @ 1.720V. Jul 29 05:53:22 4A:sissrv unix: |$(0x15a)WARNING: 001c32 ATTN: PIMM0 CPU low warning limit reached 1.706V. Jul 29 05:53:32 4A:sissrv unix: |$(0x160)WARNING: 001c32 ATTN: PIMM0 CPU level stabilized @ 1.720V. ... ... Aug 1 13:57:21 4A:sissrv unix: |$(0x160)WARNING: 001c32 ATTN: PIMM0 CPU level stabilized @ 1.720V. Aug 1 13:57:22 4A:sissrv unix: |$(0x15a)WARNING: 001c32 ATTN: PIMM0 CPU low warning limit reached 1.706V. Aug 1 13:57:32 4A:sissrv unix: |$(0x160)WARNING: 001c32 ATTN: PIMM0 CPU level stabilized @ 1.720V. Aug 1 13:57:38 4A:sissrv unix: |$(0x15a)WARNING: 001c32 ATTN: PIMM0 CPU low warning limit reached 1.706V.
เพิ่มเติม
ตอนนี้หยุดไปกว่า 24 ชม.แล้ว อาจจะไม่ต้องไปทำอะไรกับมัน :)Palm OS Developer Suite กับ Eclipse
เดี๋ยวนี้ให้ Eclipse เป็น IDE มาด้วย ดูเหมือนเอาใจนักพัฒนาซอฟท์แวร์มากขึ้น ตัว ROM Image ก็ให้มาด้วย ไม่เหมือนเมื่อก่อนที่ต้องเอาโปรแกรมถ่าย ROM ไปถ่ายจากตัว PDA กันเอง
ยังคอมไพล์ไม่ได้สักโปรแกรม มีปัญหาเรื่อง Cygwin นิดหน่อย
ใน README บอกว่าถ้าเครื่องมี Cygwin อยู่แล้ว ตอนติดตั้งให้เลือกว่าไม่ต้องการติดตั้ง Cygwin ก็ทำตามนั้นทุกอย่าง (เพราะเครื่องมี Cygwin อยู่แล้ว ทุก Package)
สงสัยต้องไปแก้หรือบอกให้รู้ว่า Cygwin ที่มีอยู่แล้ว อยู่ที่ไหนด้วยหรือเปล่า ?
ดูใน New - Project เดี๋ยวนี้มีให้เลือกแยกประเภท Project ธรรมดา กับแบบ Managed ไม่รู้ Managed ในความหมายไหน แถมมีชื่อโค๊ดเนมแปลกๆ Protein ฯลฯ อีก ตัวเลือกมากจนชักเวียนหัว
วันหลังค่อยลองใหม่ดีกว่า

