Friday, July 30, 2004

ไปดูงาน e-Learning World 2004

บ่ายวันศุกร์ที่ผ่านมาไปดูงาน e-Learning World 2004: Expo and Forum ที่ Tokyo Big Sight ประชุมเสร็จบ่ายสอง บึ่ง(เดิน+วิ่ง)ออกจากออฟฟิส นั่งรถไฟสามสาย ไปถึงงานประมาณ 15:10 พอดี มีเวลาดูประมาณชั่วโมงกว่าก่อนงานเลิกห้าโมงเย็น

ทีแรกตั้งใจจะไปดูว่า มีผลิตภัณฑ์อะไรใหม่ในวงการ e-Learning บ้าง โดยเฉพาะอย่างยิ่งพวก Authoring Tools หรือโปรแกรมช่วยสร้างเนื้อหาสำหรับ e-Learning เข้างานก็มองหาบูธของสองยักษ์ใหญ่ในวงการ WebCT กับ BlackBoard ก่อนเลย

ปราฏกว่าสองรายนี้ตัวแทนจำหน่ายออกบูธเล็กนิดเดียว (คงเป็นหน่วยเล็กที่สุดที่จะเช่าพื้นที่ได้แล้วมั้ง) เน้น e-Learning ทั้งระบบ พวกจัดการคอร์ส หลักสูตร เว็บบอร์ด ฯลฯ ไม่ค่อยเน้นตรงการสร้าง Content/เนื้อหาสักเท่าไร บอกแต่ว่า ใช้โปรแกรมอื่นทำเนื้อหามา เรารับแบบนี้ แบบนี้ แบบนี้ (ส่วนมากก็ HTML, Flash, SCORM, etc)

วิดีโอประกอบสไลด์ก็ Link ไป Streaming Server อื่นต่างหากเอาดื้อๆเลย หรือ PowerPoint ก็ใช้โปรแกรมแปลงเป็น Flash ก่อนค่อยใส่เข้าไปในระบบ ฯลฯ

ผิดหวังจากยักษ์ใหญ่แต่บูธเล็ก เดินไปดูบูธใหญ่ๆบ้างดีกว่า ส่วนมากก็เป็นบริษัทใหญ่ๆของญี่ปุ่น NTT/Fujitsu/HITACHI/etc มาขายบริการ เน้นการอบรมในองค์กรมากกว่า ที่น่าสนใจก็มี

LiveCreator

โปรแกรมนี้ดูเหมือนจะตรงกับที่อยากมาดูที่สุดแล้ว เน้นการสร้างเนื้อหาสำหรับการเรียนการสอน Online จากข้อมูลที่มีอยู่ จะมีเป็นวิดีโอ WMV, RealVideo, MPEG หรือสไลด์ PPT, รูปภาพ ฯลฯ มันดึงเข้ามาได้หมด

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

ทำเสร็จก็ Export ออกมาได้สารพัดรูปแบบอีกเหมือนกัน เป็นวิดีโอไฟล์เดียวไปเลย หรือเป็น DHTML ที่โต้ตอบกับผู้เรียนได้ หรือเป็น Flash ฯลฯ ก็ได้อีก

ตัวโปรแกรมรันเฉพาะบน Windows แต่เนื้อหาที่สร้างออกมาเป็น Platform Independent หรือเปล่าก็ขึ้นอยู่กับว่า เราจะเลือกให้มัน Export ออกมาเป็นอะไร

SoftSimulator

บูธนี้ทีแรกเดินผ่านไม่ได้ตั้งใจจะไปดู พอดีเก้าอี้ว่างก็เลยไปนั่งพัก หยิบเอกสารขึ้นมาดูน่าสนใจดีแฮะ ก็เลยนั่งฟังจนจบ เจ๋งมากเลยทีเดียว

SoftSimulator เป็นโปรแกรมสำหรับทำ คู่มือ การสอน แบบฝึกหัด วิธีการใช้งานโปรแกรมคอมพิวเตอร์ การใช้งานโปรแกรมก็คล้ายๆกับการ Capture หน้าจอโปรแกรมด้วย Camstasia แต่ที่เด็ดกว่าคือ

Camstasia จะเก็บหน้าจอโปรแกรมไปเรื่อยๆเป็นไฟล์วิดีโอ เหมือนอัดวิดีโอ แต่ SoftSimulator จะเก็บ Event ต่างๆที่ผู้ใข้โต้ตอบกับโปรแกรม เช่น คลิกตรงนี้ พิมพ์อักษรนี้ ฯลฯ ควบคู่กับถ่ายภาพจอโปรแกรมที่มีการเปลี่ยนแปลงหลัง Event เหล่านั้น

ถ้าเอา Event กับภาพมาฉายซ้ำทีหลัง มันก็ไม่มีอะไรแตกต่างกันมาก แต่ SoftSimulator ดีกว่าตรงที่แสดงกรอบชี้กำกับได้โดยอัตโนมัติด้วยว่า "ตรงนี้ให้กรอกข้อความ ..." หรือ "กรุณาคลิกตรงนี้..." แทนที่จะฉายวิดีโอเฉยๆ

และเนื่องจาก SoftSimulator มีข้อมูลว่าผู้ใช้ทำอะไรไปบ้างอยู่ด้วย จึงนำข้อมูลนี้มาทำเป็นคู่มือ เช่น .doc ได้เลย โดยจะแสดงลำดับชัดเจนว่าทำอะไรบ้าง ตัวอย่างเอกสารคู่มือที่โปรแกรมสร้างออกมาได้โดยอัตโนมัติก็ทำนองนี้

  1. กดปุ่ม [... ] (ภาพปุ่มถูกตัดมาแปะเอง)
  2. พิมพ์ข้อความ "abcd" ในช่อง (แสดงภาพหน้าจอโปรแกรม พร้อมลูกศรชี้ไปที่ช่อง)
  3. คลิกที่ (ภาพหน้าจอ พร้อมแสดงตำแหน่งคลิก)
  4. ...
ใช้งานง่ายดายมาก แค่ใช้โปรแกรมที่เราจะทำคู่มือ ให้ SoftSimulator ดูทีเดียว มันทำเป็นคู่มือสรุปให้หมดว่าทำอะไรไปบ้าง และเกิดอะไรขึ้น เป็นลำดับขั้น นอกจาก export เป็น .doc แล้ว ยังทำเป็น Flash, SCORM, DHTML ฯลฯ ได้ด้วย (เอาไว้ฉายให้ผู้ใช้ดู)

นอกจากนี้ ยังทำ DHTML สำหรับ "สอน" ให้ผู้ใช้ทำตามได้อีก คือ แสดงภาพหน้าจอโปรแกรมที่เก็บมา แล้วขึ้นข้อความ "ขั้นที่ 1 กดปุ่มนี้ (ลูกศรชี้)" แล้วรอให้ผู้ใช้กด

พอผู้ใช้กดปุ่ม ก็ขึ้น "ขั้นที่ 2 พิมพ์ข้อความ "abcd" ตรงนี้ (ลูกศรชี้)"

....

ถ้าผู้ใช้ทำผิด ก็บอกว่า ที่ถูกคือ ...

สอนได้โดยใช้เฉพาะภาพกับข้อมูล Event ที่เก็บมา ผู้เรียนไม่ต้องติดตั้งโปรแกรมบนเครื่องตัวเอง เรียนทาง Web Browser ก็ได้

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

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

เขาบอกว่า 80% ของบริษัทใน Fortune 500 ใช้โปรแกรมนี้ สำหรับทำระบบเทรนพนักงานให้ใช้โปรแกรมของบริษัท ฯลฯ

ดูเสร็จบอกได้คำเดียว มันเจ๋งจริงๆ ไอเดียง่ายๆแต่มีประโยชน์เยอะ คนที่เคยนั่งทำคู่มือวิธีใช้โปรแกรมคงรู้ว่า การนั่ง Capture หน้าจอมาแล้วเขียน HTML กำกับมันน่าเบื่อขนาดไหน นี่แทบไม่ต้องทำอะไรมาก ได้ออกมาทั้งคู่มือและแบบฝึกหัด ที่บริษัทนี้เน้นมากคือ แบบฝึกหัด (Simulator) ช่วยให้ผู้เรียนเข้าใจได้มากกว่า คู่มือ เขาอ้างตัวเลขประสิทธิภาพในการเรียนรู้

ฟังบรรยาย 5%, ดูสาธิต 20%, ได้ทำแบบฝึกหัดเอง (Simulator) 75% !

KNOPPIX Edu 2.1

ในงานเจอบริษัทรับ Customize KNOPPIX ตามที่ลูกค้าต้องการ เอาแผ่น CD KNOPPIX Edu มาแจก

เป็น Knoppix ที่เน้นโปรแกรมสำหรับการเรียนการสอนในมหาลัย มีโปรแกรมพวก OpenOffice/xmaxima/MatX/gnuplot/KStars/C/Java/Basic/Fortran/CAD/Spice/etc (ดูรายการเต็มได้บนเว็บ)

ก็เลยได้ KNOPPIX ญี่ปุ่นฟรีมาหนึ่งแผ่น

Thursday, July 29, 2004

ค้น Safari จาก Eclipse

เห็นมี Plugin เพื่อค้นเนื้อหา Safari โดยตรงจาก Eclipse ออกมา

New Eclipse Safari Search Plug-in Now Available

safarieclipse

อีกอัน ไม่เกี่ยวกับ Plugin แต่เป็นบทความเกี่ยวกับความสำเร็จของ Safari ?

EContent: Safari Bucks Industry Ebook Trend

Wednesday, July 28, 2004

ยำยำ มาญี่ปุ่น

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

มีสองรส ราคาเท่าๆกัน คือ ซองละ 30 เยน, 4 ซอง 100 เยน

Biopolis ของสิงคโปร์

อ่านข่าว Wired 12.08: Singapore Wants You! เกี่ยวกับโครงการ Biopolis ของสิงคโปร์แล้วใจหาย โหลงทุนอะไรกันขนาดนั้น เพิ่งรู้ว่านักวิทยาศาสตร์ที่โคลนแกะได้ ย้ายไปอยู่สิงคโปร์เรียบร้อยแล้ว

เกมส์จับคู่

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

ปรากฏว่าเป็นเกมส์จับคู่ หน้าตาแบบนี้ เขาบอกว่ากำลังฮิตมากที่ออฟฟิส เล่นกับแทบทุกโต๊ะ

ลองเล่นดูแล้วเกมส์มันตายทุกครั้งที่เพลงแบคกราวด์จบ ทดลองปิดเพลงก็เล่นได้เรื่อยๆ ตกลงปัญหาเป็นที่เพลง พยายามลองเปิดเวบของเกมส์ เผื่อจะมีรุ่นใหม่แก้ Bug ออกมาแล้ว (ดู URL ในเมนู) http://home.kimo.com.tw/cps_chen/ ก็ปรากฏว่าเพจหายไปแล้ว ตกลงก็เล่นโดยไม่มีเสียงไปก็แล้วกัน

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

มีจำกัดเวลาไว้ ถ้าเล่นไม่ทันก็ตาย

เอาเข้าจริงๆตาลายมาก เล่นไปเล่นมา แพ้คนข้างๆทุกที (ข้อแก้ตัวคือจอมันเล็กกว่า)

