แอพ Android บน Windows platform เป็นไปได้แค่ไหน?

เป็นงานเขียนที่เป็นแนวคิดแบบเร็วๆ ที่ในตอนแรกว่าจะเขียนสั้นๆ บน facebook แต่คิดว่าน่าจะต่อยอดวิธีคิด และสร้างวิธีคิดที่ละเอียดได้มากขึ้น เลยเขียนลงที่นี่น่าจะดีกว่า โดยมาจาก “ข่าวลือ” ที่ว่า Microsoft มีแผนให้แอพบน Android รันบน Windows และ Windows Phone ได้

ในความเห็นส่วนตัวมองว่า ในระยะยาว Microsoft จะไม่ได้อะไรจากการที่สามารถทำให้แอพบน Android นั้นรันบน Windows platform ได้ (ผมใช้คำว่า platform เพราะต้องการพูดรวมๆ ทั้ง Windows และ Windows Phone) เนื่องจากการทำแบบนั้น ย่อมเท่ากับทำลาย ecosystem ของตัวเองที่กำลังสร้างขึ้นในระยะเวลา 2-3 ปีที่ผ่านมา ซ้ำร้ายอาจจะทำลาย ecosystem ทั้งหมดที่ตัวเองมีมาอย่างยาวนานอีกด้วย

ทำไมถึงเป็นเช่นนั้น …. ต้องย้อนกลับไปดูว่า ecosystem ที่ตัวเองกำลังสร้างขึ้นในช่วงที่ผ่านมา และยังเป็นอนาคตของ Microsoft อย่าง Windows Store apps และ Windows Phone apps นั้น การทำตามที่ข่าวลือออกมา อาจเป็นการทำลายความน่าสนใจใน ecosystem ลงโดยสิ้นเชิง ซึ่งเป็นเรืองที่ร้ายแรงมาก เพราะถึงแม้ ในระยะสั้น กองทัพแอพของ Android ที่มาลงใน platform จะมหาศาลมาก สร้างความน่าสนใจต่อการดึงดูดผู้ใช้ และนักพัฒนาให้หันกลับมาใช้ Windows platform เพื่อใช้ และพัฒนาแอพ Android ได้ในระยะสั้นๆ แต่ในระดับ ecosystem ที่ตัวเองถืออยู่ก่อนแล้วจะไม่โต สุดท้ายจะไม่รอดทั้งหมด เพราะหมายถึงไปลดความสำคัญของ ecosystem ที่มีอยู่ และอาจรุกไปถึง การที่นักพัฒนาถอยห่างออกจาก .NET Framework ไปใช้ชุดพัฒนาอื่นๆ ที่เหมาะสมกับการพัฒนาบน Android แทน เพราะดันไปลดความได้เปรียบในการควบคุม platform ที่มีอยู่ในอดีตตให้กับ Google

แน่นอนว่าการไม่เอา Android ก็อาจจะทำให้การต่อสู้ระยะยาวมีปัญหา ในความคิดเห็นส่วนตัวมองว่าควรใช้ Mobile division ที่กำลังจะปิดดีลกับทาง Nokia มาเป็นประโยชน์ อาจจะสร้าง ecosystem กันชน (คล้ายๆ กับ Amazon) เพื่อเหยียบเรือสองแคมไปก่อนเพื่อสร้างความคุ้นเคยในตลาดที่ Microsoft ไม่ถนัด (ผมมองว่าไม่ถนัดอย่างมาก จากการเห็นลักษณะง่อยๆ ของ Windows Phone 8 ในช่วง 1 ปีกว่าๆ) โดยนำเอาประสบการณ์ของ Nokia ที่มีประสบการณ์ในการพัฒนาโทรศัพท์ มาปรับปรุง ecosystem บน platform ของตนเอง ซึ่งจะเป็นเรื่องที่น่าจะดีกว่าในการทำกำไร และสร้างความคุ้นเคย พัฒนาซอฟต์แวร์อื่นๆ ให้ทำงานบน Android ให้ได้ดีมากขึ้น รวมไปถึงการเก็บค่าพัฒนา หรือเช่าใช้ตามแนวทางใหม่ของตัวเองด้วย

สำหรับตัวอย่างที่เห็นได้ชัดเจนที่สุดที่นำเอาแอพ Android มาทำงานบน platform ตัวเองแล้วไม่ประสบความสำเร็จอย่างสิ้นเชิง คือ BlackBerry ซึ่งในตัว BB 10 นั้น BlackBerry ได้ประกาศว่าสามารถที่จะพอตตัวแอพของ Android มาลงได้ไม่ยากนัก เพื่อหวังจะเพิ่มจำนวนแอพให้พุ่งขึ้นอย่างรวดเร็ว และวิ่งไล่ทัน Android ในระยะเวลาอันสั้น โดยหวังว่าจะใช้ความได้เปรียบตรงนี้ในการจูงใจผู้ใช้ และนักพัฒนา ให้หันกลับมาพัฒนาแอพในระดับ native ในที่สุด ซึ่งในตอนแรกที่เปิดตัวก็ดูว้าวดี แต่สุดท้ายนักพัฒนาก็เอาง่ายเข้าว่าด้วยการพอตตัวแอพจาก Android มาทั้งหมดโดยไม่ได้ปรับปรุงให้เข้ากับประสบการณ์การใช้งานของ BB 10 ที่แตกต่างกันในหลายๆ ส่วน และในบางแอพยังมีประสิทธิภาพที่แย่ (ถึงแย่มาก) อีกทั้งตัว runtime ของ BB 10 ที่ใช้สำหรับให้แอพ Android ทำงานนั้น ก็กินทรัพยากรมากกว่า ซึ่งเป็นผลร้ายต่อประสบการณ์ในการใช้งานระยะยาวของกลุ่มผู้ใช้ที่แย่จนรับไม่ได้ในที่สุด

