15 November 2004

MMX & SSE

เมื่อวานว่างๆ เลยลองหาวิธีเขียนโปรแกรมที่ใช้ MMX กับ SSE เพื่อประมวลผลเวคเตอร์ ลองหาคู่มือของ gcc ดู ก็พบว่าสนับสนุน MMX กับ SSE แล้ว ส่วน SSE2 เพิ่งเริ่มใช้ได้ในเวอร์ชัน 3.4 วิธีเขียนโปรแกรมก็ไม่ยาก ลองดูตัวอย่างจาก http://ds9a.nl/gcc-simd/ แล้วลองเขียนโปรแกรมหาค่า Euclidean distance แบบง่ายๆ ดู

#include <stdio.h>
#include <math.h>

typedef float v4sf __attribute__ ((mode(V4SF)));

union float4 {
  v4sf v;
  float f[4];
};

main() {
  float4 x,y,z;
  float d,d2;

  z.v = (x.v - y.v) * (x.v - y.v);
  d2 = 0.0;
  for(int i=0; i<4; i++)
    d2+=z.f[i];
  d =sqrt(d2);
}

วิธีกำหนดให้ใข้เวคเตอร์ ก็แค่ใส่ __attribute__ ไว้หลัง typedef ส่วน V4SF ก็คือเวคเตอร์ของ float จำนวน 4 ตัว เวลากำหนดค่าแต่ละตัวก็ใช้ union ร่วมกับอะเรย์เอา เวลาคำนวณก็ง่าย เพราะใช้ operator เหมือนเดิม (ที่จริงมีฟังก์ชันเฉพาะด้วย) ส่วนถ้าอยากจะใช้ตัวแปรแบบอื่น เช่น int ก็เปลี่ยน mode เป็น V4SI ได้ ถ้าจะใช้ double ก็ใช้ V4DF (แต่ว่า double นี้จะสนับสนุนในเวอร์ชัน 3.4 ขึ่นไปเท่านั้น) ต่อไปก็ต้องลองเทียบเวลาดู เวลาเร็วกว่ากันเยอะไหม

11 November 2004

Spyware

ใช้ Linux นานๆ นี่ก็มีข้อเสียเหมือนกันนะ ทำให้มองข้ามปัญหาต่างๆ ไปเยอะเหมือนกัน เช่นไวรัสก็ไม่เคยสนใจ เพราะบน Linux ไม่มีปัญหาพวกนั้น ปัญหาเกี่ยวกับความปลอดภัย น่าจะเป็นพวกหนอน หรือรูรั่วต่างๆ ซึ่งถ้าตั้งไฟร์วอลปิดทุกอย่างไว้ ก็ค่อนข้างอุ่นใจว่าน่าจะปลอดภัย แต่บน Windows นี่อีกเรื่องหนึ่งเลย วันก่อนเครื่องที่เด็กที่แล็บใช้ อยู่ดีๆ ก็เข้าเว็บภายในของแล็บไม่ได้ (ไม่ใช่ภายในทีเดียวหรอก เพียงแค่จำกัด IP เอาไว้) ตอนแรกก็คิดว่าฮาร์ดดิสก์จะมีปัญหา เพราะเครื่องที่คุณเลขาใช้เคยเป็น พอมี bad cluster มากๆ แล้วทำให้ส่วนอื่นรวนไปหมด ปรากฏว่าดูแล้วก็ไม่ใช่ ไวรัสก็หาไม่เจอ ค่าต่างๆ ก็ดูปกติ พอไปดู log ของ web server ก็แปลกใจว่าทำไม IP ของเครื่องนั้นเปลี่ยนไปทุกครั้ง สุดท้ายก็เลยเจอว่าโดน spyware ชื่อ Marketscore ซึ่งจะไปกำหนดให้ใช้ proxy ที่กำหนดไว้เสมอ (เหมือนต้องการข้อมูลว่าแต่ละคนเข้าเว็บไหนบ้าง) ทำให้เข้าเว็บภายในไม่ได้ เพราะล็อกเอาไว้ สุดท้ายเลยต้องให้เอาโปรแกรมที่ชื่อ SpyBot มาลงทุกคน แล้วก็นั่งเช็คว่ามีใครติดอะไรบ้าง ปรากฏว่าโดนกันแทบทุกคน มากบ้างน้อยบ้าง ส่วนใหญ่มักจะเป็นพวก cookie หรือ banner แต่วิธีการป้องกันนี่ก็ลำบากเหมือนกันนะ เพราะไปโหลดโปรแกรมมาลงเอง แล้วก็ไม่มีอะไรรับรองได้เลยว่า โปรแกรมที่โหลดมามี spyware แถมมาด้วยหรือเปล่า ตอนนี้คงได้แค่เลือกโหลดจะไซท์ที่คิดว่าไว้ใจได้เท่านั้นแหละมั้ง จนกว่าจะเอา digital signature มาใช้ ส่วน Linux ก็ยังอุ่นใจได้อยู่เหมือนเดิม อย่าง portage ของ Gentoo ก็ใช้ GPG แล้วนะ

