ก๊วนซอฟท์แวร์ </softganz> SoftGang (Gang Software)

Web &amp; Software Developer Gang.

Topic List

29 items|« First « Prev 1 2 (3/3)
โดย Little Bear on 7 ก.ย. 52 19:09

ได้ PHP Script ในการส่ง Twitter เลยเอามาลองใส่เพิ่มใน CMS ที่ผมเขียนใช้เอง

อันสืบเนื่องมาจากผมเขียน CMS ขึ้นมาใช้เอง และได้เห็น CMS ดัง ๆ หลายตัวสามารถส่งข้อความ Twit ได้ อยากได้บ้าง แต่เพิ่งได้มาจากเว็บ Scriptdd.com เลยเอามาดัดแปลงใช้กับ CMS ของตนเองให้สามารถส่งหัวข้อที่สร้างใหม่ไปไว้ใน Twitter

Twitter ของผมคือ @softganz ครับ

ผมสร้างไว้เป็น class api เขียนด้วย PHP ตามตัวอย่าง

โดย Little Bear on 25 ส.ค. 52 12:43

ปัญหาเกิดมาจาก script สำหรับตรวจสอบสถานะและแสดงชื่อเพลงที่กำลังเปิดอยู่นั้นกิน CPU time เยอะมาก และ script นั้นยังถูกกำหนดให้ refresh ทุก 30 วินาที เมื่อมีคนเปิดฟังวิทยุพร้อมกับดูสถานะเป็นจำนวนมาก จะทำให้เกิดปัญหากับ CPU load

เลยศึกษา script นั้นดูและเปลี่ยนวิธีการเพื่อไม่ให้เกิด CPU load

แนวทางการทำงานของ script เดิมที่เป็นอยู่

  1. จะดึงข้อมูลของ Shoutcast จาก host ด้วย fsocket method GET จำนวน 2 ครั้ง คือ ชื่อเพลง กับจำนวนคนฟัง โดยกำหนด timeout ไว้ที่ 6 วินาที
  2. ตัดข้อความที่ไม่ต้องการออกและแยกแยะเอาข้อความที่ต้องการออกมา
  3. แสดงผลในหน้าเว็บโดยให้ refresh ทุก ๆ 30 วินาที

ปัญหาที่เกิดขึ้นคือ

  1. การดึงข้อมูลผ่าน fsocket แต่ละครั้งใช้เวลาพอสมควรเนื่องจาก script อยู่คนละที่กับ Shoutcast server
  2. เกิด CPU load ในกระบวนการไหนไม่แน่ใจ
  3. จำนวน request ที่เยอะมากเกิดจาก จำนวนคนฟังหรือหน้าเว็บที่เปิดดูสถานะ x 2 คร้ง/นาที เช่น 150x2=300 ครั้ง/นาที = 5 ครั้ง/วินาที ทำ script ทำงานไม่ทัน

แนวทางใหม่ที่คิดคือ

แทนที่จะให้ทุกคน request แล้วต้องอ่านข้อมูลทุกครั้ง ก็ให้ script ทำงานอัตโนมัติทุก ๆ 30 วินาที ไปดึงข้อมูลจาก Shoutcast แล้วบันทึกเก็บไว้ในไฟล์ แล้วให้ทุกคนอ่านจากไฟล์นี้แทน

ดูตัวอย่าง script ได้จากด้านในนะครับ

โดย Little Bear on 21 มิ.ย. 52 11:34

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

โดย Little Bear on 30 พ.ย. 51 00:14

หลังจากที่ตัดสินใจปรับ CMS ที่เขียนอยู่ไปวิ่งบน PHP5 ก็ไม่นึกว่าจะต้องกลับมาทดสอบ CMS กับ PHP4+MySql3 อีกแล้ว แต่หลังจากที่ยังคงมีเว็บที่ดูแลอยู่อีก 3 เว็บยังคงทำงานอยู่บน PHP4 และไม่มีแนวโน้มว่าเขาจะปรับเวอร์ชั่นของ PHP ให้ (หรือเขาจะปรับให้แต่คิดเงินอีกหลายพัน) ก็เลยต้องกลับมาปรับแก้โปรแกรมใหม่ (ซึ่งจริง ๆ ก็คงไม่มากนัก แต่ต้องตรวจสอบใหม่ทั้งระบบ)

พยายามติดตั้ง Apache2+PHP4+MySql3 แต่ติดปัญหาตอนติดตั้ง PHP4