ถ้า Microsoft จะดำเนินตามแผนที่ BlackBerry เคยทำ อาจจะจบไม่สวยก็เป็นได้ …

 

 

Windows Azure ตอนที่ 5 การติดตั้ง Linux และ Windows Server บน Windows Azure Virtual Machine

ระบบเครื่องประมวลผลเสมือนหรือ Virtual Machines (VM) เป็นหนึ่งในบริการโครงสร้างพื้นฐาน (IaaS) สำหรับให้เราปรับแต่งและนำระบบที่พัฒนาสำหรับใช้งานผ่านระบบอินเทอร์เน็ตและอินทราเน็ตขึ้นสู่บริการประมวลผลแบบกลุ่มเมฆ โดยบริการโครงสร้างพื้นฐานที่จัดเตรียมไว้ให้บนระบบประมวลผลแบบกลุ่มเมฆโดยระบบเครื่องประมวลผลเสมือนที่รองรับทั้ง Windows และ Linux

โดยผู้พัฒนาระบบที่ใช้ในบริการเครื่องประมวลผลเสมือนนี้มาประยุกต์ใช้งานเพื่อสร้างระบบที่ออกแบบได้เองตั้งแต่การเลือกใช้งานระบบปฏิบัติการ (Operating System) การตั้งค่าการสื่อสารระหว่างตัวเครื่องประมวลผลเสมือนติดตั้งซอฟแวร์สื่อสารระหว่างระบบ (Middleware) ซอฟต์แวร์ช่วยประมวลผลภาษาโปรแกรมมิ่ง (Software Runtime) ซอฟต์แวร์เพื่อรองรับโครงร่างการพัฒนาโปรแกรมคอมพิวเตอร์ (Software Framework) และระบบสำรองข้อมูลทั้งหมด ทำให้เราสามารถบริหารจัดการได้เสมือนเครื่องแม่ข่ายจริงๆ

การติดตั้ง Ubuntu Linux Server บน Windows Azure Virtual Machine

1. เลือกที่ NEW ที่หน้า Windows Azure Portal

2013-10-05_223623

2. เลือกที่ Compute ตามด้วย Virtaul Machine และเลือกที่ From Gallery

2013-10-05_224608_thumb

3. เลือก Ubuntu Linux Server รุ่นที่ต้องการจากหน้า Virtual machine image selection กดปุ่ม Next

2013-10-05_224718

4. กรอกข้อมูลตั้งค่า Virtual Machince ส่วนของคุณสมบัติเครื่องเสมือนได้แก่

4.1. ตัวเลือก Version Release Date ซึ่งเป็นรุ่นที่มีการรวบรวมการสร้างอิมเมจของตัวระบบปฏิบัติการนั้นๆ ซึ่งถ้าใช้วันที่ล่าสุด จะทำให้เราไม่ต้องอัพเดทแพตเยอะเกินความจำเป็น

4.2. ตั้งชื่อเครื่องเสมือนที่ Virtual Machine Name

4.3. เลือกขนาดของตัวเครื่อง (Size)

image_thumb[3]

4.4. เลือกชื่อเข้าระบบ (New user name)

4.5. เอาเครื่องหมายถูกที่ Upload compatible SSH key for authentication ออกไป

4.6. เลือก Provide a password และตั้งรหัสผ่านเข้าระบบจากตรงนี้

ตั้งค่าทั้งหมดเสร็จแล้วกดปุ่ม Next

2013-10-05_224947

5. กรอกข้อมูลตั้งค่า Virtual Machince ในส่วนของการใช้งานเครือข่ายได้แก่

5.1. Cloud Service เป็นตัวเลือกเพื่อผูกเข้ากับ Cloud Service ใหม่หรือผนวกตัว Virtual Machine ที่กำลังจะสร้างนี้ไปใช้งานร่วมกับ Virtual Machine เก่าโดยการผนวกเพื่อใช้งานร่วมกับ Virtual Machine เก่าจะสามารถใช้ความสามารถของ Load Balancer ได้ด้วย

5.2. Cloud Service DNS name ชื่อของ Cloud Service ที่จะใช้อ้างอิงเพื่อใช้งานกับ domain ชื่อ cloudapp.net

5.3. Subscription ชื่อของบัญชีผู้ใช้งานเพื่อเรียกเก็บค่าใช้ระบบ

5.4. Region/Affinity Group/Virtual Network โซนที่ต้องการนำ Virtual Machine นี้ไปใช้งาน

5.5. Storage Account ชื่อบัญชีผู้ใช้งานสำหรับจัดการเก็บ Virtual Machine ซึ่งไฟล์ Virtual Machine จะเป็นนามสกุล VHD ซึ่งเป็นตัวเดียวกับที่ใช้บน Windows Server

5.6. Availability Set เป็นการตั้งกลุ่มเพื่อทำการขยายระบบและรองรับการล่มของ Virtual Machine ซึ่งจะทำงานสอดคล้องกับ Cloud Service ในข้อที่ 5.1

2013-10-05_225355