แพ้หลายครั้งเข้าก็เกิดไอเดียทำโปรแกรมให้มันเล่นเองดีกว่า

  • เริ่มต้นจากหาทาง Capture หน้าจอของโปรแกรม ไปเจอโปรแกรมตัวอย่าง Window Finder รันแล้วลากไอคอนรูป "เป้ายิง" ไปวางบนหน้าต่างที่ต้องการจับ ข้อมูลหน้าต่างก็จะถูกจับมาไว้ใน Clipboard

    ลองๆกับโปรแกรมเกมส์จับคู่แล้ว มันจับได้จริง หน้าจอมาอยู่ใน Clipboard จริง เหมือนกด Alt+PrtSc เลย

  • จะให้ลาก "เป้ายิง" ไปหาโปรแกรมทุกครั้งที่เริ่มใช้ก็ลำบากมากเกินไป ควรแก้ให้มันหา Window ของเกมส์จับคู่ได้เอง ผลจากโปรแกรม WindowFinder บอกว่าโปรแกรมจับคู่นี้ใช้หน้าต่างชื่อ ThunderRT5Form/ThunderRT5PictureBox เลยแก้โค๊ดให้โปรแกรมหาหน้าต่างนี้เอง ดังนี้
    if(!g_hwndFoundWindow) {
     if(gwnd = FindWindow("ThunderRT5Form", NULL)) { 
      if(g_hwndFoundWindow = FindWindowEx(gwnd, NULL, 
         "ThunderRT5PictureBox", NULL)) 
       g_hwndFoundWindow = GetWindow(g_hwndFoundWindow, 
         GW_HWNDLAST);
       ...
    

  • ขั้นต่อมาก็ไปแก้ตรงก๊อปปี้ข้อมูลใส่ Clipboard ให้ไปเรียกฟังก์ชั่นหาคู่ที่เตรียมไว้แทน การหาคู่ก็ทำง่ายๆ เป็น depth-first-search เริ่มจากเบี้ยตัวหนึ่งลากเส้นตรงไปดูว่าเจอเบี้ยหน้าตาเหมือนกันหรือเปล่า ยอมให้เลี้ยวได้ 2 ครั้ง (recursive) ความลึกไม่เกิน 2 ทำหมดทั้งกระดานก็แป้บเดียวเสร็จ

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

    ปัญหาคือเกมส์นี้มันมี Background เล่นไล่ระดับสี เบี้ยรูปเหมือนกันแต่อยู่คนละตำแหน่ง คำนวน Hash ออกมาไม่ตรงกัน สีตรง Background มันต่างกันหน่อย ต้องปรับแต่งวิธีคำนวนค่า Hash อยู่พักนึง

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

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

  • รุ่นแรก ให้โปรแกรมแสดงคู่ที่หาได้ บนจอ แล้วคนเล่นก็เล่นต่อเอง

  • รุ่นต่อๆมาเพิ่มปุ่ม AUTO ให้มันส่ง Message การกด Mouse ไปให้โปรแกรมด้วย จะได้เล่นเองเลยเรื่อยๆจนจบกระดาน
    SendMessage(g_hwndFoundWindow, WM_MOUSEMOVE, 
                0, offX+x*40+20+((offY+y*50+25)<<16));
    ::Sleep(50);
    
    SendMessage(g_hwndFoundWindow, WM_LBUTTONDOWN, 
                0, offX+x*40+20+((offY+y*50+25)<<16));
    ::Sleep(50);
    
    SendMessage(g_hwndFoundWindow, WM_LBUTTONUP, 
                0, offX+x*40+20+((offY+y*50+25)<<16));
    

    ใส่หน่วงเวลาระหว่าง Message ไว้นิดหน่อย ไม่งั้นโปรแกรมเกมส์มันจัดการไม่ทัน

เอาไปให้น้องดู เขาบอกถ้าจะเขียน Script เพื่อ Automate Task บน Windows ใช้ AutoIt ก็ได้

เข้าไปดูแล้วมันคงทำได้เหมือนกัน แต่ใช้ภาษาที่ AutoIt มีให้ อ่านค่าพิกเซลบนจอ คำนวน Hash และก็มาค้นหาคู่แบบนี้ คงช้ากว่าเขียนด้วย C แยะ

Tuesday, July 27, 2004

Rubik's cube Links

Virtual Display ผ่านเครือข่าย: MaxiVista

วันก่อนเล่าถึง SoftEther ซึ่งเป็น Virtual Ethernet Device บน Windows สำหรับใช้สร้าง VPN ไว้ทีนึงแล้ว

ตอนเล่น SoftEther ใหม่ๆ ก็เคยคิดว่าอยากได้ Virtual Display Device บ้าง จะได้หลอก Windows ว่ามีการ์ดจออีกใบ แล้วให้มันส่งข้อมูลภาพไปแสดงบนคอมพิวเตอร์เครื่องอื่นผ่านเครือข่าย จะใช้ Protocol X11, VNC หรือ Proprietary อะไรก็แล้วแต่

ความต้องการ คือ จะได้ลากหน้าต่างจากเครื่องที่ใช้ ไปที่จอเครื่อง Linux/Windows ข้างๆได้ ถึงขนาดสั่งซื้อแผ่น CD DDK (Device Development Kit) จาก Microsoft (Microsoft คิดแค่ค่าส่ง)

แผ่นมาถึงนานแล้ว แต่ยังไม่ได้เปิดดูเลย (ไม่รู้ไปอยู่ไหนแล้ว)

วันนี้อ่านข่าว PC Watch ญี่ปุ่น เห็นมีบริษัททำโปรแกรมแบบนี้ขาย

พอดีโปรแกรมที่ขายในญี่ปุ่นส่วนมาก เป็นการเอาโปรแกรมของฝรั่งมาใส่ภาษาญี่ปุ่น ก็เลยใช้ชื่อโปรแกรม MaxiVista ไปค้นที่ Google ดู เจอโฮมเพจต้นตำรับ ที่ MaxiVista - Dual Monitor Software

ลองดาวน์โหลด DEMO มาเล่นกับเครื่องที่บ้าน (Notebook-Desktop ผ่าน 100Base) ผลก็พอใช้ได้ เลื่อนหน้าต่างไปมาเร็วๆ ก็กระตุกเล็กน้อย ถ้าเปิดหนังดูด้วย MediaPlayer ก็ต้องไปปิด Hardware Acceleration ใน MediaPlayer ให้หมด

บน Linux เคยใช้แต่ Xinerama ซึ่งใช้สำหรับกรณีมีหลายการ์ดบน PC เครื่องเดียวกัน ตอนนี้ติดตั้งแบบนี้ทำยากแล้ว เพราะเครื่อง PC มี Slot AGP ให้อันเดียว จะใส่การ์ดจอเพิ่มก็ต้องใช้การ์ดจอ PCI จะหาการ์ดจอใหม่ๆที่เป็น PCI คงไม่มี เคยไปเดิน Akihabara เห็นเขาเอาของเก่าปัดฝุ่นมาขายอันละ 800-900 Yen มีเป็นลังๆเลย จำพวก Matrox Millenium/S3-Virge ฯลฯ เคยซื้อกลับมาอันนึง ไปใส่เครื่อง Linux ที่ที่ทำงาน

บน Linux ถ้าจะทำหลายจอบนหลายเครื่องผ่าน Network แบบนี้ คงต้องใช้ VNC หรือ X2X (ดูจาก MultiHead) ? ไม่เคยลองเหมือนกัน ใครเคยมีประสบการณ์บ้างหรือเปล่า ?

Monday, July 26, 2004

โปรแกรม Office จากเมืองจีน

อ่านข่าวจากเวบ Impress Watch (中国発Officeアプリで日本市場に挑戦) เขาว่าซอฟต์แวร์ Office จากเมืองจีนเข้ามาทำตลาดญี่ปุ่น

เป็นซอฟต์แวร์ชื่อ Evermore Integrated Office พัฒนาโดยบริษัทที่เมืองจีน (ดูเหมือนนักพัฒนาจะเป็นคนจีนที่จบจากอเมริกา) เขาว่าตอนนี้ตามหน่วยงานราชการจีนใช้กันมาก ตัวโปรแกรมเป็น Java สามารถใช้ได้บน Windows/Linux/Solairs/...

ดู ScreenShot แล้วหน้าตาปุ่ม/Toolbar เหมือนของ MS-Office มาก สงสัยว่าตอนเอาไปรันบน Linux จะเป็นแบบนี้หรือเปล่า พอดีเขาไม่มี ScreenShot บน Linux ไว้ให้ดู

ข่าวบอกอีกว่า Science Editor เป็นคุณสมบัติเด่นอันนึง ที่ได้รับความนิยม และ MS-Office ไม่มี

เดี๋ยวนี้นอกจากสินค้าแรงงานถูก เมืองจีนเริ่มส่งออกซอฟต์แวร์ Office ด้วยแล้วแฮะ ที่ญี่ปุ่นโปรแกรม Office ของญี่ปุ่นเองก็มี Ichitaro ของ JustSystem แต่ก่อนเห็นใช้กันมาก เพราะจัดการเรื่องภาษาญี่ปุ่นเก่ง เดี๋ยวนี้โดน MS-Office กินเรียบ (คนรอบตัวไม่เห็นมีใครใช้) เหลือแต่ ATOK (แปลง Kana-Kanji) มั้ง ที่ยังพอขายได้ (เห็นมีคนใช้)

Rubik ไม่ Cube

2x2x6 กับ 4x4x6 แปลกดี ไม่รู้คนทำคิดได้ไง

New puzzles by Tony Fisher

Sunday, July 25, 2004

สมาชิกใหม่ Rubiks 5x5x5 กับ 2x2x2x3

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

เดินเข้าไปแผนกเกมส์ หา Rubiks 5x5x5 ที่เคยอยากได้ เห็นมี Triple 2x2x2 ขายอยู่ด้วย ก็เลยซื้อแถมมาอีกหนึ่งอัน

5x5x5 นี่ยังมีขายแบบเป็นชิ้นส่วนให้มาประกอบเองด้วย (เห็นไส้เห็นพุงหมด) แต่ราคาแพงกว่ากันเกือบ 2 เท่า ไม่เอาดีกว่า

ตอนนี้ครอบครัว Rubik ก็เลยครบ 2^3 ถึง 5^3 :)

ลดขนาดไฟล์ PNG

ตื่นเช้ามาอ่านเวบบอร์ด TLWG เขาคุยกันเรื่อง Transparent PNG เลยคลิกตาม Link หาอะไรอ่านไปเรื่อย จนไปเจอโปรแกรม pngout ที่บอกว่าลดขนาด PNG ลงได้อีกประมาณ 5-10%

Download binary สำหรับ Linux (เขายังไม่แจก Source) น่าสนใจดีตรงที่ตัว Binary เองนี้ เขาบีบอัดข้อมูลเอาไว้ด้วยโปรแกรม UPX ตอนเรียก exec ไฟล์นี้มาทำงาน ตัวขยายข้อมูลก็จะทำงานก่อน ขยายโปรแกรมออกมาอัตโนมัติแล้วค่อยรัน นึกถึงอดีตว่าเคยใช้โปรแกรมทำนองนี้เหมือนกันบน DOS สมัยยังไม่มี Harddisk เล่นทุกอย่างบน Floppy

กลับมาที่โปรแกรม pngout ไฟล์แรกที่ลองคือแผนผังสมาชิกในครอบครัว (Family Tree) ที่เคยใช้ VCG วาดเอาไว้โดยดึงข้อมูลจาก MySQL ตอนนี้มีอยู่ประมาณ 145 โหนด (คน) เอามาวาดเป็นกราฟพร้อมแสดงรูปถ่ายได้ไฟล์ภาพขนาด 1608x7774 จุด ทำเป็น PNG ได้ขนาด 80794 ไบต์ (ซึ่งก็ไม่โตอะไรมากมาย)

เอาไฟล์นี้แหละมาลอง pngout ดู

pngout-static-20040716 foo1.png foo2.png
รันตั้งแต่ก่อนเริ่มเขียน Blog นี้ เวลาผ่านไป 20+ นาที บนเครื่อง P4-2.4 นับ 0-100% ไปสามรอบแล้ว ได้ไฟล์ใหม่ออกมาเหลือ 58139 ไบต์

ขนาดลดลงไปเยอะเหมือนกัน แต่ให้รอนานมากไปหน่อย

Saturday, July 24, 2004

บริจาคล็อตเตอรี่ช่วยอุทกภัย

ไม่กี่วันก่อน จังหวัด Fukui ของญี่ปุ่น มีน้ำท่วมหนัก ผู้คนต้องอพยพ เสียหายมากมายทั้งบ้านและโรงงาน ฯลฯ

เมื่อกี้ดูข่าวทีวี มีผู้ไม่ประสงค์ออกนาม ส่งล็อตเตอรี่ที่ถูกรางวัลที่ 1 มูลค่า 200 ล้านเยน (งวดกลางเดือน มิ.ย.) ไปให้ผู้ว่าราชการจังหวัด

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

ผู้ว่าฯก็เลยมาออกทีวีขอบคุณ เนื่องจากไม่สามารถขอบคุณเจ้าตัวโดยตรงได้

ข่าวในหนังสือพิมพ์ Mainichi

นับถือน้ำใจคนบริจาคจริงๆ

ตารางความละเอียดจอ

ต่อเนื่องจากเรื่องขนาดหน้าจอ ไปเจอว่า 1400x1050 นี่เขาเรียก SXGA+ เลยคิดว่าทำเป็นตารางสรุปไว้ดีกว่า

ชื่อเรียก ขนาด อัตราส่วน
QVGA 320x240 4:3
VGA 640x480 4:3
SVGA 800x600 4:3
XGA 1024x768 4:3
SXGA 1280x1024 5:4
SXGA+ 1400x1050 4:3
UXGA 1600x1200 4:3
WXGA 1280x768 15:9 (Wide)
WUXGA 1920x1200 8:5 (Wide)

Friday, July 23, 2004

SoftEther ภาคต่อ

(ต่อจากภาคที่แล้ว)

ระยะหลังนี้เครือข่ายที่ทำงานหันมาติดตั้ง Firewall กันมากขึ้น หลายปีก่อนไม่มีหรอก อะไรๆก็เปิดหมด เดี๋ยวนี้เปิดรูไว้ให้นิดเดียว พอดูเวบได้ กับเล่น ssh ได้เป็นบางเครื่อง แต่ก็คุยกันได้ เครื่องไหนอยากอยู่นอกกำแพงไฟ ให้เขียนใบสมัครไปที่ Network Admin ก็เลยจัดการขอเอา Thaigate ออกไปดูดอากาศข้างนอก เพราะต้องเปิด HTTP/SMTP/NNTP/... Servers

เดือดร้อนพอสมควร จนต้องทำ ppp over ssh ต่อ Tunnel เข้ามากับเครื่อง Linux ที่อยู่ใน LAN ภายใน แล้วก็รัน PoPToP (PPTPd VPN Server) บน Thaigate

จากนั้นก็ให้เครื่อง Windows ที่ใช้อยู่ภายในต่อ VPN เข้ากับ PPTPd บน thaigate ที่บังเอิญมาได้ IP Lan ภายในบนเครื่อง Linux ผ่าน ppp over ssh ได้

สุดท้าย Windows ก็ได้ IP ภายนอกมาอีกอัน (งงก็อ่านข้ามๆไป) วุ่นวายมาก จนต้องทำ Script ไว้รันทั้งสองฝั่ง พิมพ์เองไม่ไหว (แค่เขียนนี่ก็เหนื่อยแล้ว)

เข้าเรื่องสักที

คนพัฒนา SoftEther (Daiyuu Nobori ปัจจุบัน 19 ขวบ) เป็นนักเรียนอยู่ ม. Tsukuba ตัวแกเองก็มีปัญหาแบบนี้ ม. ตั้ง Firewall ไว้แยะ ต่อกับเครื่องที่บ้านไม่ได้ ลำบากมากเลยทำ SoftEther ซึ่งเป็นเหมือน VPN ต่อเครื่องที่ ม. (อยู่หลัง Firewall) เข้ากับเครื่องที่บ้านเลย

ปรากฏว่าโปรแกรมออกมาดีมาก จนได้รับการสนับสนุนจาก IPA (Information-Technology Promotion Agency) ของญี่ปุ่น ตั้งบริษัท พัฒนาออกมา แจกฟรี ! ท่าทางจะขายบริการกับหนังสือแทน

หลักการของโปรแกรมนี้จะมีสองส่วน คือ SoftEther NIC กับ SoftEther HUB ก็เหมือนกับอุปกรณ์ NIC กับ HUB ของจริงนั่นแหละ

  • SoftEther NIC เป็น Device Driver ซึ่งเมื่อติดตั้งบน Windows (Only for now) แล้วจะเหมือนมี Ethernet Card โผล่มาอีกใบนึง

  • SoftEther HUB ก็เป็น HUB ตอนนี้รันบน Windows หรือ Linux ก็ได้

การใช้งานก็ติดตั้ง SoftEther NIC บนเครื่องเรา แล้วตั้งค่าให้มันต่อเข้ากับ SoftEther HUB .จบ. เครื่องทุกเครื่องที่ใช้ SoftEther NIC ต่อเข้ากับ SoftEther HUB ตัวเดียวกัน ก็เหมือนอยู่ใน LAN เดียวกันทุกประการ (เพราะมันทำที่ระดับ Ethernet !) ไม่ว่าจริงๆแล้วจะอยู่ห่างกันแค่ไหน

ที่เป็นจุดเด่น ทำให้เหนือกว่า VPN ตัวอื่นก็ได้แก่

  1. ทะลุ Firewall ได้สารพัดแบบ พื้นฐานแล้วต้องการต่อ TCP แค่พอร์ตเดียว NIC ต่อเข้ากับ HUB ที่พอร์ต 7777

  2. ถ้าไม่มี 7777 ก็ใช้ 443 แทนได้ ซึ่ง 443 นี้พอดีไปตรงกับ HTTPs ส่วนมากองค์กรที่ให้ดูเวบได้ก็เปิดไว้ให้ใช้ได้

  3. ถ้าต่อ 7777/443 โดยตรงไม่ได้ ก็ใช้ tunnel ผ่าน SSH ไปยังเครื่องข้างนอกได้

  4. ถ้ายังไม่ได้อีก ก็ใช้ SOCKs

  5. ถ้ายังไม่ได้อีก ก็ต่อผ่าน HTTPs Proxy Server ได้

  6. องค์กรที่ให้เล่นดูเวบได้ อย่างน้อยก็ต้องมีข้อใดข้อนึงข้างบน เพราะฉะนั้น SoftEther มันก็เล่นได้เกือบซะทุกแห่ง

  7. การรับส่งข้อมูลระหว่าง HUB/NIC เข้ารหัส SSL ไว้หมด จึงใช้ทำ VPN ได้ ไม่ใช่เอาไว้เจาะทะลุ Firewall อย่างเดียว

ในการใช้งานจริง ต่อทุกเครื่องเข้ากับ Virtual HUB แบบนี้ยังไม่สนุกเท่าไร ที่เขาใช้กันคือเอา SoftEther NIC มา Bridge กับ Local Network Card ! ซึ่งความสามารถในการ Bridge นี้ Windows XP มีมาให้อยู่แล้ว

ทีนี้ก็เหมือนกับว่า SoftEther HUB อยู่บน LAN จริงๆด้วย

อยู่นอกที่ทำงาน ที่บ้าน ที่ไหน ฯลฯ แค่ต่อเข้าหา SoftEther HUB ก็เหมือนต่อเข้ากับ LAN ที่ทำงาน ! และเนื่องจากเป็นการต่อระดับ Ethernet จึงทำได้แทบทุกอย่าง

ตอนนี้ก็ใช้ SoftEther ต่อเครื่องที่ทำงานกับที่บ้านไว้บน SoftEther HUB เดียวกันหมด อยู่ที่ไหนก็เปิด Shared Folder ใช้เครื่องพิมพ์ ฯลฯ ได้หมด ตั้งค่าให้ SoftEther NIC ต่อเข้ากับ HUB เองอัตโนมัติเมื่อบูทได้ และถ้าหลุดเมื่อไรก็ Retry Infinity ครั้งได้ เรียกได้ว่าจะ reboot HUB ก็ไม่ต้องกลัว เดี๋ยวเครื่องๆทั้งหลายก็ต่อกลับเข้ามาใหม่เอง

สรุปแล้วเป็นโปรแกรมที่ชอบมากอีกตัวนึง

TIA/slirp/nat/ip-masquerade/UPnP/SoftEther

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

  • สมัยก่อนตอนมาญี่ปุ่นใหม่ๆ ที่มหาลัยมี Dial-Up Account ให้ใช้ได้ ก็ใช้สำหรับ Login เข้า Unix Account อ่านเมล์ด้วย MH หรือ Emacs รับส่งไฟล์ก็ใช้พวก xyz-Modem

    ก็เหมือนจะราบรื่นดีจนกระทั่งมี Web Browser: Mosaic/Netscape/Splyglass=ต้นตำรับ IE และก็โปรแกรมอ่านเมล์พวก Eudora ออกมา จึงเริ่มอยากได้ SLIP/PPP Connection ผ่านโมเด็มจากบ้าน

    โปรแกรมแรกที่ใช้ คือ TIA: The Internet Adapter ไม่ฟรี เป็นของขาย แต่ก็มีรุ่นทดลองให้เล่น รันใน Unix แล้วมันจะพูดภาษา SLIP ออกมา ต้องเขียน Script เครื่องที่บ้าน ให้ Login และเรียก TIA ให้เรียบร้อย ก่อนเข้าโหมด SLIP/PPP

  • หลังจากนั้นมีโปรแกรมประเภทเดียวกัน ของฟรี slirp ออกมาให้ใช้ แต่ slirp ใช้อยู่ไม่นาน เพราะไปสมัคร ISP ได้ PPP Account ของจริง เลิกเล่นของมหาลัย

    ที่ยอมจ่ายเงินก็เพราะตอนนั้น Terminal Server ของมหาลัยค่อนข้างห่วย ถ้ากด Disconnect ทางบ้านวางสายไปเลย โปรแกรม TIA/Slirp ก็จะตาย แต่ยังไม่ Logout ออกจาก Unix ทำให้คนถัดมาที่ต่อเข้ามา เล่นต่อได้เลย

    มีอยู่ครั้งนึงเจอญี่ปุ่นมือบอน มันพิมพ์ rm -fr ลบเกลี้ยงไปหลาย Folder ที่รู้เพราะดูใน History ไปโวยกับศูนย์คอมให้เขาเช็คเบอร์โทร เขาก็บอกว่าเขาเองไม่มีข้อมูล ต้องไปแจ้งความแล้วให้ตำรวจไปขอดูกับ NTT อาจารย์ไม่อยากให้มีเรื่องก็เลยไม่ได้ทำ ยังดีที่พอมี Backup บ้าง

  • โปรแกรม slirp (TIA ด้วยหรือเปล่าไม่แน่ใจ) มันมีคุณสมบัติอย่างนึงที่ไม่ค่อยได้ใช้ คือเป็น gateway สำหรับ Share Internet ได้ด้วย ถ้าเครื่องที่ต่อกับ Slirp อยู่ต่อกับ LAN ในบ้าน แล้วให้เครื่องลูกชี้มาที่เครื่องนี้ และเครื่องนี้ route ออกไปที่ slirp ทุกเครื่องใน LAN ก็จะเล่นเน็ตได้หมด โดยแชร์ IP จริงของเครื่อง UNIX ที่รัน slirp อยู่

    ถ้าเปิด web server ที่บ้าน ก็ตั้งค่า slirp ให้ forward port จากข้างนอกเข้ามาได้เหมือนกัน

  • หลังจากมาใช้ PPP Account จริง slirp ก็เลิกเล่น ต้องไป share Internet ด้วย IP-Masquerade ของ Linux เปิด Linux Server ประจำบ้าน หันมาใช้ ISDN 64Kbps ที่เก็บค่าบริการ Flat Rate หลังห้าทุ่มของ NTT กลายเป็นคนเล่นเน็ตกลางคืน นอนดึกตี 2-3 ตลอด ช่วงนั้นมีโมดูลให้เล่น FTP หรือฟังเสียง RealAudio ได้ด้วย แค่นี้ก็พอใจแล้ว

    เคยเอา socks มาลองเล่นเหมือนกัน แต่มันไม่ค่อยเวิร์ค โปรแกรมที่ใช้ Socks ได้ก็มีน้อย

  • ต่อมาโปรแกรม IM:Instant Messaging พวก ICQ/MSN เริ่มฮิต พวกนี้ก็ชอบมีปัญหากับการแชร์ IP ใช้ได้บ้างไม่ได้บ้าง (รับส่งข้อความ ไฟล์ NetMeeting ฯลฯ) จนกระทั่งที่บ้านเปลี่ยนมาเล่น ADSL ของ NTT (เริ่มจาก 1.5Mbps แล้วเปลี่ยนเป็น 8Mbps) ต่อผ่าน PPPoE (Point-to-Point Protocol over Ethernet) ก็เลยใช้ ICS (Internet Connection Sharing) ของ Windows จัดการ

    คงเพราะเป็น Microsoft เหมือนกัน ICS พวกนี้ไม่มีปัญหากับ MSN เล่นรับส่งไฟล์ คุยด้วยวิดีโอ หรือเสียง ได้หมด

    ภายหลังจึงมารู้ว่า เดี๋ยวนี้เขาแชร์ผ่านระบบที่เรียกว่า IGD: Internet Gateway Device ซึ่งเป็นส่วนหนึงของ UPnP: Universal Plug and Play

    ถ้าเอา IGD มาลงบน Linux ได้ ก็ใช้ Linux เป็น Gateway สำหรับเล่น MSN ได้ดีไม่มีปัญหาดิ ? ลองหาๆดูบน Linux ก็มีโปรแกรมสำหรับให้บริการ UPnP/IGD เหมือนกัน เช่น Linux-IGD และ PSEUDOICSD โดยส่วนตัวยังไม่เคยลอง แต่ Otto บอกว่าเคยพยายามลองแล้วไม่สำเร็จ (ไม่รู้ลองตัวไหน)

  • ไม่กี่เดือนก่อนบอกเลิกบริการ ADSL ของ NTT ย้ายมาใช้ของ Yahoo แทน เพราะเร็วและถูกกว่า (45Mbps แต่ได้จริง 6-8Mbps) คราวนี้เสียบช่อง Ethernet ปุ้บ มันก็แจก IP ผ่าน DHCP ให้เลย ไม่ต้อง Login ด้วย PPPoE ให้วุ่นวาย

    มาเจอปัญหาว่าใช้ ICS แชร์เน็ตไม่ได้แล้ว เพราะ ICS ใช้สำหรับแชร์ Connection อันนึง ไปบน Connection อีกอันนึง เดิมก็แชร์ PPPoE ไปบน Local Ethernet Card ซึ่งมันก็ทำงานได้ดี ทั้งๆที่ PPPoE ก็เล่นผ่าน Ethernet Card ใบเดียวกันนั่นแหละ แต่ Windows มันมองเป็นคนละ Connection ก็เลยแชร์ได้

    ตอนนี้ Local Ethernet Card มันกลายเป็นตัวเล่นเน็ต จะแชร์ก็ต้องหาอีกการ์ด (Connection) นึงมารองรับ แต่ก็เพิ่มไม่ได้เพราะ PCI Slot เต็มหมดแล้ว !

  • ออกไปเดินหาซื้อ Ethernet Card แบบ USB แต่ไปเจอ Router ถูกๆที่เขาทำขายสำหรับแชร์ Internet อยู่แล้ว หน้าตาก็สวยดี ราคาก็ไม่แพง (~3000 เยน แพงกว่า USB Ethernet Card นิดเดียว) ก็เลยซื้อไอ้นี่กลับมาแทน เพราะว่าจะได้ไม่ต้องเปิด PC ทิ้งไว้ เวลาต้อง Reboot ฯลฯ คนอื่นที่เล่นเน็ตอยู่ก็ไม่เดือดร้อน


    ภาพจากเวบผู้ผลิต

    บนกล่องบอกว่ามี UPnP ด้วย ดีเลยเล่น MSN ฯลฯ ได้ไม่มีปัญหา รับประกัน Throughput 78Mbps มากเกินพอ เท่าที่ใช้มาก็ใช้งานได้ดี ไม่เคยตายเลยสักครั้ง ชอบมากๆ ตั้งค่าทุกอย่างผ่านเวบได้ ค่อนข้างยืดหยุ่น เปิดพอร์ตเล่น WinMX ฯลฯ ได้ แถมยังคอยไป Update IP กับพวก dyndns.org ให้ได้อีกด้วย !

    ข้างในคิดว่าน่าจะเป็น Linux แต่ไม่แน่ใจว่าใช้ UPnP ของใครตัวไหน

  • เหนื่อยแล้ว เรื่องของ SoftEther ค่อยมาเขียนต่อวันหลัง

Thursday, July 22, 2004

เมื่อวงกลมมันไม่กลม

วันก่อนอ่านรายงานจากผู้ใช้โปรแกรม แกว่าบนจอแก โปรแกรมมันวาดวงกลมออกมาไม่กลม !

ก็บนจอเรามันกลม ทำไมจะไม่กลม

ตกลงเป็นเพราะแกใช้จอ LCD ใหญ่ความละเอียด 1280x1024 แต่ดูเหมือนจะใหญ่ไม่พอ เพราะแกค่อนข้างจะสูงอายุ เลยตั้งความละเอียดบนเครื่องไว้ที่ 1024x768 อะไรต่อมิอะไรจะได้โตขึ้น เห็นชัดๆ !

เอาภาพ 4:3 (1024x768) ไปให้จอขยายใหญ่เป็น 1280x1024 (5:4) สิ่งที่กลมก็เลยรี เพราะอัตราส่วนมันไม่เท่ากัน

ที่บ้านก็มีอยู่จอนึง 16" 1280x1024 ลำบากเวลาเอารูปถ่ายจากกล้องดิจิตอล ซึ่งส่วนมากเป็น 4:3 มาทำเป็นฉากหลัง รูปมักจะสูงไม่พอ มีช่องว่างเหลือ บนล่าง หน่อยนึง ยิ่งพวก DSLR ถ่ายออกมาเป็น 3:2 (เลียนแบบกล้องฟิล์ม 36mm x 24mm) ยิ่งเหลือมาก

ยังสงสัยอยู่ว่า ทำไม ในบรรดาความละเอียดของจอทั้งหลาย QVGA(320x240), VGA(640x480), SVGA(800x600), XGA(1024x768), SXGA(1280x1024), UXGA(1600x1200) ก็มีแต่ SXGA(1280x1024) นี่แหละที่เป็น 5:4 นอกนั้นมัน 4:3 หมด

แต่เดี๋ยวนี้คอมพิวเตอร์ใหม่ๆมักมาเป็นจอ Wide วันก่อนเอารูปจาก D70 ไปแปะบนจอ Apple G4 Titanium 15" เก่าๆ (มีคนเอามาให้ช่วยใช้) พอดีเป๊ะ (1152x768 = 3:2)

เพิ่มเติม

เดี๋ยวนี้โน๊ตบุ๊คใหม่ๆ เริ่มมี 1400x1050 (4:3) ออกมา ไม่รู้เรียกว่าขนาดอะไร เห็นบางแห่งเขียน SXGA เหมือนกัน

Wednesday, July 21, 2004

ทดสอบ Mono กะเขาบ้าง

วันก่อนโต้งเอา Mono มาเล่น พอดีเครื่อง Linux อยู่ใกล้มือ ก็เลยเอามาลองดูบ้าง อยากรู้ว่ามีอะไรแตกต่างกับบน Windows แค่ไหน

ตั้งใจจะลองทำโปรแกรมให้ตรวจสอบได้เองว่า ตอนนี้รันอยู่บน Mono หรือบน .Net/Windows ก็เข้าไปเจอว่าใน System.Environment สามารถดู ชื่อ OS ได้ ลองเอา Hello World ของโต้ง มาแก้ให้มันพิมพ์ข้อมูลพวกนี้ออกมาดู แถมด้วยจับเวลา PiBench ฯลฯ ที่ชอบทดสอบ


using System;
using System.Diagnostics;

public class HelloWorld {    
  public static void Main(string[] args)
  {        
    Console.WriteLine("Hello World!");

    for(int i=0;i<args.Length;i++)
      Console.WriteLine(args[i]);

    Console.WriteLine("Bench Starts");
    int t1 = System.Environment.TickCount;
    int r1 = testInt();
    int t2 = System.Environment.TickCount;
    int r2 = testDouble();
    int t3 = System.Environment.TickCount;
    int r3 = testPibench();
    int t4 = System.Environment.TickCount;

    Console.WriteLine("Int "+r1+": "+(t2-t1)+" mSec");
    Console.WriteLine("Dbl "+r2+": "+(t3-t2)+" mSec");
    Console.WriteLine("Pibench "+r3+": "+(t4-t3)+" mSec");

    Console.WriteLine(getSysInfo());

  }

  static int testInt()
  {
    int i;
    int a=1;
    for(i=0;i<10000000;i++)
      a=a*7%39;
    return a;
  }

  static int testDouble()
  {
    int i;
    double a=1;
    for(i=3;i<1500000;i+=4) {
      a = a - 1.0/i + 1.0/(i+2);
    }
    return (int)(a*40000.0);
  }

  static int testPibench()
  {
    int i,j;
    int a=0;
    double x=0;
    for(i=1;i<30000000;i+=4) {
      x += 1.0/i - 1.0/(i+2);
    }
    return (int)(x*4000000.0);
  }

    static string getSysInfo() 
    {
      string nl = System.Environment.NewLine;
      Process cP = Process.GetCurrentProcess();
 
      string msg = 
        "-- System Information --" + nl +
        "ENV CLR Version: "+System.Environment.Version.ToString()+nl+
        "ENV Platform: "+System.Environment.OSVersion.Platform.ToString()+nl+
        "ENV OSVersion: "+System.Environment.OSVersion.Version.ToString()+nl+
        "ENV CmdLine: "+System.Environment.CommandLine+nl+
        "ENV Hostname: "+System.Environment.MachineName+nl+
        "ENV CWD: "+System.Environment.CurrentDirectory+nl+
        "ENV WorkingSet (MappedMemory): "+System.Environment.WorkingSet+nl+nl+

        "Process MaxWorkingSet: "+ cP.MaxWorkingSet + nl +
        "Process MinWorkingSet: "+ cP.MinWorkingSet + nl +
        "Process PeakWorkingSet: "+ cP.PeakWorkingSet + nl +
        "Process WorkingSet: "+ cP.WorkingSet + nl +
        "Process NonpagedSystemMemorySize: "+cP.NonpagedSystemMemorySize + nl+
        "Process PagedSystemMemorySize: "+cP.PagedSystemMemorySize + nl+
        "Process PagedMemorySize: "+cP.PagedMemorySize + nl+
        "Process PeakPagedMemorySize: "+cP.PeakPagedMemorySize + nl+
        "Process PeakVirtualMemorySize: "+cP.PeakVirtualMemorySize + nl+
        "Process PrivateMemorySize: "+cP.PrivateMemorySize + nl+
        "Process VirtualMemorySize: "+cP.VirtualMemorySize + nl+
        "Process Name: "+cP.ProcessName + nl+ nl+

        "Process StartTime: "+cP.StartTime + nl + 
        "Process TotalProcessorTime: "+cP.TotalProcessorTime + nl +
        "Process UserProcessorTime: "+cP.UserProcessorTime + nl +
        "Process PrivilegedProcessorTime: " + cP.PrivilegedProcessorTime + nl +
        "";
      return msg;
    }

}

ผลที่ได้บน Mono/Linux คือ

Hello World!
arg1
arg2
Bench Starts
Int 22: 855 mSec
Dbl 31415: 60 mSec
Pibench 3141592: 1124 mSec
-- System Information --
ENV CLR Version: 1.1.4322.573
ENV Platform: 128
ENV OSVersion: 2.4.22.1
ENV CmdLine: /home/vuthi/Mono/test.exe arg1 arg2
ENV Hostname: crusoe
ENV CWD: /home/vuthi/Mono
ENV WorkingSet (MappedMemory): 0

Process MaxWorkingSet: 1413120
Process MinWorkingSet: 204800
Process PeakWorkingSet: 0
Process WorkingSet: 0
Process NonpagedSystemMemorySize: 0
Process PagedSystemMemorySize: 0
Process PagedMemorySize: 0
Process PeakPagedMemorySize: 0
Process PeakVirtualMemorySize: 0
Process PrivateMemorySize: 0
Process VirtualMemorySize: 0
Process Name: test

Process StartTime: 7/21/2004 6:17:20 PM
Process TotalProcessorTime: 00:00:00
Process UserProcessorTime: 00:00:00
Process PrivilegedProcessorTime: 00:00:00

เอาไฟล์ .exe อันเดียวกัน ไปรันบน Windows ได้ผล

Hello World!
Bench Starts
Int 22: 570 mSec
Dbl 31415: 20 mSec
Pibench 3141592: 461 mSec
-- System Information --
ENV CLR Version: 1.1.4322.573
ENV Platform: Win32NT
ENV OSVersion: 5.1.2600.0
ENV CmdLine: test
ENV Hostname: P4
ENV CWD: C:\Documents and Settings\vuthi\Desktop
ENV WorkingSet (MappedMemory): 5373952

Process MaxWorkingSet: 1413120
Process MinWorkingSet: 204800
Process PeakWorkingSet: 10035200
Process WorkingSet: 10035200
Process NonpagedSystemMemorySize: 10752
Process PagedSystemMemorySize: 51700
Process PagedMemorySize: 6979584
Process PeakPagedMemorySize: 6979584
Process PeakVirtualMemorySize: 169967616
Process PrivateMemorySize: 6979584
Process VirtualMemorySize: 169967616
Process Name: test

Process StartTime: 7/21/2004 6:18:51 PM
Process TotalProcessorTime: 00:00:01.3219008
Process UserProcessorTime: 00:00:01.1115984
Process PrivilegedProcessorTime: 00:00:00.2103024

ดูเหมือน Mono ยังลักไก่ไม่ Implement อยู่หลายค่า พวกเวลา/Memory ของ Process เนี่ยแทบไม่ขึ้นเลย Platform ก็ขึ้นเป็นตัวเลข ยังหาไม่เจอว่าจะเอา string มาได้หรือเปล่าอย่างไร

เวลาที่ใช้ในการคำนวนเอามาเทียบอะไรไม่ได้ ผลมาจากคนละเครื่อง

หมายเหตุ: Blog นี้ชักยาว ไปแก้ Atom ให้ส่งแค่สรุปสั้นๆ (ย่อหน้าแรก) แล้ว

Upgrade ทั้งเช้า

เช้านี้อากาศไม่ร้อนเท่าไร มาถึง Lab ก่อนเก้าโมง ยังไม่มีใครมาเลย

เช็คเมล์ เอ๊ะ ทำไม Subject ของเมล์จาก Blogger มันดูแปลกๆ (อ่านไม่ออก) ต้องเข้าไปดูที่ Server อ้อ เดี๋ยวนี้ใส่ "UTF8" มาที่ Subject ด้วย ปรากฏว่า Mozilla 1.4 ที่ใช้อยู่ที่นี้ไม่เข้าใจหรืออย่างไร ภาษาอังกฤษกลายเป็นขยะภาษาญี่ปุ่น

ไหนๆ Mozilla ล่าสุดตอนนี้ก็ 1.7.1 แล้ว จับ Upgrade ซะเลย คราวนี้อ่าน Subject เมล์เมื่อกี้ได้ดี

กลัว Java Plugin จะไม่ทำงาน ก็เลย Uninstall JDK/JRE 1.4.2_04 (ซึ่งเก่าแล้วด้วย) แล้วติดตั้งตัวใหม่ 1.4.2_05

ระหว่างรอก็นึกได้ว่าวันนี้เอา Notebook SONY PictureBook (Crusoe) ตัวเก่าติดกระเป๋ามาด้วย ลง Fedora Core 1 เอาไว้นานมากแล้ว จับมา Upgrade สักหน่อย

$ yum upgrade
มันนาน....มาก... แล้วก็มีปัญหาเรื่องดาวน์โหลด Package ค้าง ตาย ตลอด เข้าไปดูที่ /etc/yum.conf อ้อ ไปดาวน์โหลดมาจาก redhat โน่น

ลองหา Google ดูว่าจะแก้ yum ให้ไปดาวน์โหลดจาก Fedora Mirror ฯลฯ ยังไง เจอบทความนี้

Mad Penguin :: Howtos : Keeping Fedora Up to Date with Yum

เขียนไว้เข้าใจง่ายดี อธิบายวิธีใช้งาน YUM คร่าวๆไว้ด้วย

สรุป /etc/yum.conf ถูกแก้เป็น

[base]
name=Fedora Core $releasever - $basearch - Base
# baseurl=http://fedora.redhat.com/releases/fedora-core-$releasever
baseurl=http://ftp.kddilabs.jp/Linux/packages/fedora/core/$releasever/$basearch/os
        ftp://ftp.sfc.wide.ad.jp/pub/Linux/Fedora/$releasever/$basearch/os

[updates-released]
name=Fedora Core $releasever - $basearch - Released Updates
# baseurl=http://fedora.redhat.com/updates/released/fedora-core-$releasever
baseurl=http://ftp.kddilabs.jp/Linux/packages/fedora/core/updates/$releasever/$basearch
        ftp://ftp.sfc.wide.ad.jp/pub/Linux/Fedora/updates/$releasever/$basearch
ดาวน์โหลดเร็วขึ้นเยอะ แต่ Crusoe ช้าเหมือนเดิม ติดตั้งอะไรนานมาก "Resolving dependencies" เป็นนาทีๆ

Tuesday, July 20, 2004

猛暑: ร้อนโคตร

อากาศวันนี้ร้อนมาก โตเกียวสูงสุด 39.5C, ชิบะ 40.2C ของโตเกียว 39.5C ที่เวลา 12:58 ร้อนที่สุดเท่าที่เคยบันทึกมาตั้งแต่ปี 1923 (ตาม หน้าข่าว)

About MSDN: RSS Feeds

วันก่อนเคย Blog ของ Borland ไว้ วันนี้ของ Microsoft บ้าง

About MSDN: RSS Feeds

Monday, July 19, 2004

วัดความเร็ว .Net Compact Framework

ปกติเมื่อมีโอกาสได้เล่นของใหม่ พวกฮาร์ดแวร์หรือคอมไพเลอร์ มักจะชอบเอามารัน Benchmark เก็บข้อมูลไว้ ในอดีตก็เคยมี PiBench (และ PiBench-SMP) ซึ่งวัดความเร็วลูปเล็กๆ บน CPU ต่างๆ เมื่อใช้ Compiler ต่างๆ บน ฮาร์ดแวร์ต่างๆ

มาถึงยุคของอุปกรณ์พกพา PDA/Java Phone ก็เอาโปรแกรมมาแก้หน่อยนึง อุปกรณ์พวกนี้มักไม่มี FPU มาด้วย ไม่ถนัดการคำนวนทศนิยม เลยต้องแยกทดสอบ Int กับ Double เคยลองบนเครื่องตัวเองและวานให้เพื่อนๆลอง ได้ผลดังในหน้า PDA Performance Test

วันนี้นั่งอ่านหนังสือบน Safari ที่เคยพูดถึง (ตกลงสมัครเป็นลูกค้าไปเรียบร้อยแล้ว) ไปสะดุดตาตรง .Net Compact Framework อ้าว ใช้ได้บน Pocket PC 2002 นี่ (คือ ไม่รู้ไปจำฝังใจมาจากไหนว่า .Net Compact Framework ต้องการ PocketPC 2003 ขึ้นไป ก็เลยไม่เคยคิดจะลองเล่น) ดีเลยจะได้ลองกับ TOSHIBA Genio GX ที่มีอยู่

ไม่รู้จะเขียนโปรแกรมอะไรก็เอา PDA Bench อันเดิมมาทดสอบก่อนเลย ได้ผลดังนี้

ภาษา/Runtime Int (ms) Double (ms)
C#/.Net CF 1.0SP2 3641, 3651 2491, 2472
eVC++/Native 1213, 1202 2027, 2019
Java/Jeode 3.1 3022, 2995 2663, 2639
Java/Sun Personal Java 1.1 beta1 12000, 11000 3000
(Timer ของ Sun Personal Java ค่อนข้างหยาบ อ่านค่าได้ระดับ "วินาที" ทั้งหมดรันบนเครื่อง PDA เครื่องเดียวกัน)

ดูเหมือน .Net Compact จะเร็วพอๆกันกับ Java VM ของ Jeode แต่เท่าที่เล่นดู สำหรับ PocketPC 2002 นี้ .Net เขียนง่ายกว่าแยะ ติดตั้ง/ใช้งาน โปรแกรมก็ง่ายกว่า (ชักจะติดใจ)

ปัญหาของ Java บน PocketPC ที่พบ คือ เขียนโปรแกรมเสร็จ ลองรันด้วย JDK (ผ่าน) รันอีกทีด้วย PersonalJava (ผ่าน) แต่พอเอาไปรันบนอุปกรณ์จริง (เดี้ยง) บน Jeode กับ SUN Personal Java เอง บางทีผลก็ไม่เหมือนกัน กว่าจะรันได้ก็ต้องมาทำ .bat ไฟล์สำหรับเรียกโปรแกรม argument ยาวเหยียด

ส่วนของ .Net ได้ .exe มา ก็ทดลองรับบน PC (ผ่าน) รันอีกทีบน Emulator (ผ่าน) แล้วก็เอาไฟล์เดียวกันนั่นแหละ (ชื่อ .exe แต่เนื้อในเป็น MSIL: Microsoft intermediate language) โยนลงไปใน PDA รัน (ผ่าน)

เพิ่มเติม

ฝนส่งผล PiBench กับ PiBench-SMP บนเครื่องใหม่ HP-DL145 Dual Opteron248 (2.2GHz) มาให้

ร้าน Coca ในโตเกียว

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


Coca Tokyo Posted by Hello

Sunday, July 18, 2004

Hello Photo !

นั่งเล่น Picasa เห็นมันมี Hello ซึ่งลองแล้วดูเหมือนเป็น MSN ที่ช่วยให้ Share รูปได้ง่ายๆด้วย ห่วยตรงภาษาไทยไม่ขึ้น ใน Hello จะมี BloggerBot ถ้าส่งรูปไปให้ตานี่ มันจะให้กรอกข้อความหน่อยแล้วก็เขียนใส่ Blog ให้เลย สะดวกมาก สำหรับเอารูปขึ้น Blog แบบรูปข้างล่างนี้


PC from the Museum Posted by Hello

รูปจะถูก Host โดย photos1.blogger.com ฯลฯ

เพิ่มเติม

ดูเหมือนรูปบน Hello จะตรวจ Referer ไม่สามารถแสดงได้หากไม่ได้เรียกจาก BlogSpot เหมือน Blog นี้ บน LTN Planet

Free Picasa

เห็นในหน้าแรก Blogger.com มีข่าวบอกว่า Google ซื้อ Picasa และก็เอามาให้ D/L ฟรี

Picasa: Automated Digital Photo Organizer software, instant photo albums, sharing & printing: Download

ลองเล่นดูแล้ว เป็นโปรแกรมจัดการรูปถ่ายที่ดูดีมากตัวหนึ่ง ตอบสนองไว TimeLine เห็นแล้วสุดเวอร์

ปริศนาเกมส์โชว์

วันก่อน Otto อ่านหนังสือ David MacKay: Information Theory, Inference, and Learning Algorithms: The Book แล้วเอาปัญหาเกี่ยวกับเกมส์โชว์ที่พูดถึงในหนังสือ มาถามในห้องประชุม (ก่อนเริ่มประชุม) น่าสนใจเอามาเขียนเป็น Blog เก็บไว้

เรื่องมีอยู่ว่า สมมติว่าเกมส์โชวร์รายการหนึ่ง มีประตูสามบาน ด้านหลังประตูบานหนึ่งมีของรางวัลวางอยู่ (ด้านหลังอีกสองบานที่เหลือว่างเปล่า) ให้ผู้เข้าร่วมรายการเลือกเปิดประตูบานนึง ถ้าเป็นบานที่มีของรางวัลอยู่ ก็ได้รางวัลไป

ขั้นตอนการเล่นเกมส์ เป็นดังนี้

  1. ผู้เข้าร่วมรายการ เลือกประตูบานหนึ่ง (ที่ตัวเองคิดว่ามีของรางวัลอยู่) สมมติว่าเป็นบานที่ 1

  2. ในประตูสองบานที่เหลือ พิธีกรจะเปิดเฉลยบานที่ไม่มีของรางวัล สมมติว่าเป็นบานที่ 3

  3. ตอนนี้ก็เหลือประตูที่ยังไม่เปิดสองบาน คือ บานที่ 1 ที่ผู้เข้าร่วมรายการเลือก และบานที่ 2 ที่ยังไม่ได้เปิด

    พิธีกรจะถามผู้เล่นว่า ต้องการจะเปลี่ยนใจไหม ยืนยันบานที่ 1 เหมือนเดิม หรือเปลี่ยนเป็นบานที่ 2

คำถาม คือ ผู้เล่นควรจะเลือกบานไหน 1 หรือ 2 ?
ฟังคำถามนี้ครั้งแรก ความรู้สึกคือ จะเปลี่ยนหรือไม่เปลี่ยน มันก็น่าจะเหมือนกันนี่หว่า บาน 1 กับ 2 ที่เหลืออยู่ น่าจะมีโอกาส 50/50 เท่าๆกัน ...

แต่เฉลยที่ถูกต้อง คือ บานที่ 2 มีโอกาสถูกรางวัลเป็นสองเท่าของบานที่ 1 ! ผู้เล่นควรจะเปลี่ยนใจเป็นบานที่ 2

เฉลยแบบเป็นสมการวุ่นๆ มีอยู่ในหน้า 60 ของหนังสือข้างบน (มี PDF ให้ดาวน์โหลดได้) คิดใหม่ดีๆมันก็อธิบายได้จริงๆ

เพิ่มเติม

Otto บอกว่าทำ Simulation ปัญหานี้เอาไว้ ที่นี่

ต่อจากเมื่อวาน

แบนหลวงป๋า ขึ้นเทศน์วันนี้ รุมสวดรัฐปิดปาก ยิ่งกว่ายุค "สฤษดิ์"

หลวงพ่อปัญญานันทภิกขุ กล่าวว่า

"พระมีหน้าที่สอนคนทุกคน นายกรัฐมนตรี รัฐมนตรี ก็เป็นคนธรรมดาที่ยังไม่สิ้นกิเลส หากเห็นว่าออกนอกลู่นอกทางพระก็เตือน คนที่ถูกเตือนก็ควรรับฟัง อย่ารังเกียจ ถ้าหากไม่รับฟังแสดงว่ายังโง่อยู่ พระเตือนอย่าไปโกรธพระ ถ้าพระไม่เตือนแล้วใครจะเตือน เพราะทุกคนล้วนแต่มีการศึกษากันด้วยการทั้งนั้น มีการศึกษาไม่ได้หมายความว่าจะมีปัญญาและมีสติ คนมีการศึกษาแต่ด้อยปัญญาและไร้สติก็มีถมไป"

...

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

Saturday, July 17, 2004

แบบฟอร์มขอใช้สิทธิเลือกตั้งนอกราชอาณาจักร

ใกล้ถึงเลือกตั้งแล้ว รุ่นน้องที่สถานทูต MSN โฮมเพจนี้มาให้

ฟอร์มขอใช้สิทธิเลือกตั้งนอกราชอาณาจักร ของสถานทูตไทย ณ กรุงโตเกียว

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

ติดเบรกพระเทศน์รัฐบาล !

อ่านข่าว ติดเบรกพระเทศน์รัฐบาล ขึ้นบัญชี 4 พระดัง ออกอากาศวิทยุ ของเวบหนังสือพิมพ์ คมชัดลึก มีความรู้สึกว่า เอาอีกแล้วรัฐบาลนี้ เข้าไปควบคุมสื่อ/รายการ ให้พูดแต่สิ่งตัวเองอยากฟังเท่านั้น
  • “ห้ามพระแสดงปาฐกถาธรรม ที่เนื้อหาเกี่ยวข้องและเกี่ยวพันกับการบริหารประเทศของรัฐบาล”

  • จะต้องมีการตั้งคณะกรรมการขึ้นมา 1 ชุด เพื่อทำหน้าที่ตรวจสอบข้อความการแสดงธรรมของพระนักเทศน์ โดยต้องให้มีการส่งเป็นเทปต้นฉบับมาตรวจสอบก่อนออกอากาศทุกครั้ง

ความจริงรายการ "นาย ก. คุยกับประชาชน" อะไรนั่นน่าจะโดนบ้าง ต้องเขียนต้นฉบับให้คณะกรรมการตรวจก่อน ที่ผ่านมาเนื้อหาน่าจะมีตอแหล มากกว่าพระเทศน์อีก

Friday, July 16, 2004

Mozilla Navigator กลับมาแล้ว

วันก่อนทดลอง NewsMonster ใช้ไม่ได้ผล แถมทำเอา Navigator ของ Mozilla เจ๊งไป เป็นเซ็งอยู่หลายวันเพราะปกติอ่านเมล์ด้วย Mozilla ใครส่ง URL/Link อะไรมาก็คลิก มันก็เปิด Browse ด้วย Navigator เท่านั้นแหละโปรแกรมก็ตายสนิท กิน CPU 100% ตลอด

พยายามหาว่าจะลบยังไงอยู่เหมือนกัน แต่หาไม่เจอ วันนี้มานั่งดูดีๆ เจอ NewsMonster อยู่ใน Preference ของ Mozilla

ในนั้นมี NewsMonster -> Advanced -> Remove เจอแล้ว รีบเอาออกไปในทันที

ทดสอบ Blogger ใหม่

ดูเหมือนหน้าตาตัว Editor เปลี่ยนไป แบบอักษรภาษาไทยกับอังกฤษไม่เข้ากันเล้ย ยังดีที่ Publish ไปที่ blogspot.com แล้วยังดูเหมือนเดิม อึดอัดหน่อยเฉพาะตอนเขียน

เหมือนจะ Upload รูปได้ แต่ลองดูแล้ว กดปุ่ม Upload เสร็จก็เจอแต่หน้าขาวเปล่าๆ ไม่รู้ใช้ยังไง รูปไปอยู่ที่ไหน จะเอามาใส่ใน Blog ยังไง งง ทำไม่เป็น สงสัยตอนนี้ระบบมีปัญหา เดี๋ยววันหลังค่อยลองใหม่

ดูเหมือนถ้าเขียนด้วย Compose ของ Blogger.com เวลา Feed เข้าไปที่ LTN/planet แล้วจะเละ ใช้แต่ Edit HTML อย่างเดียวดีกว่า ลบ tags ฯลฯ ที่ Compose ยัดเข้ามาให้ออกให้หมด

Thursday, July 15, 2004

กล้องมือถือ

วันนี้กล้องมือถือเมโมรี่เต็ม นึกได้ว่าเอาแต่ถ่ายมานานแล้ว ไม่ยอมล้างสักที ก็การ์ด Mini SD ที่แถมมากับโทรศัพท์เล็กนิดเดียว (16MB) ถ่ายได้ไม่ทันไรก็เต็มแล้ว

จะล้างทั้งทีก็ต้องเตรียมอุปกรณ์กันวุ่นวาย หา Adapter แปลง MiniSD -> SD (แถมมากับโทรศัพท์) แล้วก็แปลงเป็น USB อีกทีด้วย Card Reader (รูปข้างบน) อันนี้สะดวกดี ปกติก็เสียบ SD 256MB ไว้ใช้เป็น ThumbDrive ได้ด้วย

ล้างรูปออกมาก็มีบางรูปน่าสนใจ

ร้าน "แก้วใจ" ขายวัตถุดิบอาหารไทยแถว Kinshicho

แตงโมที่ถูกบังคับให้โตมาเป็นลูกสี่เหลี่ยม (Supermarket แถวบ้าน)

วันก่อนเล่น Rubik ให้เฉพาะสีกลางแตกต่าง ถ่ายรูปไว้เป็นที่ระลึก

และที่ถ่ายมาวันนี้ ไปทำธุระแถว Shinjuku เห็นตั้งอยู่หัวมุมถนน แปลกดี

Wednesday, July 14, 2004

Geeklog - RSS, RDF, XML News Feed Resources

มีรายการ RSS น่าสนใจเยอะดี ต้องจด Blog เอาไว้

Geeklog - RSS, RDF, XML News Feed Resources

เกิดอะไรกับ http://triamudom.moe.go.th/

มีเพื่อนส่งมาให้ดูทาง MSN โดยบังเอิญ (ทำนองว่าส่งผิดคน) ดูเหมือนเว็บเตรียมฯจะโดนเจาะระบบ

เพิ่งรู้เหมือนกันว่ามีเวบนี้ด้วย เดิมมีอะไรบ้างก็ไม่รู้

Pluck และ RSS Aggregator

พอดีไปอ่านเรื่อง Plug ใน Blog ของโต้ง เลยตั้งชื่อคล้ายๆกันบ้าง

ช่วงนี้คนใกล้ตัวเริ่มมี Blog กันมากขึ้น กลุ่มที่อยู่บน Planet ของ LTN ก็ยังไปเปิดดูใน Planet ได้ว่ามีอัพเดทอะไรกันบ้าง ส่วนกลุ่มที่ไม่อยู่บนนั้น ก็ต้องคอยไปคลิกๆดูเองทีละคน ลำบากมาก

นึกได้ว่าเคยเห็นโปรแกรมที่ตามเก็บ Atom ของ Blog มาสรุปให้ดู ก็เลยถาม Google ไปเกี่ยวกับ "RSS Viewer", "RSS Browser", ฯลฯ เจอและลองไปหลายตัว

  • Pluck: ตัวนี้เป็นที่มาของ Blog หัวข้อนี้ ไม่ได้ดีเด่อะไรหรอก ไปดูที่ download.com แล้วดูเหมือนจะมีคนใช้เยอะ เอามาลงได้ไม่ถึง 15 นาที รีบลบทิ้งเลย เพราะว่า 1) มันไม่แสดงภาษาไทย ดูเหมือนยังไม่สนับสนุน Blog ที่เขียนเป็น UTF-8 และ 2) มันเข้าไปวุ่นวายกับ IE มากเกินไป เกาะอาศัย IE กิน เป็น Panel นึงด้านซ้าย เล่นๆดูชักรำคาญ

  • NewsMonster ตัวนี้โม้เลยว่าผสมผสานเข้ากับ Mozilla เป็นอย่างดี ลองติดตั้งดูเหมือนกัน ไม่รู้มันไปวุ่นวายอะไรกับ Mozilla ตอนนี้เปิด Navigator ของ Mozilla ไม่ขึ้นเลย เรียกแล้ว Mozilla.exe กิน CPU 100% ตลอด ต้อง Kill ทิ้ง ก็เลยไม่รู้ว่าใช้ดีแค่ไหนอย่างไร เพราะใช้ไม่ได้ เดือดร้อนตอนนี้ Navigator ก็ใช้ไม่ได้ ยังไม่รู้จะเอาออกยังไงด้วย

  • FeedReader: ค่อนข้างเบา แต่เอาออกเพราะไม่แสดงภาษาไทยเหมือน Pluck

  • ต้องลองหาใหม่ สะดุดตากับคำว่า "RSS Aggregator" เอาคำนี้ไปใส่ Google แทน ได้ผลแฮะ ออกมาตรึมเลย สุดท้ายไปลงเอยที่ SharpReader เป็นโปรแกรมที่ต้องการ .Net Framework จึงจะทำงานได้ แต่ก็แสดงหลายภาษาผสมกันได้ดี ไม่มี Setup.exe, unzip เสร็จก็เรียก SharpReader.exe เล่นเลย ตรงไปตรงมา ไม่ต้องห่วงว่าจะไปติดตั้งไฟล์ประหลาดๆอะไรตรงไหนของ IE หรือระบบ Windows หรือเปล่า