เลยติดตั้ง Lighttpd+php4+MySql5 แทน

  • ติดตั้ง Lighttpd โดย

    sudo apt-get install lighttpd lighttpd-doc

  • ติดตั้ง php4-cgi

    sudo apt-get install php4-cgi
    sudo apt-get install php4-mysql

  • เปิดใช้งาน cgi

    sudo lighty-enable-mod cgi

  • แก้ไขไฟล์ /etc/lighttpd/conf-enabled/10-cgi.conf โดยเอาเครื่องหมาย # หน้า cgi.assign ออกให้หมด

หากใน sources list ไม่มี php4-cgi ก็ให้เพิ่ม sources นี้ใน /etc/apt/sources.list ซึ่งได้มาจาก http://www.dotdeb.org/mirrors/

deb http://mirror.oeg.com.au/packages.dotdeb.org stable all
deb-src http://mirror.oeg.com.au/packages.dotdeb.org stable all

และอาจจะต้องติดตั้ง libzzip-0-12 ก่อน

ข้อมูลอ้างอิง

ปล. อาจจะมั่ว ๆ ไปนิด วันหลังจะมาเรียบเรียงใหม่อีกทีนะครับ <!-- อย่างแรกคือ ติดตั้ง apache2 ก่อน

sudo apt-get install apache2

ต่อมาติดตั้ง php4-cgi

sudo apt-get install php4-cgi

php จะถูกติดตั้งไว้ที่ ในชื่อ php-cgi -->

โดย Little Bear on 14 ก.ย. 51 12:19

เว็บไซท์ http://irrigation.rid.go.th/rid16/ranode มีปัญหามาหลายวันแล้ว วันนี้เลยลองหาทางแก้ไขดู

ปัญหา

Charactor Encoding ผิดพลาด

ใน HTML Code มี meta http-equiv="Content-Type" content="text/html; charset=utf-8" แต่ในเมนู View/Charactor Encoding ยังคงเป็น iso-8859-11 อยู่ ทำให้แสดงภาษาไทยผิดพลาด

ตรวจสอบใน phpinfo ปรากฎว่าใน HTTP Response Headers มีค่า Content-Type เป็น text/html; charset=iso-8859-11 ไม่ยอมเปลี่ยนเป็น utf-8 ตาม meta http-equiv="Content-Type"

วิธีแก้ไข

มีอยู่ 3 จุด (เท่าที่คิดได้) คือ

  1. เพิ่มคำสั่งในไฟล์ .htaccess
    AddDefaultCharset utf-8
  2. เพิ่มคำสั่งในไฟล์ index.php
    iniset('defaultcharset', 'utf-8');
  3. เพิ่มคำสั่งในไฟล์ index.php
    header('Content-Type: text/html;charset=UTF-8');
    

ที่ทำแล้วได้ผลคือเพิ่มคำสั่งข้างล่างนี้ในไฟล์ index.php

header('Content-Type: text/html;charset=UTF-8');
โดย Little Bear on 23 ก.พ. 51 09:23


Example PHP code for download file that nobody know your file url

ตัวอย่าง code สำหรับดาวน์โหลดไฟล์โดยไม่ให้ใครรู้ url ของไฟล์ที่กำลังดาวน์โหลด

โดย Little Bear on 18 ก.พ. 51 21:54

ติดตั้ง Ubuntu Desktop ให้เป็น Server (LAMP)

Install Apache

#sudo apt-get install apache2

Enable mod_rewrite

#sudo a2enmod rewrite

เปลี่ยน DocumentRoot ของ apache เป็น folder อื่น และเปิดใช้งาน clean url

#gksudo gedit /etc/apache2/sites-available/default
  • เปลี่ยนบรรทัด /var/www/ เป็น /my web folder/ จำนวน 2 ตำแหน่ง
  • แก้ค่า AllowOverride ของ /my web folder/ จาก None เป็น AllowOverride All

Install PHP

<a class="hashtag" href="/tags/sudo">#sudo</a> apt-get install php5 libapache2-mod-php5 php5-gd
<a class="hashtag" href="/tags/sudo">#sudo</a> /etc/init.d/apache2 restart

Install MySQL

<a class="hashtag" href="/tags/sudo">#sudo</a> apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql phpmyadmin

<a class="hashtag" href="/tags/gksudo">#gksudo</a> gedit /etc/php5/apache2/php.ini

add this line extension=mysql.so

#sudo /etc/init.d/apache2 restart

