Monthly Archives: ตุลาคม 2007

ระดมชุดนักเรียนมือสอง 1,000 ชุด

อาจารย์บ้านนอก.คอม ขอรับการแบ่งปันน้ำใจจากทุกท่าน


ระดมชุดนักเรียนมือสอง 1,000 ชุด
ลองช่วยกันเปิดตู้เสื้อผ้าที่บ้านดูว่า มีชุดนักเรียนที่ไม่ใส่แล้ว ถูกพับเก็บไว้บ้างหรือไม่

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

โดยส่งมาได้ที่

กลุ่มศิลปวัฒนธรรมกระจกเงา 106 ม.1
ต.แม่ยาว อ.เมือง จ.เชียงราย 57100

(กรุณาเขียนติดที่กล่องด้วยว่าชุดนักเ รียนบริจาค และพร้อมชื่อที่ติดต่อของผู้ส่ง ถ้ามี e-mail ด้วยจะดีมากครับ) รบกวนส่ง e-mail ฉบับนี้ถึงเพื่อนของคุณ ที่จะอาจจะมีส่วนร่วมในโครงการนี้ได้

หรือสอบถามรายละเอียดเพิ่มเติมได้ที่
สมบัติ บุญงามอนง

superbuff@bannok.com

Advertisements

Gostai บริษัทหุ่นยนต์ผู้ท้าชนไมโครซอฟต์

ไปหน้าแรก | สารบัญ | Laploy.comระเบียนบทความ | บทความจากลาภลอย

Gostai บริษัทหุ่นยนต์ผู้ท้าชนไมโครซอฟต์

บริษัทเล็กๆ ที่เพิ่งก่อตั้งได้ปีเดียว มีพนักงานไม่ถึงสิบคน มีไม้ตายอะไรจึงกล้าท้าชนยักษ์ใหญ่?

บทความโดย : ลาภลอย วานิชอังกูร (laploy.com)  จากนิตยสาร WinMag ฉบับ 167

บิล เกสต์ เขียนบทความ “หุ่นยนต์ในทุกครัวเรือน” ตีพิมพ์ในวารสาร Scientific American ฉบับเดือนมกราคม ค.ศ. 2007 แสดงวิสัยทัศน์ว่าตลาดหุ่นยนต์เป็นสนามรบที่บริษัทต่างๆ จะช่วงชิงความเป็นใหญ่ในทศวรรษหน้า และพูดถึงงานที่ทีมงาน Microsoft Robotics Studio กำลังทำ คล้ายส่งสัญญาณให้รู้ว่าไมโครซอฟท์จริงจังกับตลาดซอฟท์แวร์หุ่นยนต์มากเพียงใด

 

หุ่นยนต์ที่ใช้งานได้จริงจังในปัจจุบันมีอยู่เพียงสองแห่ง แห่งแรกคือในโรงงานอุตสาหกรรม แห่งที่สองคือในยานอวกาศของวายร้ายที่มุ่งไปถล่มพวกเจไดในภาพยนตร์เรื่องสตาร์วอร์ส เราไม่มีหุ่นยนต์รับใช้ที่ทำงานได้สารพัดอย่าง R2-D2 หรือ C3-PO ส่วนหุ่นยนต์ “อซิโม” ของบริษัทฮอนด้า อาจดูใกล้เคียง แต่อันที่จริงต้องใช้มนุษย์บังคับเหมือนของเล่นบังคับด้วยวิทยุ ก่อนความฝันเรื่องหุ่นยนต์รับใช้จะกลายเป็นความจริงได้ เราต้องแก้ปัญหาเรื่องสติปัญญาของหุ่นยนต์ให้ได้เสียก่อน หุ่นยนต์รับใช้ในบ้านจำเป็นต้องมีสติปัญญาเหนือกว่าหุ่นอุตสาหกรรม เพราะงานอุตสาหกรรมเป็นงานซ้ำซาก ดำเนินเป็นจังหวะที่แน่นอน แต่งานจุกจิกในครัวเรือนต้องการหุ่นยนต์ที่มีเชาว์ดีกว่านั้น

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

บริษัทไมโครซอฟท์เข้าใจในสิ่งที่เกิดขึ้น จึงจัดตั้งหน่วยงานด้านซอฟท์แวร์หุ่นยนต์ นำทัพโดย Tandy Trower พนักงานระดับมันสมองที่ทำงานกับไมโครซอฟท์มาตั้งแต่ปี ค.ศ. 1981 เป้าหมายคือจัดระเบียบการพัฒนาซอฟท์แวร์หุ่นยนต์โดยการกำหนด platform มาตรฐานให้แก่นักสร้างซอฟท์แวร์หุ่นยนต์ โดยนำเสนอเครื่องมือชื่อ Microsoft Robotics Studio (MRS) ซึ่งทำงานร่วมกับเทคโนโลยี Windows, .NET Framework, และภาษาที่ใช้ CLR เช่น VB.NET และ C#

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

 

เขาชื่อชอง

ชายหนุ่มที่ว่าคือ Jean-Christophe Baillie เคยเป็นนักศึกษาที่สถาบันโพลีเทคนิค Ecole ได้รับปริญญาเอกจากมหาวิทยาลัยปารีส VI ในปีค.ศ. 2002 เคยทำงานวิจัยด้านการมองเห็นของหุ่นยนต์ที่สถาบันวิทยาการคอมพิวเตอร์ Sony ในกรุงปารีสช่วงระหว่าง ค.ศ. 2002 ถึง 2003 เข้ารับตำแหน่งผู้ช่วยศาสตราจารย์ในห้องทดลองด้านอิเลคโทรนิคและคอมพิวเตอร์ที่สถาบัน ENSTA ในปีค.ศ. 2003 หัวข้อที่ Baillie สนใจเป็นพิเศษคือ จิตใจ การเรียนรู้ และความสัมพันธ์ระหว่างการออกแบบกับสถาปัตยกรรม ปัจจุบัน Baillie ก่อตั้งบริษัท Gostai ซึ่งมีจุดมุ่งหมายเพื่อครองตลาด framework ของซอฟท์แวร์หุ่นยนต์

 

 

บริษัท Gostai

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

บริษัท Gostai เน้นสร้างภาษาเพื่อพัฒนาปัญญาประดิษฐ์ (ภาษา UBRI) ที่เชื่อมกับภาษาอื่นๆ ได้ เช่นภาษา C++, Java, Matlap และมีแผนที่จะพัฒนาไลบราลีของ UBRI เป็นภาษาอื่นๆ เช่น Java, Lips และ C# เพื่อให้ทำงานได้ในหลายๆ สภาพแวดล้อม

สินค้าของบริษัท Gostai มีดังนี้

  • URBI Pack for Robot Manufacturers : เป็นซอฟท์แวร์ engine สำหรับให้ผู้ผลิตหุ่นยนต์นำไปใช้กับหุ่นยนต์ที่จะผลิต
  • URBI for your robot : ซอฟท์แวร์ engine สำรับเจ้าของหุ่นยนต์ที่ต้องการเขียนโปรแกรมควบคุมหุ่นยนต์ของตนด้วยภาษา UBRI
  • Plug & Play Components : ชิ้นส่วนสำเร็จรูปที่นำไปประกอบเป็นซอฟท์แวร์สำหรับหุ่นยนต์ได้ อาทิ โปรแกรมจำได้หมายรู้ใบหน้า เสียง และโปรแกรมสังเคราะห์เสียงเป็นต้น
  • URBI Development Studio : เครื่องมือสำหรับผู้สร้างหุ่นยนต์เชิงพาณิชย์ สถาบันศึกษา และนักสมัครเล่น ช่วยให้พัฒนาพฤติกรรมของหุ่นยนต์ได้ง่าย มีการใช้งานเป็น graphic 
  • URBI Motion Editor : โปรแกรมสำหรับช่วยสร้างอากัปกริยาของหุ่นยนต์ที่ซับซ้อน เช่นการฟ้อนรำและกริยาท่าทางอื่นๆ 
  • URBI Remote Pro : ซอฟท์แวร์สำหรับสร้างการควบคุมจากระยะทางไกล

 

URBI Development Studio

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

 

ผู้กำหนดความประพฤติของหุ่นยนต์
Universal Real-time Behavior Interface หรือ URBI เป็นเทคโนโลยีหลักของบริษัท Gostai เป็น platform สำหรับการสร้างซอฟท์แวร์ในหุ่นยนต์ เทียบได้กับ .NET Framework เป็น platform สำหรับการสร้างซอฟท์แวร์ในระบบปฏิบัติการ Windows

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

 

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

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

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

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