GMail POP/SMTP

เจอข่าวที่ ITMedia.co.jp ว่า Gmail ให้บริการ POP/SMTP แล้ว เพิ่งรู้เหมือนกัน ใช้อยู่ทุกวันไม่ได้สังเกตเลย เพราะเดี๋ยวนี้เอา Gmail ไว้เก็บเมลที่ส่งมาที่แล็บ ไว้เปิดดูที่บ้าน เนื่องจากขี้เกียจเซ็ต Thunderbird อีกอย่างก็คือ เดี๋ยวนี้เวลาอยู่บ้าน แค่เช็คเมลจริงๆ ถ้าไม่ใช่เรื่องเร่งด่วนก็ยังไม่ตอบอยู่แล้ว เลยใช้แค่ Gmail ก็พอ

09 November 2004

Pukiwiki

ช่วงนี้มัวแต่นั่งทำโฮมเพจของห้องแล็บใหม่ หลังจากมีหลายคนบ่นว่าโฮมเพจเดิมแย่มาก ไม่ค่อยมีข้อมูลอะไร โผล่เข้ามาก็เจอชื่อคนในแล็บเลย แถมรูปต่างๆ ก็ไม่สวย (โฮมเพจที่ใช้อยู่นี้มีมาตั้งแต่ ศ. คนเก่ายังไม่เกษียณ แสดงว่าอย่างน้อยสองปีแล้ว) ทีนี้ไหนๆ ก็จะทำใหม่ เลยเอา Pukiwiki มาใช้เป็นจัดการเนื้อหา ทำให้แก้ไขเนื้อหาได้ง่ายขึ้น Pukiwiki เป็น Wiki อันหนึ่งที่พัฒนาโดยคนญี่ปุ่น ใช้ php ทั้งหมด และไม่ใช้ DBMS ทำให้ติดตั้งง่าย และเป็นที่นิยมในญี่ปุ่น แต่หลังจากแก้ไขหน้าตาแล้ว ก็พบว่า Pukiwiki ยังมีข้อจำกัดในเรื่องการจัดการคนใช้ เพราะต้องกำหนดผู้ใช้ไว้ในไฟล์ pukiwiki.ini.php เอง ระบบไม่จัดการให้ ทำให้กำหนดพาสเวิร์ดลำบาก สุดท้ายเลยแก้ php เองให้ใช้ crypt() แล้วไปตัดพาสเวิร์ดมาจาก Solaris มาใช้เป็นอันว่าแก้ปัญหาได้ เพราะเอาไปผูกไว้กับ Solaris เลย ในแง่ความปลอดภัยแล้วคงไม่ดีเท่าไหร่ แต่จัดการแก้ใช้ Pukiwiki เช็คไอพีด้วย ถ้าเป็นคนนอกก็ไม่รับพาสเวิร์ดใดๆ ทั้งสิ้น คิดว่าคงปลอดภัยเพียงพอ ทีนี้ก็เหลือแต่จัดการเนื้อหา ตอนนี้เลยต้องมานั่งแปลภาษาญี่ปุ่นเป็นอังกฤษ เพราะจะได้มีเนื้อหาเท่าเทียมกัน

