Friday, December 31, 2004

ซ่อม RAID-1 บน Samurai

Samurai มี HD สองตัวมองเห็นเป็น /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 อีกเป็นปี

ดูข่าวทีวี เขาบอกว่าแผ่นดินไหวที่เพิ่งเกิดไปนี้ มีความน่าจะเป็นที่จะเกิด AfterShock ที่รุนแรงต่ำกว่าเดิม 1-1.5 (คือ ประมาณ 7-8) ได้อีกครั้งภายใน 6-12 เดือน เขายกตัวอย่างมีแผ่นดินไหวใหญ่ครั้งหนึ่งในญี่ปุ่นที่มี AfterShock ตามมาเมื่อเวลาผ่านไป 2 เดือน

เขาบอกด้วยว่า โดยเฉลี่ย Tsunami จะเกิดเมื่อแผ่นดินไหวมีขนาดมากกว่า 6.3 ดังนั้น ถ้า AfterShock ขนาดประมาณ 7-8 มีมาจริงๆ โอกาสที่ Tsunami จะมาอีกภายในระยะเวลาดังกล่าว ก็ยังมี

ไปเจอข่าวบนเว็บเขียนทำนองเดียวกัน ว่าให้คอยระวังอีกเป็นปี คงต้องบอกคนใกล้ตัวให้ระวังอย่าไปแถวนั้นภายใน 1-2 ปีนี้ ภูเก็ตคงเงียบเหงาไปอีกพักใหญ่

地球3周の地震波を観測、長野で気象庁 スマトラ沖地震

ในข่าวนี้บอกด้วยว่า คลื่นแผ่นดินไหวครั้งนี้ใหญ่มาก เครื่องวัดความไวสูงที่เมือง Nagano ยังสามารถวัดคลื่นที่เดินทางรอบโลกไปแล้วได้สามครั้ง ครั้งแรกหลังเกิดใหม่ๆเวลา 10:20 ครั้งที่สองหลังจากวนโลกมาแล้ว 1 รอบ 12:55 และครั้งที่สามหลังจากวนโลกมาแล้วอีกรอบ 15:30

Monday, December 27, 2004

Mac/Win Keyboard Symbols

กำลังจะเขียน Blog เกี่ยวกับ Mac หาทางพิมพ์รูปปุ่ม Command (Apple)

ดูเหมือนจะทำได้โดยกำหนดฟอนต์ Wingdings เช่น

z ÿ

ลองแล้ว ดูได้ทั้งบน Mac (Safari) และ Windows (IE) โดยไม่ต้องทำอะไรเองเพิ่มเติม คือ เห็นเป็นเหมือนรูปข้างล่างนี้ (ยังไม่ได้ลองบน Linux)

แต่หากเปิดด้วย Firefox จะเละตุ้มเป๊ะ คือ

  • บน Firefox/Windows ไม่เห็นสักอัน
  • บน Firefox/Mac เครื่องหมายรูป Command ยังดีอยู่ แต่รูปหน้าต่าง Windows กลายเป็นหัวลูกศรสามเหลี่ยม
หรือว่าเลิกใช้ Firefox ไปเลยดีกว่า ? ตัดคำก็หาตัดไม่

เพิ่มเติม

เพิ่งลองบน 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

วันก่อนสมัคร Safari Bookshelf ไป ยังรู้สึกว่าไม่ค่อยได้เข้าไปอ่านหรือใช้บริการเท่าไร กำลังคิดว่าจะเลิกดีหรือเปล่า

วันนี้สมาชิกในแล็บ เพิ่งไปสมัครบริการคล้ายๆกัน ชื่อ Questia แต่เน้นหนังสือและสิ่งพิมพ์ในวงการศึกษามากกว่า เช่น มีหนังสือของ MIT Press, Academic Press, ฯลฯ เห็นว่าปีละประมาณ US$100

เทียบกับ Safari แล้วราคาพอๆกัน แต่ดีกว่า Safari หน่อยตรงไม่จำกัดจำนวนหนังสือที่เปิดอ่านได้พร้อมๆกัน ณ เวลาหนึ่ง (Safari มันจะมี หิ้งหนังสือจำลอง เปิดอ่านได้เฉพาะหนังสือบนหิ้ง หนังสือที่อยู่บนหิ้งต้องอยู่บนนั้นสักพักนึงก่อนที่จะเอาลงมา แล้วใส่เล่มใหม่ขึ้นไปแทนได้)

Questia - The Online Library of Books and Journals

ย้ายตำแหน่ง META ... charset ... ของ BLOG

ปกติจะทำ Bookmark หน้าสารบัญของ 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

PiBench เป็นโปรแกรมที่เขียนขึ้นมาเล่นๆเพื่อทดสอบความเร็วในการคำนวณเลขทศนิยม (Floating Point) บนเครื่องต่างๆในแลบเมื่อหลายปีก่อน