Tuesday, July 13, 2004

อ่านหนังสือคอม ออนไลน์

ไม่ฟรี (เดือนละ $15-$20) แต่มีหนังสือเยอะมาก จากสำนักพิมพ์ ในวงการ IT หลายแห่ง อ่านได้ทั้งเล่มเลย Search ได้ด้วย

Safari Bookshelf

What is Safari?

Safari is a subscription based virtual library. Users can search across thousands of books from O’Reilly, Addison-Wesley, Cisco Press, Microsoft Press and other leading publishers. Read full books from cover to cover, or flip directly to the section you need. Download chapters for printing and convenient offline viewing.

Monday, July 12, 2004

Hello Kitty ! ตัวละสี่แสน (เยน)

Honda มี Asimo, SONY มี AIBO ถึงตา Hello Kitty บ้างจะเป็นไรไป


(รูปจากหน้าข่าวนั่นแหละ)

อ่านข่าวเจอว่า BDL/NEC/FUTABA ร่วมกันพัฒนาหุ่นยนต์ Hello Kitty ขึ้นมา โดยมีกำหนดขายวันเกิด Kitty ปลายปีนี้ (1 พ.ย.) ราคาประมาณตัวละ 4 แสนเยน (เอาไปซื้อ G5 ดีกว่า)

