Day: January 8, 2013

  • วิธีพัฒนา Squirrelmail Plugin – กรณี pagespeed

    Squirrelmail เป็น IMAP Client Webmail แบบมาตราฐาน ทำงานบน PHP ซึ่งติดตั้งง่าย ใช้งานได้รวดเร็ว ไม่ต้องกังวลเรื่องความเข้ากันได้กับ Web Browser ของผู้ใช้หลากหลาย เพราะไม่ค่อยมีการใช้งานพวก JavaScript

    มีความง่ายในการต่อขยายความสามารถ โดยผู้พัฒนาเปิดให้เขียน Plugin ได้ง่าย โดยไม่ต้องแก้ไข Code ของระบบโดยตรง ด้วยวิธีการเสียบ Code ผ่านจุดที่กำหนด ที่เรียกว่า “Hook” ทำให้ Plugin ที่เขียนขึ้น สามารถใช้งานต่อไปได้ แม้มีการปรับรุ่นของ Squirrelmail ต่อไป

    ตัวอย่างการเขียน Squirrelmail Plugin เพื่อแสดงความเร็วในการประมวลผลในแต่ละส่วนของ Squirrelmail
    ใช้ชื่อว่า pagespeed (ทำงานบน Squirrelmail 1.4.x)

    1. สร้าง folder ชื่อ pagespeed
    2. สร้างไฟล์ index.php เอาไว้เฉยๆ
    3. สร้างไฟล์ setup.php , ต่อไปนี้ จะกล่าวถึงการเขียนโค๊ตในไฟล์นี้
    4. สร้าง function แรกที่จะเสียบเข้ากับ Hook ต่างๆ ชื่อว่า squirrelmail_plugin_init_pagespeed
      $starttime=0;
      
      function squirrelmail_plugin_init_pagespeed() {
          global $squirrelmail_plugin_hooks;
         // Code Go Here
      }

      ชื่อฟังกชั่นต้องเป็น squirrelmail_plug_init_xxx() โดยที่ xxx ต้องตรงกับชื่อ folder ในที่นี้คือ pagespeed

    5. ต่อไป บอกให้ Squirrelmail รู้ว่า เราจะเสียบฟังก์ชั่น “pagespeed_top” และ “pagespeed_bottom” ที่่จะเขียนต่อไป ไว้ที่ Hook ใดบ้าง ในที่นี้ จะเสียบไว้ที่หน้า Login บริเวณ Hook ชื่อว่า login_top และ login_bottom, จะเขียนโค๊ดดังนี้ใน function squirrelmail_plugin_init_pagespeed ดังนี้
      $squirrelmail_plugin_hooks['login_top']['pagespeed'] = 'pagespeed_top';
      $squirrelmail_plugin_hooks['login_bottom']['pagespeed'] = 'pagespeed_bottom';

      รูปแบบการเขียนคือ
      $squirrelmail_plugin_hooks[‘ตำแหน่งที่จะเสียบ’][‘ชื่อ plugin’] = ‘ชื่อฟังก์ชั่น’;

    6. ต่อไปมาเขียนรายละเอียดของฟังก์ขั่น pagespeed_top และ pagespeed_bottompagespeed_top ทำหน้าที่ดูเวลาเริ่มต้น มีรายละเอียดดังนี้
      function pagespeed_top() {
         global $starttime;
      
         $gentime = microtime();
         $gentime = explode(' ',$gentime);
         $gentime = $gentime[1] + $gentime[0];
      
         $starttime=$gentime;
      }

      ส่วน pagespeed_bottom ทำหน้าที่ ดูเวลาสิ้นสุด แล้วคำนวนเวลาที่ใช้ไป
      จากนั้น ก็แสดงผลการคำนวนได้

      function pagespeed_bottom() {
         global $starttime;
      
         $gentime = microtime();
         $gentime = explode(' ',$gentime);
         $gentime = $gentime[1] + $gentime[0];
         $pg_end = $gentime;
         $totaltime = ($pg_end - $starttime);
         $showtime = number_format($totaltime, 4, '.' , '');
      
         echo 'Speed: ' . $showtime . ' s' ;
      }

    เท่านี้ก็ได้ plugin แล้ว ต่อไปก็เอาไปติดตั้งได้

    หากต้องการวัดความเร็วในหน้าอื่นๆ เช่น ในส่วนของ right_main (ส่วนแสดงรายการ email ที่อยู่ใน mailbox) ก็สามารถเพิ่มเข้าไปในฟังก์ชั่น squirrelmail_plugin_init_pagespeed ดังนี้

    $squirrelmail_plugin_hooks['right_main_after_header']['pagespeed'] = 'pagespeed_top';
    $squirrelmail_plugin_hooks['right_main_bottom']['pagespeed'] = 'pagespeed_bottom';

    รายละเอียดเกี่ยวกับตำแหน่งของ Hook ดูได้ที่นี่ http://squirrelmail.org/docs/devel/devel-4.html#ss4.4

  • rocks cluster mamba 6.0

    เป็นขั้นตอนการสร้าง Rocks cluster mamba 6.0 สำหรับ mamba 6.0 เป็นชื่อ version ครับ เราสามารถไปdownload ได้ที่ http://www.rocksclusters.org

    Hardware ที่ใช้ดังนี้ pc จำนวน 2 เครื่อง(พอดีใช้pcในการจำลองนะครับ) โดย pc เครื่องหนึ่งต้องมี Network Interface Card จำนวน 2 card จำลองเป็นเครื่อง frontend ส่วนอีกเครื่องเป็นเครื่องสำหรับการ compute มี Network Interface Card 1 card (เครื่องcomputeมีได้หลายเครื่อง) และมี switch  1 ตัว

     

    1.ใส่แผ่น Rocks cluster ที่ดาวโหลดไว้จากนั้นให้บูทจากแผ่นจะพบกับหน้าต่างการติดตั้งให้พิมพ์   “build”  เพื่อทำการติดตั้ง

    2.รอสักครู่ระบบกำลังทำการติดตั้ง

    3.จะปรากฎหน้าต่างดังรูป ให้เลือก CD/DVD-based Roll

    4.เลือก Roll ที่ต้องการติดตั้ง ในที่นี้เลือกทุก Roll กด Submit

    5.ก็จะแสดง Roll ที่ทำการเลือกไว้ ให้ทำการตั้งชื่อ Hostname ตามที่ต้องการ แล้วกด Next

    6.กรอกข้อมูลรายละเอียดต่างๆของ Rocks Cluster ที่ต้องการสร้าง

    7.ระบุหมายเลข IP สำหรับการเชื่อมต่อออก Public กด Next

    8.ระบุหมายเลข IP สำหรับการเชื่อมต่อภายใน Private กด Next

    9.ระบุ gateway และ DNS Servers กด Next

    10.ระบุ Password ของ root  กด Next

    11.ระบุ TimeZone กด Next

    12.เลือกการแบ่ง Partition โดยมีให้เลือกแบบ auto และ manual

    13.จากนั้นจะเริ่มทำการติดตั้งโดยความเร็วในการติดตั้งจะขึ้นอยู่กับความสามารถของ Hardware ด้วย

    14.หลังจากติดตั้งเรียบร้อยจะทำการ restart

    (more…)