6. ตั้งค่าการเข้าถึงผ่าน Port ของ Network ซึ่งเป็นการตั้งค่าให้สอดคล้องกับระบบรักษาความปลอดภัยของ Windows Azure ผ่านระบบ Firewall ด้วยการตั้งค่า Endpoint ซึ่งค่าเริ่มต้นของ Linux นั้นจะเป็น Port หมายเลข 22 ที่เป็น Secure Shell นั้นเอง

2013-10-05_225450_thumb

จากตัวอย่าง ถ้าเราต้องการใช้ Virtual Machine นี้ในการให้บริการเว็บก็เลือก HTTP เพื่อใช้ Port หมายเลข 80 เพื่อให้รองรับกับ Apache Web Server และ Port หมายเลข 21 เพื่อให้รองรับกับการส่งไฟล์ผ่าน FTP เป็นต้น

เมื่อทุกอย่างตั้งค่าครอบแล้วให้ตอบ OK หรือเครื่องหมายถูก ที่มุมขวาล่าง

2013-10-05_225435

7. จากตัวอย่างดังกล่าว เมื่อตอบตกลงให้สร้าง Virtual Machine แล้ว ให้รอจนกว่าจะ Provisioning เสร็จสิ้นแล้วขึ้นสถานะ Running

2013-10-05_225536

2013-10-05_225857

8. เมื่ออยู่ในสถานะ Running แล้วให้เข้าไปที่ Dashboard ของ Virtual Machine เครื่องที่เราสร้างขึ้นมา จะมีส่วนต่างๆ ในหน้า Dashboard นี้หลายส่วนให้เทำความเข้าใจ

8.1. web endpoint status ตั้งสถานะการตรวจจับการทำงานของ endpoint ที่ตั้งขึ้นมาเพื่อส่งสถานะไปแจ้งเมื่อมีการล่มเกิดขึ้นหรือโยกการเข้าถึงไปยังระบบอื่นๆ

8.2. autoscale status ตั้งค่าขยายระบบอัตโนมัติ โดยปรกติถ้าใช้งานเพียง Virtual Machine เดียวเราจะไม่สามารถตั้งค่าอะไรเพิ่มเติมได้ เพราะต้องคั้งค่า Availability Set เสียก่อน

8.3. usage overview จะแสดงจำนวน core ของ CPU ที่ใช้งานอยู่และสามารถขยายระบบออกไปได้ ถ้าตั้ง Availability Set ไว้จะเห็นจำนวน core ของ CPU ใน Available เพิ่มขึ้นมา

8.4. disk ส่วนแสดงรายการของ disk หรือไฟล์ VHD ที่เกี่ยวกับและทำงานร่วมกับ Virtual Machine เครื่องนี้

8.5. quick glance ใช้สำหรับแสดงสถานะของ Virtual Machine ได้แก่
status แสดงว่ากำลังทำงานอยู่หรือไม่
dns name ชื่อ DNS สำหรับใช้ในการติดต่อ ภายใต้ domain name ชื่อ cloudapp.net
host name ชื่อ host name ของระบบปฏิบัติการที่ติดตั้งอยู่
public virtual IP หมายเลข IP ภายนอกที่ใช้สำหรับติดต่อเข้ามา ใช้งานแทน dns name ได้
internal IP หมายเลข IP สำหรับควบคมผ่าน cloud agent ของ Windows Azure Portal
SSH details รายละเอียดสำหรับเชื่อมต่อผ่าน SSH
size คุณสมบัติของ Virtual Machine เครื่องนี้

8.6. matrix เป็นกราฟที่ใช้แสดงโหลดของ Virtual Machine เครื่องนี้ว่ามีการเคลื่อนไหวอย่างไรบ้าง

8.7. dashboard menu เมนูหลักในการจัดการ Virtual Machine ในส่วนต่างๆ

2013-10-05_230513_thumb[6]

9. ส่วนของ Endpoint เป็นส่วนที่ใช้สำหรับจัดการ Port เพื่อให้เราสามารถเชื่อมต่อกับ Virtual Machine ได้จากเครือข่ายภายนอก Windows Azure โดย Port ต่างๆ นั้นจะใช้ผ่านโปรแกรมหรือการเรียกใช้ตามที่ระบุไว้เท่านั้น ถ้าไม่มีการเปิดใน Endpoint นี้ก่อน จะทำให้การเข้าถึงในโปรแกรมหรือระบบที่ได้ติดตั้งลงใน Virtual Machine ที่ทำงานใน Port ดังกล่าว ใช้งานจากภายนอก Windows Azure ไม่ได้

2013-10-05_230538

10. การตั้งขนาดของ Virtual Machine สามารถกลับมาปรับได้จากหน้า Configure นี้ รวมไปถึงการตั้งค่า Availability Set เพื่อสร้างกลุ่มของการขยายและรองรับการล่มของระบบขึ้นมา ในส่วนของ monitoring นั้น เป็นส่วนที่ใช้สำหรับตั้งค่า web endpoint status ซึ่งเป็นที่เดียวกันในหน้า Dashboard

2013-10-05_230733

11. การเชื่อมต่อสามารถเข้าได้ผ่าน SSH Client อย่าง PuTTY โดยใช้ค่าจาก SSD Details มาใช้งานเพื่อเชื่อมต่อ ซึ่งเมื่อทำการเชื่อมต่อให้กดรับ rsa2 key fingerprint ก่อนเพื่อให้การเชื่อมต่อสำเร็จ

2013-10-05_230958

2013-10-05_231026

