วันพุธที่ 26 พฤศจิกายน พ.ศ. 2557

Compile tomcat native lib for CentOS 6

Standard
      จดไว้กันลืมหน่อย ตอนแรกผมต้อง config tomat6 ให้ใช้งานบน https แล้วตอนลงมันไม่มี lib libtcnative-1.so มาให้เลยต้อง compile เอง ซึ่งวิธีก็ง่ายๆ ต้องลง pcakage ต่างๆ ตามนี้ก่อน
yum -y install apr-devel openssl-devel java-1.7.0-openjdk-devel
Download tomcat-native จาก http://tomcat.apache.org/download-native.cgi 
จะได้ไฟล์ tomcat-native-1.1.32-src.tar.gz จากนั้น unzip ด้วยคำสั่ง
tar -vxf tomcat-native-1.1.32-src.tar.gz
  จากนั้นเข้าไปที่ folder native
cd tomcat-native-1.1.32-src/jni/native

 บน CentOS 6 java home จะอยู่ที่ /usr/lib/jvm/java-1.7.0 จากนั้นใช้ configure  เพื่อสร้าง Makefile
./configure --with-apr=/usr/bin/apr-1-config --with-ssl=yes --with-java-home=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71.x86_64  
โดยต้องระบบ path ของ APR, java home และให้ใช้งาน SSL  ใช้คำสั่ง make เพื่อ compile lib
make && make install

ซึ่ง libtcnative-1.so จะอยู่ใน  /usr/local/apr/lib

วันจันทร์ที่ 20 ตุลาคม พ.ศ. 2557

OSX : ssh to remote host without password required and auto mount when login

Standard
     หลังจากที่ทำ network drive ผ่านทาง ssh ด้วย macfuse และ sshfs  มีความต้องการให้ mount drive อัตโนมัติหลังจากที่ login ซึ่งจะต้องทำ 2 อย่างคือ

  1. การสร้าง authorized keys จาก OSX แล้วไปเก็บใน remote server เพื่อเวลาที่จะ connect ไปแล้วไม่ต้องการให้ remote server ถามรหัสผ่าน
  2. script สำหรับตรวจสอบว่า OSX สามารถเชื่อมต่อกับ remote server ได้ และ mount drive


OSX mount network drive ด้วย sshfs

Standard
      ปกติการใช้งาน OS ตระกูล UNIX หรือ Linux จะมี ssh server ติดตั้งมาให้อยู่แล้วและการใช้งานดังนั้นถ้าหากต่อ network drive ด้วย ssh น่าจะสะดวกกว่าโดยที่ไม่ต้องลง samba เพิ่มเติม
ติดตั้ง application สองตัวคือ osxfuse และ sshfs จากเว็ป osxfuse.github.io  เมื่อติดตั้งเรียบร้อยลองเรียกโปรแกรม sshfs จาก terminal
$sshfs -V

วันพฤหัสบดีที่ 16 ตุลาคม พ.ศ. 2557

แก้ปัญหา bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8)

Standard




     ปกติชอบใช้ Terminal ของ OSX ssh เข้า remote host แล้ว Default ของ Character encoding ของ Terminal เป็น UTF-8 ซึ้ง bash นั้นไม่รู้จักวิธีการแก้ไขง่ายนิดเดียว
vi /etc/environment

วันพุธที่ 15 ตุลาคม พ.ศ. 2557

Arduino : CPP and Assembly file

Standard
          Arduino ปกติตอนกด verify ของ arduino ตัว Arduino IDE จะแปลง code ที่เราเขียนขึ้นเป็นไฟล์ในรูปแบบ C++ แล้วมันอยู่ไหนล่ะ

วันพุธที่ 8 ตุลาคม พ.ศ. 2557

QT Creator : ERROR Could not resolve SDK path for 'macosx10.8'

Standard
     
     หลังจากการ upgrade OSX จาก 10.8 เป็น 10.9 ทำให้ QT ไม่เจอชุด SDK วิธีการแก้ไขคือ 
vi QT_ROOT_PATH/QT_VERSION/clang_64/mkspecs/qdevice.pri
แล้วแก้ไข บรรทัด
!host_build:QMAKE_MAC_SDK = macosx10.8
เป็น
!host_build:QMAKE_MAC_SDK = macosx10.9 
 

วันจันทร์ที่ 16 มิถุนายน พ.ศ. 2557

Arduino : ขับ Step Motor ด้วย Module THB7128