จุดเด่นของภาษา URBI มีดังนี้

  •  การประมวลผลแบบคู่ขนาน
  •  การจัดระยะเวลาของคำสั่ง
  •  การกำหนด Tag
  •  การใช้ทรัพยากรร่วมกัน
  •  การจัดการเหตุการณ์
  •  สถาปัตยกรรม UObject

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

การเขียนโปรแกรมให้ทำงานคู่ขนานใน URBI จึงทำได้ง่ายมาก ยกตัวอย่างเช่น คำสั่ง whenever และ at ที่จะทำงานเมื่อมีเหตุการณ์เกิดขึ้น แทนที่จะใส่เครื่องหมาย semicolon ในท้ายคำสั่ง เราสามารถใส่สัญลักษณ์ & แทนได้ หากเราเขียนคำสั่งว่า A&B จะหมายถึงสั่งให้หุ่นยนต์ทำงาน A และงาน B ไปพร้อมๆ กัน

 

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

ภาษา URBI จัดให้มีสัญลักษณ์หรือเครื่องหมาย (operator) สี่แบบเพื่อให้คั่นระหว่างประโยคคำสั่ง สัญลักษณ์เหล่านี้ทำหน้าที่เป็นเครื่องกำหนดว่าจะให้เกิดการทำงานแบบคู่ขนานในลักษณะใด เหมือน semicolon ทำหน้าที่คั่นระหว่างประโยคคำสั่งสองคำสั่ง ที่ทำงานตามลำดับก่อนหลังซึ่งกันและกัน แต่สัญลักษณ์ของ URBI อย่าง & ทำหน้าที่เชื่อมประโยคคำสั่งสองคำสั่งและกำหนดให้ทั้งสองคำสั่งเริ่มต้นและทำงานไปพร้อมๆ กัน โปรดพิจารณาแผนภูมิต่อไปนี้


จากแผนภูมิข้างบนจะเห็นว่าสัญลักษณ์ ; ทำหน้าที่เหมือนโปรแกรมภาษาซี คือกำหนดให้คำสั่ง A ทำงานก่อน เมื่อทำจบแล้วจะมีช่วงเว้นว่างเล็กน้อย จากนั้นคำสั่ง B จึงเริ่มทำงาน สัญลักษณ์ A|B หมายถึงคำสั่ง A ทำงานจบแล้วคำสั่ง B จะเริ่มต้นทันที สัญลักษณ์ , ทำหน้าที่ระบุว่าคำสั่ง A เริ่มทำงานก่อน เมื่อทำไปได้ครึ่งหนึ่ง คำสั่ง B จะเริ่มทำงาน และสุดท้าย สัญลักษณ์ & กำหนดให้คำสั่ง A และ B เริ่มทำงานพร้อมๆ กัน

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

ตัวอย่างเช่นคำสั่งต่อไปนี้ A และ B เริ่มทำงานพร้อมๆ กัน และ C จะเริ่มทันทีที่ A และ B ทำงานเสร็จ

(A & B) | C

 

ระยะเวลาของคำสั่ง

เราสามารถสั่งให้ตัวแปรใดๆ มีค่าตามต้องการได้ภายในช่วงเวลาหรือความเร็วที่กำหนด หรือจะให้เปลี่ยนแปลงกลับไปกลับมาก็ได้ โดยทั้งหมดสามารถดำเนินไปได้อย่างคู่ขนาน ในโค้ดตัวอย่างเป็นโปรแกรมหุ่นยนต์สุนัข บรรทัดแรกกำหนดให้ผงกหัวภายใน 450ms (1,000ms เท่ากับหนึ่งวินาที) ให้ขาอยู่ในตำแหน่ง -45 หน่วย ด้วยความเร็ว 7.5 หน่วย และแกว่งหางไปมาเป็นคลื่น (เป็น sine wave) 4 วินาที ความความแรงในการแกว่ง 45 หน่วย



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


neck.val = 10 time:450ms
& leg.val = -45 speed:7.5
& tail.val = 14 sin:4s ampli:45;


โค้ดที่เห็นข้างบน คำสั่ง time, speed, sin และ ampli เรียกว่า modifier เพราะพวกมันทำหน้าที่เปลี่ยนแปลงวิธีที่เรากำหนดค่าให้แก่ตัวแปร สมมุติว่าตอนแรกตัวแปร neck.val มีค่าเท่ากับสอง เมื่อสคริปต์บรรทัดแรกทำงานค่าของ neck.val จะเพิ่มขึ้นเรื่อยๆ จนถึง 10 ภายในเวลา 450ms

 

การกำหนด Tag
เราสามารถกำหนด tag หรือป้ายชื่อให้กับโค้ดส่วนใดๆ ก็ได้ เมื่อมี tag แล้วภายหลังเราสามารถสั่งให้โค้ดส่วนนั้นหยุดทำงาน หรือหยุดชั่วคราวแล้วกลับมาทำงานต่อก็ได้

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


mytag: { some code };
stop mytag;
freeze mytag;
unfreeze mytag;


เราอาจนำ tag มาซ้อนกันเป็นลำดับชั้นได้ ซึ่งมีประโยชน์ในการแยกแยะงานออกเป็นหมวดหมู่ และช่วยในการบำรุงรักษาและดีบักโปรแกรม

 

การใช้ทรัพยากรร่วมกัน

ในภาษาอื่นๆ ตัวแปรหรือ object ตัวหนึ่งจะถูกเปลี่ยนแปลงจากหลายๆ thread พร้อมกันไม่ได้ ตามหลักการ mutex แต่ภาษา URBI ขยายแนวคิดนี้ออกไปโดยสร้างให้ตัวแปรทุกตัวมี property ชื่อ blend ทำหน้าที่กำหนดว่าหากตัวแปรถูกกำหนดค่าจาก thread หลาย thread พร้อมๆ กันจะเกิดอะไรขึ้น


x->blend = add;
x = 1 & x = 3;
// now x equals 4


ในตัวอย่างโค้ดข้างบน บรรทัดแรกเป็นการกำหนด property blend ของตัวแปร x ให้อยู่ในโหมด add (บวกหรือนำมารวมกัน) บรรทัดต่อมาเป็นงานสองงานที่เกิดขึ้นขนานกัน (คือสอง thread) แต่ละงานกำหนดค่าให้ตัวแปร x ทั้งคู่ ผลลัพธ์คือ x จะกลายเป็นสี่

เมื่อพูดถึงการทำงานคู่ขนานแล้ว จะต้องพูดถึงการใช้ทรัพยากรร่วมกันด้วย เพราะงานหลายๆ งานวิ่งอยู่อาจเรียกหา object หรือทรัพยากรตัวเดียวกันเมื่อใดก็ได้ ภาษาทั่วไปๆ เมื่อ thread ใดเรียกใช้ object มันจะกันไม่ให้ thread อื่นเข้าถึง object ได้จนกว่ามันจะทำงานเสร็จ (วิธีทำงานลักษณะนี้เรียกว่า mutex)

เนื่องจาก URBI เป็นภาษาคู่ขนานมันจึงรับรู้ว่ากำลังเกิดอะไรขึ้นขนานกันบ้าง เนื่องจากกลไกคู่ขนานถูกบูรณการไว้ในตัวภาษา เราจึงเขียนโปรแกรมได้ยืดหยุ่นกว่าการเขียนแบบ mutex ลองพิจารณาโค้ดต่อไปนี้


x = 1 & x = 3;


ตัวแปร x ถูกกำหนดค่าให้เป็นทั้ง 1 และ 3 ไปพร้อมๆ กันซึ่งเป็นสภาพการณ์ที่ขัดแย้งกัน แต่ตัวแปรในภาษา UBRI มีproperty ทำหน้าที่กำหนดวิธีตัดสินว่าความขัดแย้งนี้จะได้รับการแก้ไขอย่างไร หากเราเซต property blend ให้เป็น add ผลลัพธ์คือ x จะมีค่าเท่ากับสี่ หากเราเซต property blend ให้เป็น mix ผลลัพธ์คือ x จะมีค่าเท่ากับค่าเฉลี่ยของทั้งสองคำสั่ง และหากเราเซต property blend ให้เป็น queue ผลลัพธ์คือ x จะมีค่าเท่ากับ 1 ก่อนและเปลี่ยนเป็นสองในเวลาถัดมา (เหมือน mutex)

 

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

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


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


 

ตัวอย่างโปรแกรม
ตัวอย่างโค้ดต่อไปนี้สาทิตการทำงานของคำสั่ง at

 

at (sensorFront.val < threshold && safemode)
{
robot.stop();
if (sensorR.val > min_dist)
robot.turn(right)
else
robot.turn(left);
};

 

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

คำสั่ง Emit

เราสามารถส่งสัญญาณด้วยการสร้าง event ขึ้นโดยการเขียนโค้ดกระตุ้นให้คำสั่ง at และ whenever ทำงานได้ (เพื่อการทดสอบ หรือสถานการณ์อื่นๆ) โดยใช้คำสั่ง emit คำสั่งนี้จะมีพารามิเตอร์หรือไม่ก็ได้

 

