[VM-Ware]แก้ปัญหา Guest OS 32-bit ไปลงใน Machine 64-bit แลว้ไม่ Work

2009-10-15 / Computer / 1 Comments

เมื่อเดือนก่อนผมต้องใช้ VM Ware (Workstation) ลง Solaris 32-bit ลงในเครื่อง IBM System X3200M2 ซึ่ง CPU มันเป็น 64-bit
พอลงเสร็จตอน Boot OS มันฟ้อง Error ว่า บลา ๆ ๆ  ๆ (55+ จำไม่ได้) ก็เลยหาว่าทำไมมันลงไม่ได้  พี่ที่ Office เลยให้เว็ป ๆ นึงมาอ่าน ปรากฏว่าเค้าให้ทำแบบนี้ครับ
เพิ่ม Config “monitor_control.disable_longmode = 1" ลงไปในไฟล์ .vmx ดูครับ ผ่านฉลุย ^^

Read More

ครั้งหนึ่งมันคือความภูมิใจ ตอน YECC2008

DSC_0317

หลังจากที่ไปแข่ง YECC2007  พวกเราได้รับรางวัลชมเชยมา
ปี 2008  เราก็ได้เป็นตัวแทนไปแข่งอีกรอบ  ก็สนุกสนานดีครับ  แข่งรอบนี้มีกติกาที่ทำให้สนุกกับการแข่งขัน
มีการตอนคำถามชิงคะแนน  ซึ่งพวกเรามักจะตอบไม่ทัน  555+  ส่วนกติกาอื่น ๆ ก็จะคล้ายกับ YECC2007
รอบบนี้ใช้ MCU PIC16F8722  มี Interface ให้มากมาย   ด้วยความฟลุ๊ค หรือว่ายังไงไม่รู้  รอบนี้ได้รางวัล  ที่  3  มา  ได้รางวัลมา  30000
ไปดูรูปกันดีกว่าครับ

ผู้ร่วมเข้าแข่งขัน
1.  P’MaIII  (Ultra MaIII,Ultra_MCU) คณะวิศวกรรมศาสตร์  ม.นเรศวร
2. P’Nook (svrnuke,Imnuke) คณะวิศวกรรมศาสตร์  ม.นเรศวร
3. N’ Teng  (โรงเรียนกำแพงเพชร)
4. N’ Ja  (โรงเรียนเฉลิมขวัญสตรี พิษณุโลก)

ขอขอบคุณทาง  Citcoms  ที่สนับสนุนอย่างเต็มที่  กินอิ่มมากมาย  555+

Read the rest of this entry »

Read More

วิธีง่าย ๆ ในการส่ง Integer ไปทาง TCP

2009-10-03 / C/C++ / 476 Comments

วันนี้ผมจะมาเขียนเรื่องวิธีง่าย ๆ ที่ผมใช้ส่ง Integer ไปทาง TCP
ซึ่งการส่งข้อมูลจะต้องถูกตัดออกเป็นไบต์ ๆ  ในการส่ง
ซึ่งตัวแปล Integer (ของ CPU 32 bit) จะมีขนาด 4 ไบต์ (8 x 4 = 32)
ซึ่งวิธีการที่ผมใช้การ Shift Bit เข้ามาช่วง ซึ่งทำให้การเขียนโปแรกมนั้นง่าย CPU ทำงานน้อย (น้อยกว่าวิธีการ ลบ และ mod)

สมุติเรามีข้อมูลแบบนี้
(3)00110011 (2)00111100 (1)10000001 (0)11110000  (ค่าเท่าไหร่ไม่ต้องไปสนใจ โดยเราจะใช้ชื่อแทนว่า Data)
เวลาเราส่งก็ต้องแยกออกเป็นไบต์ ๆ ได้แบบนี้

(0)11110000
(1)10000001
(2)00111100
(3)00110011

โดยเรียงจากไบต์ต่ำมาหาไบต์สูง

ซึ่งวิธีการได้ไบต์ต่างๆ  มาดังนี้
(0)11110000 = (Data & 00000000 00000000 00000000 11111111)
(1)10000001 = (Data & 00000000 00000000 11111111 00000000) >> 8
(2)00111100 = (Data & 00000000 11111111 00000000 00000000) >> 16
(3)00110011 = (Data & 11111111 00000000 00000000 00000000) >> 24

จากตัวอย่างจะเป็นได้ว่า เรานำ Data มา & กับค่าตัวเลขชุดนึงเพื่อกำจัดค่าในไบต์อื่นที่เราไม่ต้องการออกไป แล้ว Shift Bit เพื่อให้ได้ไบต์ที่เราต้องการมาอยู่ในไบต์ที่ 0
โดยจาก วิธีการนี้สามารถนำมาเขียนเป็น c source code ได้ดังนี้ครับ

unsigned char splitInt2Byte(int data,unsigned char byteNumber)
{

return (data >> (8 * byteNumber)) & 0xFF;  
//return ((( 255 << (8*byteNumber)) & data) >>  (8*byteNumber));   //ค่า เท่ากัน
}

จบแล้วครับ หวังว่าจะเป็นประโยชน์ต่อใครหลายๆ คนครับ