หากมีข้อมูลเก่าของ mysql ก็สามารถ copy มาไว้ที่ /var/lib/mysql แล้ว โดยใช้คำสั่ง

<a class="hashtag" href="/tags/sudo">#sudo</a> cp /media/disk/var/lib/mysql/* /var/lib/mysql/
<a class="hashtag" href="/tags/sudo">#sudo</a> chown -hR mysql /var/lib/mysql/*
<a class="hashtag" href="/tags/sudo">#sudo</a> chgrp -hR mysql /var/lib/mysql/*

ทางทีดีคือไปอ่านรายละเอียดจากเว็บต้นฉบับดีกว่าครับ ที่ Installing LAMP On Ubuntu For Newbies

Or from howtoforge.com

#sudo apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
<a class="hashtag" href="/tags/sudo">#sudo</a> apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

ติดตั้ง Tahoma font

ถึงยังไงผมก็ยังชอบฟอนท์ Tahoma ของ Windows อยู่ดี ก็เลยต้องหาวิธีติดตั้งฟอนท์ Tahoma บน Ubuntu

เจอบทความ Adding Windows fonts in Linux ทดลองดูแล้ว It's work เลยเอาลิงก์มาเก็บไว้ก่อน

วิธีที่ผมใช้ง่ายนิดเดียว คือ copy fonts Tahoma จาก Windows/Fonts มาใว้ใน folder ./fonts ของ home folder

แล้วก็ทำการติดตั้งฟอนต์ทดแทน เพื่อแก้ปัญหาสระเยื้องใน OOo

ติดตั้ง Extensions ของ Firefox ที่ใช้ประจำ คือ CollorZilla , Download Statusbar , DownThemAll , Firebug , FireGestures , NoScript , ShowIP , Xmarks

Install FileZilla

#sudo apt-get install filezilla

Install thunderbird

#sudo apt-get install thunderbird

Install Geany editor

#sudo apt-get install geany

Upgrade OOo.org 2.3.0

#sudo gedit /etc/apt/sources.list

add 2 lines

deb http://download.thaigrid.or.th/pub/ubuntu/contrib gutsy openoffice.org deb-src http://download.thaigrid.or.th/pub/ubuntu/contrib gutsy openoffice.org

<a class="hashtag" href="/tags/sudo">#sudo</a> apt-get update
<a class="hashtag" href="/tags/sudo">#sudo</a> apt-get install openoffice.org

NAS200

Mounting SMB Shares Network share permanently mount samba share

Add this line to file /etc/init.d/module-init-tools

#for Aircard 580
modprobe usbserial vendor=0x1199 product=0x0122
mknod /dev/ttyUSB5 c 188 0

# mount NAS200
modprobe smbfs
mkdir /media/nas200

Manual mount nas200 to /media/nas200 is

#sudo mount -t smbfs //192.168.1.2/ /media/nas200 -o username=myusername,password=mypassword,uid=1000,mask=000,iocharset=utf8



Make AirCard button on panel

  • Right click on panel -> Add to panel
  • Select Custom Application Launcher
  • Command : xterm -T "Connect to CDMA" -e pppd call cdma
โดย Little Bear on 14 ก.ค. 50 09:03

ผมเพิ่งติดตั้ง PHP5 ใหม่ พอเริ่มทำงาน ก็แปลกใจว่าทำไมเวลาที่แสดงในเว็บถึงเร็วไป 1 ชั่วโมง ลองหาทางแก้อยู่พักใหญ่ ก็ยังไม่ได้ เลยเก็บไว้ก่อน

วันนี้เพิ่งกลับมานั่งดูอีกที ปรากฎว่า

  1. ค่า timezone ใน windows ผิด เป็น Internation Date Line West ซึ่งคงเป็นค่า default แล้วผมไม่ได้เซ็ทใหม่มั๊ง

เลยแก้ไขตามนี้

  1. เปลี่ยน timezone เป็น +7 Bangkok , Hanoi , Jakata

  2. เพิ่มค่าใน php.ini คือ date.timezone=Asia/Bangkok

  3. restart Apache

เรียบร้อยครับผม.

โดย Bear on 11 ก.ค. 50 11:28

rss2array downloads a remote RSS 0.91 feed and puts most of the useful info into a PHP array. Other feed formats may work too.

I've found this document on site http://www.rssmix.com

and lastRSS.php from site http://lastrss.oslab.net/ is simple yet powerfull PHP class to parse RSS.

29 items|« First « Prev 1 2 (3/3)