emit myevent;
at (myevent) do_something;

emit event_with_param(45,"hello");
at (event_with_param(45, x)) echo x;

 

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

เราสามารถกำหนดระยะเวลาให้คำสั่ง emit ได้เหมือนคำสั่งส่วนมากในภาษา URBI ยกตัวอย่างเช่นหากเราต้องการให้โปรแกรมส่ง event นานสองวินาทีเราสามารถเขียนคำสั่งแบบนี้ได้

 

Emit(2s) myevent;

สถาปัตยกรรม UObject

เราสามารถเขียน object ด้วยภาษา C++ แล้วนำ object นี้มาใช้งานในภาษา URBI ได้โดยตรง object แบบนี้เรียกว่า UObject เราอาจสั่งให้ UObject ทำงานโดยอิสระภายใต้ระบบปฏิบัติการ Windows, Linux หรือ Mac OSX ก็ได้ (การทำเช่นนี้เรียกว่า remote object) หรือจะให้ทำงานภายใน URBI ก็ได้ (เรียก plug-in) การสลับไปมาระหว่าง remote และ plug-in ทำได้ง่ายมาก เพราะไม่ต้องแก้ไขโปรแกรมเลย

ภาษา URBI เป็นภาษาแบบวัตถุวิธี (Object Oriented Language) โดยอาศัย prototype (คล้ายภาษาจาวาสคริปต์) เราอาจนิยาม object โดยใช้ภาษา URBI ล้วนๆ หรือจะนำคลาสที่เรานิยามไว้ด้วยภาษา C++ มาใช้ร่วมด้วยก็ได้ คลาสนี้จะถูกนำไปผนวกเข้ากับแกนหลักของ URBI ทำให้มีฐานะเท่ากับคลาสที่นิยามด้วยภาษา URBI เราอาจนำ UObject ออกจากแกนหลักของ URBI เพื่อนำไปวิ่งในคอมพิวเตอร์เครื่องอื่นๆ ที่เชื่อมต่อกันเป็นเครือข่าย แล้วใช้หมายเลข IP เป็นตัวอ้างอิงก็ได้

การสร้าง object ในภาษา URBI
การนิยามคลาสในภาษา URBI ใช้คำสั่ง class เหมือนภาษา C++ ดังนี้


class myclass
{
 var x;
 function init(var p);
 function f();
};


ในภาษา URBI เรียก constructor ว่า init การสร้าง object จากคลาสทำได้ง่าย มีรูปแบบคำสั่งเหมือนภาษา C++ ดังนี้


subclass = new myclass (42);

ในตัวอย่างโค้ดข้างบนเป็นการสร้างคลาสชื่อ subclass โดยให้ inherit จากคลาส myclass และ constructor ถูกเรียกให้ทำงานโดยอัตโนมัติ เราสามารถเปลี่ยน base class ของ subclass ขณะ runtime ได้โดยใช้คำสั่ง inherits ดังนี้


subclass inherits myotherclass;

เมื่อคำสั่งข้างบนทำงานคลาส subclass จะสามารถเข้าถึง attribute และ method ต่างๆ ของคลาส myotherclass ได้ทันที

ตัวอย่างการใช้งาน UObject
จุดสำคัญของ UObject คือเราอาจนำคลาสที่นิยามไว้ด้วยภาษา C++ มาใช้ใน URBI ได้โดยตรง สมมุตว่าเรานิยามคลาสด้วยภาษา C++ ชื่อ colormap แล้วต้องการนำมาใช้ใน URBI เราต้องประกาศให้คลาส colormap มี base class เป็นคลาส UObject ก่อนโดยใช้คำสั่งดังนี้


class colormap : public UObject
{
}


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

ball = new colormap (R,G,B);
at (ball.visible)
echo "I see the ball!"

เมื่อเทียบกับภาษา C++ แล้วการทำ OOP ในภาษา URBI ดูแปลกประหลาด เพราะเป็นการทำ OOP แบบ prototype โค้ดที่เห็นข้างบนบรรทัดแรกเป็นการนิยามคลาสลูกชื่อ ball (คือคลาส ball มี base class เป็น colormap) ในขณะเดียวกันก็สร้าง object ชื่อ ball ไปด้วย (ไม่เหมือนภาษา C++ ที่เราต้องนิยามคลาสก่อน แล้วจึงนำคลาสไปสร้าง instance เป็น object ภายหลังอีกที)

เป้าหมายคือปี 2013

หากท่านต้องการทดลองใช้ URBI เพื่อเขียนซอฟท์แวร์สร้างหุ่นยนต์เดี๋ยวนี้เลยก็ทำได้ ขั้นแรกต้องสั่งซื้อหุ่นยนต์สุนัข AIBO รุ่นล่าสุดมาก่อน จากนั้นไปดาวน์โหลด URBI SDK มาจากเว็บไซต์ http://www.urbiforge.com ติดตั้งโปรแกรม ไว้ในเครื่องคอมพิวเตอร์ของเราและใน memory stick ของ AIBO ด้วย เพียงเท่านี้ท่านก็พร้อมป้อนคำสั่ง URBI เพื่อทดสอบการทำงานได้แล้ว

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

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

Winmag ฉบับ October 2007 Vol 15 No 171

ไปหน้าแรก | สารบัญ | Laploy.comระเบียนบทความ | บทความจากลาภลอย

Winmag ฉบับ October 2007 Vol 15 No 171

มาแล้ว Winmag เล่มใหม่ ฉบับนี้มีบทความที่ผมเขียนสองบทความคือ

  • แก้ปัญหารูบิคด้วยวิธีไฮเทค
  • Detective Story ตอน ปล้นเหนือเมฆ

 

แก้ปัญหารูบิคด้วยวิธีไฮเทค

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

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

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

โปรดติดตามอ่านในนิตยสาร…

 

นิยายนักสืบ
ตอน 4 : แฮกเกอร์มืด ปล้นเหนือเมฆ

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

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

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

โปรดติดตามอ่านในนิตยสาร…

ActionScript เรียน Flash ระดับก้าวหน้า

ไปหน้าแรก | สารบัญ | Laploy.comระเบียนบทความ | บทความจากลาภลอย

เรียน Flash ระดับก้าวหน้า

ต้องเรียนภาษา ActionScript 3.0

ใครที่ต้องการเรียน Flash ระดับสูง ไม่ใช้ Time Line ไม่ใช้ Flash แต่ใช้วิธีเขียนโปรแกรมเหมือน C# ขอแนะนำให้อ่าน ซีรีส์ ที่ผู้เขียนๆ ลงเป็นประจำในนิตยสาร Windows IT Pro ทุกฉบับ (อยู่ในส่วน Code IT ภายในเล่ม)

ActionScript พัฒนามาถึงเวอร์ชัน 3 (ต่อไปจะเรียกย่อว่า AS3) ยึดตามสเปคของ ECMAScript เวอร์ชันสี่ (ที่ยังร่างไม่เสร็จ) AS3 เป็นภาษาคอมพิวเตอร์เต็มรูปแบบ มีคุณสมบัติต่างๆ ที่ภาษาสมัยใหม่พึงมี เช่นสนับสนุน OOP เต็มขั้น (คือเป็น class base ไม่ใช่ prototype base อย่างแต่ก่อน) เป็น strong type, type safety, exception handling และอื่นๆ พร้อมมูล ทำให้การพัฒนาโปรแกรมมีวิธีไม่ต่างจากการพัฒนาโปรแกรมด้วยภาษา Java หรือ C# มากนัก สามารถสร้าง webapp ที่ซับซ้อนมากๆ ได้อย่างสบาย และสร้าง Rich internet Application (RIS) ได้ง่าย

RIS ย่อจาก Rich Internet Application เป็น webapp ที่มีอินเตอร์เฟสหรือการใช้งานสวยงาม มีลูกเล่น เครื่องอำนวยความสะดวกน้องๆ desktop application หากท่านนึกไม่ออกว่า RIS เป็นอย่างไรลองดูเว็บไซต์ desktoptwo.com ก็แล้วกัน ผู้เขียนทดลองใช้งานดูแล้วแทบไม่อยากเชื่อว่าเป็น webapp เพราะมีองค์ประกอบต่างๆ ราวกับเป็น shell แบบ GUI ของ OS เต็มยศ

ตอน 1 ฉบับ August 2007 แนะนำ AS3 และ Flex เบื้องต้น

  • ภาษา ActionScript 3
  • เทคโนโลยี Flex
  • ภาษา MXML
  • การสร้าง RIS โดยใช้ Flex Builder 2
  • ทดลองเขียนโปรแกรม Hello, World!
  • เขียนโปรแกรมวาดภาพวงกลมในเว็บ
  • วิธีนิยามคลาสวาดวงกลมแบบ OOP
  • เขียนโปรแกรมวาดภาพดาว 1,500 ดวง