ปล.ส่วนตัวแปลที่เป็น Double ก็ใช้วิธีการคล้าย ๆ นี้ครับ แต่จะแยกได้ทั้งหมด 8 ไบต์ครับ (CPU 32 bit)

Read More

ครั้งหนึ่งมันคือความภูมิใจ ตอน YECC2007

ความเป็นมาของ YECC 2007
Nectec ได้จัดค่าย E-Camp  ทั่วประเทศ(จำไม่ได้ว่ากี่ค่าย)  และคัดเลือกนักเรียน  2  คน  จาก 40-50 คน  และพี่เลี้ยง 2 คนมาแข่งขัน
ประกอบวงจรอิเล็กทรอนิกส์  ซึ่งตอนอยู่ในค่ายพี่เลี้ยงและอาจารย์มีหน้าที่สอนให้น้อง ๆ เข้าใจการทำงานของวงจรอิเล็กทรอนิกส์

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

งานนี้มีน้อง ๆ คือ  น้องปริ้น (โรงเรียนจ่านกร้อง)  และน้องจูล   (จากโรงเรียนเฉลิมขวัญสตรี)
มีพี่เลี้ยงคือ  พี่ใหม่  (UltraMCU , Ultra MaIII)  และพี่นุ๊ก (svrnuke,Imnuke)  คณะวิศวกรรมศาสตร์  มหาวิทยาลัยนเรศวร

ถึงแม้งานนี้จะได้แค่รางวัลชมเชย   แต่ก็เป็นความภูมิใจของพวกเรา  ที่ได้มาแข่งขันค้าบบบบ  ^_^

DSC04699

DSC04674

Read the rest of this entry »

Read More

AI คืออะไร ????

2009-10-03 / AI / 458 Comments

วันนี้ว่าง ๆ นั่งจัดห้องใหม่  ก็ไปเจอสมุดโน๊ตเล่มนึง  พอเปิดดูก็เจอ  Lecture  สมัยเรียน AI  ก็เลยเอามาอัพสักหน่อย  อิอิ

AI (Artificial Intelligent)  คืออะไร
1.  AI  เป็นระบบที่คิดได้เหมือนมนุษย์  มีการตัดสินใจ  การแก้ปัญหา และมีการเรียนรู้
2.  AI  เป็นระบบที่มีการกระทำคล้ายกับมนุษย์    แล้วอย่างไรถึงจะเรียกว่าคล้ายมนุษย์  Alan Turing ได้เสนอ Turing Test ในปี 1950  ซึ่งใช้ทอบสอบความฉลาดของ AI ดังนี้
-  natural language processing   สามารถสื่อสารเป็นภาษาอังกฤษได้
-  knowledge representation  สามารถบันทึกสิ่งที่รับรู้ไว้ได้
-  automated  reasoning  ใช้ infomation  ที่บันทึกไว้ตอบโจทย์ได้
-  machine learning  เรียนรู้และปรับตัวได้
-  computer vision  สามารถมองเห็นได้ (รับภาพได้)
-  robotics  มีการเปลี่ยนแปลง  สามารถเคลื่อยย้ายวัตถุได้
3.  AI เป็นระบบที่คิดอย่างมีเหตุผล  ใช้หลักการทางตรรกะ (login)
4.  AI  เป็นระบบที่กระทำอย่างมีเหตุผล  (rational agen)

ที่มา : Artificial Intelligence A Modern Approach   => Stuart J. Russell and Peter Norvig

Read More

Find report name with intercept sql keyword

2009-10-01 / HosXP / 1 Comments

หลาย ๆ ท่านที่ใช้ HosXP  คงเคยพบปัญหาจะแก้ไข  report  แล้วไม่รู้ว่า  report นั้นชื่ออะไร
แต่เราสามารถใช้ประโยชน์ของ  intercept sql keyword  มาช่วยได้   หลักการทำงานของ
intercept sql keyword  ก็คือ  จะแสดงคำสั่ง sql  ใน debug form เมื่อในคำสั่ง sql นั้นมีคำที่ตรงกับคำที่เราตั้งไว้

ดังนั้น   ถ้าเราจะหาชื่อ  report  เราต้องใช้คำว่า  reporttemplate เป็น keyword   เพราะโปรแกรม
จะเรียก  report  จากตาราง  reporttemplate   โดยใช้คำสั่ง  select * from reporttemplate
จะสังเกตว่า  ในคำสั่งมีคำที่ตรงกับคำที่เราตั้งเป็น keyword  ดังนั้นโปรแกรมจะแสดงคำสั่ง  sql นี้ใน  Debug Form

1.  เปิด  intercept sql keyword  ตามภาพ

Intercept-1

2.  keyword  ของคำสั่งที่เราต้องการให้โชว์ลงไปในที่นี้เราจะใช้คำว่า reporttemplate  ซึ่งเป็นชื่อของตารางที่ใช้เก็บ report
Intercept-2

3. เปิดรายงานไหนก็ได้  ที่เราต้องการค้นหาชื่อ  แล้วโปรแกรมจะแสดงคำสั่ง  sql   เราก็จะรู้ว่ารายงานตัวนี้ชื่อว่าอะไร
Intercept-3

Read More