ตั้งใจจะให้เป็นเพื่อนสาวๆญี่ปุ่น เดินไม่ได้ มีขาไว้พูด (ลำโพงอยู่ที่เท้า) กระดุกดิกหัวกับแขนได้หน่อยนึง มี Ultrasonic Sensor ให้รับรู้ได้ว่ามีคนเข้าใกล้ มีกล้อง CCD ไว้จำหน้าผู้ใช้ (สูงสุด 10 หน้า) แล้วก็มี TTS (Text-to-Speech) กับ Speech-Recognition เอาไว้สนทนากับเจ้าของ !!

ข่าวบอกว่ามีรูปแบบการสนทนาบันทึกไว้ประมาณ 20,000 รูปแบบ (เพิ่มเติมได้ภายหลัง) เป็น หัวข้อเกี่ยวกับ การลดน้ำหนัก ท่องเที่ยว Shopping ดูดวง ฯลฯ (สำหรับสาวๆ) สามารถจดจำได้ว่าพูดเรื่องไรไปแล้วบ้าง และลักษณะการสนทนาเปลี่ยนไปเรื่อยๆตามการใช้งาน (เรียกว่า คุยด้วย น่าจะเหมาะกว่า)

ตัวโปรแกรมเกี่ยวกับการประมวลเสียง ภาพ (รับรูปใบหน้า) และจัดการบทสนทนา พัฒนาโดย NEC เห็นว่าเป็น Platform ชื่อ RoboStudio