12. เมื่อเชื่อมต่อได้ ผ่านข้อมูลในข้อที่ 4. ก็จะเข้ามาในหน้า Shell ของระบบ เป็นอันเสร้จสิ้นการติดตั้ง Ubuntu Linux Server

2013-10-05_231141

 

การติดตั้ง Windows Server บน Windows Azure Virtual Machine

1. เลือกที่ NEW ที่หน้า Windows Azure Portal

2013-10-05_223623

2. เลือกที่ Compute ตามด้วย Virtaul Machine และเลือกที่ From Gallery

2013-10-05_224608

3. เลือก Windows Server รุ่นที่ต้องการจากหน้า Virtual machine image selection กดปุ่ม Next

2013-10-05_231605

4. กรอกข้อมูลตั้งค่า Virtual Machince ส่วนของคุณสมบัติเครื่องเสมือนได้แก่

4.1. ตัวเลือก Version Release Date ซึ่งเป็นรุ่นที่มีการรวบรวมการสร้างอิมเมจของตัวระบบปฏิบัติการนั้นๆ ซึ่งถ้าใช้วันที่ล่าสุด จะทำให้เราไม่ต้องอัพเดทแพตเยอะเกินความจำเป็น

4.2. ตั้งชื่อเครื่องเสมือนที่ Virtual Machine Name

4.3. เลือกขนาดของตัวเครื่อง (Size)

4.4. เลือกชื่อเข้าระบบ (New user name)

4.5. กรอกข้อมูลรหัสผ่าน (New password) และยืนยันรหัสผ่านอีกครั้ง

ตั้งค่าทั้งหมดเสร็จแล้วกดปุ่ม Next

2013-10-05_232502

5. กรอกข้อมูลตั้งค่า Virtual Machince ในส่วนของการใช้งานเครือข่ายได้แก่

5.1. Cloud Service เป็นตัวเลือกเพื่อผูกเข้ากับ Cloud Service ใหม่หรือผนวกตัว Virtual Machine ที่กำลังจะสร้างนี้ไปใช้งานร่วมกับ Virtual Machine เก่าโดยการผนวกเพื่อใช้งานร่วมกับ Virtual Machine เก่าจะสามารถใช้ความสามารถของ Load Balancer ได้ด้วย

5.2. Cloud Service DNS name ชื่อของ Cloud Service ที่จะใช้อ้างอิงเพื่อใช้งานกับ domain ชื่อ cloudapp.net

5.3. Subscription ชื่อของบัญชีผู้ใช้งานเพื่อเรียกเก็บค่าใช้ระบบ

5.4. Region/Affinity Group/Virtual Network โซนที่ต้องการนำ Virtual Machine นี้ไปใช้งาน

5.5. Storage Account ชื่อบัญชีผู้ใช้งานสำหรับจัดการเก็บ Virtual Machine ซึ่งไฟล์ Virtual Machine จะเป็นนามสกุล VHD ซึ่งเป็นตัวเดียวกับที่ใช้บน Windows Server

5.6. Availability Set เป็นการตั้งกลุ่มเพื่อทำการขยายระบบและรองรับการล่มของ Virtual Machine ซึ่งจะทำงานสอดคล้องกับ Cloud Service ในข้อที่ 5.1

2013-10-05_234002

6. ตั้งค่าการเข้าถึงผ่าน Port ของ Network ซึ่งเป็นการตั้งค่าให้สอดคล้องกับระบบรักษาความปลอดภัยของ Windows Azure ผ่านระบบ Firewall ด้วยการตั้งค่า Endpoint ซึ่งค่าเริ่มต้นของ Windows นั้นจะเป็น Port หมายเลข 3389 ที่เป็น Remote Desktop และ 5986 ที่เป็น PowerShell เพื่อ Remote เข้ามาได้

2013-10-05_234027

จากตัวอย่าง ถ้าเราต้องการใช้ Virtual Machine นี้ในการให้บริการเว็บก็เลือก HTTP เพื่อใช้ Port หมายเลข 80 เพื่อให้รองรับกับ IIS และ Port หมายเลข 21 เพื่อให้รองรับกับการส่งไฟล์ผ่าน FTP เป็นต้น

เมื่อทุกอย่างตั้งค่าครอบแล้วให้ตอบ OK หรือเครื่องหมายถูก ที่มุมขวาล่าง

2013-10-05_234041

7. จากตัวอย่างดังกล่าว เมื่อตอบตกลงให้สร้าง Virtual Machine แล้ว ให้รอจนกว่าจะ Provisioning เสร็จสิ้นแล้วขึ้นสถานะ Running

2013-10-05_234157

2013-10-05_234546

8. เมื่ออยู่ในสถานะ Running แล้วให้เข้าไปที่ Dashboard ของ Virtual Machine เครื่องที่เราสร้างขึ้นมา จะมีส่วนต่างๆ ในหน้า Dashboard นี้หลายส่วนให้เทำความเข้าใจ

8.1. web endpoint status ตั้งสถานะการตรวจจับการทำงานของ endpoint ที่ตั้งขึ้นมาเพื่อส่งสถานะไปแจ้งเมื่อมีการล่มเกิดขึ้นหรือโยกการเข้าถึงไปยังระบบอื่นๆ

8.2. autoscale status ตั้งค่าขยายระบบอัตโนมัติ โดยปรกติถ้าใช้งานเพียง Virtual Machine เดียวเราจะไม่สามารถตั้งค่าอะไรเพิ่มเติมได้ เพราะต้องคั้งค่า Availability Set เสียก่อน