ตั้งใจให้เป็นลูปเล็กๆ คอมไพล์แล้วทั้งโปรแกรมจะได้อยู่ใน 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 cc can 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 อืด

ต่อจาก: เหตุผลข้อ 1

สมมติว่ามีไฟล์ 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

HDBench เป็นโปรแกรม Benchmark ที่วารสารญี่ปุ่นเคยชอบใช้ ขนาดเล็กดี ไม่ต้องติดตั้งวุ่นวาย Unzip ออกมาก็รันได้เลย

วันนี้เอาไปลองรันบน Windows XP บน Virtual PC บน PowerBook G4-1.33 ได้ผลดังนี้

ตัวเลขไม่เลวทีเดียว คงดูสวยเฉพาะกับโปรแกรม Benchmark วนลูปเล็กๆพวกนี้แหละ คาดว่าถ้าเจอโปรแกรมโตๆ น่าจะแย่ลงเยอะแบบเดียวกับ Crusoe

เอาผลนี้ไปรวมกับ ผล HDBench บนเครื่องต่างๆ ที่เคยเก็บสะสมไว้แล้ว จะได้เปรียบเทียบได้สะดวก

Wednesday, December 22, 2004

SoftEther 2 Beta 1 ออกแล้ว

อยู่นี่: SoftEther VPN 2.0 ベータ版

เขาบอกว่าเร็วขึ้นกว่าเดิม ประมาณเกือบ 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 ข้อมูลไปให้เว็บเซิร์ฟเวอร์โดยใช้คลาส HttpURLConnection คลาสนี้จะทำการเก็บข้อมูลทั้งหมดใส่ Buffer เอาไว้ก่อน ไม่ Post ออกไปทันทีเลย ทำนองต้องรู้ก่อนว่าขนาดข้อมูลมีเท่าไร จะได้เขียน "Content-Length" ตรงหัวได้ถูกต้อง

ปัญหาคือเมื่อ 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"

วันนี้นัดประชุมอาจารย์แกเบี้ยว ไม่มาร่วมประชุม ปล่อยให้นั่งคุยกับคนจากบริษัทกันสองต่อสอง ประชุมเสร็จ เดินแวะไปหา Otto เห็นกำลังเดือดดาลกับที่เขาคุยกันเรื่อง GPL/Microsoft อยู่

โดนทักมาว่าไปเขียน 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 เริ่มวิ่งได้แล้ว

เมื่อวานเห็นในข่าวทีวี หุ่นเดินสองขาของ HONDA ชื่อ ASIMO เริ่มวิ่งได้แล้ว (Video)

คำว่า "วิ่ง" หมายความว่า มีจังหวะหนึ่ง (0.05 วินาที) ที่ไม่มีเท้าใดแตะพื้น ความเร็วสูงสุดที่ทำได้ตอนนี้ คือ 3 กม./ชม. คาบการก้าวเท้า 0.36 วินาที พอๆกับคนวิ่งจ๊อกกิ้ง

ก่อนหน้านี้ หุ่น QRIO ของ SONY เคยวิ่งได้มาก่อนแล้ว ยังสงสัยว่าทำไมเมื่อวานในทีวีบอกว่ารายแรกในโลก

Wednesday, December 15, 2004

ลอง WebDAV กับ Apache

กำลังเซ็งกับการที่ต้องรับส่งไฟล์ระหว่าง Windows กับ Linux บ่อยๆ ถ้าเป็นเครื่องใกล้ตัวก็เปิด Samba เอา แต่ถ้าไกลหน่อย ที่ผ่านมาก็ใช้ sftp, scp ฯลฯ เพราะพอร์ตของ Samba มักจะถูกบล็อคเอาไว้ มีแค่ 22 (SSH), 80 (HTTP), 443 (HTTPs) เท่านั้นที่มักจะเปิดให้ใช้กันได้

อีกอย่างไม่อยากเปิด 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 โกงหรือเปล่า ?

Deep Blue สร้างประวัติศาสตร์เล่นหมากรุกชนะ Garry Kasparov ในปี 1997

มีภาพยนต์ออกมา Game Over: Kasparov and the Machine ว่า เบื้องหลัง Deep Blue อาจจะมี "มนุษย์" คอยช่วยเล่นอยู่ ?

ถ้ามีโอกาสคงต้องหามาดูสักหน่อย

Tuesday, December 14, 2004

MSN Toolbar Suite With Desktop Search คู่แข่ง Google Desktop

Microsoft ส่งออกมาแล้ว คู่แข่ง Google Desktop

Microsoft Introduces MSN Toolbar Suite Beta With Desktop Search

MSN Toolbar Suite

Image Converter 2 มีขายแล้ว 1000 เยน