Saturday, July 10, 2004

ปัญหาชั่งก้อนหิน

สมัยมาญี่ปุ่นใหม่ๆ ปัญหาปริศนาคิดเล่นๆยอดฮิตสำหรับนักเรียนไทยในญี่ปุ่นปัญหาหนึ่ง เห็นจะได้แก่

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

ช่วงนั้นคิดกันเป็นวัน จำได้ว่าเขียนวิธีการชั่งแยกเป็นกรณีได้สลับซับซ้อนพอสมควร แต่ก็ทำได้จริงๆ

วันนี้รื้อตู้หนังสือ เจอหนังสือปริศนาภาษาญี่ปุ่นเล่มหนึ่งซื้อไว้นานแล้ว แต่ไม่ค่อยได้หยิบมาอ่าน

บทแรกพูดถึงปัญหาชั่งก้อนหินนี้พอดี เขายกตัวอย่างง่ายๆก่อน มี 4 ก้อน ชั่ง 2 ครั้ง (ทำได้ รู้ว่าก้อนไหนผิดปกติ แต่อาจจะไม่รู้ว่าผิดปกติแบบไหน)

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

หนังสือเล่มนี้เฉลยวิธีการชั่ง 12 ก้อนใน 3 ครั้งไว้แบบนี้ (เขียน Blog ไว้วันหลังจะได้เปิดดูง่าย)

