Flex 4 right click menu

วันนี้ลองเพิ่มเมนูให้ Flash ตอนคลิกเมาส์ขวาดูแล้วค้นพบอะไรบางอย่างเลยจดวิธีทำไว้ซักหน่อย ใน Flex มีเมนูให้เลือกใช้เยอะมากประมาณ 4 – 5 แบบแต่ที่สนใจคือ Context Menu เป็นเมนูที่เกิดตอนทำอะไรกับวัตถุในนั้น เช่น คลิกขวา หรือ กดค้าง วิธีใช้ก็ง่ายมาก ลองดูจาก code ด้านล่างเลย

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" 
               minWidth="200" minHeight="50"
               initialize="init(event)">
  <fx:Script>
    <![CDATA[
      import flash.net.navigateToURL;
 
      import mx.core.FlexGlobals;
 
      private function init(event:Event):void {
        // สร้างเมนูขึ้นมาใหม่ด้วยชื่อ "Open llun site"
        var siteMenu:ContextMenuItem = new ContextMenuItem("Open llun site");
        // ใส่ event เข้าไปเวลามีคนมาเลือกให้ทำอะไร
        siteMenu.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, function(event:Event):void {
          var request:URLRequest = new URLRequest("http://llun.in.th");
          navigateToURL(request);
        })
 
        // เอา context menu จาก root application จากนั้นใส่เมนูที่เราสร้างเข้าไป
        var contextMenu:ContextMenu = FlexGlobals.topLevelApplication.contextMenu;
        contextMenu.hideBuiltInItems();
        contextMenu.customItems.push(siteMenu);
 
      }
 
    ]]>
  </fx:Script>
 
  <s:VGroup verticalAlign="middle" horizontalAlign="center" width="100%" height="100%">
    <mx:Label text="Right click on me" />  
  </s:VGroup>
</s:Application>

วิธีทำง่ายมาก แต่มีข้อพึงระวังอย่างหนึ่งคือ ชื่อของเมนูต้องไม่เป็นคำทั่วไปเช่น Save, Copy, Replace, … เพราะปุ่มจะไม่แสดงออกมา ตอนทำก็งงตั้งนานว่าทำไม ลองเปลี่ยนชื่อแล้วหายทันทีถ้าอยากลองเล่นก็ที่ Flash ด้านล่างเลย

Read full story Comments { 0 }

Gmail, Yahoo and Hotmail

ตอนกลางวันเล่น Yahoo! calendar เพราะ search caldav แล้วเจอเข้าเลยพบว่ามันสุดยอดมาก เพราะทำ caldav ได้สมบูรณ์ใช้ได้กับทั้ง iPhone และ iCal บน OSX แต่พอใช้ mail app แล้วหงุดหงิดมาก เพราะมันตรงข้ามกับ Calendar โดยสิ้นเชิง เลยเอามาเปรียบเทียบซะเลย (สำหรับ Hotmail ไม่ต้องพูดถึง ครึ่ง ๆ กลาง ๆ ระหว่าง Gmail กับ Yahoo ยังไงก็ไม่รู้)

Gmail Yahoo Mail Hotmail
IMAP/POP3 ตั้งแต่ Gmail เปิดตัวมา พร้อมกับให้เนื้อที่มหาศาล ก็ทำให้รู้ว่า Gmail ไม่มีกั๊กบริการต่าง ๆ ที่ทำให้ใช้กับโปรแกรมอื่น ๆ ให้เลย แม้ IMAP กับ POP3 จะมาช้าหน่อย แต่ตอนนี้ก็ใช้ได้อย่างสะดวกสบาย และมาเป็นเจ้าแรก แม้จะเปิดบริการมานาน พอ ๆ กับ Hotmail แต่แทบจะไม่มีอะไรเปลี่ยนแปลงเลยนอกจาหน้าตาบนเว็บที่สวยงามขึ้น POP3 ถ้าอยากใช้ต้องเสียเงินเพิ่ม ส่วน IMAP หรือฝันไปเหอะ แม้จะมาช้าเสียหน่อย แต่อย่างน้อยตอนนี้ Hotmail ก็มี POP3 แล้ว แม้จะยังไม่มี IMAP แต่แค่นี้ก็พอใจแล้วสำหรับค่ายนี้
พื้นที่ 7 GB ++ มันเพิ่มขึ้นเรื่อย ๆ แต่ตอนนี้ก็ใช้แทบไม่หมดอยู่แล้ว แต่ก่อนมีแค่สิบยี่สิบ MB ปัจจุบัน Unlimit!!! N/A คือหาไม่เจอ ไม่รู้ไปซ่อนไว้ตรงไหน
CALDAV มีให้ใช้แบบไม่เต็มที่คือ 1 calendar ต่อ account CALDAV perfect มากใช้ได้ทั้ง iPhone และ iCal สามารถสร้าง calendar เพิ่มได้ใน account เดียว มีด้วยหรอ?

