• 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 ขั้นตอนการติดตั้ง ที่ 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…

    >> Read More <<

  • 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 *** ขั้นตอนการติดตั้งมีดังนี้ Deploy haproxy (ตั้งชื่อ haproxy-mysql) และ MySQL (ตั้งชื่อ mysql-master1 และ…

    >> Read More <<

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


    ในการอ่านหรือดูรายงานหนึ่ง ๆ นั้น แม้ข้อมูลจะมีการจัดเป็นข้อ ๆ แล้วหรือมีการจัดกลุ่มข้อความนั้นแล้วก็ตาม แต่เมื่อข้อมูลมีจำนวนมาก ก็อาจทำให้เราวิงเวียน ตาลายได้ ดังนั้นในฐานะผู้จัดทำรายงานคนหนึ่ง ก็พยายามหาทางให้ผู้ใช้สามารถอ่านรายงานได้ง่าย โดยการใส่สีข้อความสลับบรรทัดนั่นเอง    โดยปกตินั้น การใส่สีสลับบรรทัดสามารถทำได้โดยวิธีง่าย ๆ นั้นคือ if row mod 2 = 0 then   //ตรวจสอบว่าแถวนั้นเป็นแถวคู่หรือไม่    color(240,240,240)    //ถ้าใช่แสดงสี else crNocolor             //ถ้าไม่ใช่ไม่ต้องแสดงสี ซึ่งจะทำให้ได้ผลลัพธ์ดังรูป จากรูปจะเห็นได้ว่า ข้อมูลมีการสลับสีแล้ว แต่เนื่องจากข้อมูลถูก Group จะพบว่า ข้อมูลที่มี 1 record ก็มีการสลับสีด้วย ซึ่งผู้เขียนไม่ต้องการให้มีการสลับสีกรณีที่ข้อมูลมีเพียง 1 ดังนั้นผู้เขียนจึงปรับวิธีการเขียนใหม่ดังนี้ เพิ่ม Formula Fields…

    >> Read More <<

  • 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 เท่านั้น ในบทความนี้ จะกล่าวถึงวิธีการ…

    >> Read More <<

  • 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…

    >> Read More <<

  • WatIn Framework


    WatIn Framework เป็น Framework ที่ใช้ในการทดสอบการทำงานของเว็บ ที่พัฒนาด้วย .Net ซึ่งสามารถทำงานได้อย่างอัตโนมัติ โดยที่ไม่ต้องทำการทดสอบซ้ำ ๆ เพียงแต่ถ้าต้องการข้อมูล Input ที่แตกต่างไป สามารถแก้ไข Source Code ได้ การติดตั้ง WatIn Framework คลิก Tool จากนั้นคลิก Extensions and Updates… ที่ NuGet Package Manager คลิก Download เมื่อ Download เสร็จแล้ว ทำการ Install โดยกดปุ่ม Install เมื่อ Install เสร็จแล้ว ไปที่เมนู จากนั้นค้นหา “WatIn” กดปุ่ม “Install” จากตัวอย่างมีการ Install เข้าไปแล้ว เมื่อ Install เสร็จจะแสดงดังรูปด้านบน จากนั้นค้นหา “NUnit”…

    >> Read More <<

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


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

    >> Read 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. ดาวน์โหลดไฟล์…

    >> Read More <<

  • ใช้ 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…

    >> Read More <<