ตอน 2 ฉบับ September 2007 สอนวิธี สร้างลูกศรหันตามเมาส์

เขียนโปรแกรมภาษา ActionScript 3.0 สร้างออพเจ็กต์ลูกศรที่หันหัวชี้ไปตามการเคลื่อนไหวของเมาส์พอยน์เตอร์ ได้ผลลัพธ์เป็น Flash Movie ไว้ใช้งานในหน้าเว็บ

  • คลาสกับออพเจ็กต์
  • คลาสสร้างภาพลูกศร
  • สมาชิกแบบเมธอดของคลาส Arrow
  • เมธอด DrawArrow
  • คลาสที่ทำให้ลูกศรหันตามเมาส์
  • สมาชิกแบบดาต้าฟิลด์ของคลาส ArrowRotate
  • สมาชิกแบบพร็อพเพอร์ตีของคลาส ArrowRotate
  • สมาชิกแบบเมธอดของคลาส ArrowRotate
  • โปรแกรมทดสอบการทำงาน
  • ซอร์สโค้ด

ตอน 3 ฉบับ October 2007 เล่นภาพซับซ้อนใน ActionScript

เขียนโปรแกรมภาษา ActionScript เวอร์ชัน 3.0 เพื่อนำไฟล์ swf มาทำเป็นออพเจ็กต์และภาพเคลื่อนไหวไว้แสดงบนหน้าเว็บ

บทความตอนนี้ผู้เขียนจะสาทิตการเขียนโปรแกรมทำแอนิเมชันสามโปรเจคคือ

  • LoyAS0301 : แสดงภาพเคลื่อนไหวแบบง่ายที่สุด (ดูตัวอย่าง)
  • LoyAS0302 : สร้างออพเจ็กต์หลายๆ ตัวจาก swf เดียว แล้วเพิ่มจำนวนโดยใช้ตัวจับเวลา (ดูตัวอย่าง)
  • LoyAS0303 : สร้างฉากหลังเป็นออพเจ็กต์ และมีตัวการ์ตูนเดินข้างหน้า (ดูตัวอย่าง)

ใครที่สนใจการเขียนโปรแกรมใน Flash ระดับสูง โปรดดูตามแผงหนังสือนะครับ นิตยสารชื่อ Windows IT Pro หรือโทรฯ สอบถามที่ 0-2246-4248

ขอแนะนำเว็บไซต์ ASP.NET Playground

ไปหน้าแรก | สารบัญ | Laploy.comระเบียนบทความ | บทความจากลาภลอย

ขอแนะนำเว็บไซต์
www.aspnetthai.com


ASP.NET Playground for Thai folks
จัดทำโดยคุณ นเรศ นันทบุรมย์
ผู้เขียนตำราเรื่อง ASP.NET 2.0 ให้กับสำนักพิมพ์ Success Media
มีเนื้อหาบางส่วนจากในหนังสือที่มีประโยชน์และน่าสนใจ เช่น

  • ความรู้พื้นฐาน ASP.NET
  • ทิปการใช้งาน Visual Studio
  • การเขียนโปรแกรมด้วย VB,C#
  • Master Page และ Theme
  • การสร้าง Control ทั้ง User และ Custom Control
  • Web Service และ Windows Communication Foundation
  • XML และ XSLT (สไตล์ชีตของภาษา XML)
  • Web Parts และ Portal Framework
  • Membership & Roles
  • ใNET Framework 3.0

พิมพ์เสร็จแล้วนะครับ

ไปหน้าแรก | สารบัญ | Laploy.comระเบียนบทความ | บทความจากลาภลอย

หนังสือ "เรียนรู้ด้วยตนเอง OOP C# ASP.NET"

พิมพ์เสร็จแล้วนะครับ

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

 

ประมาณสิ้นเดือนนี้น่าจะมีขายตามร้านหนังสือทั่วไป หากต้องการสั่งซื้อกรุณาติดต่อฝ่ายขาย ของซีเอ็ดฯ 0-2739-8222

 

ข้อมูลจำเพาะ

ชื่อหนังสือ : เรียนรู้ด้วยตนเอง OOP C# ASP.NET

โดย : ลาภลอย วานิชอังกูร

จัดพิมพ์จัดจำหน่ายโดย : บริษัท ซีเอ็ดยูเคชั่น จำกัด (มหาชน)

ISBN :  13:978-974-212-598-1

ราคา : 349 บาท

จำนวนหน้า : 648

ขนาด : 19×29 ซ.ม.

ดูรายละเอียดเพิ่มเติม [ที่นี่]

ได้ฤกษ์วางจำหน่าย

ไปหน้าแรก | สารบัญ | Laploy.comระเบียนบทความ | บทความจากลาภลอย

ได้ฤกษ์วางจำหน่าย

 

ขอขอบคุณท่านผู้อ่านที่น่ารักทุกท่าน ที่กรุณาติดตามความคืบหน้าของหนังสือ เรียนรู้ด้วยตนเอง OOP C# ASP.NET เมื่อสองวันก่อนผมได้รับแจ้งจาก คุณวิระชัย เจ้าหน้าที่ของสำนักพิมพ์ ซีเอ็ดฯ ว่าหนังสือว่าน่าจะได้ฤกษ์ เปิดตัวในงานมหกรรมหนังสือฯ ที่จะถึงนี้

งานมหกรรมหนังสือระดับชาติ ครั้งที่ 12 (BookExpo Thailand 2007) จัดขึ้นระหว่าง17-28 ตุลาคม 2550 ณ ศูนย์การประชุมแห่งชาติสิริกิติ์
ลองเดินๆ ไปดูแถวบู๊ตของซีเอ็ดนะครับ ไม่แน่อาจจะเจอผมด้อมๆ มองๆ อยู่แถวนั้น

Windows Mobile 6

ไปหน้าแรก | สารบัญ | Laploy.comระเบียนบทความ | บทความจากลาภลอย

บทความโดย : ลาภลอย วานิชอังกูร      จากนิตยสาร : WinMag Vol. 14 Num167

Windows Mobile 6

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

ผู้เข้าประชุมนับพันต่างเงียบกริบ มีแต่เสียงของสตีฟ บัลเมอร์ (ซีอีโอของบริษัทไมโครซอฟท์) สะท้อนก้องอยู่ในห้องประชุมใหญ่ของ 3GSM ที่เมือง Barcelona เมื่อวันที่ 12 กุมภาพันธ์ ที่ผ่านมา นี่คืองานแสดงสินค้าเกี่ยวกับอุปกรณ์โมบายที่ใหญ่ที่สุดในโลก ผู้เข้าร่วมงานล้วนเป็นเจ้าหน้าที่ระดับสูงในแวดวงอุตสาหกรรมมือถือจากทั่วโลก เช่น Nokia, Motorola, O2, Orange และผู้ที่อยู่ในอุตสาหกรรมที่เกี่ยวข้อง เช่น Yahoo!, Microsoft และ Google

“ชื่อรหัสของมันคือ Crossbow (หน้าไม้) เพราะนี่คืออาวุธไม้ตายที่ไมโครซอฟท์กำลังเล็งไปที่หัวใจของบริษัทคู่แข่ง”

บัลเมอร์กล่าวติดตลกตามประสาคนอารมณ์ดี เรียกเสียงฮาและเสียงปรบมือจากผู้ฟังได้พอสมควร จากนั้นเป็นคิวของปีเตอร์ คุก (รองประธานอาวุโสแผนกซอฟท์แวร์โมบายของไมโครซอฟท์) รับช่วงต่อเพื่อทำหน้าที่พูดนำเสนอ โดยมีภาพเคลื่อนไหวบนจอขนาดยักษ์ด้านหลังเป็นตัวช่วยอธิบาย นี่คือการเปิดตัว Windows Mobile 6 (WM6) ซอฟท์แวร์สำหรับคอมพิวเตอร์ขนาดฝ่ามือและโทรศัพท์มือถืออัจฉริยะ ที่คนในวงการเฝ้ารอมานานเกือบสองปี

 

ความเป็นมาของ Windows Mobile

เมื่อสิบปีที่แล้วบริษัทไมโครซอฟท์ออกโปรแกรมระบบปฏิบัติการในคอมพิวเตอร์ขนาดมือถือ (handheld personal computer กินความถึงโทรศัพท์แบบ SmartPhone ด้วย ต่อไปจะเรียกย่อว่า HPC) เพื่อตอบโต้ระบบปฏิบัติการ Plam OS ที่ไมโครซอฟท์มองว่าเป็นภัยคุกคาม

