Friday, December 31, 2004
ซ่อม RAID-1 บน Samurai
/dev/sda
กับ
/dev/sdb
แบ่ง Partition เหมือนกันทุกอย่าง
เอาอันสุดท้าย
/dev/sda4
กับ
/dev/sdb4
ทำเป็น RAID-1 (Mirror) ไว้ แบบนี้
# cat /etc/raidtab
raiddev /dev/md1
raid-level 1
nr-raid-disks 2
chunk-size 16
persistent-superblock 1
nr-spare-disks 0
device /dev/sda4
raid-disk 0
device /dev/sdb4
raid-disk 1
วันนี้ทำความสะอาดบ้าน ปิดเปิดเครื่องหลายรอบ
สังเกตว่าเปิดเครื่องครั้งล่าสุด sdb หายไปทั้งตัว
/dev/md1 ยังใช้ได้ แต่มีเฉพาะ /dev/sda4 ตัวเดียว
รีบูทใหม่ sdb กลับมาเหมือนเดิม
sdb1-3 ทุกอย่างเป็นปกติ
ยกเว้น /dev/md1 ดูเหมือนจะยังไม่ยอมเอา
sdb4 กลับเข้ากลุ่ม คงเป็นเพราะมันหายไปพักนึง
# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid5]
md1 : active raid1 sda4[0]
102036736 blocks [2/1] [U_]
มีแค่ sda4 ตัวเดียว
ไปดูที่ Linux Software RAID How-To:
Reconstruction
เขาบอกแก้ง่ายๆ โดยใส่ sdb4 กลับเข้าไปใหม่ แบบนี้
# raidhotadd /dev/md1 /dev/sdb4สั่งปุ้บ ใน
/var/log/messages จะมี
kernel: RAID1 conf printout: kernel: --- wd:1 rd:2 kernel: disk 0, wo:0, o:1, dev:sda4 kernel: disk 1, wo:1, o:1, dev:sdb4 kernel: md: syncing RAID array md1 kernel: md: minimum _guaranteed_ reconstruction speed: 1000 KB/sec/disc. kernel: md: using maximum available idle IO bandwith (but not more than 200000 KB/sec) for reconstruction. kernel: md: using 128k window, over a total of 102036736 blocks.ถ้าไปดู
mdstat
จะเห็นว่าเริ่มมีการ recovery
# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid5]
md1 : active raid1 sdb4[2] sda4[0]
102036736 blocks [2/1] [U_]
[>....................] recovery = 2.8% (2861824/102036736) finish=35.4min speed=46641K/sec
รอสักพัก
# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid5]
md1 : active raid1 sdb4[2] sda4[0]
102036736 blocks [2/1] [U_]
[=======>.............] recovery = 36.5% (37258368/102036736) finish=24.4min speed=44238K/sec
พอเสร็จแล้วก็กลับมาเหมือนแต่ก่อน
# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid5]
md1 : active raid1 sdb4[1] sda4[0]
102036736 blocks [2/2] [UU]
Tuesday, December 28, 2004
ต้องคอยระวัง AfterShock อีกเป็นปี
เขาบอกด้วยว่า โดยเฉลี่ย Tsunami จะเกิดเมื่อแผ่นดินไหวมีขนาดมากกว่า 6.3 ดังนั้น ถ้า AfterShock ขนาดประมาณ 7-8 มีมาจริงๆ โอกาสที่ Tsunami จะมาอีกภายในระยะเวลาดังกล่าว ก็ยังมี
ไปเจอข่าวบนเว็บเขียนทำนองเดียวกัน ว่าให้คอยระวังอีกเป็นปี คงต้องบอกคนใกล้ตัวให้ระวังอย่าไปแถวนั้นภายใน 1-2 ปีนี้ ภูเก็ตคงเงียบเหงาไปอีกพักใหญ่
ในข่าวนี้บอกด้วยว่า คลื่นแผ่นดินไหวครั้งนี้ใหญ่มาก เครื่องวัดความไวสูงที่เมือง Nagano ยังสามารถวัดคลื่นที่เดินทางรอบโลกไปแล้วได้สามครั้ง ครั้งแรกหลังเกิดใหม่ๆเวลา 10:20 ครั้งที่สองหลังจากวนโลกมาแล้ว 1 รอบ 12:55 และครั้งที่สามหลังจากวนโลกมาแล้วอีกรอบ 15:30
Monday, December 27, 2004
Mac/Win Keyboard Symbols
ดูเหมือนจะทำได้โดยกำหนดฟอนต์ Wingdings เช่น
z ÿ
ลองแล้ว ดูได้ทั้งบน Mac (Safari) และ Windows (IE) โดยไม่ต้องทำอะไรเองเพิ่มเติม คือ เห็นเป็นเหมือนรูปข้างล่างนี้ (ยังไม่ได้ลองบน Linux)
แต่หากเปิดด้วย Firefox จะเละตุ้มเป๊ะ คือ
- บน Firefox/Windows ไม่เห็นสักอัน
- บน Firefox/Mac เครื่องหมายรูป Command ยังดีอยู่ แต่รูปหน้าต่าง Windows กลายเป็นหัวลูกศรสามเหลี่ยม
เพิ่มเติม
เพิ่งลองบน Linux (TryLinux) มา Firefox ให้ผลเหมือนกับ Windows คือ ขึ้นเป็นตัว z, y ส่วน Konqueror ดูเหมือนเกือบจะได้ แต่ไม่มีฟอนต์ Wingdings เลยไม่ได้ ลองกำหนด Webdings เพิ่มอีกอัน ได้มาคนละรูป เป็น ห้ามสูบบุหรี่ กับ เมฆฝน แทน
ส่วน Firefox ไม่สนใจทั้ง Webdings, Wingdings ไม่รู้มันเป็นอะไร ขึ้นมาเป็น z, y ลูกเดียว
สรุปว่าจากการทดลองนี้ บน Windows ควรใช้ IE, บน Mac ควรใช้ Safari, บน Linux ถ้าใช้ Konqueror ยังพอมีลุ้น, ส่วน Firefox อย่าไปใช้มัน ไม่ว่าบน OS ใดๆ
เขียนชื่อปุ่มเป็น "Apple" หรือ "Command" หรือ "Windows" น่าจะปลอดภัยกว่าสำหรับทุก Browser
Questia - The Online Library of Books and Journals
วันนี้สมาชิกในแล็บ เพิ่งไปสมัครบริการคล้ายๆกัน ชื่อ Questia แต่เน้นหนังสือและสิ่งพิมพ์ในวงการศึกษามากกว่า เช่น มีหนังสือของ MIT Press, Academic Press, ฯลฯ เห็นว่าปีละประมาณ US$100
เทียบกับ Safari แล้วราคาพอๆกัน แต่ดีกว่า Safari หน่อยตรงไม่จำกัดจำนวนหนังสือที่เปิดอ่านได้พร้อมๆกัน ณ เวลาหนึ่ง (Safari มันจะมี หิ้งหนังสือจำลอง เปิดอ่านได้เฉพาะหนังสือบนหิ้ง หนังสือที่อยู่บนหิ้งต้องอยู่บนนั้นสักพักนึงก่อนที่จะเอาลงมา แล้วใส่เล่มใหม่ขึ้นไปแทนได้)
ย้ายตำแหน่ง META ... charset ... ของ BLOG
จะเจอบ่อยๆว่า IE แสดงหน้าสารบัญนี้ไม่ได้ คือ ขึ้นมาเป็นหน้าว่างเปล่า สาเหตุมาจาก Encoding ผิดเป็นภาษาญี่ปุ่นบ้าง ไทยบ้าง ต้องไปเลือกใหม่ให้เป็น UTF-8 ด้วยตัวเอง ทั้งๆที่ใน Template ของ Blog ก็ใส่ META ไว้ชัดเจนแล้วว่า
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>แต่ META นี้กลับไม่มีผล อาการนี้เป็นเฉพาะกับ BLOG บางเรื่อง ไม่ทุกเรื่อง
วันก่อน Otto ก็ถามมาว่าเจอปัญหาแบบนี้กับ linux.thai.net บางหน้าเหมือนกัน ก็เลยลองโน่นลองนี่หาทางแก้ไขกันดู
สรุปพบว่า อาการนี้เกิดขึ้นกับ หน้าที่ <TITLE></TITLE> เป็นภาษาไทย และ <TITLE></TITLE> โผล่มาก่อน <META charset> คือ IE เจอภาษาไทยใน TITLE ก่อน ก็เลยเดา charset ไปก่อน เจ้า META ที่ตามมาเลยไม่มีผล
แก้ไขได้โดยไปเขียน TEMPLATE ใหม่ ให้ META โผล่มาก่อน TITLE แบบนี้
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>...</title>ของ Otto ดูเหมือนจะหาที่แก้ Template ไม่ได้ ตกลงต้องไปเปลี่ยน TITLE ให้เป็นอังกฤษล้วน
Saturday, December 25, 2004
PiBench/HuiBench
ตั้งใจให้เป็นลูปเล็กๆ คอมไพล์แล้วทั้งโปรแกรมจะได้อยู่ใน Cache อยากเปรียบเทียบความสามารถในการคำนวณล้วนๆของแต่ละ CPU คงเอาไปใช้อ้างอิงกับการใช้งานจริงไม่ได้
เคยเขียนถึงใน TLWG เลยมีสมาชิกร่วมส่งผลบนเครื่องต่างๆเข้ามามากมาย ตารางยาวขึ้นเรื่อยๆ เดิมเก็บผลไว้บน thaigate คิดว่าย้ายมาบน BLOG น่าจะเก็บได้นานกว่า
เดี๋ยวนี้ CPU เริ่มเร็วขึ้นจนโปรแกรมเสร็จในพริบตา ชักกลัวว่า Overhead ในการ โหลด/เริ่ม/หยุด โปรแกรมจะมีผลมากขึ้น อีกไม่นานคงต้องเพิ่มศูนย์อีกสักตัวในลูปเป็น 300 ล้าน
Cray C90 ครองแชมป์มานานมากแล้ว (ตั้งแต่เริ่มเก็บเมื่อ 6-7 ปีก่อน) สมกับเป็น Vector Super Computer วิ่งที่ความเร็วแค่ 250MHz ผ่านมาหลายปี Opteron248 (2.2GHz) เพิ่งจะเริ่มทำคะแนนไล่ทัน แต่ก็เร็วแค่โปรแกรมนี้แหละที่ลูปหลักทำ Vectorize ได้เต็มๆ และงานหลักคือคำนวณเลขทศนิยม เคยเอามารันโปรแกรม Simulation ทั่วไป อืดเป็นเต่า
ถ้าแก้โปรแกรมเพิ่มลูปไปคงไม่มีเครื่องให้ลองแล้ว (ศูนย์คอมฯเลิกใช้แล้ว)
ตัวโปรแกรม
#include <stdio.h>
main()
{
int i,j;
int a=0;
double x=0;
for(i=1;i<30000000;i+=4) {
x += 1.0/i - 1.0/(i+2);
}
printf("Pi %lf\n", x * 4.0);
}
วิธีทดสอบ
$ gcc -O2 -o test test.c // GCC -O2 or $ gcc -O3 -o test test.c // GCC -O3 or $ cc -fast -o test test.c // SUN's cc or $ cc -n32 -Ofast -o test test.c // SGI's cc or on Pentium4 Linux machine using ICC $ icc -O3 -axW -tpp7 -mcpu=pentium4 -march=pentium4 -o test test.c $ time testหรืออาจกำหนดตัวเลือกอื่นๆพิเศษ (
-funroll-loops)
ตามในช่อง Model/Note
Results
Machine OS CPU Compiler Time Model/Note -------------------------------------------------------------------------- Yamabiko SunOS413 Sparc/25 GCC 24.45 Sparc IPC Hinata SunOS4132 Sparc GCC 13.05 Sparc II Gio's Home Linux AMD5x86/133 GCC 11.41 Pruet's Linux2034 Pentium/75 GCC 10.04 HP/Vectra Pruet's Linux2036 Pentium/90 GCC 8.27 AST Pubnet Linux Pentium/100 GCC 7.010 Micron NSIAS Solaris Sparc/110 GCC 6.6 Sparc 5 PostOffice LinuxSparc Sparc/110 GCC 6.530 Sparc 5 Gateway Linux Pentium/120 GCC 5.800 Gateway Hagane SunOS413 Sparc/? GCC 5.58 Sparc 10 Miffy Solaris7 SuperSparcII/75 GCC 4.22 Sparc 20 Vulab IRIX6.2 R4400/200 GCC 3.392 SGI Indigo2 Ott Linux21124 PPro/200 GCC 3.33 Ott PC Vumedia IRIX5.3 R4400/200 x7 GCC 3.228 SGI Onyx Thaigate Solaris251 U-SparcI/143 GCC 3.17 Ultra I List Linux PPro/200 GCC 2.930 Micron Tower Vulab IRIX6.2 R4400/200 CC 2.755 SGI Indigo2 Vumedia IRIX5.3 R4400/200 x7 CC 2.713 SGI Onyx Banpot's Linux2035 PentiumII/233 GCC 2723 2.38 DELL dimension xps Micron BeOS R4 PentiumII/266 GCC 2.9-beos 2.225 Micron XRU Pruet's Linux2034 PentiumII/266 GCC 2.19 HP/NetServerE Vuapp Solaris26 PentiumII/266 GCC 2.14 Dell Poweredge 2200 Test Linux2036 PentiumII/266 GCC 2.070 Dell Poweredge 2200 Micron Linux2036 PentiumII/266 GCC 2.070 Micron XRU Pruet's Linux220p4 Celeron/300 GCC 1.94 HomeMade Owl Linux2032 PentiumII/300 GCC 2723 1.870 Dell Something Nu+ FreeBSD PentiumII/266 GCC 1.795 HomeMade Kyoto FreeBSD225 PentiumII/266 GCC 1.793 Dell Poweredge 2200 Suisho DigitalUnix Alpha5/333 GCC 1.776 AlphaStation600 5/333 Hide OS X 10.3 PowerPC G4 400 GCC 3.3 1.75 15" PowerBook G4 Mercury/TiBook Pearl BeOS R4 PentiumII/350 GCC 2.9-beos 1.737 Gateway Ru IRIX 6.4 R10000/200 x32 GCC 1.665 SGI Origin2000 Nu+ FreeBSD PentiumII/300 GCC 1.59 HomeMade Fubuki Solaris26 U-SparcII/300 x2 GCC 1.57 Ultra II Hide OS X 10.3 PowerPC G4 400 GCC 3.3 1.55 15" PowerBook G4 Mercury/TiBook -funroll-loops Bamboo Solaris26 U-SparcII/300 x2 GCC 1.52 Ultra 450 Celeron Linux223 Celeron/400 GCC 1.47 Dell Dimension V Hui's OS X 10.2.8 PowerPC G3 500 GCC 3.1 1.37 PowerBook G3-500 Pismo New3D WinNT4.0 PentiumII/450 GNU-Win32 gcc 1.332 Micron Nu+Home Linux PentiumII/450 GCC 1.30 Gateway Hui's OS X 10.2.8 PowerPC G3 500 GCC 3.1 1.27 PowerBook G3-500 Pismo -funroll-loops Hui Crusoe Linux CrusoeTM5400/600 GCC 332 1.18 SONY PCG-C1VR/BP Precision Linux223 PentiumIII/500x2 GCC 1.17 Dell 410 Bamboo Solaris26 U-SparcII/300 x2 CC 1.12 Ultra 450 Nu+ FreeBSD PentiumII/450 GCC 2721 1.10 HomeMade 256MB CPUs DigitalUnix Alpha5/440 x14 GCC 1.06 AlphaServer8400 5/440 INET Linux PentiumIII/600 GCC 0.97 DELL OptiPlex GX110 Ott DigitalUnix Alpha5/466 x2 CC 0.94 AlphaServer4100 5/466 SISSRV IRIX 6.5 R12000/400 x32 GCC/CC 0.79 SGI Origin 3000 CPUs DigitalUnix Alpha5/440 x14 CC 0.72 AlphaServer8400 5/440 Fon's OS X 10.3 PowerPC G4 1.33 GCC 0.67 12" Mac PowerBook POSTOFFICE Linux PentiumIII/1000 GCC 0.57 DELL Dimension 4100 Fon's OS X 10.3 PowerPC G4 1.33 GCC 0.53 12" Mac PowerBook -funroll-loops Omega Linux 2.4 PentiumIII/1333 GCC 3.2 0.43 TOSHIBA TabletPC 3500 SS WebLS Linux 2.4 Pentium4/2400 GCC 2.95.4 0.270 DELL Dual Xeon 2.40GHz WebLS Linux 2.4 Pentium4/2400 ICC 7.1 0.216 DELL Dual Xeon 2.40GHz Samurai Linux 2.6 Pentium4 540/3.2 GCC 3.3.5 0.207 Hui-Built Machine Fon's Linux 2.6 Pentium4/3600F GCC 3.3.4 0.192 HP xw4200(Gentoo Linux) Samurai Linux 2.6 Pentium4 540/3.2 ICC 8.1 0.164 Hui-Built: icc -O3 -axW Fon's Linux 2.6 Opteron248/2.2x2 GCC 3.4 0.122 HP-DL145 Dual Opteron248 (2.2GHz) C90 UNICOS902 C90/250MHz x12 CC 0.12 Cray C916/12256 2GB -------------------------------------------------------------
หมายเหตุ
- Only one CPU is used (single process) on all SMP machines listed above.
- Native
cccan generate considerably faster code than GCC on many platforms. - On x86 platforms, execution time on FreeBSD is shorter than on Linux.
Friday, December 24, 2004
Reason #2 for Java 1.5: XSL Transformations ใน 1.4.2 อืด
สมมติว่ามีไฟล์ XML ชื่อ small.xml แบบนี้
$ cat small.xml <?xml version="1.0" encoding="UTF-8"?> <body> <p align="center"> <module name="Real Module"> UEsDBBQACAAIAJCKkTEAAAAAAAAAAAAAAAAGAAAAMDEuSlBH7bsJWFPJ1i68FZXuVqGdQETAAbQV BQEBBTF204iIQivzECJiQAxhEEIUOknbKhwFQUFAxihTgBAQAoQEIU6AMoUpCRAgKgokIUQlCbpD kj/aw+lz7pm+77/ffc69zymevbNrWrVW1aq13lV7oxxSvgC+PnrY6TCwaPEi4IjqD1AKl5f+cDYi JiL6bETkJguTPcC+75yOqwmBT+nrTy2ARcDi334/1S1Z+bluierS/5zX+cu82tzn/JfAr2nRZ4pL vvo18zm3/evPua8+5T+nz5TVJJ+fjwCmwcGqmjDVfdmvvX4puZed83uJ+ee7r+r+W4nl5/vuP5d8 pvnh83OkStK/mdSmP1X/76/7LPMXv87iZ7kXH/rl+rVO//dZ+yW/4XM+9HfufxEBrbrEn9tZqCTb A5j9Qut/SX8o+9T+U79/lj6PuuqXLr+u0drfefo8d0tWfMp+ufJX+qo5BNxVjz8AQLhKji/eAeuB </module> </p> </body>และเขียนไฟล์สำหรับแปลง XML คือ
huitest.xsl แบบนี้
$ cat huitest.xsl
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:preserve-space elements="p" />
<xsl:output method="xml" encoding="UTF-8"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<body>
<xsl:apply-templates/>
</body>
</xsl:template>
<xsl:template match="module">
<module>
<xsl:value-of select="./@name" />
</module>
</xsl:template>
</xsl:stylesheet>
คือ ต้องการเปลี่ยนจาก <module name=xxx>yyy</module>
เป็น <module>xxx</module>
ตัดส่วนที่เป็นเนื้อหา yyy ทิ้งให้หมด
งานนี้สามารถใช้คลาส javax.xml.transform.Transformer ของ Java
ทำได้เลย โดยส่งไฟล์ XML ต้นทาง กับไฟล์ XSL ที่กำหนดหลักการแปลงไปให้
เช่น เอาโปรแกรมส่วนของ Transformer ที่ฝนเคยทำไว้มาแก้เป็น Transform.java
$ cat Transform.java
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.stream.StreamResult;
import java.io.*;
public class Transform {
public static void main(String [] arg) {
System.out.println("Transform\n");
try {
InputStreamReader xmlReader =
new InputStreamReader(new FileInputStream(arg[0]), "UTF8");
TransformerFactory tFactory = TransformerFactory.newInstance();
OutputStreamWriter out =
new OutputStreamWriter(new FileOutputStream("out-"+arg[0]),
"UTF8");
Source xmlSource = new StreamSource(xmlReader);
Source srcSource = new StreamSource(arg[1]);
Transformer transformer1 = tFactory.newTransformer(srcSource);
System.out.println("Transform: start");
transformer1.transform(xmlSource, new StreamResult(out));
System.out.println("Transform: complete");
xmlReader.close();
out.flush();
out.close();
}
catch (Exception ex) {
System.out.println("Error: "+ex);
}
}
}
แล้วเรียกใช้งานโดย
$ javac Transform.java $ java Transform small.xml huitest.xsl Transform Transform: start Declared encoding "UTF-8" does not match actual one "UTF8"; this might not be an error. Transform: complete $ cat out-small.xml <?xml version="1.0" encoding="UTF-8"?> <body> <module>Real Module</module> </body>ซึ่งดูเหมือนจะทำงานได้เรียบร้อยดี
ปัญหา คือ ข้อมูลที่เป็น Base64 ตรงกลางระหว่าง
<module> กับ </module>
ในไฟล์ที่ใช้จริง มีขนาดยาวมากๆ (มาจาก Video) ประมาณ 30 MB !
คือ
$ cat large.xml <?xml version="1.0" encoding="UTF-8"?> <body> <p align="center"> <module name="Real Module"> UEsDBBQACAAIAJCKkTEAAAAAAAAAAAAAAAAGAAAAMDEuSlBH7bsJWFPJ1i68FZXuVqGdQETAAbQV BQEBBTF204iIQivzECJiQAxhEEIUOknbKhwFQUFAxihTgBAQAoQEIU6AMoUpCRAgKgokIUQlCbpD kj/aw+lz7pm+77/ffc69zymevbNrWrVW1aq13lV7oxxSvgC+PnrY6TCwaPEi4IjqD1AKl5f+cDYi ... ... (~30MB of text) ... JiL6bETkJguTPcC+75yOqwmBT+nrTy2ARcDi334/1S1Z+bluierS/5zX+cu82tzn/JfAr2nRZ4pL vvo18zm3/evPua8+5T+nz5TVJJ+fjwCmwcGqmjDVfdmvvX4puZed83uJ+ee7r+r+W4nl5/vuP5d8 pvnh83OkStK/mdSmP1X/76/7LPMXv87iZ7kXH/rl+rVO//dZ+yW/4XM+9HfufxEBrbrEn9tZqCTb A5j9Qut/SX8o+9T+U79/lj6PuuqXLr+u0drfefo8d0tWfMp+ufJX+qo5BNxVjz8AQLhKji/eAeuB </module> </p> </body>ลองคำสั่งเดิมกับไฟล์นี้ คือ
java Transform large.xml huitest.xsl
ปรากฏว่าเงียบหายไป ~45 นาที ! แถมไม่ได้ผลลัพท์อะไรออกมา
ได้แต่ข้อความ
Exception in thread "main" java.lang.OutOfMemoryError 2810.596u 6.453s 46:57.57 99.9% 0+0k 0+0io 1pf+0wเป็นงงว่า Transform ใน Java 1.4.2 มัวทำอะไรอยู่ ? กิน CPU เต็มตลอด 99.9% และทำไมกินหน่วยความจำมากนัก ?
ปัญหานี้เจอมาหลายเดือนแล้ว ตอนนั้นเลี่ยงไปใช้วิธีอื่น ไม่เอาข้อมูลวิดีโอใส่ลงไปในไฟล์ XML ตรงๆ
พอดีเริ่มลองเล่น 1.5 ก็เลยลองอีกทีกับ 1.5 ดู ใช้ Transform.class
ตัวเดิมที่คอมไพล์ไว้ด้วย javac ของ 1.4.2
$ time ~/temp/jdk1.5.0/bin/java Transform large.xml huitest.xsl Transform Transform: start Transform: complete 4.555u 0.392s 0:04.02 122.8% 0+0k 0+0io 1pf+0wทำเสร็จได้ผลลัพท์ถูกต้องภายในเวลา 4.5 วินาที ! เร็วกว่าเดิม (Java 1.4.2_06) ประมาณ 60 เท่า !
Thursday, December 23, 2004
HDBench Virtual PC 7
วันนี้เอาไปลองรันบน Windows XP บน Virtual PC บน PowerBook G4-1.33 ได้ผลดังนี้
ตัวเลขไม่เลวทีเดียว คงดูสวยเฉพาะกับโปรแกรม Benchmark วนลูปเล็กๆพวกนี้แหละ คาดว่าถ้าเจอโปรแกรมโตๆ น่าจะแย่ลงเยอะแบบเดียวกับ Crusoe
เอาผลนี้ไปรวมกับ ผล HDBench บนเครื่องต่างๆ ที่เคยเก็บสะสมไว้แล้ว จะได้เปรียบเทียบได้สะดวก
Wednesday, December 22, 2004
SoftEther 2 Beta 1 ออกแล้ว
เขาบอกว่าเร็วขึ้นกว่าเดิม ประมาณเกือบ 3 เท่า ! เพราะปรับปรุงหลายๆอย่าง และใช้หลาย TCP Connection ด้วย ! ทีแรกก็งงว่าในเมื่อ Bandwidth รวมยังเท่าเดิม เปิด TCP หลาย Connection แล้วมันจะเร็วขึ้นได้อย่างไร ?
อ่านๆดู สรุปว่าหลาย Connection ช่วยได้ตรง Delay ตอนเริ่มส่งข้อมูล ถ้าข้อมูลมาเป็น Packet เล็กๆหลายๆอัน และการส่งแต่ละ Packet ต้องมีการโต้ตอบกัน ก็จะเสียเวลามาก รายละเอียดเกี่ยวกับการกระจายข้อมูลเป็นหลายๆ Connection ไม่ได้บอกไว้
นอกจากความเร็วแล้วก็มีคุณสมบัติใหม่อีกเยอะแยะ เช่น สร้าง NIC ปลอมได้หลายอันบนเครื่องเดียวเพื่อต่อกับหลาย VPN ตัว HUB สามารถเชื่อมต่อ Cascade กันได้ ตัวลูกๆไม่ต้องตะลุมบอนไปที่ HUB เครื่องเดียวกันอีก
ที่รู้สึกว่าแย่ลงคือเล่นผ่าน SSH ไม่ได้แล้ว ต้องต่อโดยตรง หรือผ่าน SOCK หรือ HTTP Proxy เท่านั้น เนื่องจากมี Network Admin หลายคนบ่นไปว่าถ้าเล่นผ่าน SSH เขาตรวจจับไม่ได้ !
แต่ความจริงถ้าเรียก ssh ให้ทำการ Forward พอร์ตเอาไว้เองก่อน แล้วให้ SoftEther2 ต่อเข้ากับพอร์ตนี้บน localhost เอา ก็น่าจะยังทำได้ ไว้รุ่นจริงออกมาเมื่อไรค่อยลอง
One reason to switch to Java 1.5
ปัญหาคือเมื่อ POST ไฟล์โตๆ เช่น มากกว่า 30MB หน่วยความจำที่ JavaVM ใช้ได้อาจจะไม่พอ และได้ "OutOfMemoryError" ออกมา
อาจแก้โดยเรียก "java -Xmx..." เอาได้ แต่ไม่สะดวกนักโดยเฉพาะเมื่อทำเป็น Applet ให้ชาวบ้านใช้ (ต้องไปตั้งค่าหน่วยความจำ Java Plugin ใน Control Panel กันวุ่นวาย)
ใน Java 1.5 คลาส HttpURLConnection จะมี StreamingMode ให้ใช้ (ไม่ทำการ Buffer) โดยสามารถบอกขนาด Content-Length ล่วงหน้าได้โดย เรียก setFixedLengthStreamingMode()
ดูเหมือน Java 1.4 จะทำไม่ได้จริงๆ ยังแปลกใจไม่มีใครใช้ Java 1.4 POST ข้อมูลโตๆแล้วเจอปัญหาบ้างเลยเหรอ มีคนสงสัยแบบนี้เหมือนกัน เขาบอกให้ไปใช้คลาสอื่นจาก Apache Jakarta แทน
Preventing URLConnection from buffering entire output stream
ตกลงเลิกใช้ HttpURLConnection แล้วไปเขียนข้อมูลใน TCP Socket ตรงๆเลย เอาคลาส TCPConnection ที่เคยทำไว้สำหรับ PantipPost มาใช้
Friday, December 17, 2004
MacXP: Windows XP บน Virtual PC บน PowerBook
ในกล่อง Office:mac Pro 2004 มี "Virtual PC with Win XP" (2 แผ่น CD) กับ "Windows XP" (1 แผ่น CD) แถมมาด้วย ตอนติดตั้งดูเหมือนจะใช้แค่ "Virtual PC with Win XP" สองแผ่นก็พอ แต่ดันไปเลือกแป้นพิมพ์ภาษาไทย เลยต้องใส่ "Windows XP" เข้าไปด้วย เพราะต้องการบางไฟล์ใน D:\I386
ตั้งชื่อเครื่องว่า "MacXP" ป้อนรหัสทุกอย่างเรียบร้อย ได้หน้าตาแบบนี้ระหว่างทำงาน
เล่นๆดูไม่เร็วเท่าไรแต่ก็ไม่อืดมาก เปิด Property ของ My Computer ได้ว่าเป็น CPU ตระกูล 686 ความเร็วประมาณ 300MHz ! (บน PowerBook G4 1.33GHz) เนื่องจากเมาส์แมคมีปุ่มเดียว ต้องจำลองปุ่มขวาโดยกดปุ่ม Control ค้างไว้
ดูดีๆตรง "Dock" ของ Mac มีไอคอน "Start Menu" โผล่ขึ้นมาด้วย
คลิกดูก็จะมีรายการโปรแกรมเหมือนใน Windows XP จริงๆ ถ้าเลือกโปรแกรมในรายการนี้ Virtual PC จะเปิดขึ้นมาเองแล้วเรียกโปรแกรมดังกล่าวโดยอัตโนมัติ
พอเปิด IE ใน Windows XP ใน Virtual PC ปรากฏว่ามีไอคอนของ IE โผล่มาข้างนอกที่ "Dock" ด้วยแฮะ แต่จะมีไอคอนของ Virtual PC เล็กๆทับอยู่ด้วย
Virtual PC ค่อนข้างจะพยายามทำให้ผู้ใช้รู้สึกว่าโปรแกรมใน Windows ก็เป็นส่วนหนึ่งของ Mac ?
เจอคนชื่อเหมือนกันแล้ว "Hui"
โดนทักมาว่าไปเขียน Comment ในเรื่อง "Anti-Microsoft" ด้วยเหรอ ?
เฮ้ย ไม่รู้เรื่อง เคยเห็นหัวข้อนี้แวบๆในเว็บบอร์ดของ LTN แต่ยังไม่ได้ไปเขียนอะไร เข้าไปดูจึงเห็นว่ามีคนชื่อ "Hui" เหมือนกัน เขียนว่าชอบโปรแกรมไมโครซอฟท์
วันนี้ PowerBook G4 ที่โดนบอกให้รีบสั่งๆไปมาแล้ว มาพร้อมกับ "Office:mac 2004" ในกล่อง Office มี "Virtual PC for Mac 7 with Windows XP Pro" มาให้ด้วย ดีเหมือนกันแฮะซื้อหนึ่ง (Office) ได้สาม (แถม VirtualPC + WindowsXP)
เครื่องมาแล้วก็หมดข้ออ้าง ต้องรีบๆแก้โปรแกรมให้ใช้กับแมคได้ !
Thursday, December 16, 2004
ASIMO เริ่มวิ่งได้แล้ว
คำว่า "วิ่ง" หมายความว่า มีจังหวะหนึ่ง (0.05 วินาที) ที่ไม่มีเท้าใดแตะพื้น ความเร็วสูงสุดที่ทำได้ตอนนี้ คือ 3 กม./ชม. คาบการก้าวเท้า 0.36 วินาที พอๆกับคนวิ่งจ๊อกกิ้ง
ก่อนหน้านี้ หุ่น QRIO ของ SONY เคยวิ่งได้มาก่อนแล้ว ยังสงสัยว่าทำไมเมื่อวานในทีวีบอกว่ารายแรกในโลก
Wednesday, December 15, 2004
ลอง WebDAV กับ Apache
อีกอย่างไม่อยากเปิด Samba ให้ชาวอินเทอร์เน็ตทั่วโลกเข้ามาลองเล่นได้
วันนี้ไม่รู้ทำไม จู่ๆก็นึกถึง WebDAV (Web-based Distributed Authoring and Versioning) ขึ้นมา เป็นส่วนขยายของ HTTP สำหรับแก้ไขและจัดการไฟล์บนเว็บเซิร์ฟเวอร์. โปรแกรม Explorer บน Windows เปิดใช้ได้เลย น่าจะเอามาใช้แทน Samba ได้ เล่นผ่าน Web Proxy Server ก็น่าจะได้ (เพราะใช้ HTTP Protocol ?) ไหนๆ Apache ก็รันไว้อยู่แล้ว
ทดลอง TryLinux
การติดตั้งบน TryLinux ไม่ยาก หลังจากมี apache (Apache 1.3) แล้ว
ก็ติดตั้ง libapache-mod-dav เพิ่มอีกตัวหนึ่ง
จะได้โมดูลสำหรับทำ webdav มา และถูกเพิ่มเข้าไปในไฟล์ /etc/apache/modules.conf
ให้เองโดยอัตโนมัติ
เพิ่งรู้ว่า ถ้าจะเพิ่มลดรายการโมดูลในไฟล์นี้ เขาไม่ทำกันด้วยมือ
แต่ใช้คำสั่ง /usr/sbin/apache-modconf apache enable|disable ...
มันก็จะสร้างไฟล์ /etc/apache/modules.conf ขึ้นมาใหม่เอง
การตั้งค่าที่เกี่ยวกับ WebDAV จะอยู่ใน
/etc/apache/conf.d/libapache-mod-dav
มีตัวอย่างการตั้งค่า WebDAV ให้ดูด้วย
สมมติว่า Apache รันอยู่บนเครื่อง b.com และจะเปิด WebDAV ที่ http://b.com/dav
ก็ไปแก้ใน httpd.conf ว่า
<VirtualHost *> ServerName b.com ... ... <Location /dav> DAV On AuthType Basic AuthName TestDAV AuthUserFile /path/to/httpauth.txt AuthGroupFile /dev/null Order deny,allow Deny from all Allow from 192.168. .b.com <LimitExcept GET OPTIONS> require valid-user </LimitExcept> </Location> </VirtualHost>ในกรณีนี้จะบังคับให้ผู้ใช้ Login ก่อน (require valid-user) และจำกัด IP/Domain ของผู้ที่จะต่อเข้ามาเล่นได้ (Allow from) สองอย่างนี้อันไหนไม่จำเป็นก็เอาออกได้
จากนั้นก็ไปสร้าง mkdir dav ใต้ DocumentRoot ให้เรียบร้อย
WindowsXP เจ้าปัญหา
ปัญหาที่พบคือ ถ้าใช้จาก Windows XP โดยไปที่
"My Network Places" แล้วเลือก "Add a network place"
(จากตัวเลือกใต้ "Network Tasks" ด้านซ้าย)
แล้วป้อน URL เป็น http://b.com/dav
มันจะถามให้ใส่ Login/Password
แต่เมื่อกรอกไปแล้ว จะถูกด่ากลับมาว่ารหัสไม่ถูกต้อง และชื่อ Login จะถูกเปลี่ยนไป
เป็น b.com\login เช่น ป้อนไปว่า "vuthi" มันจะถามมาใหม่เป็น "b.com\vuthi"
"b.com\vuthi" คือ Login name ที่ Windows XP ส่งไปให้ Apache
Apache ก็เลยตรวจรหัสผ่านไม่เจอ ไม่ถูกต้อง เพราะไม่มีชื่อนี้ในไฟล์ /path/to/httpauth.txt
ลองไปสร้างดูแล้วก็ไม่สำเร็จ
ค้น Google มีคนบอกให้เอา mod_encoding มาใช้ จะแก้ปัญหานี้ได้
ลองดูหลายรอบ ไม่สำเร็จ ปัญหาไม่หาย
สุดท้ายไปเจอว่า ต้องระบุหมายเลขพอร์ต 80 ใน URL ด้วย คือ
ให้ใช้ http://b.com:80/dav แทน
ในกรณีนี้ Windows XP จะส่งชื่อไปแค่ "vuthi" สามารถ Login ได้เรียบร้อยดี
สุดท้ายก็จะได้ "dav on b.com" โผล่ขึ้นมาใน
"My Network Places" ให้เรียกใช้เมื่อต้องการ
มีหมายเลขพอร์ตกับไม่มีมันต่างกันตรงไหน ? ไปดูที่ Log ไฟล์ของ Apache จะเห็นว่า
- ถ้าไม่ระบุพอร์ต 80: User-Agent จะเป็น
Microsoft-WebDAV-MiniRedir /5.1.2600 - ถ้าระบุพอร์ต 80: User-Agent จะเป็น
Microsoft Data Access Internet Publishing Provider Protocol Discovery
เขาว่ากันว่า Windows 2000 ไม่มีปัญหานี้ ไม่มีการเติม Domain หน้า Login ให้เอง ถึงแม้จะไม่ระบุหมายเลขพอร์ต
Deep Blue โกงหรือเปล่า ?
มีภาพยนต์ออกมา Game Over: Kasparov and the Machine ว่า เบื้องหลัง Deep Blue อาจจะมี "มนุษย์" คอยช่วยเล่นอยู่ ?
ถ้ามีโอกาสคงต้องหามาดูสักหน่อย
Tuesday, December 14, 2004
MSN Toolbar Suite With Desktop Search คู่แข่ง Google Desktop
Microsoft Introduces MSN Toolbar Suite Beta With Desktop Search
Image Converter 2 มีขายแล้ว 1000 เยน
อาจต้องอดข้าวเที่ยงสักมื้อ ไปซื้อมาลองเปรียบเทียบดู
Monday, December 13, 2004
ไปดูเขาชำแหละ PSP
Create Video file for PSP
PSPでMPEG動画を再生できるぽい? (ญี่ปุ่น)
สรุป คือ ต้องไปเอาโปรแกรม
3GP Converter (ญี่ปุ่น)
แปลงเสร็จก็ใส่ไว้ใน MemoryStick DUO โดยให้ไฟล์ชื่อ
\MP_ROOT\101MNV01\M4V0****.MP4
เพิ่มเติม
ลองทำดูแล้ว เอาไฟล์ QuickTime ที่ถ่ายโดยกล้อง Nikon 5200 มาแปลงโดย
3GP Converter แล้วจัดเก็บลงไปที่
\MP_ROOT\101MNV01\M4V00001.MP4
เปิดดูได้จริงๆด้วย
ทีแรกลองตั้งชื่อไฟล์เป็น
M4V00000.MP4
ตัว PSP มองไม่เห็น แสดงว่าต้องเริ่มจาก "1"
Sunday, December 12, 2004
ไปต่อแถวตากฝนมาแล้ว เพื่อ PSP
รู้สึกตัว 5 โมงเช้า เกือบลุกไปแล้วแต่โดนเบรคเอาไว้ "จะบ้าเรอะ" ! ก็เลยลงไปนอนต่อ ตื่นมาแปดโมงกว่า กินอาหารเช้า แต่งตัว คิดว่าจะไปดีหรือเปล่า อาจจะขายหมดไปแล้ว ? แต่ไปดูหน่อยก็แล้วกัน ถึงจะขายหมดก็ได้ไปดูมาแล้ว
ถึงร้านประมาณ 9:20 แปลกใจไม่มีคนเท่าไร (สงสัยว่าขายหมด) แต่พอเดินเข้าไปจะซื้อ เขาบอกว่าให้ไปต่อแถวนอกร้านอีกด้านนึง โหมีคนต่ออยู่สักร้อยกว่าได้มั้ง เขาแบ่งเป็นกลุ่มๆ (เปิดช่องตรงทางเข้าออก) กลุ่มละ 50-60 คน ตอนไปถึงต่ออยู่ในกลุ่มที่สาม
ก่อนต่อแถวเขาแจกบัตรคิวให้คนละใบ เอาไว้ยื่นที่เคาน์เตอร์ บัตรคิวก็มีเท่าจำนวน PSP ที่เหลือ ได้มาเบอร์ 740 มีบัตรแล้วก็อุ่นใจว่าคงได้เสียตังค์แน่ (เขาให้ซื้อได้คนละหนึ่งชุดเท่านั้น) ถ้าหมายเลขคือจำนวนเครื่องที่ขายได้ ก็แปลว่าเขาน่าจะขายไปแล้ว 740x2 = 1480 ชุด ? (คูณสองเพราะมีหมายเลขสองชุดสำหรับ ชุด VALUE PACK กับ ชุดธรรมดา และสมมติว่าขายได้พอๆกัน)
รอได้ห้านาทีฝนก็เทลงมา โห จะออกนอกแถวก็ไม่ได้ เขาบอกว่าถ้าออกนอกแถวบัตรคิวเป็นโมฆะ พวกที่ต่อคิวก็ทนกันหมด ไหนๆก็มาจนถึงนี่ รอจนถึงนี่แล้ว ไม่มีใครเดินออกไปไหน ใครมีร่มก็กาง ไม่มีร่มก็ตากฝน โชคดีคุณลุงข้างหลังเผื่อแผ่ร่มมาให้ ยังไม่เปียกมาก
ทางร้านคงรู้ สักพักก็เอาร่มพลาสติกมาเดินแจก :) ได้รับมาอันนึง เขาให้ยืมใช้ มีคนเก็บคืนหน้าเคาน์เตอร์
ประมาณ 9:40 เขาเริ่มประกาศว่าเหลือบัตรคิวเหลืออีกไม่กี่สิบใบ ใครอยากได้ให้รีบมาต่อแถว ได้ซื้อตอนประมาณ 10:00 เร็วกว่าที่คิด คือ รอไปประมาณ 40 นาที ไม่ถึงชั่วโมง
(หัวแถว)
แกะกล่อง
กล่องเล็กกว่าที่คิด แต่ตัวเครื่องหนากว่าที่คิดหน่อยนึง ชุด VALUE PACK ต่างจากชุดธรรมดาตรงมี หูฟัง+รีโมท, Memory Stick DUO, ซอง, สายร้อยข้อมือ มาให้ด้วย หม้อแปลงใช้ได้ทั่วโลก เปิดเครื่องขึ้นมาก็ถามว่าจะเอาเมนูภาษาญี่ปุ่นหรืออังกฤษ ซื้อกลับไปเล่นเมืองไทยได้สบายมาก
ลองตั้ง Wireless LAN ให้ต่อกับ AP ที่บ้าน SCAN ESSID เองได้ ต้องทำเองแค่ป้อนรหัส WEP ดูสถานะแล้วได้ IP Address ฯลฯ เรียบร้อย ในเครื่องไม่มี Browser อะไรมาให้แต่มีเมนู "Network Update" เอาไว้อัพเดท Firmware ตัวเองจากเน็ต
ลองดูแล้ว มันบอกว่าโปรแกรมใหม่ล่าสุดแล้ว
ดูหนัง เปิดรูป ฟังเพลง
เอาสาย USB ต่อกับคอมพิวเตอร์ จะมองเห็น MemoryStick ขึ้นมาเป็นไดรฟ์
คู่มือบอกให้โยนไฟล์รูปถ่ายไปไว้ที่โฟลเดอร์ PSP/PHOTO (ต้องสร้างเองก่อน)
และไฟล์ MP3 ไปไว้ที่ PSP/MUSIC ส่วน Video ต้องใช้โปรแกรม
Image Converter 2 (ต้องซื้อต่างหาก แต่ตอนนี้ยังไม่มีขาย กำหนดวางตลาดภายในเดือนนี้)
แปลงเป็น MPEG4 สำหรับมันก่อน
ตอนนี้ใต้เมนู "ดูหนัง เปิดรูป ฟังเพลง เกมส์" มีตัวให้เลือกว่าเอาข้อมูลมาจาก แผ่น UMD หรือ MEMORY STICK เท่านั้น น่าจะมี NETWORK ด้วย คือ เปิดไฟล์ที่แชร์ไว้บนคอมพิวเตอร์เครื่องอื่น จะได้ดูหนังผ่าน Wireless LAN ?
คู่มือบอกว่า ตัวเลือก "Memory Stick" ของ "เกมส์" นั้น เอาไว้รันโปรแกรมอัพเดทเกมส์ทั้งหลายที่ดาวน์โหลดมาจาก Network ซึ่งแปลว่าตัวเครื่องสามารถดาวน์โหลดโปรแกรมใส่ใน Memory Stick แล้วเรียกมาใช้งานได้ น่าจะมี SDK ออกมาให้เขียนโปรแกรมเล่นได้ด้วย
Saturday, December 11, 2004
พรุ่งนี้แล้ว PSP
มีคนรู้จักบอกว่าจะไปต่อแถวซื้อตั้งแต่หกโมงเช้า ! ความจริงตอนนี้(คืนวันที่ 11) ตามร้านใหญ่ๆน่าจะมีแถวแล้ว บางร้านบอกว่าจะเริ่มขายตอน 6:55 ! (17 สาขาของ BIC Camera)
คิดว่าตื่นคงออกไปดูๆเหมือนกัน ถ้าได้ก็ถือว่าโชคดี ไม่ได้วันแรกก็ไม่เป็นไร รอสั่งเอาอีกที
Friday, December 10, 2004
dist-upgrade แล้ว mono เจ๊ง
apg-get dist-upgrade เพราะรู้สึกไม่ได้ทำมานาน (ประมาณ 2 สัปดาห์;))
เผื่อทำแล้ว pladao จะอาการดีขึ้น
เจอบอกว่ามีให้ up ประมาณร้อยกว่าแพคเกจ ก็ปล่อยให้ทำไป ในนั้นมี mono ปรากฏอยู่ด้วย
ทำเสร็จทุกอย่าง พบว่าคำสั่ง mcs, mono หายไปแล้ว
สั่ง apt-get install mono อีกครั้ง ติดปัญหาว่า
The following packages have unmet dependencies:
mono: Depends: mono-jit (= 1.0.4-1) but it is not going to be installed or
mono-mint (= 1.0.4-1) but it is not going to be installed
Depends: mono-utils (= 1.0.4-1) but it is not going to be installed
Depends: mono-assemblies-arch but it is not going to be installed
ลองติดตั้งตัวที่ depend อยู่ด้วยมือ
# apt-get install mono-jit ... The following packages have unmet dependencies: mono-jit: Depends: mono-assemblies-base-1.0.4 but it is not installable E: Broken packagesตามด้วย
# apt-get install mono-assemblies-base
...
The following packages have unmet dependencies:
mono-assemblies-base: Depends: mono-jit (>= 1.0.1) but it is not going to be installed or
mono-mint (>= 1.0.1) but it is not going to be installed
E: Broken packages
อิงกันเป็นลูปแฮะ ลอง -f install ก็ไม่แตกต่างกัน
สงสัยแพคเกจกำลังปรับปรุง ฐานข้อมูลเลยเพี้ยนๆ ?
ลองสองตัวเลยก็แล้วกัน
# apt-get -f install mono-assemblies-base mono-jit The following packages have unmet dependencies: mono-jit: Depends: mono-assemblies-base-1.0.4 but it is not installable E: Broken packagesแปลว่า
mono-assemblies-base ไม่ใหม่พอ ?
แล้วจะใช้ mono ได้ยังไง ตอนนี้ ?
ดูเหมือน apt,
dpkg*,
dselect พวกนี้ ลึกล้ำเกินกว่าจะเข้าใจ
Wednesday, December 08, 2004
ลอง PladaoOffice 3.1 ไม่สำเร็จ
pladao-linux-3.1.tar.gz มา ขนาดประมาณ
85 570 599 ไบต์
จัดการติดตั้งโดยเรียก install ใน
pladao-linux-3.1 ที่แตกออกมาจาก pladao-linux-3.1.tar.gz
เสร็จแล้วก็เงียบหาย
ลองเลื่อนหน้าจอขึ้นไปดู
เจอข้อความ unpack file: /usr/local/OpenOffice.org1.1.1/program/...
อ้อ ไปอยู่ใน /usr/local/OpenOffice.org1.1.1 นี่เอง
ตกลงเลยเพิ่ม /usr/local/OpenOffice.org1.1.1/program
เข้าไปใน PATH
แล้วเรียกโปรแกรม soffice
เจอหน้าจอให้ Setup กันอีกรอบ !
สุดท้ายได้ Symbolic Link ของ soffice อีกอันหนึ่งใน
~/PladaoOffice3.1 ใต้โฮมตัวเอง
สงสัยที่ถูกต้อง ต้องเล่นจากตรงนี้ วุ่นวายไปแก้ PATH
ใหม่ เอา /usr/local/OpenOffice.org1.1.1/program ที่เพิ่งใส่เข้าไปออก
แล้วใส่ ~/PladaoOffice3.1 เข้าไปใหม่
ลองใช้โดยเรียก "soffice" ได้โลโก้ Pladao 3.1 สวยงาม :) แต่พอเปิดเอกสารใหม่ลองพิมพ์ภาษาไทยยาวๆ
เฮ้ย ทำไมไม่ตัดคำ !! ตัดกันระดับตัวอักษรเลย แถมขึ้นบรรทัดใหม่ล่วงหน้าเป็นวา ตั้งขอบย่อหน้าตรงประมาณเลข 8 แต่ไม่ถึงเลข 5 ก็ตัดแล้ว
เป็นงง สงสัยเครื่องเราจะมีอะไรไม่ครบ ไปอ่าน วิธีติดตั้ง ตรง "ความต้องการสำหรับ GNU/Linux" ดูๆแล้วน่าจะผ่านทุกข้อ Kernel ก็ 2.6, libc ก็ใช้ 2.3.2 เกินความต้องการ (2.1.3), libstdc++ ก็ 3.3.5 เกินความต้องการ (3.0), "ระบบภาษาไทย" เป็น Link ให้ไปอ่าน The Linux Thai-HOWTO มันกว้างเกินจนไม่รู้ว่าขาดอะไรไป
ยังงงอยู่ว่าเป็นอะไร เดี๋ยวล้างออกหมดแล้วลองใหม่ดีกว่า !
เพิ่มเติม
สงสัยว่าเป็นเพราะ เครื่องที่เล่น (KNOPPIX-TH) มี office-tle อยู่แล้วเกิดอาการทะเลาะกัน ก็เลยลบทิ้งทั้งหมดด้วยการ
dpkg -r office-tlerm -fr ~/OpenOffice....- และก็ลบปลาดาวตัวเดิมด้วย
rm -fr ~/PladaoOffice3.1และrm -fr /usr/local/OpenOffice.org1.1.1
setup
คราวนี้โปรแกรมทั้งหลายลงไปที่ ~/PladaoOffice3.1 เพียงแห่งเดียว
ลองเรียก soffice พบว่าเหมือนเดิม
ไม่ดีขึ้น ตัดคำขึ้นบรรทัดยังเพี้ยนๆอยู่
เลิกกลับไปใช้ Office-TLE เหมือนเดิมดีกว่า
Monday, December 06, 2004
TurboLinux Home สำหรับชาวบ้าน
หน้าตาอย่างกะเมนูในเกมส์ญี่ปุ่น แบ่งเป็นสามแถว เล่นเน็ต, กล้องดิจิตอล+กราฟิก, อื่นๆ (ดูหนัง, Office) สนนราคา 16,590 Yen ! ไม่ถูกเลย คงเพราะแถม Commercial Software ตัวดัง เช่น 筆ぐるめ (ทำโปสการ์ดอวยพร) และ ATOK for Linux (ป้อนข้อมูลภาษาญี่ปุ่น) มาให้ด้วย
และก็ยังมีโปรแกรมตระกูล Turbo* เช่น Turbo Media Player ซึ่งบอกว่ามีการ License เทคโนโลยีจากไมโครซอฟท์ (เอาไว้เล่นไฟล์ .wm* ?), และ Turbo Update ไว้อัพเดทตัวเองโดยอัตโนมัติ
นอกนั้นก็รวมโปรแกรมที่เคยเห็นทั่วๆไป เช่น RealPlayer, Mozilla, Gimp, digikam, K3b, OpenOffice, Acrobat Reader, gtkpod, Image Scan! for Linux
อีกหน่อยอาจจะมี LinuxTLE-บ้าน อะไรทำนองนี้ก็ได้ :)
Sunday, December 05, 2004
ข่าวดี Good News of the Year
"ชมรมคนรู้ทัน"ชี้คดี"ซุกหุ้น"แผลงฤทธิ์"แม้ว"อาจโดนถอด!
โดย ผู้จัดการออนไลน์ 4 ธันวาคม 2547 23:23 น.
จะดียิ่งขึ้นหากมีการนำไปขยายผลต่อจริง
Friday, December 03, 2004
ใช้ transcode แปลงวิดีโอ
สรุปว่าลอง transcode ก็แล้วกัน
apt-get transcode ไม่ได้
ไม่เจอ transcode อะไรเลย
เริ่มจะรู้สึกว่า Debian ไม่สะดวกอย่างที่คิด
โต้งบอกว่า Debian มันเอาแพคเกจที่ติดปัญหา License ฯลฯ ทั้งหลายออกไป
ทำให้ตอนนี้แกเองเปลี่ยนมาใช้ Gentoo แทนแล้ว
สรุปว่าต้องไปเอา Source มาคอมไพล์เอง
ซึ่งก็ไม่ยากอะไร แต่สุดท้ายทำไปสองรอบ รอบแรกคอมไพล์แล้วยังเปิดไฟล์ MPEG2 ไม่ได้
มันบอกว่าต้องการ libLAME-dev ซึ่ง apt-get ไม่ได้เหมือนกัน
ต้องเอา Source มาคอมไพล์เอง
** อุตส่าห์ใช้ Debian แล้วยังต้องเอา Source มาคอมไพล์เอง **
transcode มีตัวเลือกมากไปหน่อย กว่าจะเข้าที่เข้าทางต้องลองหลายรอบ สรุปว่าสำหรับรายการวิดีโอ (720x480 MPEG2) ที่อัดไว้ที่บ้านมากมายนั้น สามารถแปลงเป็น DIVX แล้วยังได้คุณภาพที่พอดูได้ด้วยคำสั่ง
transcode -b 96 -w 900 -Z 640x480,fast -V -i 'file.mpg' -o 'file.avi'
-x mpeg2 -y ffmpeg -F mpeg4
โดยที่ -b 96 คือ bandwidth ของเสียง,
-w 900 คือ bandwidth ของภาพ,
-Z 640x480,fast คือสัดส่วนภาพที่ต้องการ ใช้วิธีการย่อภาพแบบรวดเร็ว (fast),
-V ทำงานใน YUV Domain ไม่งั้นจะแปลงเป็น RGB ก่อนแล้วแปลงกลับ
เท่าที่ทดลองถ้าไม่มี -V มันไม่ใช่ช้าลงอย่างเดียว แต่สีจะเพี้ยนและภาพตีลังกาอีกด้วย,
-i 'file.mpg' -o 'file.avi' คือ ชื่อไฟล์เข้าออก,
-x mpeg2 คือ ฟอร์แมตไฟล์ต้นทาง,
-y ffmpeg คือ ฟอร์แมตไฟล์ปลายทาง
ในที่นี้ระบุให้ใช้โมดูล ffmpeg ทำให้ต้องกำหนดฟอร์แมตจริงๆเป็นตัวเลือกไปให้ ffmpeg
อีกทีด้วย -F mpeg4
ความจริง -y ffmpeg กับ -F mpeg4
สามารถแทนได้ด้วย -y divx5 อันเดียว
แต่ลองดูแล้วมันต้องการ .so ของ DIVX5
ไปดาวน์โหลดมาจาก divx.com แล้วเจอบ่นว่าคนละเวอร์ชั่น
เรื่องมากก็เลยใช้ของ ffmpeg แทน
ถ้าอยากทำ Two-Pass Encoding ก็ใช้คำสั่ง
transcode -b 96 -w 900 -Z 640x480,fast -V -i file.mpg -o /dev/null
-x mpeg2,null -y ffmpeg,null -F mpeg4 -R 1
transcode -b 96 -w 900 -Z 640x480,fast -V -i file.mpg -o file.avi
-x mpeg2 -y ffmpeg -F mpeg4 -R 2
รอบแรกทำเพื่อเก็บข้อมูล เลยไม่ต้องกำหนดไฟล์ขาออก (/dev/null ไปเลย)
และไม่ต้องทำการแปลงเสียง (,null ในส่วนของ -x, -y)
ในรอบแรก(-R 1)จะได้ไฟล์ divx4.log ออกมา ซึ่งจะถูกใช้ในรอบสอง(-R 2)
Thursday, December 02, 2004
Driver(s) for Samurai from Intel
วันนี้ลองดูอีกที เริ่มต้นจากหน้าของผู้ผลิต MoBo เขาบอกว่า Samurai ใช้ระบบเสียงของ C-Media CMI9880 8-channel audio CODEC ซึ่งเขาบอกด้วยว่า Compliant with Intel Azalia Specification (Intel High Definition Audio Specification)
งั้นลองไปหาที่ INTEL ดูก็แล้วกัน โชคดีเจอ Driver คล้ายๆกันสำหรับ MotherBoard ของ INTEL มีสำหรับ Audio และ Graphics (X11) ด้วย :)
Drivers: Intel® Desktop Board D915GEV
ลองติดตั้ง Integrated Audio Driver ได้มาเป็น Source Code ตัว Script ที่ INTEL ให้มาจัดการแตกไฟล์ แล้วคอมไพล์เข้ากับ Kernel ให้เลย สุดท้ายบอกว่า
อาจจะใช้ได้ ? ดูใน /var/log/messages ก็เหมือนมีการโหลดไดรเวอร์
เดี๋ยวกลับถึงบ้านคงรู้ ตอนนี้คอมไพล์ & ติดตั้งผ่าน ssh ทดลองไปก็ไม่ได้ยินอะไร
น่าจะซื้อ MoBo ของ INTEL ซะตั้งแต่แรก !
เพิ่มเติม
ลองแล้วย้งไม่สำเร็จเท่าไรแต่พอได้ยินเสียงบ้าง
ทีแรก amixer ไม่ทำงาน
เรียก alsamixer Kernel ก็เดี้ยงไปเลย
ต้องซ่อมโดยเรียก alsa_snddevices ให้มันสร้าง /dev/*
ให้เรียบร้อย จากนั้นก็ใช้ Mixer ได้
# amixer Simple mixer control 'Master',0 Capabilities: pvolume pswitch pswitch-joined Playback channels: Front Left - Front Right Limits: Playback 0 - 64 Front Left: Playback 64 [100%] [on] Front Right: Playback 64 [100%] [on] Simple mixer control 'Capture',0 Capabilities: cvolume Capture channels: Front Left - Front Right Limits: Capture 0 - 35 Front Left: Capture 0 [0%] Front Right: Capture 0 [0%]ตรงตามที่ INTEL เขียนไว้ใน README คือ ยังใช้ได้แค่ 2 CH จากทั้งหมด 8! และเปิดเพลงฟังด้วยบางโปรแกรม เสียงจะขัดๆ เขาบอกให้เปลี่ยนโปรแกรม ตอนนี้มีแค่ "play" ของ SOX ไม่รู้จะลองด้วยโปรแกรมอะไรอีก
ส่วน MIDI ดูเหมือนจะยังใช้ไม่ได้
# amidi -l Device Name cannot determine device number: Inappropriate ioctl for device
สารบัญ Table of Contents ของ Blog นี้
แบ่งกลุ่ม
ไม่แบ่งกลุ่ม
←←← เปิดสารบัญนี้ได้ทุกเมื่อ จากเมนูข้างซ้าย ←←←
อ่าน GMail ผ่าน Atom Feed
https://gmail.google.com/gmail/feed/atom
แล้วก็กรอก Login/Password ของ GMail
