Month: December 2016

  • Juju #06 – เชื่อม MySQL Master-Master เข้ากับ HAProxy

    ต่อจาก Juju #05 – วิธีกระจายงานไปยัง MySQL แบบ Master-Master เมื่อสร้าง MySQL แบบ Master-Master Replication ได้แล้ว ก็มาเชื่อมกับ HAProxy เพื่อให้ Application ที่เขียน มองเห็นทั้งระบบเป็นชิ้นเดียว

    IP Address ของระบบต่างๆเป็นดังนี้
    haproxy : 10.107.107.71

    mysql-master1: 10.107.107.35

    mysql-master1: 10.107.107.83

    ขั้นตอนการติดตั้ง

    1. ที่ mysql-master1 ต้องสร้าง 2 Users ขึ้นมา ชื่อ haproxy_check และ haproxy_root ด้วยคำสั่งต่อไปนี้
      mysql -u root -p$(cat /var/lib/mysql/mysql.passwd) -e "INSERT INTO mysql.user (Host,User) values ('10.107.107.71','haproxy_check'); FLUSH PRIVILEGES;"
      
      mysql -u root -p$(cat /var/lib/mysql/mysql.passwd) -e "GRANT ALL PRIVILEGES ON *.* TO 'haproxy_root'@'10.107.107.71' IDENTIFIED BY 'password' WITH GRANT OPTION; FLUSH PRIVILEGES;"
    2. ที่ haproxy
      ติดตั้ง mysql-client ด้วยคำสั่ง

      sudo apt-get install mysql-client

      ทดสอบด้วยคำสั่ง

      mysql -h 10.107.107.35 -u haproxy_root -ppassword -e "SHOW DATABASES;"
      mysql -h 10.107.107.83 -u haproxy_root -ppassword -e "SHOW DATABASES;"

      แก้ไขไฟล์ /etc/haproxy/haproxy.cfg โดยเพิ่มบรรทัดต่อไปนี้ท้ายไฟล์ [3]

      frontend mysql-cluster
       bind *:3306
       mode tcp
       default_backend mysql-backend
      
      backend mysql-backend
       mode tcp
       balance roundrobin
       server mysql-master1 10.107.107.35:3306 check
       server mysql-master2 10.107.107.83:3306 check

      และสุดท้าย ทดสอบด้วยคำสั่งต่อไปนี้

      for i in `seq 1 6`; do 
         mysql -h 127.0.0.1 -u haproxy_root -ppassword -e "show variables like 'server_id'"; 
      done
      

      ควรจะได้ผลประมาณนี้

    3. จากนั้นก็สามารถพัฒนา Application โดยใช้ IP Address ของ haproxy ซึ่งในที่นี้คือ 10.107.107.71 และ Port 3306 ได้แล้ว ซึ่งเบื้องหลัระบบจะทำการ Replication กันเองทั้งหมด

    Reference:

    [1] https://www.digitalocean.com/community/tutorials/how-to-set-up-mysql-master-master-replication

    [2] https://www.digitalocean.com/community/tutorials/how-to-use-haproxy-to-set-up-mysql-load-balancing–3

    [3] https://serversforhackers.com/load-balancing-with-haproxy

     

  • Juju #05 – วิธีกระจายงานไปยัง MySQL แบบ Master-Master

    ต่อจาก Juju #04 – วิธีทำให้ WordPress กระจายงานไปยัง MySQL Slave ด้วย HyperDB ซึ่งเป็นวิธีการกระจายงานให้ MySQL แบบ Master-Slave จะต้องอาศัยความสามารถของ HyperDB Plugin ของ WordPress ในการทำงาน ซึ่งถ้าเป็นการพัฒนา Application ทั่วไปที่ไม่ใช่ WordPress ก็จะทำด้วยวิธีดังกล่าวไม่ได้

    ในบทความนี้จะกล่าวถึง การสร้าง Load-Balanced MySQL แบบ Master-Master ซึ่งทำให้สามารถกระจายการ Write ไปยัง MySQL หลายตัวได้ (ในเบื้องต้น 2 ตัว)
    *** ในบทความต่อไป จะต่อด้วยการเชื่อมเข้ากับ haproxy ***

    ขั้นตอนการติดตั้งมีดังนี้

    1. Deploy haproxy (ตั้งชื่อ haproxy-mysql) และ MySQL (ตั้งชื่อ mysql-master1 และ mysql-master2)
    2. ต่อไปนี้เป็นวิธีการติดตั้ง MySQL Master-Master Replication [1]
    3. บนเครื่อง mysql-master1
      แก้ไขไฟล์ /etc/mysql/mysql.cnf
      ค้นหาคำว่า server-id
      จากนั้น Uncomment บรรทัดต่อไปนี้
      server-id
      log_bin
      binlog_do_db

      จากนั้น ในบรรทัด
      server_id = 1
      – binlog_do_db ใส่เป็น Database Name ที่จะทำการ Replication

      เมื่อเสร็จแล้ว ก็ Save แล้ว Restart Mysql
      sudo service mysql restart
      แล้วเข้าใช้งานด้วยคำสั่ง
      mysql -u root -p$(cat /var/lib/mysql/mysql.passwd)
      สร้าง User ที่จะทำหน้า Replicate ข้อมูล ด้วยคำสั่ง
      mysql> create user ‘replicator’@’%’ identified by ‘password’;
      และกำหนดสิทธิให้สามารถ Replicate ได้ ด้วยคำสั่ง
      mysql> grant replication slave on *.* to ‘replicator’@’%’;
      สุดท้ายใช้คำสั่งต่อไปนี้ เพื่อเรียกข้อมูลที่สำหรับการตั้งค่า mysql-master2
      mysql> show master status;
      ได้ผลดังนี้

      จากนั้นใช้คำสั่งต่อไปนี้ แล้วเก็บค่า FILE และ POSITION ไว้ เพื่อใช้ในขั้นตอนต่อไป
    4. บนเครื่อง mysql-master2
      แก้ไขไฟล์ /etc/mysql/mysql.cnf เหมือนกับที่ทำบน mysql-master1 แต่เปลี่ยนค่า server_id เป็น 2

      เมื่อเสร็จแล้ว ก็ Save แล้ว Restart Mysql
      sudo service mysql restart
      แล้วเข้าใช้งานด้วยคำสั่ง
      mysql -u root -p$(cat /var/lib/mysql/mysql.passwd)
      สร้าง User ที่จะทำหน้า Replicate ข้อมูล ด้วยคำสั่ง
      mysql> create user ‘replicator’@’%’ identified by ‘password’;
      และกำหนดสิทธิให้สามารถ Replicate ได้ ด้วยคำสั่ง
      mysql> grant replication slave on *.* to ‘replicator’@’%’;
      ** ขั้นตอนต่อไปนี้ ทำที่ mysql-master2 (mysql-master1 ใช้ IP 10.107.107.35)
      mysql>  slave stop;
      mysql>  CHANGE MASTER TO MASTER_HOST = ‘10.107.107.35’, MASTER_USER = ‘replicator’, MASTER_PASSWORD = ‘password’, MASTER_LOG_FILE = ‘mysql-bin.000003’, MASTER_LOG_POS = 344;
      mysql> slave start;จากนั้นใช้คำสั่งต่อไปนี้ แล้วเก็บค่า FILE และ POSITION ไว้ เพื่อใช้ในขั้นตอนต่อไป
      mysql> show master status;
    5. กลับมาที่ mysql-master1 อีกครั้ง แล้วใช้คำสั่งต่อไปนี้ (mysql-master2 ใช้ IP 10.107.107.83)
      mysql> slave stop;
      mysql> CHANGE MASTER TO MASTER_HOST = ‘10.107.107.83’, MASTER_USER = ‘replicator’, MASTER_PASSWORD = ‘password’, MASTER_LOG_FILE = ‘mysql-bin.000003’, MASTER_LOG_POS = 344;
      mysql> slave start;
    6. ที่ mysql-master1 ทำการสร้าง Database ชื่อ wordpress
    7. ไปดูที่ mysql-master2 ก็จะพบว่า wordpress database ปรากฏขึ้นแล้วด้วย

    Reference:

    [1] https://www.digitalocean.com/community/tutorials/how-to-set-up-mysql-master-master-replication

    [2] https://www.digitalocean.com/community/tutorials/how-to-use-haproxy-to-set-up-mysql-load-balancing–3

     

     

  • วิธีสลับสีแถวข้อความใน Crystal Report เมื่อมีการจัด Group

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

    ดังนั้นในฐานะผู้จัดทำรายงานคนหนึ่ง ก็พยายามหาทางให้ผู้ใช้สามารถอ่านรายงานได้ง่าย โดยการใส่สีข้อความสลับบรรทัดนั่นเอง 

     

    โดยปกตินั้น การใส่สีสลับบรรทัดสามารถทำได้โดยวิธีง่าย ๆ นั้นคือ

    if row mod 2 = 0 then   //ตรวจสอบว่าแถวนั้นเป็นแถวคู่หรือไม่

       color(240,240,240)    //ถ้าใช่แสดงสี

    else crNocolor             //ถ้าไม่ใช่ไม่ต้องแสดงสี

    ซึ่งจะทำให้ได้ผลลัพธ์ดังรูป

    สลับสี ก่อน

    จากรูปจะเห็นได้ว่า ข้อมูลมีการสลับสีแล้ว แต่เนื่องจากข้อมูลถูก Group จะพบว่า ข้อมูลที่มี 1 record ก็มีการสลับสีด้วย ซึ่งผู้เขียนไม่ต้องการให้มีการสลับสีกรณีที่ข้อมูลมีเพียง 1 ดังนั้นผู้เขียนจึงปรับวิธีการเขียนใหม่ดังนี้

    1. เพิ่ม Formula Fields
      1. ตัวที่ 1 ตั้งชื่อว่า ffRowCount เขียน Code ภายในดังนี้

        shared numbervar
        rowcnt;
        rowcnt := rowcnt+1;

      2. ตัวที่ 2 ตั้งชื่อว่า ffRowReset เขียน Code ภายในดังนี้

        shared numbervar
        rowcnt:
        rowcnt := 0;

    2. นำตัวที่ 1.1 ใส่ไว้ในส่วนของ Details และเลือก Suppress
    3. นำตัวที่ 1.2 ใส่ไว้ในส่วนของ Group 2(คณะ) เนื่องจากต้องการให้มีการ reset เมื่อมีการเปลี่ยน Group และเลือก Suppress
    4. ส่วนของ Details ให้จัดการดังนี้
      1. Click ขวา เลือก Section Expert
      2. Click เลือก Tab Color
      3. ทำเครื่องหมาย / หน้า Background Color
      4. กดปุ่ม x-2 หลักช่องสี
      5. เขียน Code ดังนี้

        shared numbervar rowcnt;
        if remainder(rowcnt,2) = 0 then
           color(240,240,240)
        else crNocolor

    5. จากนั้นลอง run ผลลัพธ์ดังรูป
      สลับสี หลัง

    จะเห็นได้ว่า ข้อมูลที่มีเพียง 1 record นั้นจะไม่มีสี

     

    ผู้เขียนหวังว่าบทความนี้จะเป็นประโยชน์ไม่มากก็น้อยสำหรับผู้อ่านนะคะ

    แล้วพบกันใหม่ตอนหน้าค่ะ 

  • Juju #04 – วิธีทำให้ WordPress กระจายงานไปยัง MySQL Slave ด้วย HyperDB

    ต่อจาก Juju #03 – วิธีสร้าง Load Balance MySQL เมื่อมี MySQL Server มากกว่า 1 ตัว ซึ่งทำการ Replication กัน (ในตอนนี้ 2 ตัว คือ Master กับ Slave) ซึ่งให้ความสามารถในเรื่อง [1]

    • Data-Security : เมื่อข้อมูลถูก Replicate ไปที่ Slave แล้ว เราสามารถหยุดการทำงานของ Slave เพื่อทำการสำรองข้อมูลได้ โดยไม่กระทบประสิทธิภาพการทำงานของ Master
    • Analytics: ทำการวิเคราะห์ข้อมูลต่างๆได้ที่ Slave โดยไม่กระทบประสิทธิภาพการทำงานของ Master
    • Scale-Out Solutions: เมื่อมี Slaves หลายตัว ทำให้สามารถกระจายงานในด้าน Read เพื่อเพิ่มประสิทธิภาพ โดยการแก้ไขข้อมูล จะทำที่ Master เท่านั้น

    ในบทความนี้ จะกล่าวถึงวิธีการ Scale-Out Solutions ของ WordPress เท่านั้น โดยใช้ Plugin ชื่อ HyperDB

    HyperDB [2] เป็น Database Class ที่ใช้แทนที WordPress built-in database functions โดยจะทำให้ WordPress สามารถติดต่อกับ MySQL ได้หลายเครื่อง โดยที่สามารถกำหนดได้ว่าจะ Write ไปยัง Master และ Read จากทั้ง Master และ Slaves อีกทั้งยังสามารถ Failover ได้อีกด้วย

    วิธีการติดตั้ง HyperDB

    1. ที่ WordPress ใช้คำสั่ง
      wget https://downloads.wordpress.org/plugin/hyperdb.1.2.zip
      sudo apt-get install unzip
      sudo unzip hyperdb.1.2.zip
    2. ย้ายไฟล์ hyperdb/db-config.php ไปยังที่ Directory เดียวกันกับ wp-config.php (ในที่นี้คื่อ /var/www/)
      sudo cp hyperdb/db-config.php /var/www
    3. ย้ายไฟล์ hyperdb/db.php ไปยังที่ Directory wp-content (ในที่นี้คื่อ /var/www/wp-content)
      sudo cp hyperdb/db.php /var/www/wp-content/
    4. แก้ไขไฟล์ db-config.php (ในที่นี้คื่อ /var/www/db-config.php) [3] โดยค้นหาคำว่า DB_HOST ซึ่งควรจะปรากฏอยู่แค่ 2 แห่งในไฟล์ ให้ไปที่ชุดที่ 2 ซึ่งมีเนื้อหาประมาณนี้

      จากนั้นแก้ไข DB_HOST ให้เป็น DB_SLAVE_1
    5. ต่อไปก็ไปเพิ่ม define(‘DB_SLAVE_1′,’xxx.xxx.xxx.xxx’) ซึ่งไฟล์ wp-config.php หรือไม่ก็ wp-info.php (ในที่นี้อยู่ที่ /var/www/wp-info.php)
    6. เมื่อทดสอบใช้งาน พบว่า มี Query มาทั้งที่ master และ slave
      ในภาวะว่าง

      ในภาวะมีงานเข้ามา
    7. ทดสอบเพิ่มบทความใหม่ ชื่อ “This is my first article” พบว่า ระบบสามารถเขียนไปยัง Master แล้วสามารถส่งต่อไปให้ Slave ได้
    8. ต่อไป เพิ่ม mysql-slave2 เข้าไปใน Juju และสร้าง Relation เป็น master -> Slave เช่นกัน

      แล้วทำการเพิ่ม DB_SLAVE_2 เข้าไปใน db-config.php และ wp-info.php

    9. ก็จะพบว่าข้อมูลได้ Replicate ไปหา Slave2 แล้ว
    10. และ เมื่อทำการ query ข้อมูลก็พบว่า มีการกระจายคำสั่ง Read ไปทั้ง 3 เครื่อง

    References

    [1] https://dev.mysql.com/doc/refman/5.7/en/replication.html

    [2] https://th.wordpress.org/plugins/hyperdb/

    [3] https://www.digitalocean.com/community/tutorials/how-to-optimize-wordpress-performance-with-mysql-replication-on-ubuntu-14-04

  • Juju #03 – วิธีสร้าง Load Balance MySQL

    จาก Juju #02 – วิธีติดตั้ง WordPress ทำให้ได้ WordPress ซึ่งเป็น Web Application 2 เครื่องทำหน้าที่ Load Balance กัน ด้วย haproxy แล้ว

    จากนั้น ทำการเพิ่ม MySQL เข้าไปใหม่ แล้วตั้ง Application Name เป็น mysql-slave แล้ว Commit Chages

    จากนั้น สร้าง Relation เป็น mysql:master –> mysql-slave:slave

    เมื่อเสร็จแล้ว จะได้ผลอย่างนี้

    ทดสอบเพิ่ม Post ใหม่

    แล้วเข้าไปใน mysql-slave (juju-xxx-xx เป็นชื่อเครื่องที่ Juju สร้างขึ้น)

    lxc exec juju-xxxx-xx  bash

    แล้วใช้คำสั่งต่อไปนี้

    mysql -u root -p$(cat /var/lib/mysql/mysql.passwd) -e ‘use wordpress; select post_title from wp_posts;’

    ก็จะพบว่า mysql-slave ได้รับการ Update ตามไปด้วย

    บทความต่อไป จะกล่าวถึงวิธีการทำให้ WordPress สามารถใช้ mysql-slave ในการ Read ได้ เพื่อกระจายโหลดครับ

     

  • WatIn Framework

    WatIn Framework เป็น Framework ที่ใช้ในการทดสอบการทำงานของเว็บ ที่พัฒนาด้วย .Net ซึ่งสามารถทำงานได้อย่างอัตโนมัติ โดยที่ไม่ต้องทำการทดสอบซ้ำ ๆ เพียงแต่ถ้าต้องการข้อมูล Input ที่แตกต่างไป สามารถแก้ไข Source Code ได้

    การติดตั้ง WatIn Framework

    1. คลิก Tool จากนั้นคลิก Extensions and Updates… ที่ NuGet Package Manager คลิก Download
    2. เมื่อ Download เสร็จแล้ว ทำการ Install โดยกดปุ่ม Install
    3. เมื่อ Install เสร็จแล้ว ไปที่เมนู
    4. จากนั้นค้นหา “WatIn”
    5. กดปุ่ม “Install” จากตัวอย่างมีการ Install เข้าไปแล้ว เมื่อ Install เสร็จจะแสดงดังรูปด้านบน จากนั้นค้นหา “NUnit”

    การเรียกใช้งาน WatIn Framework

    1. สร้าง Form ขึ้นมาปกติ จากนั้น ให้เขียนคำสั่งดังนี้
      IE browser = new IE();browser.GoTo(“http://tqf-test.psu.ac.th/”);

      browser.TextField(Find.ByName(“ctl00$MainContent$Login1$UserName”)).TypeText(“thichaluk.s”);

      browser.TextField(Find.ByName(“ctl00$MainContent$Login1$Password”)).TypeText(“xxx”);

      browser.Button(Find.ByName(“ctl00$MainContent$Login1$Button1”)).Click();

       

      – ในส่วนของคำสั่ง browser.GoTo(“http://tqf-test.psu.ac.th/”) เป็นการเรียกให้เปิด URL ที่ต้องการ

      – ในส่วนของคำสั่ง TextField หมายถึง Text box

      – ในส่วนของคำสั่ง Button หมายถึง ปุ่ม Button

      – ในส่วนของคำสั่ง Find.ByName ต่อด้วยชื่อ Control  ในการดูชื่อ Control สามารถดูได้จาก IE โดยกดปุ่ม F12

    2. อย่าลืม using WatiN.Core;
    3. เมื่อรันโปรแกรมจะปรากฏหน้าจอทำงานอัตโนมัติ ดังรูป



  • วิธีการอัพเกรด php 5.5.9 เป็น php 5.6 (หรือ 7.0) บน Ubuntu 14.04 และวิธีการสลับการทำงานระหว่างเวอร์ชั่น

    บันทึกนี้สืบเนื่องจากต้องการอัพเกรดเวอร์ชั่น php เพื่อให้เครื่องเซิร์ฟเวอร์สามารถรองรับสคริปท์ WebApp php เวอร์ชั่นใหม่ที่สูงขึ้น

    คำเตือน! ควรทดลองทำในเครื่อง dev ดูก่อนอย่าทำบนเครื่องเซิร์ฟเวอร์จริงทันทีเดี๋ยวจะน้ำตาตก
    ควรทดสอบสคริปท์บนเครื่องทดสอบดูว่าสามารถทำงานได้ไม่มีปัญหาจะได้ไม่ต้องเสียเวลาแก้ไข
    เพราะตัวผมมั่วจนได้เรื่องบนเครื่องเซิร์ฟเวอร์จริงจนเกือบแก้ไม่ได้ T_T … มาเริ่มกันเลย (more…)

  • การติดตั้งและใช้งาน ArcGoogle for ArcGIS เพื่อใช้ Google Satellite เป็นแผนที่ฐาน

    Google Maps เริ่มมีบทบาทและได้รับความนิยมในการนำไปใช้ในการแปลภาพถ่ายในด้านทรัพยากรธรรมชาติและสิ่งแวดล้อม หรือรวมไปถึงเรื่องการใช้ประโยชน์ที่ดิน เพื่อนำไปจัดทำฐานข้อมูลภูมิสารสนเทศ หรือ GIS มากยิ่งขึ้น ด้วยความที่เป็นปัจจุบันหรือ update ค่อนข้างที่จะเป็นปัจจุบันหรือใกล้เคียงปัจจุบัน อีกทั้งผู้ใช้สามารถเข้าถึงได้ง่าย ใช้งานง่าย นักภูมิสารสนเทศ หรือนัก GIS หรือคนที่ทำงานด้าน GIS จึงมักจะเลือกที่จะนำมาใช้ในการแปลภาพถ่าย หรือเรียกว่า การสำรวจระยะไกล (Remote Sensing : RS)

     

    วันนี้เลยอยากจะขอนำเสนอ plugin ตัวนึงที่น่าสนใจ นั่นคือ ArcGoogle for ArcGIS เพื่อใช้ในการนำเข้า Google Satellite เป็น BaseMaps (แผนที่ฐาน) ในการแปลภาพถ่าย ซึ่งก่อนหน้านี้เคยนำเสนอ การติดตั้ง (OpenLayers Plugin) Google Satellite บน QGIS มาแล้วสำหรับคนที่ใช้โปรแกรม QGIS ลองแวะเข้าไปอ่านดูได้นะคับ ^^

     

    ขั้นตอนการติดตั้ง

    1. ดาวน์โหลดไฟล์ ArcGoogle ได้ ที่นี่

    โดยเลือกดาวน์โหลดไฟล์ให้เหมาะกับ ArcGIS เวอร์ชั่นที่ใช้งานอยู่

    • For ArcGIS 9.3, 10.0, 10.1 or 10.2
    • For ArcGIS 10.3 or 10.4

    2. เมื่อดาวน์โหลดมาแล้ว ให้ unzip จากนั้นดับเบิ้ลคลิก setup.exe

    3. ติดตั้งตามรูปเลยคับ

    4. ติดตั้งเสร็จสิ้น

    ขั้นตอนการใช้งาน

    1. เปิดโปรแกรม ArcGIS หากใครยังไม่ได้ติดตั้ง สามารถเข้าไปดาวน์โหลดและติดตั้ง เวอร์ชั่นทดลองใช้งานได้ 60 วัน ที่นี่

    2. คลิกที่เมนู Customize > เลือก Customize Mode…

    3. คลิกเลือก ArcGoolge-ungdungmoi.com จะแสดงแถบเมนูเครื่องมือขึ้นมา  จากนั้นคลิกปุ่ม Close เพื่อปิดหน้าต่าง

    4. คลิก Google Map > Google Satellite

    5. จะมีชั้นข้อมูล(Layer) ขึ้นมา พร้อมกับแสดงแผนที่ Google Satellite ขึ้นมา

    6. นอกจากนี้ ยังสามารถคลิกบนแผนที่ เพื่อแสดงภาพ Google Street View ได้ด้วย

    7. นอกจากนี้ ยังสามารถดึงค่า Elevation จาก Google ได้ด้วย โดยการคลิกที่ไอคอน 

    8. กำหนด Cell size (หน่วยเป็น เมตร) (จำนวนสูงสุดของจุดแต่ละครั้งดาวน์โหลด 300m)

    9. จากนั้นคลิกปุ่ม Get Elevation > รอสักครู่ จะแสดงตารางค่าขึ้นมา

    ** อ่านเพิ่มเติมเกี่ยวกับ Elevation ที่นี่

    10. เราสามารถ export ค่า elevation ออกมาเป็น shape file ได้ โดยคลิกปุ่ม Export to Shapefile > ตั้งชื่อไฟล์ > คลิกปุ่ม Save

    11. มีชั้นข้อมูล (Layer) เพิ่มขึ้นมา โดยจะมีจุด elevation อยู่บนแผนที่ และแสดงค่าและตำแหน่งพิกัด(Lat, Long) ด้วยการเปิด attribute table ดังรู)

     

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

     

    ปกติแล้วนักพัฒนาเว็บ (web developer) จะนิยมใช้ Google Maps API ในการพัฒนา Map on Web ….. ลองหันมาเพิ่มศักยภาพในการแสดงแผนที่ในเชิงวิเคราะห์และมีความซับซ้อนของข้อมูลเชิงพื้นที่ดูไม๊ครัช ^^

    สำหรับท่านใดที่นึกหน้าตา web map application ไม่ออก ลองแวะเข้าไปเยี่ยมชมได้ที่ http://slb-gis.envi.psu.ac.th

    หรือ download shape file เพื่อลองนำไปใช้ได้ที่ http://slb-gis.envi.psu.ac.th/ เมนู ฐานข้อมูล GIS

     

    ===============================================
    สถานวิจัยสารสนเทศภูมิศาสตร์ ทรัพยากรธรรมชาติและสิ่งแวดล้อม
    ศูนย์ภูมิภาคเทคโนโลยีอวกาศและภูมิสารสนเทศ ภาคใต้
    คณะการจัดการสิ่งแวดล้อม มหาวิทยาลัยสงขลานครินทร์
    เว็บไซต์ http://www.rsgis.psu.ac.th
    แฟนเพจ https://www.facebook.com/southgist.thailand

  • ใช้ Firebug ในการตรวจสอบข้อมูล

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

    Firebug เป็นเครื่องมือสำหรับ Web Development ในการแก้ไขตรวจสอบ JavaScript / CSS / HTML เป็น Extension หรือ Add-ons สำหรับใช้ในการช่วยจัดการ Debug พวก HTML , JavaScript และ CSS การใช้งานไม่ยาก โดยทำการติดตั้ง Plugin ลงใน Web Browser เช่น Google Chrome หรือ Mozilla Firefox หลังจากนั้นก็เปิด URL หรือเว็บไซต์ที่ต้องการ และทำการคลิกที่ Icon ของ Firebug จากนั้นโปรแกรม Firebug ก็จะแสดงรายละเอียดโครงสร้าง HTML , JavaScript และ CSS ทั้งหมดใน URL นั้น ๆ เราสามารถทำการคลิกเพื่อแก้ไข CSS หรือแม้กระทั่งตรวจสอบค่าต่าง ๆ ซึ่งการใช้งานนั้นไม่ยากซับซ้อนอะไร

    ผู้เขียนได้ใช้ Firebug กับการทำงานโดยใช้การ debug ที่แท็บ Console ตัวอย่างดังนี้

    เมื่อมีการแจ้งจากผู้ใช้งานระบบว่าข้อมูลแสดงไม่ครบถ้วน จึงทำการตรวจสอบ Service ที่ดึงข้อมูลดังกล่าว โดยใช้ Firebug ในการตรวจสอบ

    6-12-2559-15-31-17

    คลิก Service ที่ต้องการจะแสดงข้อมูลดังนี้ (จะเห็นได้ว่าจากรูปด้านบนแสดงเวลาที่โหลดข้อมูลแต่ละคำสั่งด้วยค่ะ)

    6-12-2559-15-35-51

    ในส่วนอื่น ๆ ก็สามารถศึกษาได้ไม่ยากค่ะ