28 October 2004

OpenTTD Simutrans และ Locomotion

วันก่อนจัดการเคลียร์เครื่องเก่าลงวินโดว์ใหม่ หลังจากปล่อยมันมั่วๆ อยู่เป็นปี ระหว่างเคลียร์ก็เจอ Transport Tycoon Deluxe ที่เคยติดเมื่อสองปีก่อน เลยเอามาเล่นนิดหน่อย เสร็จแล้วมาดูเว็บ ทำให้รู้ว่าเดี๋ยวนี้เกมแบบ TTD นี่มีเยอะเหมือนกันนะ

  • OpenTTD -- เป็นโครงการพัฒนา TTD แบบโอเพ่นซอร์ส โดยอาศัยความรู้จาก TTDPatch ลักษณะโครงการคล้ายๆ กับ FreeCIV ทำให้ตอนนี้สามารถเล่น TTD บน Linux ได้แล้ว แต่ยังมีข้อจำกัดคือ OpenTTD ยังไม่มีกราฟิกเป็นของตัวเอง ต้องใช้ข้อมูลจาก TTD ดังนั้นคนที่จะเล่นได้ ก็คือคนที่มี TTD อยู่แล้วเท่านั้น
  • Simutrans -- เพิ่งเจอเมื่อวานนี้เป็นเกมแบบเดียวกับ TTD เลย คือ บริหารบริษัทขนส่งให้มีกำไรอยู่รอดได้ Simutrans นี่พัฒนาใหม่หมดเลย ดาวน์โหลดได้ฟรี แต่ไม่โอเพ่นซอร์ส มีเวอร์ชันบน Linux เหมือนกัน เมื่อคืนลองเล่นแล้ว สนุกดีเหมือนกัน ลักษณะการออกแบบรางรถไฟ หรือการกำหนดสัญญาณต่างๆ อาจจะสู้ TTDPatch ไม่ได้ ไม่สามารถสร้างเน็ตเวิร์คซับซ้อนมากๆ ได้ แต่ชอบระบบการขนส่งคนที่เหมือนจริงกว่า เพราะผู้โดยสารแต่ละคนมีจุดหมายของตัวเอง ว่าจะไปไหน จะไปเปลี่ยนรถที่ไหน ถ้ารถไฟขบวนไหนไม่ไปก็ไม่ขึ้น ไม่เหมือน TTD ที่รถขบวนไหนมาก็ขึ้นหมด ไม่มีการกำหนดว่าใครจะไปไหน ทำให้การบริหารรถแปลกๆ เพราะไม่จำเป็นต้องคิดมาก แค่หารถมาเพิ่มเพื่อให้ขนคนไปได้ก็พอ เกมนี้มีคนเล่นในญี่ปุ่นเยอะเหมือนกัน เพราะมีคนเอา Shinkansen มาทำเป็น addons ให้โหลดมาลองได้
  • Locomotion -- อันนี้เป็นเกมใหม่ล่าสุดของ Chris Sawyers คนพัฒนา TTD ดูแล้วเหมือนเป็นเวอร์ชันใหม่ของ TTD นั่นแหละ แต่คราวนี้เขาให้ Atari เป็นคนจัดจำหน่าย เลยเปลี่ยนชื่อเกมมั้ง อันนี้ยังไม่ได้ลอง เพราะไม่ฟรี เมื่อวานเข้าไปดูในเว็บหนึ่งเห็นว่าขายตั้ง 5000 กว่าเยน เพราะยังไม่วางขายในญี่ปุ่นโดยตรง ใช้นำเข้าจากอเมริกาเอาเอง (ในอเมริกา ราคาขายอยู่ที่ $29.99 รวมค่าส่งแล้วคงพอๆ กัน) อืม...เห็นราคาแล้วเอาไว้ก่อนล่ะกันนะ นอกจากนี้ไปอ่านพวกรีวิวแล้ว ส่วนใหญ่ยังไม่ประทับใจเท่าที่ควร จุดเด่นคือกราฟิกสวยกว่าเดิม แต่เรื่องระบบรางรถไฟดูเหมือนจะยังสู้ TTDPatch ไม่ได้ เลยยังไม่คิดจะลอง