8.3. usage overview จะแสดงจำนวน core ของ CPU ที่ใช้งานอยู่และสามารถขยายระบบออกไปได้ ถ้าตั้ง Availability Set ไว้จะเห็นจำนวน core ของ CPU ใน Available เพิ่มขึ้นมา

8.4. disk ส่วนแสดงรายการของ disk หรือไฟล์ VHD ที่เกี่ยวกับและทำงานร่วมกับ Virtual Machine เครื่องนี้

8.5. quick glance ใช้สำหรับแสดงสถานะของ Virtual Machine ได้แก่
status แสดงว่ากำลังทำงานอยู่หรือไม่
dns name ชื่อ DNS สำหรับใช้ในการติดต่อ ภายใต้ domain name ชื่อ cloudapp.net
host name ชื่อ host name ของระบบปฏิบัติการที่ติดตั้งอยู่
public virtual IP หมายเลข IP ภายนอกที่ใช้สำหรับติดต่อเข้ามา ใช้งานแทน dns name ได้
internal IP หมายเลข IP สำหรับควบคมผ่าน cloud agent ของ Windows Azure Portal
size คุณสมบัติของ Virtual Machine เครื่องนี้

8.6. matrix เป็นกราฟที่ใช้แสดงโหลดของ Virtual Machine เครื่องนี้ว่ามีการเคลื่อนไหวอย่างไรบ้าง

8.7. dashboard menu เมนูหลักในการจัดการ Virtual Machine ในส่วนต่างๆ

โดยในส่วนของเมนู Endpoint และ Configure นั้นไม่แตกต่างจากของ Linux แต่อย่างใดนัก

2013-10-05_235810

9. ในส่วนของการเชื่อมต่อเข้าไปยัง Virtual Machine เพื่อควบคุมนั้น สามารถดึง RDP profile จากในหน้า Windows Azure Portal ได้จากเมนู Connect ที่ด้านล่าง

2013-10-05_235906

10. เราจะได้ไฟล์ .rdp มา เมื่อ Save และ Open ไฟล์ดังกล่าว ตัว Windows ของเราจะทำการเชื่อมต่อกับ Virtual Machine ที่สร้างขึ้นมา

2013-10-05_235927

11. ตอบรับการเชื่อมต่อในคำแนะนำนี้

2013-10-05_235950

12. ใช้การเชื่อมต่อแบบกำหนดเอง ให้กรอกข้อมูลที่ข้อที่ 4.

2013-10-06_000047

13. ตอบรับ Certificate ของการเชื่อมต่อนี้

2013-10-06_000055

14. รอการเชื่อมต่อ และรอการตั้งค่าต่างๆ ครั้งแรกที่ได้เชื่อมต่อเข้าไป

2013-10-06_000105

2013-10-06_000121

15. เมื่อเชื่อมต่อเสร็จแล้ว เราก็สามารถควบคุม Virtual Machine ที่เป็น Windows Server ได้แล้ว

2013-10-06_000304

 

การเปิดใช้ SWAP Partition ของระบบปฏิบัติการ Linux บน Windows Azure

โดยปรกติแล้ว ถ้าเราลง Linux โดยทั่วไปจะมีการตั้ง SWAP Partition ไว้เป็นปรกติอยู่แล้ว แต่ถ้าอยู่บน Cloud นั้นตัวอิมแมจของระบบปฏิบัติการ Linux จะถูกปรับแต่งบางส่วนเพื่อไม่ให้สร้าง SWAP Partition ด้วยเหตุผลด้านพื้นที่ที่ต้องจองไว้และความไม่จำเป็นโดยทั่วไปของ Cloud อยู่แล้ว (ปรกติใช้ Cloud สำหรับ Compute ข้อมูลที่อาจจะไม่ได้ใช้หน่วยความจำเยอะ) เพราะไม่ใช่ทุกคนที่ลงระบบปฏิบัติการ ต้องได้ใช้ SWAP เสมอไป แต่ถ้าอยากลงก็มีทางให้อยู่ โดยการตั้งค่าต่อไปนี้ อ้างอิงอยู่บน Ubuntu Linux Server เพื่อให้สอดคล้องกับการติดตั้งระบบปฎิบัติการ Ubuntu Linux Server ด้านบน

1. จัดการ sudo ให้ตัวเองเป็น root ของระบบ

2. เข้าไปแก้ไข Windows Azure Linux Agent Configuration ซึ่งอยู่ที่ /etc/waagent.conf

3. เมื่อเปิดไฟล์ขึ้นมาจะตัวตั้งค่าอยู่พอสมควร ให้หาส่วนที่ขึ้นต้นด้วย ResourceDisk ซึ่งจะมีอยู่ทั้งหมด 5 ค่า

ResourceDisk.Format=y
ResourceDisk.Filesystem=ext4
ResourceDisk.MountPoint=/mnt/resource
ResourceDisk.EnableSwap=n
ResourceDisk.SwapSizeMB=0

4. เราจะปรับให้ใช้ SWAP ขนาด 2GB โดยปรับค่า 2 ตัวดังนี้

#เปิดการใช้ SWAP
ResourceDisk.EnableSwap=y

# 2GB หน่วยเป็น MB
ResourceDisk.SwapSizeMB=2048

5. เมื่อปรับแต่งตัวตั้งค่าทั้ง 2 ตัวแล้ว บันทึกไฟล์แล้วออกจากตัว editor

6. สั่ง Deprovision ด้วยคำสั่งด้านล่าง