Standard
     ชุดขับ Step Motor ในปัจจุบันมีให้เลือกมายมายหลายแบบ แต่หลักๆ แล้วจะมี 2 แบบด้วยกันคือการขับด้วยชุดขับพวกวงจร H-Bridge เช่น L298 และชุดขับสำหรับ Step Motor โดยเฉพาะ เช่น THB7128 ซึ่งข้อแตกต่างของชุดขับ 2 ชนิดนี้คือ ราคา และ ความยากง่ายในการควบคุม ซึ่งแบบ H-Bridge นั้นจะมีราคาที่ค่อนข้างถูกว่า ชุดขับ Step motor โดยตรงแต่ก็มีความซับซ้อนกว่าในส่วนการควบคุม ซึงในบทความนี้ผมจะมาแนะนำการใช้งานชุดขับ Step Motor THB7128


วันพฤหัสบดีที่ 12 มิถุนายน พ.ศ. 2557

วันพฤหัสบดีที่ 5 มิถุนายน พ.ศ. 2557

อยู่ๆ ก็ไม่สามารถ Start service vboxweb-service

Standard



     Php-virtualbox อยู่ดีๆ ก็ไม่สามารถใช้งานได้ ลองใช้คำสั่ง Start ก็ Failed ลองไล่ไปไล่มา เจอว่า service vboxdrv ไม่ได้ start พอดู status ของ vboxdrv ด้วยคำสั่ง
$/etc/init.d/vboxdrv status

วันอังคารที่ 27 พฤษภาคม พ.ศ. 2557

Arduino : การเข้าถึงข้อมูลระดับบิตด้วย struct union

Standard
      พอดีมีโอกาสได้เขียน Arduino (รวมถึงภาษา C โดยทั่วไป) แล้วจะต้องจัดการข้อมูลในระดับบิต ซึ่งปกติก็ใช้การ shift bit แล้ว AND กับ 1 เพื่อดูว่าบิตในตำแหน่งที่สนใจเป็นค่าอะไร
(data >> BIT_INDEX) & 1 == ?

วันจันทร์ที่ 26 พฤษภาคม พ.ศ. 2557

Solaris : การทำ auto run script ตอนเครื่อง startup

Standard
     วิธีการทำ autorun script สำหรับตอนที่เครื่อง startup

  1. สร้างไฟล์ไว้ที่ /etc/init.d/FILE_NAME , chmod 755  แล้วใส่ script ตามนี้ 
  2. case "$1" in
        start)
            /usr/local/bin/EXECUTE_SCRIPT
            ;;
        stop)
            kill -9 /usr/local/bin/EXECUTE_SCRIPT.pid
            ;;
    esac

Solaris : การทำ Active - Standby บน Network Interface Card ด้วย IPMP

Standard
     การทำ Active - Standby ที่ขา Interface ของ Solaris 10 เพื่อกันกรณีที่ Link มีปัญหาหรือขาดแล้ว Server ไม่สามารถทำงานต่อได้โดยใช้ IP เดิม

   

วันศุกร์ที่ 16 พฤษภาคม พ.ศ. 2557

Atom : ปัญหาการ install package term แล้ว '/usr/include/util.h' file not found

Standard
     หลังจากใช้ Atom มาซักพักรู้สึกว่าสะดวกดี เลยอยากลองหา Package เพื่อช่วยอำนวยความสะดวกมาใช้ ก็เจอตัวนึงชื่อ term ซึ่งตัวนี้คือการใช้งาน Terminal ผ่านทาง Atom การวิธีใช้งานทำได้โดยไปที่เมนู Packages > term ซึ่งปัจจุบัน terminal สามารถจะอยู่ข้างขวา ซึ่งวิธิติดตั้งก็แต่ serach ใน package manager ชื่อ 'term' หรือใช้คำสั่ง apm install term ใน command line



วันอังคารที่ 13 พฤษภาคม พ.ศ. 2557

Build Atom Text Editor on Ubuntu 14.04

Standard
     พอดีได้ลองใช้งานโปรแกรม Atom ในแมคแล้ว ติดใจก็เลยจะไปหาเวอร์ชั่น Ubuntu มาลองใช้กับเครื่องที่บ้าน ไปดูในเว็ปมีแค่ ตัวติดตั้งเฉพาะในแมค ก็เลยต้องมา build เอง

วันอาทิตย์ที่ 11 พฤษภาคม พ.ศ. 2557

Arduino : Pass by Reference struct pointer แล้ว compiler error

Standard
     พอดีมีเหตุให้ตองใช้ struct ใน Arduino และก็ชอบเขียนแบบ pass by reference พอ คอมไฟล์ อ้าว error !!! งง เลยสิ หาตั้งนาน ปรากฏว่า Arduino IDE มันไม่ฉลาด (Version ที่ใช้ 1.0.5) ลองดู code