26 October 2004

The Da Vinci Code

เพิ่งอ่านจบหมาดๆ เลยต้องเขียนถึงซักหน่อย ได้ยินชื่อหนังสือเล่มนี้มาซักพักใหญ่แล้ว แต่ไม่ได้สนใจเท่าไหร่ เพราะเป็นโรคไม่กินเส้นกับภาษาอังกฤษในนิยาย จนมีคนชักชวนให้อ่านบอกว่าสนุก ลึกลับ น่าติดตาม เลยต้องหามาอ่านซักหน่อย The Da Vinci Code เป็นเรื่องที่มีพล็อตพื้นๆ พบได้ทั่วไป คือ พระเอกกับนางเอกต้องเอาไปพัวพันกับเหตุการณ์ฆาตกรรมภัณฑารักษ์ของพิพิธภัณฑ์ลุฟร์ ซึ่งโยงไปยังเรื่องลึกลับที่ทุกคนคาดไม่ถึง เหมือนหนังฮอลลีวูดทั่วๆ ไป แต่จุดสนใจคือรหัสหรือข้อความที่ภัณฑารักษ์ทิ้งไว้ก่อนตาย ตัวเอกของเรื่องจะต้องถอดรหัสต่างๆ ที่ถูกทิ้งเอาไว้ เป็นจุดกระตุ้นความสนใจ เพราะทำให้อยากรู้ว่ามีอะไรซ่อนอยู่่ นอกจากนี้เนื้อหายังเชื่อมโยงกับสิ่งของและสถานที่ที่มีอยู่จริง และเกี่ยวข้องกับต้นกำเนิดของคริสตศาสนา ผมว่าผู้เขียนต้องทำงานหนักมาก เพื่อเชื่อมโยงสิ่งต่างๆ เข้าด้วยกัน เพื่อสร้างจุดเด่นของนิยาย

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

อ่านจบแล้ว อยากไปเที่ยวฝรั่งเศสจริงๆ ถ้าได้ไปคงต้องพกหนังสือเล่มนี้ไปด้วย แล้วก็เที่ยวตามหนังสือเลย อืม...แต่อ่านหนังสือแปลอีกซักรอบก็คงจะดีนะ เพราะรอบแรกรีบอ่านไปหน่อย คงตกรายละเอียดไปเยอะ แหะๆๆ มัวแต่อยากรู้ ว่าเรื่องมันจะเป็นยังไง ใครอยู่เบื้องหลัง

25 October 2004

NeoOffice/J

วันนี้เพิ่งไปเจอว่า NeoOffice/J ออกเวอร์ชันใหม่แล้ว คือ 1.1 Alpha 2 สนับสนุนฟีเจอร์ของ OpenOffice.org 1.1.2 ลองใช้ดูแล้ว ดีทีเดียว หลังจากเดิมที่ไม่ประทับใจเวอร์ชัน 0.8.4 เท่าไหร่

NeoOffice/J เป็นโปรแกรมออฟฟิสแบบ native สำหรับ Mac OS X ที่พอร์ตมาจาก OpenOffice.org ทำให้ใช้งานสะดวกกว่า OpenOffice.org ที่ปัจจุบันยังไม่มีเวอร์ชันที่เป็น native ต้องผ่านใช้ X11 ซึ่งไม่สามารถใช้คุณสมบัติต่างๆ ของ Mac OS X ได้อย่างเต็มที่ เช่น ระบบอินพุตภาษาญี่ปุ่น ก็ต้องหา kinput2 หรือ uim มาใช้เอง อย่างไรก็ดี คาดว่า OpenOffice.org เวอร์ชันต่อไป ก็จะสนับสนุน Mac OS X แบบ native แล้วล่ะ (โดยคงเอาซอร์สจาก NeoOffice/J ไปรวมด้วย)