เพิ่มเติม

ในหนังสือเขาพูดต่อสำหรับกรณีชั่ง 4, 5, ... ครั้ง จนพิสูจน์ว่า ถ้าชั่ง k ครั้ง จำนวนหินสูงสุดที่สามารถนำมาชั่งแล้วบอกก้อนผิดปกติได้ จะเท่ากับ (3^k-1)/2 ก้อน

แต่ถ้าจะให้รู้ด้วยว่าผิดปกติแบบหนักหรือเบา ก็หักออกอีกหนึ่ง เป็น (3^k-1)/2 -1 (เช่น กรณี k=3 ก็จะได้ (27-1)/2-1 = 12 ก้อนพอดี)

Friday, July 09, 2004

Welcome to Gmail

ในที่สุดก็ได้ Gmail มาลองเล่นดู ด้วยความสนับสนุนของ Otto ที่กรุณาส่งเมล์เชิญมาให้

เท่าที่ลองใช้ดู มีความรู้สึกว่า

  • ไม่ยอมให้ใช้ชื่อ Account ต่ำกว่า 6 ตัวอักษร ทำให้ใช้ vuthi ที่ใช้เป็นประจำไม่ได้

  • การจัดเมล์เป็น Conversation ก็ทำให้อ่านสะดวกดี แต่อยากจะให้เลือกแสดงเป็นเมล์ๆเหมือนระบบทั่วๆไปได้ด้วย ไม่ใช่บังคับให้ดูแบบ Conversation ตลอด

    ไม่แน่ใจว่าใช้หลักการอะไรในการจัดกลุ่ม ตอนนี้ Forward เมล์ที่ได้รับไปไว้บนนั้นเกือบหมด วันก่อนตอบเมล์เพื่อนไปโดยแก้ Subject หน่อยให้ตรงกับเนื้อหา ปรากฏว่า Gmail มันก็แยกออกมาตั้งกลุ่ม Conversation ใหม่ให้เลย ทั้งๆที่ใน Header "In-Reply-To" น่าจะยังอ้างถึง Thread เดิม

  • ส่วนมากใช้ JavaScript ในหลายๆฟังก์ชั่น อย่างเช่น กด Forward/Reply เนี่ย ไม่ต้องไปโหลดอะไรจาก Server เลย กดปุ้บ หน้าจอก็โผล่แบบฟอร์มมาให้ Reply ปั้บ ทำให้รู้สึกว่าตอบสนองเร็ว เข้าไปดูใน TODO ของ Gmail มีอยู่อันนึงคือทำให้เป็น HTML ล้วนๆ

  • Shortcut (กด j, k เพื่อเลือก conversation), กด u เพื่อกลับไป Inbox ฯลฯ สะดวกดีมาก อันนี้ค่อนข้างชอบ อ่านเมล์ได้โดยแทบไม่ต้องแตะเมาส์

  • ใช้เข้ารหัสแบบ UTF-8 หมด ทำให้อ่านเมล์ได้หลายภาษาในหน้าเดียวกัน (อย่างน้อยก็ญี่ปุ่นกับไทย เท่าที่ทดสอบ) แต่ว่าถ้าหาก Encoding ในเมล์ตั้งมาผิด เช่น เขียนมาเป็นภาษาไทยแต่ดันใช้ ISO-8859-1 มันก็เละ อ่านไม่ออก ไปเปลี่ยน Encoding ใน IE/Browser ก็ไม่ได้ เพราะ Gmail มันจัดการทำให้เป็น UTF-8 หมดแล้ว

    ไปอ่านใน FAQ เขาบอกให้เปิดเข้าไปในเมล์ เลือก More Options แล้วเลือกแสดงเนื้อหาเมล์ต้นฉบับ (Original) ในหน้าจอใหม่ จากนั้นจึงเลือก Encoding ในหน้าจอนั้น ก็พอถูไถทำให้อ่านได้

  • ไม่มี Folder แต่ใช้ Label แทน การตั้ง Filter เพื่อให้ใส่ Label กับเมล์ใหม่ๆโดยอัตโนมัติทำได้ไม่ยาก เท่าที่ทดลองใช้ดู สามารถใส่ Label สำหรับเมล์จาก TLWG/DEV/ETC ได้อย่างถูกต้อง

    แต่ปัญหาคือ ทีนี้พออยากอ่านเมล์ที่ไม่ใช่ TLWG (คือ เมล์ที่ยังไม่มี LABEL) กลับหาวิธีทำไม่ได้ มันไม่มีตัวเลือกให้แสดงเมล์ที่ ไม่มี LABEL

    ประเด็นนี้ Feedback ไปให้ Gmail แล้ว (เงียบหาย)

  • ตัวกันไวรัสค่อนข้างโหด ถ้าส่งเมล์ที่มี Attachment เป็นไฟล์ไวรัสไปให้ ตัว SMTP Server ของ Gmail จะตีกลับเลย ผู้ใช้ไม่มีโอกาสเห็นเมล์ด้วยซ้ำไป
       ----- Transcript of session follows -----
    ... while talking to gsmtp171.google.com.:
    DATA
    552 Illegal Attachment
    554 5.0.0 Service unavailable
    

  • Search ยังใช้ได้เฉพาะกับเนื้อหาภาษาอังกฤษ (เขียนไว้ใน Help/FAQ) ลองกับไทย/ญี่ปุ่นแล้วค้นไม่เจออะไร