เมื่อวานใช้โปรแกรมฟรี ลองแปลงไฟล์วิดีโอสำหรับ PSP แล้ว เปิดดูได้ ไม่แน่ใจว่า Image Converter 2 จาก SONY เอง จะให้คุณภาพดีกว่าหรือเปล่า เห็นขายอยู่ 1000 เยน ตอนนี้ยังเป็นรุ่น Preview รุ่นจริงออกเมื่อไรเขาบอกว่าอัพได้ฟรี

Image Converter 2 が販売開始

อาจต้องอดข้าวเที่ยงสักมื้อ ไปซื้อมาลองเปรียบเทียบดู

Monday, December 13, 2004

ไปดูเขาชำแหละ PSP

หมดจดทุกชิ้นส่วน

PSPハードウェアレポート

Create Video file for PSP

ไปเจอวิธีแปลงไฟล์วิดีโอสำหรับ PSP โดยไม่ต้องใช้ Image Converter 2 (ที่ยังไม่มีวางขาย มีแถมมากับ CLIE VZ90) ของ SONY

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

เมื่อคืนดูเว็บร้านใกล้บ้าน เขาบอกว่าจะเริ่มขาย 6 โมงเช้า ! คิดว่าคงไม่ไปเช้าขนาดนั้น แต่ก็ยังลังเลเล็กน้อย

รู้สึกตัว 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

พรุ่งนี้ 12/12 กำหนดขาย SONY PSP

มีคนรู้จักบอกว่าจะไปต่อแถวซื้อตั้งแต่หกโมงเช้า ! ความจริงตอนนี้(คืนวันที่ 11) ตามร้านใหญ่ๆน่าจะมีแถวแล้ว บางร้านบอกว่าจะเริ่มขายตอน 6:55 ! (17 สาขาของ BIC Camera)

ビックカメラ、PSPを12月12日6時55分から販売開始

คิดว่าตื่นคงออกไปดูๆเหมือนกัน ถ้าได้ก็ถือว่าโชคดี ไม่ได้วันแรกก็ไม่เป็นไร รอสั่งเอาอีกที

Friday, December 10, 2004

dist-upgrade แล้ว mono เจ๊ง

บน Samurai ลองทำ 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 ไม่สำเร็จ

ไปเห็นมาจาก bact' Blog ว่า "ปลาดาว ออฟฟิศ ๓.๑" ออกแล้ว ก็เลยไปดาวน์โหลดรุ่นสำหรับ Linux มาลองดู ได้ไฟล์ 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-tle
  • rm -fr ~/OpenOffice....
  • และก็ลบปลาดาวตัวเดิมด้วย rm -fr ~/PladaoOffice3.1 และ rm -fr /usr/local/OpenOffice.org1.1.1
แล้วก็ติดตั้งใหม่จาก tgz โดยเรียก setup คราวนี้โปรแกรมทั้งหลายลงไปที่ ~/PladaoOffice3.1 เพียงแห่งเดียว

ลองเรียก soffice พบว่าเหมือนเดิม ไม่ดีขึ้น ตัดคำขึ้นบรรทัดยังเพี้ยนๆอยู่

เลิกกลับไปใช้ Office-TLE เหมือนเดิมดีกว่า

Monday, December 06, 2004

TurboLinux Home สำหรับชาวบ้าน

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

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 แปลงวิดีโอ

วันก่อนถามโต้งว่าใช้โปรแกรมอะไรแปลง MPEG2 เป็น DIVX แกแนะนำให้ใช้ ffmpeg แต่แนะนำเพิ่มว่า ได้ยินมาว่า 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

วันอาทิตย์ที่ผ่านมา เซียน Linux สองคน (Otto & Poonlap) มาที่บ้าน พยายามจะช่วยให้ Samurai หายเป็นไบ้ ลองอยู่สักพัก แต่ก็ยังไม่สำเร็จอยู่ดี แปลว่าใน Kernel คงยังไม่มี Driver ค่อนข้างแน่นอน ต้องไปหามาลงเอง

วันนี้ลองดูอีกที เริ่มต้นจากหน้าของผู้ผลิต 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 นี้

เขียน BLOG มานานเหมือนกัน เปิดย้อนดูเริ่มรู้สึกว่าหาเรื่องเก่าๆลำบากชะมัด ไปฝาก Samurai ให้ทำสารบัญให้หน่อย วันละครั้ง

แบ่งกลุ่ม

ไม่แบ่งกลุ่ม

←←← เปิดสารบัญนี้ได้ทุกเมื่อ จากเมนูข้างซ้าย ←←←

อ่าน GMail ผ่าน Atom Feed

ใช้โปรแกรมพวก RSS/Atom Reader ทั้งหลายก็อ่าน GMail ได้แล้ว :) เพียงแต่ตั้ง URL ไปที่

https://gmail.google.com/gmail/feed/atom

แล้วก็กรอก Login/Password ของ GMail