azureuser@ns1:~$ waagent –force –deprovision
azureuser@ns1:~$ export HISTSIZE=0

7. เมื่อสั่งรันคำสั่งจบก็ exit ออกมา แล้วไปที่ Windows Azure Portal เพื่อสั่ง Restart ตัว Virtual Machines รอสัก 3-4 นาทีโดยประมาณ ระบบจะบูทกลับมาใหม่ ให้ remote กลับเข้ามา แล้วพิมพ์คำสั่ง swapon –s เพื่อตรวจสอบว่ามีไฟล์ SWAP ของระบบอยู่ที่ /mnt/resource/swapfile หรือไม่

2013-03-02_192724

เรื่องเล่าของ Bluetooth Keyboard ที่ใช้งานร่วมกับ Android ได้อย่าง RAPOO E6500 และ Microsoft Wedge Mobile

อยู่ๆ ก็อยากได้ Keyboard มาใช้งานร่วมกับ Android Tablet ที่ผมมีอยู่อย่าง ASUS Nexus 7

วันนี้เลยไปเดินดู ตอนแรกผมได้ Rapoo E6500 Ultra-thin Blade Wireless Bluetooth 3.0 for Android มาก่อน เลยเอามานั่งเล่น โดยรวมมันเล็กดีครับ แต่พอพิมพ์และเล่นไป รู้สึกว่ามันเล็กไป (อ้าววว ไอ้บ้า ตอนซื้อไม่คิด) ก็เลยไปเดินเล่นใน IT City ไปสะดุดกับ Microsoft Wedge Mobile Keyboard เข้า พลิกกล่องไปๆ มาๆ มันไม่ได้บอกว่าใช้กับ Android ได้แฮะที่กล่อง ผมเลยเปิดมือถือค้นหาดูว่ามีใครเขียนรีวิวเรื่องนี้ไว้แล้วเค้าใช้ Android ได้ไหม สรุปว่าได้ แต่ด้วยความไม่มั่นใจ เลยขอทางร้าน IT City เค้าทดสอบอีกที เค้าก็เลยแกะกล่องใหม่มาให้ลอง Pair กับมือถือผมเลย แล้วผมก็ลองพิมพ์ดู สรุปว่าได้แฮะ แถมการ Pair ก็ไม่ได้ยุ่งยาก สรุปเหมือนมัดมือชก ถ้าได้ก็ต้องซื้อ (ร้านแผนสูงนะเนี่ย) สรุปเลยจัดมาเลยอีกตัว ><” (แกลบครับเดือนนี้)

DSC_1771

ด้านล่างเป็น Rapoo E6500 Ultra-thin Blade Wireless Bluetooth 3.0 Android ส่วนด้านบนเป็น Microsoft Wedge Mobile Keyboard จะเห็นว่ากล่องใหญ่แตกต่างกันอย่างมาก ><”

ด้านราคาแล้วนั้น RAPOO E6500 ค่าตัวอยู่ที่ 1,490 บาท ในความรู้สึกส่วนตัวแล้วไม่แพงมากสำหรับ Bluetooth Keyboard ที่ใช้งานร่วมกับ Smartphone และ Tablet ค่าย Android ครับ

ด้านราคาของฝั่ง Microsoft Wedge Mobile Keyboard นั้นอยู่ที่ 2,590 บาท ถือว่าราคาแรงพอสมควรสำหรับหลายๆ คน แต่ถ้าพูดถึงความสามารถในการเชื่อมต่อกับหลายๆ OS แล้ว ผมถือว่าชนะขาดหลายๆ ค่ายเลย ซึ่งตัว Wedge Mobile Keyboard นั้นสามารถเชื่อมต่อผ่าน Bluetooth เข้ากับ Windows 7/RT/8 ได้สบายๆ และยังสามารถใช้กับ Mac OS X สำหรับ Desktop/Notebook โดยทั่วไป และยังสามารถเชื่อมต่อกับ iOS และ Android ได้โดยไม่แยกรุ่นแบบของ RAPOO ที่มีรุ่นสำหรับ iPad และ Android แยกขายคนละรุ่น ซึ่งถ้าซื้อมาใช้พกพาแล้ว Wedge Mobile Keyboard จบในตัวเองเลยด้านการเชื่อมต่อหลายๆ OS

DSC_1776 DSC_1778

ในด้านการใช้งานแล้วนั้น Rapoo E6500 Ultra-thin Blade Wireless Bluetooth 3.0 Android มี Layout ของการจัดวางปุ่มที่แปลกสักหน่อย ถ้าใครซื้อมาเป็นแบบ Screen ปุ่ม US แนะนำให้หาสติกเกอร์มาแปะสักหน่อย ไม่งั้นพิมพ์ไทยหลงปุ่มแน่ๆ ในด้านการพิมพ์ภาษาอังกฤษอันนี้สบายๆ ไม่มีปัญหาอะไร แต่ถ้าพิมพ์ภาษาไทยเนี่ยลำบากพอสมควรเลย เพราะบางปุ่มที่ภาษาอังกฤษใช้เป็นสัญลักษณ์ในภาษาอังฤษจะโดนลดบทบาทลงด้วยการย้ายปุ่มไปตำแหน่งอื่น แต่ในภาษาไทยไอ้ปุ่มที่โดนย้ายไปเนี่ยมันเป็นปุ่มที่โดนควบด้วยปุ่มภาษาไทยที่ใช้บ่อยๆ อยู่หลายตัว เพราะฉะนั้นอาจลำบากสำหรับคนที่ซื้อมาพิมพ์ภาษาไทย (แนะนำให้หาสติกเกอร์ภาษาไทยมาใช้ควบคู่ด้วย)

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