ระบบปฏิบัติการใน HPC แตกต่างจากระบบปฏิบัติการในคอมพิวเตอร์โน้ตบุ๊ก เพราะระบบปฏิบัติการใน HPC จะอยู่ภายใน Flash ROM ส่วนระบบปฏิบัติการในคอมพิวเตอร์โน้ตบุ๊กจะเป็นตัวเดียวกับในคอมพิวเตอร์แบบ desktop เลย (ต่อไปจะเรียกว่าพีซี)

เนื่องจาก HPC มีทรัพยากรจำกัด คือมีหน่วยความจำน้อย มีซีพียูที่ไม่เร็วนัก มีจอขนาดเล็ก และไม่มีเมาส์ บริษัทไมโครซอฟท์จึงตัดสินใจสร้างระบบปฏิบัติการใหม่สำหรับ HPC โดยเฉพาะชื่อ Windows CE (ต่อไปจะเรียก WinCE)

แกนหลักของ WinCE มีขนาดเพียงหนึ่งเม็กกะไบต์ ถูกนำไปใช้เป็นหัวใจของระบบปฏิบัติการหลายตัว เช่น Pocket PC 2000, Pocket PC 2002, Mobile 2003, Mobile 2003 SE, Mobile 5.0, Smartphone 2002, Smartphone 2003 และแม้กระทั่งในเครื่องเล่นเกมอย่าง Sega Dreamcast

WinCE ออกเวอร์ชันแรกในปี 1996 และถูกปรับรุ่นมาเรื่อยจนล่าสุดในปี 2006 เป็นเวอร์ชัน 6.0 ส่วน WM6 มีแกนหลักเป็น WinCE 5.0 สาเหตุที่ไม่ใช้ WinCE 6.0 ก็เพราะต้องการให้เข้ากันได้ของซอฟท์แวร์เดิม จากการทดสอบพบว่าซอฟท์แวร์ใน WM5 สามารถทำงานใน WM6 ได้อย่างราบรื่นทุกตัว

Windows Mobile ถูกปรับรุ่นและเปลี่ยนชื่อมาแล้วหลายครั้งดังนี้

  • Windows Mobile 6.0 เปิดตัวเดือนกุมภาพันธ์ ค.ศ. 2007
  • Windows Mobile 5.0 เปิดตัวเดือนพฤษภาคม 2005
  • Windows Mobile 2003 Second Edition เปิดตัวเดือนมีนาคม 2005
  • Windows Mobile 2003 เปิดตัวเดือนมิถุนายน 2003
  • Pocket PC 2002 เปิดตัวเดือนตุลาคม 2001
  • Pocket PC 2000 (Palm-size PC v2) เปิดตัวเดือนเมษายน 2000
  • Palm PC v1.0/1.2 เปิดตัวเดือนมกราคม 1998

 

 

แก้ตัวด้วย AKU

ช่วงระหว่างพฤษภาคม 2005 ถึงกุมภาพันธ์ 2007 มีการปรับรุ่น WM5 หลายครั้ง แต่เป็นปรับเล็กเพื่อแก้ปัญหาบางอย่าง เราเรียกการปรับเช่นนี้ว่า AKU

AKU ย่อจาก Adaptation kit upgrade เป็นคำที่บริษัทไมโครซอฟท์ใช้เรียกตัวปรับรุ่นย่อยของ WM เหมือนที่เราเรียกการปรับรุ่นย่อยของ Windows XP ว่า Service pack เป็นซอฟท์แวร์ที่ปล่อยออกมาหลังเวอร์ชันหลักๆ ถูกใช้งานไปแล้วประมาณห้าเดือน เพื่อแก้ไขข้อบกพร่อง หรือเพื่อเพิ่มคุณลักษณะบางอย่าง ยกตัวอย่างเช่น บริษัทไมโครซอฟท์ออก WM5 ในเดือนพฤษภาคม ค.ศ. 2005 แล้วพบกว่าเมื่อผู้ใช้ล็อคโทรศัพท์ไว้ จะไม่สามารถโทรออกหมายเลขฉุกเฉินได้ ไมโครซอฟท์จึงออก AKU 01. เพื่อแก้ปัญหานี้ภายในไม่กี่เดือนหลังจากนั้น

AKU ต่างจาก Service Pack ของ Windows XP ตรงที่เราสามารถดาวน์โหลดหรือหาแผ่นซีดี Service Pack ของ Windows XP มาติดตั้งเพื่อปรับปรุงระบบปฏิบัติการในคอมพิวเตอร์ของเราได้เอง แต่เราทำเช่นนั้นกับ AKU ของ HPC ไม่ได้ เพราะซอฟท์แวร์เหล่านี้ต้องถูกบรรจุไว้หน่วยความจำ Flash ROM จากโรงงานผู้ผลิต

AKU ล่าสุดของ WM5 ก่อน WM6 คือ AKU 3.0 ซึ่งมีรหัสเรียกขานว่า Venti มีคุณสมบัติเด่นๆ มากมาย เช่นโปรแกรม IE สนับสนุน AJAX และมี Wizard หลายตัวเพื่ออำนวยความสะดวกเรื่องต่างๆ เช่นการติดตั้ง WiFi

 

จาก AKU สู่ RTM

การสร้าง AKU ก็เหมือนซอฟท์แวร์ทั่วไป คือขั้นแรกจะออกเป็นรุ่นอัลฟา และรุ่นเบต้าเพื่อทดสอบภายในบริษัทไมโครซอฟท์เองและส่งให้โรงงานผู้ผลิต HPC นำไปทดสอบด้วย เมื่อทดสอบและแก้ไขจนจบกระบวนการแล้วบริษัทไมโครซอฟท์จะส่ง AKU ขั้นสุดท้ายที่สมบูรณ์แล้วให้โรงงานผู้ผลิต เรียกว่า RTM หรือ Release To Manufacturing

เมื่อผู้ผลิต HPC ได้รับ RTM แล้ว การนำไปใส่ในอุปกรณ์และวางตลาดต้องใช้เวลาอีกอย่างน้อย 120 วัน ดังนั้นเมื่อมีโทรศัพท์รุ่นใหม่ออกวางตลาดพร้อม AKU ล่าสุดแล้ว การออก AKU รุ่นใหม่อีกครั้งจึงต้องใช้เวลาไม่ต่ำกว่าสี่เดือน

 

ความต้องการของระบบ

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

WM6 ต้องการหน่วยความจำเท่ากับ WM5 คือ Flash ROM ขนาด 32MB และ RAM ขนาดเท่ากัน ส่วนซีพียูจะต้องมีความเร็วไม่ต่ำกว่า 200Mhz อุปกรณ์ที่จะมีขายมักมีหน่วยความจำแต่ละแบบไม่ต่ำกว่า 64MB และมีซีพียูความเร็ว 400MHz ขึ้นไป

 

 

สามรุ่นสามรส

HPC ไม่ได้มีเพียงโทรศัพท์เคลื่อนที่ HPC ที่ใช้งานกับ WM6 ได้มีสามแบบคือ พ็อกเก็ตพีซี พีดีเอโฟน และสมาร์ทโฟน

  1. Pocket PC: คือคอมพิวเตอร์ขนาดกระเป๋า (เสื้อ) ธรรมดาที่ไม่มีโทรศัพท์ในตัว มักเรียกว่าพีดีเอ (PDA หรือ Personal Digital Assistance) มีจุดเด่นคือหน้าจอใหญ่และเป็นระบบสัมผัส ใช้ stylus ทำหน้าที่เป็นทั้งปากกและเมาส์ช่วยให้ผู้ใช้ป้อนข้อมูลได้สะดวกเหมือนใช้ปากกาจดบันทึกในกระดาษ
  2. PDA Phone: บางที่เรียกว่า “พ็อกเก็ตพีซีโฟน” หมายถึง Pocket PC ที่มีโทรศัพท์ในตัว รูปร่างหน้าตาและคุณสมบัติเหมือน PocketPC ทุกอย่าง แต่จะมีคุณสมบัติด้านโทรศัพท์เพิ่มขึ้น ขนาดเครื่องจะหนากว่าหน่อย และมักมีเสาอากาศสั้นๆ ด้วย
  3. SmartPhone: หมายถึงโทรศัพท์เคลื่อนที่ซึ่งมีคุณสมบัติบางอย่างคล้าย Pocket PC แต่ไม่มีจอระบบสัมผัส (คือใช้ stylus ไม่ได้) การป้อนข้อมูลต้องใช้เพียงปุ่มหน้าเครื่อง ขนาดของเครื่องมักจะเล็กกว่าอุปกรณ์สองแบบแรก บางรุ่นอาจมีแป้นพิมพ์ครบชุด (แป้นพิมพ์แบบ QWERTY) เพื่ออำนวยความสะดวกในการป้อนพิมพ์ข้อความยาวๆ