จากตารางด้านบน ตอนนี้ก็เลยใช้แบบกึ่ง ๆ คือ Mail ก็ฝากไว้กับ Google ส่วน Calendar ฝากไว้กับ Yahoo ส่วน Contact ฝากไว้กับทั้งสองที่ :)

Read full story Comments { 4 }

OpenVZ

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

  • สามารถจำกัด CPU และ Memory ของเครื่องลูกได้
  • มี overhead ไม่เยอะ เพราะ VM ทุกตัวใช้ kernel เดียวกันหมด
  • มี web control panel ให้เลือกมากมาย ไม่ต้องลงโปรแกรมเพิ่มเพื่อเข้ามาจัดการ

แน่นอนมันย่อมมีข้อเสียคือ มันไม่สามารถลง OS อื่นนอกจาก Linux ได้ เพราะมันใช้ Kernel เดียวกันหมดทำให้นึกถึงญาติห่าง ๆ ของมันยิ่งนัก FreeBSD jail แต่ด้วยข้อดีเรื่องจำกัดทรัพยากรกับ web control panel ที่ jail ไม่มีเลยไม่ได้เลือกใช้ (และแน่นอน ถ้าใช้ jail OS ที่ลงได้ก็มีแต่ BSD เท่านั้นกว่าจะลงได้แต่ละตัว compile กันสนุกแน่นอน) ด้านล่างเป็นตารางเปรียบเทียบข้อดีข้อเสียคร่าว ๆ ที่ใช้สำหรับการตัดสินใจ แน่นอนว่าไม่มีศัพท์เทคนิคต่าง ๆ เพราะไม่รู้รายละเอียดเหมือนกัน ฮะ ๆ และอาจลำเอียงนิดหน่อยเพราะเห่อ OpenVZ อยู่

OpenVZ FreeBSD Jail VMWare Server
การติดตั้ง สำหรับ Debian มันเป็นอะไรที่ง่ายมาก เพราะสั่ง aptitude install openvz kernel จากนั้น reboot 1 ครั้งก็เสร็จ Build มาให้กับ Kernel ไม่ต้องลงเพิ่มแต่อย่างใด มี Package ให้ติดง่าย พอ ๆ กับ OpenVz
Overhead Kernel เครื่องลูกทั้งหมดคือ Kernel ในเครื่องหลัก เวลาทำงานอะไร เลยไม่ต้องผ่าน hardware emulator เหมือนทำงานอยู่บนเครื่องจริง คล้ายกับ OpenVZ ต้องทำงานผ่าน Hardware emulator
OS ที่ติดเป็นเครื่องลูกได้ Linux เท่านั้น BSD เท่านั้น OS อะไรก็ได้
ความสามารถในการจำกัดทรัพยากรเครื่องลูก สามารถจำกัดได้ ทั้ง CPU และ Memory เท่าที่รู้มาก FreeBSD 8 สามารถจำกัดได้ แต่เอกสารแทบไม่บอกรายละเอียดเรื่องนี้เลย สามารถจำกัดได้ ทั้ง CPU และ Memory
Control Panel มี Web control panel ให้เลือกมากมายหลากหลายเจ้า ทั้งฟรี และไม่ ฟรี ไม่มี!!! มี Control panel ให้ใช้ได้สำหรับ Windows และ Linux ส่วน OSX อด! T_T

จากตารางด้านบน ถ้าคิดคะแนน สีแดง 0 สีน้ำเงิน 1 สีเขียว 2 OpenVZ ชนะขาด สำหรับเจ้าอื่น ๆ อย่าง Xen, KVM, ESXi ถ้ามีแรงเหลือเฟือ ก็จะลองอีกที แต่ตอนนี้ขอเห่อ OpenVZ ไปอีกซักพักก่อนจนกว่าจะเบื่อ

Read full story Comments { 1 }