วันจันทร์ที่ 21 เมษายน พ.ศ. 2557

Update openssl on CentOS 6 fix bug Heartbleed

Standard
     จาก bug Heartbleed อันโด่งดัง เลยเกินความรนรานจาก https ที่เปิดใช้ไว้บน server ที่เป็น public ip เลยต้องมาน่าอัพเดตกัน แต่ทีนี้เจอปัญหาว่า repo ที่ใช้อยู่ version ใหม่สุดยังเป็นเวอร์ชั่น 1.0.1e ซึ่ง bug Heartbleed ที่พบมีตั้งแต่เวอร์ชั่น เวอร์ชัน 1.0.1 ถึง 1.0.1f ถึงตอนนี้เลยต้อง download source  code มา compile เอง ซึ่งก็ไม่มีอะไรซับซ้อน

  1. ตรวจสอบ version ของ openssl  (จากรูป version 1.0.1e ตั้งเป็น Feb 2013 เก่ามาก)
  2. #openssl version

วันพฤหัสบดีที่ 10 เมษายน พ.ศ. 2557

การแก้ปัญหา ssh client บน OSX หลุดหลังจากปล่อยทิ้งไว้

Standard

         เมื่อสัปดาห์ก่อนผมพบปัญหาการ remote ด้วย ssh ไปที่ remote server แล้ว connection หลุดบ่อยๆ ถ้าบ่อยทิ้งไว้โดยไม่ทำอะไร

วันอังคารที่ 18 มีนาคม พ.ศ. 2557

My Shutterstock gallery Landscape, Food, Flower, Photo

Standard


          My Shutterstock gallery Landscape, Food, Flower, Photo


My latest images for sale at Shutterstock:









My most popular images for sale at Shutterstock:







How Laser Rangefinder work

Standard

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



     จากสูตร D = (T x C) ÷ 2
เมื่อ D คือระยะทาง, T คือเวลาที่ลำแสงเดินทางออกไปจากเครื่องมือวัด แล้วสะท้อนกลับมายังเครื่องมือวัด, C คือความเร็วแสงในอากาศ (≈ 3 x 10^8 m/s) ซึ่งความเร็วของแสงในอากาศจะเปลี่ยนแปลงเมื่ออุณหภูมิเปลี่ยนแปลง

วันศุกร์ที่ 7 มีนาคม พ.ศ. 2557

MySQL Replication Master-Slave base on CentOS

Standard
     การสร้าง Replication ของ mysql นั้นสามารถทำได้ ง่ายเพียงไม่กี่คำสั่ง ก็สามารถทำ Replication ได้
โดยตัวอย่างจะใช้เครื่อง 2 เครื่อง คือ เครื่อง master และ slave

  1. ขั้นตอนแรก Install Mysql ลงทั้งเครื่อง master และ slave
  2. Install Mysql
  3. เครื่อง master แก้ไข file /etc/my.cnf สำหรับส่วนของ master เพิ่มใน [mysqld]
  4. server-id=1 innodb_flush_log_at_trx_commit=1 sync_binlog=1 log-bin=mysql-log-bin
  5. login mysql
  6. $mysql -u root -p

วันจันทร์ที่ 3 มีนาคม พ.ศ. 2557

Install freeRADIUS with MySQL Database on CensOS 6

Standard



  1. Install service and lib
  2. $yum install -y mysql mysql-server  httpd php php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml freeradius freeradius-utils freeradius-mysql mod_ssl openssl 
    *** ถ้าไม่มี Package php-mcrypt ให้ อ่านที่นี่ install php-mcrypt centos 6

วันศุกร์ที่ 28 กุมภาพันธ์ พ.ศ. 2557

phpvirtualbox for CentOS

Standard

          phpvirtualbox คืออะไร ? มันก็คือการใช้งาน virtualbox ผ่าน web browser โดยปกติถ้าเราใช้งาน virtualbox ที่หน้าเครื่องแล้วเรามี virtual machine หลายๆ ตัว ก็จะมี windows  ของ  virtual machine เยอะแยะเต็มหน้าจอไปหมด แล้วถ้ารวมพวกนั้นไว้ใน web browser ล่ะ? บ้างครั้งเครื่องที่เป็น host os ก็ตั้งอยู่ในที่อันหนาวเหน็บ (ห้อง server) เราก็ไม่ต้องไปทนหนาวกันอีกต่อไป ซึ่งวิธีการลงก็ไม่ได้ยากวุ่นวายเท่าไหร่ หลักๆ ก็แค่ copy php