ส่วนเรื่องของ Battery นั้นตัว Rapoo E6500 นั้นเป็น Battery แบบ Li-ion แบบใส่มาในตัวเลย การชาร์จก็ใช้ผ่าน microUSB ง่ายๆ สำหรับการ Pair ตัวคีย์บอร์ดตัวนี้ไม่ยากอะไร และ Pair ได้เร็ว แต่ใช้ได้กับ Android OS และ HID Profile บน Desktop/Notebook เท่านั้น ไม่สามารถใช้บน iOS ได้

DSC_1793 DSC_1794

ตัวต่อมาเป็นตัวที่ผมรู้สักประทับใจมากเมื่อได้สัมผัส ก็คือ Microsoft Wedge Mobile Keyboard จากที่บอกไปแล้วว่าตัวคีย์บอร์ดตัวนี้สนับสนุน OS หลากหลายกว่า Rapoo และแน่นอนว่าขนาดของตัวคีย์บอร์ดตัวนี้มีขนาดใหญ่กว่า Rapoo E6500 ที่วางเทียบๆ โดย Rapoo มีขนาด 21cm x 8cm ส่วน Wedge Mobile Keyboard มีขนาด 25.5cm x 10cm จะเห็นว่าระยะความกว้างของ Wedge Mobile Keyboard นั้นกว้างกว่าพอสมควร ทำให้การจัดเรียงตัวปุ่มนั้นทำได้ใกล้เคียงกับคีย์บอร์ด Notebook ขนาดเล็กเลย และสำหรับ Layout ภาษาอังกฤษนั้นไม่มีการโยกย้ายปุ่มแบบ Rapoo ทำให้เวลาเปลี่ยนมาพิมพ์ภาษาไทยนั้นทำได้ง่ายกว่ามาก รวมถึงระยะปุ่มก็ห่างก็พอกัน ทำให้ไม่พิมพ์ผิดได้ง่ายเท่า Rapoo ที่ตัวเล็กกว่า (แถมโยกย้ายปุ่มอย่างที่บอกไป)

สำหรับในด้านการตอบสนองการพิมพ์นั้น Wedge Mobile Keyboard นั้นปุ่มนิ่มกว่า เลยไม่ต้องใช้แรงกดเยอะ แต่การตอบสนองทำได้ดี และฐานตัวคีย์บอร์ดทำได้แข็งแรงกว่า Rapoo อีก ทำให้พิมพ์แล้วไม่ยวบลงไป ซึ่งกดพิมพ์แล้วมั่นใจมากๆ อันนี้ ถ้าเทียบกันทั้ง Rapoo และ Wedge Mobile Keyboard ทำได้ดีทั้งสองตัวเลย

DSC_1803 DSC_1801

แน่นอนว่า Wedge Mobile Keyboard เป็นแบบ Wireless การใช้พลังงานนั้นแตกต่างจาก Rapoo E6500 เพราะใช้ Battery Alkaline ขนาด AAA ทั้งหมด 2 ก้อนมาใส่ที่ฐานแล้วเปิดใช้งาน ตัวคีย์บอร์ดมีปุ่มสำหรับเชื่อมต่อ Bluetooth เท่านั้น ไม่มีปุ่มปิดเฉพาะแบบ Rapoo แต่อย่างใด แต่ใช้ Multi-purpose Cover มาเปิดตัวคีย์บอร์ดแทน ก็คือการปิดการใช้งาน แต่เจ้าตัว Multi-purpose Cover ที่ให้มานอกจากจะเป็น Cover ของตัวคีย์บอร์ดแล้ว ยังเป็น Stand ให้กับตัว Tablet ให้เราได้อีกด้วย ซึ่งซื้อคีย์บอร์ดตัวนี้คิดซะว่าได้แถม Stand มาอีกตัวในชุด (ผมว่าคุ้มนะ Stand ตัวนึงก็ราคาหลายร้อยอยู่)

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

ลองเล่น Windows 8 บน Samsung Tablet PC 11.6” ที่เป็น CPU Intel!!!

เพิ่งได้ลองเล่น Windows 8 บน Samsung Tablet PC ซึ่งเป็นรุ่นเดียวกับในงาน Build ของ Microsoft เมื่อปี 2011 ที่ผ่านมา แน่นอนว่าได้เล่นแบบผ่านๆ ได้ลองหลายๆ อย่าง ต้องบอกว่า Windows 8 มันออกแบบมาสำหรับ Tablet จริงๆ ให้ตายเหอะ!!!

คือตัว Tablet ตัวนี้ถ้าซื้อตอนนี้จะได้ Windows 7 ติดมาครับ แต่ตัวนี้ได้ลง Windows 8 มาเลยทำให้ได้อะไรที่สุดๆ กับสิ่งที่ผู้ผลิต H/W ต้องการมากกว่า Windows 7 เยอะมาก

IMG20120903122547 (1)

ตัวคุณสมบัติคราวๆ ของ Samsung 700T1A-A03AU Tablet PC ก็ตามนี้

  • CPU: Intel Core i5-2467M 1.6GHz
  • VGA: Intel HD 3000 Graphics Card
  • Display: 11.6 Capacitive Multi-Touch Display (8 touch sensor)
  • RAM: 4GB
  • SSD: 64GB