Thursday, July 08, 2004

เขียนใหม่ให้สั้นลง (การตัดคำของ cttex)

นั่งคิดดูใหม่ ไอ้ที่เขียนไปยาวๆเมื่อกี้ น่าจะเขียนใหม่สั้นๆได้แบบนี้

สมมติว่าสายวลีที่จะตัดคำ มีความยาว 8 บล็อค (ตัวอักษร ซึ่งรวมสระบนล่าง) คือ

a b c d e f g h

ในกรณีนี้ จุดตัดที่เป็นไปได้ทั้งหมดมี 7 จุด คือ ระหว่าง a-b, b-c, ..., g-h ดังนั้นจึงมีวิธีตัดคำทั้งหมด 2^7 = 128 วิธี

ตัดมันให้หมดทุกวิธี แล้วสำหรับแต่ละวิธี ก็มานั่งนับ

  1. จำนวนคำ ที่ตรงกับคำในรายการคำ
  2. จำนวนบล็อคของขยะ (ไม่ตรงกับคำในรายการคำ)
เช่น ถ้าตัด "a b c | d e f g | h"

แล้วพบว่า "a b c", "h" มีอยู่ในรายการคำ (2 คำ)
แต่ "d e f g" ไม่อยู่ (4 บล็อค)

ก็ถือว่าตัดได้ 2 คำ พร้อมขยะ 4 บล็อค

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

โมเดลนี้น่าจะเป็นเป้าหมายของ cttex ปัจจุบัน แต่แทนที่จะตัดแล้วเอาไปเทียบกับรายการคำแบบนี้ cttex เอารายการคำมาเทียบกับสายวลี เพื่อความเร็วในการตัด

แต่ก็ยังไม่เคยตรวจสอบว่า cttex ตอนนี้ทำงานได้ตรงกับที่ตั้งใจไว้แบบนี้หรือเปล่า

แก้ไข (2004/12/05)

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

การตัดคำของ cttex

ว่าจะเขียนมานานแล้ว เพราะเอาโปรแกรมตัวเองมาดูทีไร ต้องนั่งนึกทุกทีว่าตอนนั้นคิดอะไรอยู่ ทำไมทำแบบนี้ จดเอาไว้เป็นเรื่องเป็นราวก็ดีเหมือนกัน ความจริงก็จดไว้เยอะแล้วใน README.note เอามาแปะซะเลย

หลักการทำงานของโปรแกรม cttex

ความจริงมันก็ไม่มีอะไรมาก cttex ตัดคำโดยเอาคำที่มีอยู่ในรายการคำ มาเทียบกับ วลีที่ป้อนเข้ามาให้ตัด โดยอาศัยหลักการ

"ตัดออกมาแล้วให้ได้จำนวนคำและจำนวนอักษรที่ไม่เป็นคำ น้อยที่สุด"

Longest word match with minimal word counts and unknown bytes.

หมายเหตุ ตัวอย่างการตัดแบบต่างๆในเอกสารนี้ ได้มาจากการระบุให้ cttex ทำงานในโหมด debug คือ "cttex -d 32 < inputfile"

  1. เลือกใช้คำที่ยาวที่สุด

    เช่น ผู้ใช้ป้อนวลี "ทำการบ้าน" และในรายการคำมี "ทำ", "การ", "บ้าน", "การบ้าน" ซึ่งทำให้ สามารถตัดได้สองแบบ คือ
    a) ทำ การบ้าน
    b) ทำ การ บ้าน

    cttex จะเลือก a) เนื่องจาก "การบ้าน" ยาวกว่าคำว่า "การ" และ ในขณะเดียวกัน ทำให้ได้จำนวนคำรวมน้อยกว่าด้วย

  2. ตัดให้ได้จำนวนคำน้อยที่สุด

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

    มีนโยบาย
    => มีน โย บาย

    เนื่องจาก "มีน", "โย", "บาย" ล้วนเป็นคำที่มีอยู่ในรายการคำ

    ในกรณีนี้ cttex จะต้องทดลองตัดคำแรกที่ตำแหน่งสั้นลง คือ "มี" ทำให้ได้

    => มี นโยบาย

    ซึ่งมีจำนวนคำรวมน้อยกว่า ตัวอย่างอื่น ได้แก่

    ->รินโยบาย
    =ริน โย บาย Err(0) Word(3)
    =ริ นโยบาย Err(0) Word(2)
    ริ นโยบาย

    ->ขึ้นมาบริหาร
    =ขึ้น มาบ ริ หาร Err(0) Word(4)
    =ขึ้น มา บริหาร Err(0) Word(3)
    ขึ้น มา บริหาร

    อาจสังเกตว่า ปัญหานี้หลีกเลี่ยงได้ หากไม่มีคำว่า "ริ" ในรายการคำ แต่ก็ไม่สามารถรับประกันได้ว่า จะไม่มีปัญหาทำนองเดียวกันนี้กับคำอื่นๆ (ในที่นี้ ริ มาจากรายการคำของราชบัณฑิต)

    ดังนั้น cttex จึงต้องทดลองตัดทุกรูปแบบที่เป็นไปได้

  3. ให้โอกาสคำหลัง

    ข้อนี้เป็นผลพลอยได้ของการตัดทุกรูปแบบในข้อ 2 ในบางกรณี หากตัดคำแรกยาวที่สุดแล้ว จะทำให้ไม่สามารถหาคำมาจับคู่กับ วลีที่ตามหลังมาได้ เช่น ("ผลก" เป็นคำในรายการคำ)

    ->ผลการดำเนินงาน
    a) =ผลก *า รด *ำ เนิน งาน Err(2) Word(4)
    b) =ผลก *า #ร ดำเนินงาน Err(2) Word(2)
    c) =ผล การ ดำเนินงาน Err(0) Word(3)

    c) เป็นคำตอบที่ดีที่สุด ซึ่งได้มาเมื่อตัดคำแรกให้สั้นลง

  4. อักษรที่ไม่เป็นคำน้อยที่สุด

    ถึงแม้ว่าคำหน้าจะอยู่ในรายการคำ ก็ไม่ได้หมายความ ว่าเป็นคำที่สมควรมีอยู่จริง เช่น คำว่า "กก" ในคำต่อไปนี้

    ->กกบฎ
    a) กก บ*ฎ*
    b) ก* กบฎ
    ก กบฎ

    หากยึดมั่นในตัว "กก"จะได้ผลแบบ a) คือ มีอักษรที่ไม่เป็นคำสองตัว "บฎ" แต่หากยอมเสียสละ "กก" ก่อน จะได้วิธีการตัดที่ดีกว่า่ใน b) คือ เหลืออักษรที่ไม่เป็นคำเพียงตัวเดียว "ก"

    หลักการนี้ ทำให้ได้มาซึ่งข้อ b) ในกฎข้อที่ 3. ด้วย คือ ยอมสละ "รด" เพื่อให้ได้ "ดำเนินงาน" ซึ่ง b) เป็นคำตอบ ที่ดีกว่า หากคำว่า ผล ไม่มีในรายการคำ ( c) เป็นไปไม่ได้)

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

    วลีที่ไม่มีเครื่องหมายวรรคตอนใดๆคั่นเลยนี้ มีโอกาสพบน้อย แต่ก็ไม่ถึงกับไม่มีเลย

  5. การใช้กฎง่ายๆในการระบุตำแหน่งห้ามตัด

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

    • อยู่ท้ายสระนำ เ แ โ ไ ฯลฯ
    • ขึ้นต้นด้วยวรรณยุกต์ หรือสระที่อยู่ในตำแหน่งบนล่าง
    • ขึ้นต้นด้วยสระที่ควรตามหลังพยัญชนะ เช่น ะ า ฯลฯ

TODO

  • ปัญหาเวลากับประโยคยาว ในข้อ 4.
  • กฎมากขึ้นในข้อ 5. เช่น สระ เ-ีย

โปรแกรม digdict

เดือน กุมภาพันธ์ 2004: หลังจากตัดได้จำนวนคำและอักษรที่ไม่เป็นคำน้อยที่สุดแล้ว ปัญหาถัดมา คือ กรณีที่จำนวนคำมันเท่ากัน เช่น ตา กลม = ตาก ลม ฯลฯ ซึ่งอาจจะต้องใช้ ข้อมูลทางสถิติ หรือ Language Model ฯลฯ มาช่วย

ก่อนอื่นต้องมาดูก่อนว่าปัญหาแบบนี้ร้ายแรงแค่ไหน (มีสักกี่กรณี)

สร้างโปรแกรม digdict เพื่อค้นหา (brute force) ดูว่า ในรายการคำทั้งหมดที่มีอยู่นี้ ก่อให้เกิดความกำกวมในการ ตัดคำได้กี่รูปแบบ คือ