HPC แต่ละแบบใช้ WM6 รุ่นต่างกัน โดย Pocket PC จะใช้ WM6 รุ่น Classic (WMC) PDA Phone ใช้ WM6 รุ่น Professional (WMP)และ SmartPhone ใช้ WM6 รุ่น Standard (WMS)

WM6 แต่ละรุ่นดังกล่าวมีองค์ประกอบส่วนใหญ่เหมือนกัน มีเพียงส่วนปลีกย่อยที่แตกต่างกันเล็กน้อย เช่น WMS จะไม่สนับสนุนจอแบบสัมผัส และไม่มีส่วนเข้าถึงพีซีจากทางไกล (Remote Desktop Mobile) ส่วน WMC จะไม่มีซอฟท์แวร์ส่วนที่เกี่ยวข้องกับการใช้งานโทรศัพท์เป็นต้น

 

ความแตกต่างที่รู้สึกได้

การใช้งาน HPC ที่ใช้ WM6 เมื่อเปิดเครื่องครั้งแรกเราต้องป้อนรหัสผ่าน ตามด้วยการกำหนดค่าเริ่มต้นให้อีเมลโดยจะมี wizard (เหมือนใน AKU 3.0 ของ WM5) ที่ช่วยให้การตั้งค่าต่างๆ ทำได้ง่าย ผู้ใช้ Smart phone มือใหม่จึงสามารถตั้งค่าอีเมลเองได้

เสียงเตือนของระบบและเสียงเรียกเข้าของเดิมถูกแทนที่ด้วยชุดเสียงใหม่ทั้งหมด ส่วนติดต่อกับผู้ใช้ถูกยกเครื่องทั้งหมดเช่นกัน ไอคอนและปุ่มต่างๆ ดูนุ่มนวลและเป็นสามมิติ ลักษณะภาพบนหน้าจอถูกปรับให้กลมกลืนกับ Windows Vista แต่เมื่อลองใช้ดูสักพักจะพบว่านอกจากภาพสวยขึ้นและทำงานเร็วขึ้นแล้ว ทุกอย่างยังคงเหมือนใน WM5

ปุ่มรูปกากบาทที่มุมบนด้านขวายังคงทำหน้าที่หดโปรแกรมเป็นไอคอนเหมือน WM5 ระบบปฏิบัติการจะตัดสินใจเองว่าจะจบการทำงานของโปรแกรมเมื่อใด หากเราต้องการปิดโปรแกรมต้องติดตั้งโปรแกรมพิเศษต่างหาก แถบด้านบนยังคงเหมือนเดิม คือมีปุ่ม Start อยู่ทางซ้ายสุด ตามด้วยไอคอนแสดงสถานะของการเชื่อมต่อ (เป็น GPRS, Wi-Fi หรือ Active Sync) ตามด้วยไอคอนแสดงความแรงของสัญญาณ ระดับเสียง พลังงาน และนาฬิกาตามลำดับ

 

 

การป้อนข้อมูล

ก่อนหน้านี้ WM5 จัดให้มี soft-key เพื่อสนับสนุน HPC รุ่นที่มีแป้นพิมพ์แบบ QWERTY และคุณสมบัติที่สะดวกมากคือการควบคุมงานส่วนใหญ่ทำได้ด้วยมือเดียว โดยไม่ต้องใช้ stylus ใน AKU รุ่นหลังๆ ได้ปรับปรุงคุณสมบัตินี้ให้ดียิ่งขึ้นเรื่อยๆ แต่การใช้งานเต็มรูปแบบใน Pocket PC เราคงต้องใช้ stylus อยู่ดี

มีโทรศัพท์หลายรุ่นที่มาพร้อมกับแป้นพิมพ์ QWERTY ในตัว แต่ถ้าเราใช้โทรศัพท์รุ่นที่ไม่มีแป้นพิมพ์ QWERTY เราก็สามารถหาซื้อแป้นพิมพ์ QWERTY ที่เป็น Bluetooth มาใช้ได้เพราะ WM6 มี profile ของ HID (Human interface device หรืออุปกรณ์สำหรับเชื่อมต่อกับมนุษย์) เตรียมไว้ให้แล้ว

WM6 สนับสนุนการกดปุ่มทางลัดในแป้นพิมพ์ QWERTY ทำให้เราใช้งานโปรแกรมชุด Microsoft Office โดยใช้แป้นทางลัดได้เหมือนโปรแกรมในพีซี ยกตัวอย่างเช่นโปรแกรม MS Outlook ใช้ปุ่ม 2 และ R เพื่อตอบอีเมล หรือ 4 และ F เพื่อส่งต่ออีเมล เราก็สามารถทำเช่นนั้นใน WM6 ได้ แสดงให้เห็นว่านับวันโปรแกรมใน HPC จะใช้งานได้ใกล้เคียงโปรแกรมชื่อเดียวกันในพีซีมากขึ้นเรื่อยๆ

WM5 มีคุณสมบัติทำนายข้อความ (text-prediction หรือ CompIME)ซึ่งเป็นสิ่งอำนวยความสะดวกที่ช่วยให้เราป้อนข้อมูลได้รวดเร็วขึ้นเพราะไม่ต้องกดแป้นพิมพ์มากครั้ง คุณสมบัตินี้ได้รับการปรับปรุงขึ้นมากใน WM6 เมื่อเรากดปุ่มพิมพ์ข้อความเพียงอักษรเดียวจะมีคำปรากฏให้เลือกถึงสี่คำ (ใน WM5 จะแสดงเพียงคำเดียว)

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

การป้อนข้อมูลโดยใช้ stylus กดแป้นพิมพ์จำลองบนหน้าจอยังคงทำได้เหมือนเดิมไม่มีอะไรเปลี่ยนแปลง แต่การเขียนด้วย stylus มีเปลี่ยนแปลงในบางโหมด เช่นโหมด Letter recognizer เราสามารถเขียนตัวอักษรได้เป็นธรรมชาติมากขึ้น เช่นตัวอักษรบางตัวที่ต้องยก stylus เพื่อขีดมากกว่าหนึ่งครั้งก็ทำได้อย่างถูกต้อง และโหมด Transcriber ช่วยทำให้เราเขียนตัวอักษรบริเวณในก็ได้บนจอภาพ (ไม่ใช่เฉพาะบริเวณที่กำหนด)

 

โทรศัพท์

คุณสมบัติด้านโทรศัพท์ของ WM6 ที่เปลี่ยนแปลงอย่างมีนัยสำคัญคือการสนับสนุน VoIP (ใช้โปรโตคอล SIP) แต่ก็ไม่น่าตกใจเพราะโทรศัพท์เคลื่อนที่ “โนเกียอีซีรีส์” มีคุณสมบัตินี้มาก่อนแล้ว และการโทรผ่านอินเตอร์เน็ตก็เป็นแนวโน้มของตลาดมาระยะหนึ่งแล้ว

นวัตกรรมอีกอย่างหนึ่งที่ควรค่าแก่การกล่าวถึงคือคุณสมบัติชื่อ Smart Dial 2.0 ซึ่งช่วยให้เราค้นหาชื่อและเลขหมายได้อย่างรวดเร็วโดยกดปุ่มตัวอักษร (หรือจะใช้ stylus กดรูปแป้นพิมพ์บนหน้าจอก็ได้) เพียงสองหรือสามตัวแรก ระบบจะค้นและแสดงชื่อที่เราติดต่อบ่อย คุณสมบัตินี้เดิมปรากฏเฉพาะใน WMS แต่ใน WM6 เราจะพบคุณสมบัตินี้ใน WMC ด้วยเช่นกัน

ปุ่ม Speed Dial ช่วยให้เราโทรออกโดยใช้รายชื่อในบันทึกชื่อผู้ติดต่อได้โดยตรง ปุ่ม Call History หรือประวัติการโทร ช่วยให้เราโทรไปยังหมายเลขที่เคยโทรไปล่าสุดได้ง่าย ใน WM5 การหาชื่อจากรายการ Call History ค่อนข้างน่ารำคาญเพราะหากเราโทรหาคนๆ หนึ่ง 20 หน ใน Call History จะมีชื่อผู้นั้น 20 บรรทัด ทำให้การเลื่อนหาชื่ออื่นๆ เป็นไปอย่างประดักประเดิด แต่ใน WM6 มีการจัด Call History ไว้เป็นหมวดหมู่ ทำให้การค้นชื่อทำได้สะดวกขึ้น