IMG20120903122557

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

IMG20120903122811

ได้ลอง Windows 8 ที่ทำงานบน Tablet แล้วต้องอุทานว่า "นี่มัน!!!!" ส่วนตัวแล้วบอกกับตัวเองเลยว่า "เก็บเงินซื้อ ThinkPad Tablet 2 ได้เลย!!!!" มันเร็ว แรง และมันคือ Windows Base ที่ทำงานบน Tablet ได้อย่างแท้จริง!

IMG20120903123216

ลองเขียนอะไรเล่นๆ บน OneNote ใน Windows 8 โดยใช้ Stylus ก็เขียนได้ง่ายๆ สบายๆ แบบนี้นี่เอง สามารถเอามือวางเหมือนเขียนหนังสือปรกติได้สบายๆ ไม่มีปัญหาที่ตัวจอสัมผัสมันไปสัมผัสส่วนอื่นๆ โดยไม่ตั้งใจ

IMG20120903124404

Windows 8 หมดปัญหากับการต้องมานั่ง format ใหม่ เพราะมันมี function ช่วยในการติดตั้ง Windows ให้ใหม่มาในตัว Windows แบบใช้ง่ายๆ ทั้งแบบติดตั้ง Windows ใหม่แบบลงใหม่เฉพาะตัว Windows/Apps หรือจะ Factory Reset ก็ได้ (ข้อมูลหายหมด)

IMG20120903125340

ถ้าถามว่าตัว Tablet ตัวนี้บางไหม ก็ไม่บางมากครับ เอามาวางเทียบกับ Lenovo ThinkPad X1 Carbon แล้วบางกว่านิดหน่อย (ดูความสูงของ port USB 3.0 ก็ได้) แต่แน่นอน อย่าลืมว่ามันคือ Tablet ที่ข้างในเป็น CPU Intel ตัว Core i5 นะครับ

สำหรับเรื่องความร้อนนั้นก็อุ่นๆ ครับ ลองใช้อยู่ประมาณ 30 กว่านาที ต้องยอมรับเลยว่าลื่นมาก แรกๆ จะงงๆ หน่อย แต่พอสักพักจะเริ่มชิน ลองสลับมาโหลด Desktop แทน Modern UI ก็ทำได้ครับ ทำงานแบบ Desktop ทั่วไปได้เลย คือตัว Keyboard/Mouse แบบ Bluetooh แล้วใช้งานแบบ Notebook ทั่วไปได้ทันที!!!

IMG20120903125505

เอามาวางเทียบกับ Lenovo ThinkPad X1 Carbon สักหน่อย

ลง Imagick บน PHP 5.2.8 ที่ทำงานบน Windows

ช่วงนี้แม้จะเซง หลาย ๆ เรื่องแต่ก็ต้องทำงาน ;P แต่ว่าเมื่อมีปัญหาเราก็ต้องแก้ไป วันนี้เลยเอามาโน๊ตไว้สักหน่อย

การลง Imagick เนี่ย บน Linux เนี่ยง่ายโคตร ๆ ยิ่งบน Ubuntu ยิ่งง่ายหนักไปอีก –_-‘ ประมาณว่า $ sudo apt-get แล้วก็นั่งรอ สักพักก็ได้แล้ว

แต่ถ้าเป็นบน Windows เนี่ย ตอน PHP 4 ถ้าให้ง่ายที่สุดก็คือ php_imagick.dll มาลง แต่บน PHP 5.2.+ มันไม่ง่ายแบบนั้น –_-‘ เพราะไฟล์ php_imagick มันไม่อยู่ใน PECL/Imagick สำหรับ Windows ให้โหลดได้ตามปรกติ (unofficial builds) ต้องหากันทั่ว Internet แต่พอเจอวิธีทำแล้วก็ต้องเอามาบันทึกไว้สักหน่อย

  1. โหลด ImageMagick-6.5.0-0-Q16-windows-dll.exe ที่ http://www.imagemagick.org/script/binary-releases.php#windows
  2. เสร็จแล้วไปโหลดตัว dynamic link (dll) ที่
    The last build date: 09.07.2008
    – Imagick 2.2.1-dev / PHP 5.2 / ImageMagick 6.4.1-Q8 / dynamic – php_imagick_dyn-Q8.dll
    – Imagick 2.2.1-dev / PHP 5.2 / ImageMagick 6.4.1-Q16 / dynamic – php_imagick_dyn-Q16.dll
    – Imagick 2.2.1-dev / PHP 5.2 / ImageMagick 6.4.1-Q8 / static – php_imagick_st-Q8.dll
    – Imagick 2.2.1-dev / PHP 5.2 / ImageMagick 6.4.1-Q16 / static – php_imagick_st-Q16.dll
  3. โดยสำหรับผมโหลด php_imagick_dyn-Q16.dll มาแล้วเอาไปไว้ใน directory “ext” ของ PHP
  4. Rename ชื่อเป็น php_imagick.dll
  5. เสร็จแล้วเปิดไฟล์ php.ini แล้วเพิ่ม
    extension=php_imagick.dll
  6. แล้วทำการ Restart ตัว Apache Services
  7. เขียนไฟล์ PHP สักตัวด้วย <?php phpinfo(); ?> แล้วก็ดูว่า imagick มันโหลดขึ้นมาหรือเปล่า (ถ้าทำถึงตรงนี้น่าจะเห็นแล้ว)

image

อ้างอิงข้อมูลบางส่วนจาก

http://valokuva.org/?page_id=50