หาคำ a,b,x,y ที่ a+b = x+y
หรือ ยาวกว่านั้น a,b,c,x,y,z ที่ a+b+c = x+y+z
หรือสองข้างไม่เท่ากัน a,b,x,y,z ที่ a+b = x+y+z
หรือ ฯลฯ

เช่น

ตา กลม = ตาก ลม
ตลาด น้ำหอม = ตลาดน้ำ หอม
ไฮโดร เจนใจ คอพับ = ไฮโดรเจน ใจคอ พับ
ไฮโดร เจนใจ คอม้า = ไฮโดรเจน ใจคอ ม้า

จากคำที่ใส่เข้าไป 33018 คำ

vuthi@webls[14:06] wc tdict.txt 
  33018   33017  255084 tdict.txt
ลองรันโปรแกรมแบบแรก
digdict 1 > dig.d1
vuthi@webls[14:03] wc dig.d1
 262348 1293355 6545973 dig.d1
และแบบที่สอง (หลายวันเลย)

digdict 3 > dig.d3
vuthi@webls[14:03] wc dig.d3
55068883 381467791 1822045452 dig.d3

ก็มีอยู่เยอะเหมือนกัน แต่ส่วนมากเป็นการเรียงคำที่ไม่น่าจะพบเห็นในข้อเขียนทั่วไป เช่น "ไฮโดรเจนใจคอพับ" ข้างต้น เดี๋ยวต้องเอาไปค้นเทียบกับ Corpus ฯลฯ อีกที เอาอะไรดี บทความหนังสือพิมพ์ ?

เพิ่มเติม

Wednesday, July 07, 2004

ประกอบเครื่องโน๊ตบุ๊คด้วยตัวเอง (Panasonic)

เคยเห็นมาครั้งหนึ่งแล้วเมื่อปีที่แล้ว นึกแล้วเชียวว่าปีนี้ต้องมีอีก

บริษัท Matsushita (เจ้าของยี่ห้อ Panasonic/National) จัดกิจกรรมภาคฤดูร้อนสำหรับเด็กนักเรียนญี่ปุ่น ให้ทดลองประกอบเครื่องโน๊ตบุ๊คด้วยตนเอง โดยทางบริษัทจัดเตรียมอุปกรณ์ และครูฝึกสอนไว้ให้ เก็บค่าเข้าร่วมกิจกรรมนี้คนละ 120,000 เยน ประกอบเสร็จเอาเครื่องคอมพิวเตอร์กลับไปได้เลย ดูเหมือนปีนี้จะเป็น Let's Note รุ่น R3 ราคาบน Kakaku.com ตอนนี้ก็ 17-180,000 เยน


(ภาพกิจกรรมปีที่แล้ว จาก http://panasonic.biz/pc/news/koubou2003_repo/news.html)

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

น่าเสียดายที่รับเฉพาะนักเรียน ป.4 - ม.6 อายุตั้งแต่ 9-18 ปี และรับแค่ 40 คน ป่านนี้คงเต็มไปแล้ว น่าจะช่วยปลูกฝังจิตสำนึกของการประดิษฐ์ได้ดีทีเดียว ถ้ามีโอกาสได้ทำสักเครื่องคงเก็บไว้ตลอดไป

แก้ไข 1

ดูเหมือนเขารับสมัคร 7/7-19 แล้วถ้าเกินจำนวนก็จับฉลากเอา ไม่ใช่ถึงก่อนรับก่อน จากเมืองไทยไม่รู้จะสมัครได้หรือเปล่า

Tuesday, July 06, 2004

ตัดใจแต่ยังไม่ตัดจอ (Mac)

กำลังจะตัดใจกับ PowermacG5 เพราะยังไงงบประมาณคงไม่ผ่านสภา แต่ดูเหมือนจอ Cinema Display รุ่นใหม่จะยังพอมีความหวัง (Apple - Cinema Displays - Technical Specifications) เพราะสภานี้ให้ความสำคัญกับจอมากกว่าเครื่อง

โดยเฉพาะจอเหล่านี้ หันมาใช้หัวต่อ DVI เหมือน PC แล้ว ต่อกับ PC ได้เลย (เดิมดูเหมือนจะเป็นหัวต่อที่เรียกว่า ADC)


(รูปจาก apple.com)

มี USB/Firewire Hub พร้อมใต้จอ ต่อเมาส์/คีย์บอร์ดได้

จากหลังจอลากสายออกมาเส้นเดียว (รวม DVI/USB/1394/Power ไว้หมด) ด้านหลังของจอนี้ ยังดูสวยกว่าด้านหน้าของจอคู่แข่ง อย่างที่ Steve มันโม้ไว้จริงๆ

Monday, July 05, 2004

เพลงโมสาร์ทกับต้นมะเขือเทศ

คืนวันเสาร์ที่ผ่านมา มีรายการเกี่ยวกับประวัติของโมสาร์ท นักดนตรีผู้ยิ่งใหญ่ ตอนท้ายของเรื่อง มีตัวอย่างการประยุกต์ใช้เพลงของโมสาร์ท กับการพัฒนาการเกษตรของญี่ปุ่น

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

โดยมีการใช้เครื่องวัดปริมาณน้ำตาล ให้เห็นกันชัดๆในทีวี
มะเขือเทศที่ไม่ได้ฟังเพลง มีปริมาณน้ำตาล ~ 4.x %
มะเขือเทศที่ได้ฟังเพลงโมสาร์ท มีปริมาณน้ำตาล ~ 9.x %

นอกจากนี้ ยังมีฟาร์มโคนมบางแห่งเปิดเพลงโมสาร์ทให้แม่วัวฟัง เขาบอกว่าจะได้ปริมาณนมมากขึ้นตอนรีดนม และได้น้ำนมที่มีคุณภาพดีขึ้น

วันนี้ไปค้นเวบดู เจอที่โฮมเพจของจังหวัด Toyama มีตัวอย่างเกษตรกรที่เปิดเพลงโมสาร์ทให้ต้นมะเขือเทศฟังอยู่จริง (ตรงหัวข้อ トマト水耕栽培でクラシック音楽を聴かせるトマト工房)

เขาทำมาตั้งแต่ปี Heisei 12 หรือ 4 ปีมาแล้ว เขาบอกว่า เรื่องเสียงดนตรีมีอิทธิพลต่อผลผลิตทางการเกษตรนั้น เป็นที่รู้กันมานาน เขาก็เลยทดลองเปิดเสียงต่างๆให้มะเขือเทศฟัง พบว่ามะเขือเทศของเขาตอบสนองต่อดนตรีของโมสาร์ทมากที่สุด

ในรายการทีวี เขาบอกว่า สมมติฐานปัจจุบันคือ คลื่นความถี่ของดนตรีโมสาร์ท ไปตรงกับความถี่ธรรมชาติของ โมเลกุล โปรตีนบางอย่างที่มีผลต่อความหวานของมะเขือเทศ + การผลิตน้ำนมของโคนม

Sunday, July 04, 2004

กรณีนายตำรวจ พล่ามมั่ว ออกทีวี

ไปเปิดดูวิดีโอรายการ ถึงลูกถึงคน ตอน กรณีภาพ "ตั๊ก บงกช" แพร่ทางเน็ต เรื่องฮิตประจำสัปดาห์

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

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

หรือว่ามันเปิดบริการใหม่เก็บตังค์จริง ? เดี๋ยวต้องโทรไปเช็คกับเจ้าตัว เคยเห็นแต่ kapook.com ที่ต้องเสียเงินค่าโวตผ่านมือถือ เพื่อเข้าไปดูรูปสาวๆ

เพิ่มเติม

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

เพิ่มเติม/2

เข้ามาเปลี่ยนหัวข้อ ของเดิมคือ "กรณีภาพ ตั๊ก บงกช แพร่ทางเน็ต"

Saturday, July 03, 2004

Finished 444

ทำตามเขาบอก ทำ 444 ให้เป็น 333 ก่อนแล้วเล่นแบบ 333

PuzzleSolver: Solutions to Mechanical Puzzles

เจออันนี้ต้องทำ Bookmark ไว้

PuzzleSolver: Solutions to Mechanical Puzzles

Rubiks กับ PYRAMINX

ออกไปเดินร้านของเล่นแถวฮาราจูกุ ตั้งใจจะหาซื้อ Rubik's Cubes ให้ครบเช็ต (ขาด 2x2x2 กะ 5x5x5) ปรากฏที่ร้านมีแค่ 2, 3, 4 ส่วนขนาด 5 ยังไม่มีเข้ามาขาย เลยซื้อได้แค่ 2x2x2 รวมตอนนี้มีสามก้อน


(เดี๋ยวเล่น 4x4x4 ได้เมื่อไรค่อยมาถ่ายรูปใหม่)

แต่ในมุมเดียวกันเห็นเขาวางขาย PYRAMINX ด้วย คล้ายๆ Rubik แหละ แต่มีแกนหมุน 4 แกน (ยอดถึงฐาน) มากกว่า Rubik ที่มีแค่สามแกน x,y,z แปลกดีก็เลยซื้อมาอีกตัวนึง

2x2x2 เขามีเฉลยแนบมาให้ด้วย ส่วน 3x3x3 มีแค่ใบโฆษณาว่าเฉลยมีขาย 500+ เยน เจ้า 4x4x4 ไม่มีโฆษณาใดๆเกี่ยวกับเฉลย

PYRAMINX ก็มีเฉลยมาด้วยเหมือนกัน

Nikon D70 Firmware (Windows) A:Ver.1.01 / B:Ver.1.02

อ้าว ไปเจอว่า Nikon ออก Firmware ใหม่สำหรับ D70 ( A:Ver.1.01 / B:Ver.1.02) เดี๋ยวต้องเอามาลองสักหน่อย

ดีเหมือนกัน Upgrade/Update Firmware ด้วยตัวเองได้ แต่ก่อนของ D100 ต้องเอาไปให้ Nikon ทำให้ถึง Shinjuku เป็นประจำ

เท่าที่อ่าน Firmware ใหม่ ไม่แก้อะไรมาก (หรือแอบแก้มากแต่ไม่เขียนบอก ตามฟอร์ม)

ปล: ปุ่ม บน Google Toolbar ก็สะดวกดีแฮะ อยาก BLOG หน้าไหนก็กดเลย

Mono 1.0 Released !

นั่งอ่านข่าวจาก NikkeiBP IT Pro เจอข่าวว่า Mono ออกรุ่น 1.0 แล้ว ก็เลยรีบเข้าไปดู แต่ดูเหมือนยังไม่สนับสนุน Windows.Form เท่าไร ให้ไปใช้ GTK# ฯลฯ แทน (จาก FAQ)

Friday, July 02, 2004

Rubik: One Page Format

อันนี้ดีกว่า สั้นดี มีรูปประกอบด้วย
One Page Format

How to Solve the Rubik's Cube

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

เล่นมาหลายเดือน ยังแก้ไม่ได้ 4x4x4 มันยากจริงแฮะ ได้แค่หน้าเดียวกับอีกแถว

วันนี้ เดินผ่านร้านหนังสือใกล้บ้าน เห็นเขาเอารุ่น Classic 3x3x3 มาขาย ก็เลยคว้ามาลูกนึง กะว่าจะรื้อฟื้นความหลังก่อน แล้วค่อยไปเล่น 4x4x4 ต่อ

หมุนไปหมุนมา จำไม่ได้แฮะ ได้แค่สองแถวกับทำหน้าที่เหลือเป็นรูป + (บวก) ลืมไปแล้วว่าทำต่อยังไง

ก็เลยต้องพึ่ง Google ไปเจอนี่ เขียนไว้ละเอียดดี แต่ไม่มีรูปเลย !
How to Solve the Rubik's Cube

แล้วก็เจอว่า 4x4x4 นั้นเขาเรียกว่า Rubik's Revenges แล้วตอนนี้ยังมี 2x2x2, 5x5x5 ขายแล้วด้วย

Thursday, July 01, 2004

เวบ'คม ชัด ลึก' เจอมือดีแฮก ขายทอดตลาด

คม ชัด ลึก ลงข่าวเกี่ยวกับตัวเองแล้ว (เวบ คม ชัด ลึก เจอมือดีแฮก ขายทอดตลาด )
  • ยังงงอยู่ว่าเป็นไปได้ไง หรือว่าก่อนหน้านั้นใช้ Authentication ทางอีเมล์อย่างเดียว ไม่มีรหัสผ่านอันใด
  • แต่ไปดูที่ godaddy.com มันก็บอกว่าอยู่กับ godaddy มาตั้งแต่ 2001 โน่นแล้ว
  • อาจจะเป็นไปได้ว่าเดิมก็ godaddy.com แล้วเขาก็ไปแฮกที่ godaddy ?
  • อาจจะจริงที่ไม่ได้หมดอายุไปแล้วลืมต่อ เพราะ
          Created on: 17-Jul-01
          Expires on: 17-Jul-07
          Last Updated on: 25-Jun-04
    
    ถ้าหมดอายุก็น่าจะหลัง 17 July