ไฟล์ที่นำมาใช้เป็น ring tone ได้มีสี่ชนิด คือ wav, wma, mid และ mp3 ส่วนวิธีเรียกกำหนดได้ 5 แบบคือ เสียงอย่างเดียว เสียงดังขึ้นเรื่อยๆ สั่นอย่างเดียว สั่นและเสียง สั่นก่อนแล้วตามด้วยเสียง หากต้องการเปลี่ยนแปลงวิธีเตือนสายเข้าหรือแสดงภาพผู้เรียกเข้าอาจใช้โปรแกรม Photo Contacts Pro ก็ได้เหมือนกัน

 

 

Outlook Mobile

งานหลักอย่างหนึ่งของ HPC คือช่วยให้เรามีบันทึกรายชื่อ เบอร์โทรศัพท์ ตารางนัดหมาย รายการงานที่ต้องทำ และสมุดบันทึกติดตัวไปไหนๆ ได้ สามารถแก้ไขข้อมูลเหล่านี้ และนำไปปรับให้ตรงกับพีซีได้ง่าย ใน HPC ปรกติเราจะใช้โปรแกรม Outlook Mobile (OM)เพื่อการจับเก็บ และอ่านเขียนข้อมูลเหล่านี้ ใน WM6 ไมโครซอฟท์ปรับคุณสมบัติของ OM ไปหลายอย่าง โดยการเปลี่ยนแปลงทั้งหมดเป็นไปเพียงเพื่อให้สอดคล้องกับคุณสมบัติของโปรแกรม Microsoft Exchange Server 12 (MES12)

MES12 คือโปรแกรมในกลุ่มผลิตภัณฑ์ด้าน server ของบริษัทไมโครซอฟท์ นิยมใช้ในหน่วยงานที่ใช้ซอฟท์แวร์โครงสร้างพื้นฐานของไมโครซอฟท์ ทำหน้าที่ช่วยให้พนักงานสามารถสื่อสารแลกเปลี่ยน และใช้ข้อมูลร่วมกันได้โดยสะดวก เช่น ตารางนัดหมาย ปฏิทินที่ใช้ร่วมกัน บันทึกหมายกำหนดการ และอีเมลเป็นต้น

  • Contacts : ความสามารถของ OM ส่วน contacts ใน HPC ใกล้เคียงกับในพีซี คือมีช่องให้กรอกข้อมูลต่อหนึ่งคนมากถึง 37 ช่อง กำหนดเสียงเรียกเข้าและภาพถ่ายของแต่ละคนได้ ใน WM6 ส่วน contacts มีความเปลี่ยนแปลงเพียงเล็กน้อย เช่นตอนนี้เราสามารถแก้ไขข้อมูลได้จากรายการโดยตรง (ไม่ต้องเรียกชื่อที่ต้องการขึ้นมาก่อนแล้วกดปุ่ม Edit) เมนูถูกจัดเรียงใหม่ให้ใช้งานได้สะดวกขึ้น รายชื่อใน contacts แสดงข้อมูลว่าเราโทรคุยกับคนผู้นั้นล่าสุดเมื่อใด สรุปว่าการเปลี่ยนแปลงในส่วน contacts มีน้อยเสียจนผู้ที่ไม่ได้ใช้บ่อยอาจไม่ทันสังเกต
  • Calendar : เราใช้โปรแกรมนี้เพื่อจัดหมายกำหนดการต่างๆ เช่นการประชุม ลำดับของงานที่ต้องทำ เราสามารถปรับกำหนดการเหล่านี้ให้ตรงกันข้อมูลในพีซีหรือข้อมูลใน server ได้โดยอัตโนมัติ ความสามารถของโปรแกรมนี้ใน WM6 ยังเหมือนเวอร์ชันเดิม คือยังห่างชั้นจาก Outlook ในเครื่องพีซีมาก อย่างไรก็ดี calendar ใน WM6 มีการปรับปรุงเล็กๆ น้อยหลายอย่าง เช่นในมุมมองแบบ Day มีการเพิ่มแถบแนวนอนด้านบน ภายในแถบนี้มีสีบอกให้รู้ว่าวันนี้เรามีหมายกำหนดการมากน้อยเพียงใด และจะถึงกำหนดเวลาเมื่อใด หากเราได้รับการนัดหมายผ่านทางอีเมล เราสามารถกำหนดให้การนัดหมายนั้นถูกเพิ่มเข้าในรายการโดยตรงได้ เราสามารถส่งข้อความไปยังองค์ประชุมเพื่อแจ้งข่าวสารสำคัญที่ต้องการให้ทั้งกลุ่มรับรู้พร้อมกัน เช่นบอกว่าเราจะเข้าประชุมสาย หรือเราเชิญคนเข้าประชุมเพิ่ม หากบริษัทของเราใช้ MES12 จะทำให้คุณสมบัติด้านบริหารหมายกำหนดการนี้มีความสามารถเทียบเท่ากับเวอร์ชันในพีซี คุณสมบัติอีกอย่างที่มีเพิ่มใน WM6 คือเราสามารถกำหนดสถานะของเราว่าไม่อยู่ในสำนักงาน (OOF หรือ Out-of-office) และกำหนดข้อความที่คู่กับสถานะนี้ได้
  • Task : เราใช้โปรแกรมนี้เพื่อกำหนดรายการงานที่ต้องทำ เมื่อเทียบกับโปรแกรมเดียวกันในพีซีแล้ว Task ใน WM6 มีความสามารถต่ำกว่ามาก เพราะกำหนดได้เพียงวันและเวลาที่จะเริ่มงาน ลำดับความสำคัญ กลุ่มของงานและปริมาณงานที่เสร็จแล้ว โดยรวมแล้วไม่มีความเปลี่ยนแปลงใดๆ จากเวอร์ชันก่อน
  • Note : โปรแกรมนี้ช่วยให้เราบันทึกข้อความสั้นๆ ได้โดยใช้เขียนด้วยลายมือ (เครื่องจะเปลี่ยนเป็นตัวพิมพ์ให้ก่อนบันทึก) หรือกดรูปแป้นพิมพ์บนจอ หรือจะบันทึกเป็นเสียงก็ได้ หากเราบันทึกข้อความระหว่างการโทรออกหรือรับสายเข้า ข้อความจะปรากฏในประวัติการโทรคู่กับ contact นั้นด้วย
  • Messaging : เดิมโปรแกรมรับส่งอีเมลใน WM ไม่สู้จะดีเด่นนัก จนกระทั่งการปรากฏตัวของคุณสมบัติชื่อ Microsoft Direct Push ใน WM5 AKU 2.0 ที่ทำให้ MES ส่งอีเมลเข้าอุปกรณ์ของเราได้โดยตรง ส่วนใน WM6 สิ่งปรับปรุงใหม่ที่ชัดเจนคือโปรแกรมรับส่งอีเมลสามารถเปิดอีเมลแบบ HTML ได้

คุณสมบัติ Smart Filter ช่วยให้เราค้นหาอีเมลที่ต้องการได้โดยไม่ต้องกดปุ่มมากครั้ง คล้ายคุณสมบัติSmart Dial ที่พูดถึงไปแล้ว ส่วนคุณสมบัติใหม่อื่นๆ เช่น Quick flags และ SharePoint ล้วนมีขึ้นเพื่อรองรับคุณสมบัติใหม่ที่ปรากฏใน MES12 ทั้งสิ้น หากหน่วยงานที่เราทำงานด้วยไม่ได้ใช้ MES12 เราจะไม่สามารถใช้งานคุณสมบัติต่างๆ เหล่านี้ได้

 

Office Mobile

ดูเหมือนว่าความกระตือรือร้นของไมโครซอฟท์ที่จะปรับปรุงโปรแกรม Office Mobile (OFM)ได้ซาลงไปแล้วหลังการปรับปรุงขนานใหญ่ใน WM5.0 สิ่งเพิ่มใหม่อย่างเดียวที่สังเกตเห็นได้ใน OFM ของ WM6 คือมีแถบแสดงความก้าวหน้าเมื่อเปิดไฟล์ขนาดใหญ่ที่ใช้เวลาโหลดนาน

  • Excel Mobile : ใช้เปิดดู แก้ไข หรือสร้างไฟล์เวิร์คชีต (ไฟล์นามสกุล xls) ไม่มีสิ่งใดเปลี่ยนแปลงจากเวอร์ชันเดิม
  • Word Mobile : เปิดดู แก้ไข หรือสร้างไฟล์เวิร์ด (ไฟล์นามสกุล doc) จัดรูปแบบตัวอักษร จัดย่อหน้า ได้เหมือนโปรแกรมในพีซีแต่ไม่มีคุณสมบัติชั้นสูงต่างๆ เช่นการใส่ตารางและรูปภาพ สรุปว่าไม่มีสิ่งใดเปลี่ยนแปลงจากเวอร์ชันเดิมเช่นกัน
  • PowerPoint Mobile : ใช้เปิดไฟล์หรือใช้ชมงานนำเสนอได้ แต่แก้ไขไม่ได้ การเปิดไฟล์ใหญ่ๆ ทำได้อย่างราบรื่น แต่โดยรวมแล้วยังเหมือนเวอร์ชันเดิม
  • Calculator : เครื่องคิดเลขยังคงเหมือนเดิม ไม่มีการเปลี่ยนแปลงใดๆ

 

 

การใช้งานอินเตอร์เน็ต

การเปิดเว็บด้วยโปรแกรม Internet Explorer ยังคงเหมือนเดิม ไม่มีสิ่งใดเปลี่ยนแปลงจากเวอร์ชันเก่า เรายังคงเปิดเว็บได้เพียงหน้าเดียว ไม่มีคุณสมบัติที่ช่วยให้เปิดเว็บได้หลายๆ หน้าพร้อมกันแบบใน FireFox หรือ IE7 หน้าเว็บสามารถแสดงได้ที่ขนาดหนึ่งต่อหนึ่ง (อัตราขยาย 100%)เหมือนในพีซี

 

มัลติมีเดีย

โปรแกรม Windows Media เป็นเวอร์ชัน 10.3 ซึ่งแทบจะไม่แตกต่างจาก Windows Media ใน Windows Mobile 2003 Second Edition สำหรับผู้ใช้มือใหม่อาจพบว่าตอบสนองความต้องการได้อย่างน่าพอใจ แต่ผู้ใช้ที่มีประสบการณ์มักหันไปใช้โปรแกรมที่มีลูกเล่นมากกว่า เช่น Core Player และ Pocket Player คาดว่าไมโครซอฟท์คงจะออก Windows Media 11 ซึ่งสนับสนุนอุปกรณ์ UPnP และการซื้อเพลงเข้าสู่ HPC โดยตรงในเร็วๆ นี้

 

MSN

ในพีซีการติดต่อสื่อสารกับกลุ่มเพื่อนหรือผู้ร่วมงานเราจะใช้โปรแกรม Windows Live Messenger ใน HPC เดิมมีโปรแกรม Pocket MSN แต่ใน WM6 โปรแกรม Pocket MSN ถูกแทนที่ด้วยโปรแกรม Live Messenger Mobile (LMM)

การใช้งานโปรแกรม LMM ทำได้ใกล้เคียงกับโปรแกรม Windows Live Messenger ในพีซี นั่นคือเราสามารถพิมพ์ข้อความพูดคุย ส่งภาพ ส่งไฟล์ ส่งคลิปวิดีโอ หรือจะใช้เสียงพูดก็ได้ หาก HPC สองเครื่องเชื่อมต่อกับอินเตอร์เน็ตด้วย GPRS ทั้งสองฝ่ายจะสามารถสนทนากันผ่านอินเตอร์เน็ตได้ราวกับกำลังใช้วิทยุรับส่ง

 

ซอฟท์แวร์ปกิณกะ

ซอฟท์แวร์ปกิณกะคือโปรแกรมที่ใช้งานด้านต่างๆ ผนวกแถมมาให้กับ WM6 โดยมีโปรแกรมสามตัวหลักๆ ดังนี้

  • MarketPlace : เป็นโปรแกรมช่วยให้เราหาซื้อโปรแกรมประยุกต์สำหรับ HPC แล้วดาวน์โหลดมาติดตั้งในอุปกรณ์ของเราได้ เป็นการซื้อขายโดยตรงระหว่างเรากับผู้ค้าซอฟท์แวร์ นอกจากเราจะใช้ MarketPlace เพื่อซื้อโปรแกรมประยุกต์แล้ว ยังใช้เพื่อซื้อ add-on หรือ plug-in ได้ด้วย
  • Encryption : มีเสียงบ่นกันมากว่าเมื่อการ์ดหน่วยความจำถูกขโมยไป ผู้ไม่หวังดีจะสามารถอ่านข้อมูลที่เป็นความลับของเราและและขององค์กรได้ WM6 จึงมาพร้อมกับซอฟท์แวร์สำหรับเข้ารหัสซึ่งกำหนดให้การอ่านข้อมูลในการ์ดจะทำได้เฉพาะผู้เป็นเจ้าของการ์ดเท่านั้น
  • Remote Desktop Mobile : เราสามารถใช้โปรแกรมนี้เข้าถึงพีซีที่อยู่ห่างไกลออกไปได้โดยไม่ต้องใช้โปรแกรมพิเศษเพิ่มเติมใดๆ หากพีซีเป็นระบบปฏิบัติการ Windows XP Professional

 

Windows Mobile Device Center 6 for Windows Vista

ผู้ใช้ Windows Vista สามารถเชื่อม HPC กับ PC ได้ด้วย ActiveSync เวอร์ชันใหม่ชื่อ Windows Mobile Device Center 6 for Windows Vista ซึ่งมีคุณสมบัติที่น่าสนใจหลายอย่างดังนี้

  • Streamlined setup: การกำหนดค่าต่างๆ ทำได้ง่ายขึ้นด้วย wizard
  • Robust synchronization: การปรับข้อมูลระหว่าง HPC กับพีซีทำได้ง่ายและรวดเร็วขึ้น
  • Enhance user interface: อินเตอร์เฟสสวยกว่าเดิม น่าใช้ขึ้น
  • File browsing: ใช้ PC เปิดดูไฟล์ใน HPC ได้โดยตรง
  • Photo management: นำภาพใน HPC ผนวกเข้ากับ Vista Photo Gallery ในพีซีได้โดยอัตโนมัติ
  • Media synchronization: ใช้โปรแกรม Microsoft Windows Media Player ในพีซีจัดการไฟล์เพลงใน HPC ได้

 

WM6 มาแล้ว

โทรศัพท์มือถือบางรุ่นสามารถอัพเกรดเป็น WM6 ได้ เช่น Dopod 838Pro, D810, P800W, U1000 ยี่ห้อ Gigabyte รุ่น i300 และยี่ห้อ T-Mobile รุ่น Dash ส่วนมือถือใหม่ที่ติดตั้ง WM6 ไว้แต่แรกเลยเริ่มออกวางจำหน่ายแล้ว เช่น XDA Terra ของ O2, G900 ของ Toshiba และ ASUS Aries ของ ASUS ส่วนยี่ห้ออื่นๆ คงจะออกรุ่นที่เป็น WM6 ครบทุกยี่ห้อภายในปีนี้

แม้ WM6 จะต่างจาก WM5 ไม่มาก (จนไม่น่าจะเรียกว่า WM6 น่าจะเรียกว่า WM5.5 มากกว่า) และการปรับปรุงส่วนใหญ่ผู้ใช้จะไม่ได้รับประโยชน์หากไม่ได้ใช้ร่วมกับ MES12 แต่ถ้า HPC ของท่านสามรถอัพเกรดเป็น WM6 ได้ให้รีบไปอัพเกรดโดยด่วน เพราะ WM6 มีอินเตอร์เฟสที่สวยทันสมัยเข้ากับ Windows Vista และทำงานเร็วขึ้นมาก เพียงเท่านี้ก็คุ้มค่ากับการอัพเกรดแล้ว ส่วนการปรับปรุงคุณสมบัติต่างๆ แม้จะไม่หวือหวา แต่เมื่อมองโดยรวมแล้ว WM6 น่าใช้กว่า WM5 อย่างไม่น่าสงสัย

สร้างสาย VoIP ด้วยตนเอง

ไปหน้าแรก | สารบัญ | Laploy.comระเบียนบทความ | บทความจากลาภลอย

สร้างสาย VoIP ด้วยตนเอง

สร้างสายเพื่อช่วยให้คุณคุยกับคนทั่วโลกผ่านคอมพิวเตอร์โดยใช้เครื่องโทรศัพท์ธรรมดาในบ้าน

“ฮาโหล… นี่เราคุยกันนานหนึ่งชั่วโมงแล้วนะ วางหูดีกว่ามั๊ย เดี๋ยวไม่มีตังจ่ายค่าโทรศัพท์ เธออยู่ใน แอฟริกา ไม่ใช่หรือ หา? ว่าไงนะ โทรฟรีเหรอ โอจริงด้วย ลืมไปว่าเรากำลังคุยกันผ่านอินเตอร์เน็ต!”

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

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

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

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

บทความโดย ลาภลอย วานิชอังกูร กรุณาติดตามอ่านในนิตยสาร Hobby Electronic

ไมโครคอมพิวเตอร์ เดือนกันยายน 2007

ไปหน้าแรก | สารบัญ | Laploy.comระเบียนบทความ | บทความจากลาภลอย

Microcomputer Vol.25 No. 266 September 2007

ในฉบับนี้มีบทความที่ผมเขียนคือ "สร้าง IrDA ด้วยตนเอง" (หน้า 135) กรุณาติดตามอ่านด้วยครับ