PHP extension for Thai word break


ทดลองเขียน php extension เป็นการตัดคำโดยใช้ libthai ต้องขอบคุณ พี่เทพ สำหรับคำแนะนำ
ได้ผลลัพธ์ตามรูปแต่ยังไม่สมบูรณ์เพราะยังต้องใช้ iconv ของ php ช่วยก่อนจะส่งไปให้  th_brk_line() แล้วก็ยังอีกหลายเรื่องที่ต้องแก้ไข

php:

 $str="การบ้านเยอะมากสงสัยไม่เสร็จแน่เลยนอนตากลมอยู่บ้านดีกว่า";
 $new = th_brk_line(iconv('UTF-8','TIS-620',$str));
 echo iconv('TIS-620','UTF-8',$new);

output:



ref:
http://devzone.zend.com/303/extension-writing-part-i-introduction-to-php-and-zend/
http://linux.thai.net/pub/thailinux/software/libthai/doc/libthai-0.1.7/

My Debian logs

Fixed
  • #656917 - src:tpb: "debconf question should mention what this TPB is"
Patch to fixed. 
  • #661622 - src:isoqlog: "FTBFS"
  • #663563 - src:tnftp: "FTBFS: mv: cannot stat ..."
Patch ideal to fixed
  • #530166 - src:pvpgn "bashism in /bin/sh script"

Setup git server

   การติดตั้งระบบ git server อย่างง่ายใช้ซอฟต์แวร์ทั้งหมดประมาณนี้ (debian or ubuntu) + git + gitosis + ssh + apache + cgit
  • gitosis : ใช้สำหรับจัดการเรื่องสิทธิ์การเข้าใช้ repositories ผ่าน SSH
  • cgit : หน้าเว็บสำหรับ git repositories เขียนด้วยภาษาซี (cgi)
ssh-server: install
server:~$ sudo apt-get install openssh-server
gitosis: install
server:~$ sudo apt-get install git-core gitosis
server:~$ sudo adduser --system --shell /bin/sh --gecos 'git version control' --group --disabled-password --home /home/git git
gitosis: config

   การเริ่มต้นใช้งาน gitosis เราจะต้องใช้ ssh-key (public) ของเราสำหรับเป็น admin ถ้ายังไม่มีต้องทำการ ssh-keygen  (จำ passphrase ให้ดี)ขึ้นมาจากนั้นก็ import เข้าไปใน gitosis
mylaptop:~$ scp ~/.ssh/id_rsa.pub prach@server:./
server:~$ sudo -H -u git gitosis-init < /home/prach/id_rsa.pub
server:~$ sudo chmod +x /home/git/repositories/gitosis-admin.git/hooks/post-update
   หลังจากขั้นตอนนี้เราจะสามารถ config gitosis ผ่านทาง git repo ได้ดังนี้
mylaptop:~$ git clone git@server:gitosis-admin.git
    ในไดเรกทอรี gitosis-admin ให้แก้ไขไฟล์ชื่อ gitosis.conf เพื่อเพิ่มกลุ่มและกำหนดข้อมูลสำหรับ repositories (จากตัวอย่างจะสร้าง repo ชื่อ foobar , โดยมีสมาชิกคือ prach@mail.com) ดังนี้
mylaptop:~$ cd gitosis-admin; editor gitosis.conf
[gitosis]

[group gitosis-admin]
writable = gitosis-admin
members = prachpub@gmail.com

[group developer]
writable = foobar
members = prachpub@gmail.com

mylaptop:~$ git commit -a -m 'add foobar repo'
mylaptop:~$ git push
   เมื่อ config gitosis เรียบร้อยแล้วเราก็จะสร้าง foobar repo ขึ้นมาดังนี้
mylaptop:~$ mkdir foobar; cd foobar; git init
mylaptop:~$ git remote add origin git@server:foobar.git
mylaptop:~$ echo 'hello' > x.txt
mylaptop:~$ git add x.txt
mylaptop:~$ git commit -a -m 'hello'
mylaptop:~$ git push origin master
   สำหรับ foobar สามารถ clone ผ่านทาง ssh ได้ดังนี้
mylaptop:~$ cd /tmp;git clone git@server:foobar.git

apache2: install
 server:~$ sudo apt-get install apache2
cgit: install
server:~$ git clone git://hjemli.net/pub/git/cgi
server:~$ cd cgit;git submodule init;git submodule update
server:~$ sudo apt-get  install libcurl4-openssl-dev build-essential
server:~$ sudo make
server:~$ sudo mkdir -p /var/www/cgit/{cgi-bin,css}
server:~$ sudo cp cgit /var/www/cgit/cgi-bin/cgit.cgi
server:~$ sudo cp {cgit.css,cgit.png} /var/www/cgit/css/
cgit: config

   ตัวอย่างการ config cgit
server:~$ sudo vim /etc/cgitrc
logo=/cgit-css/cgit.png
css=/cgit-css/cgit.css
enable-index-links=1
virtual-root=/git/

repo.url=foobar
repo.desc=Foobar repositories
repo.path=/home/git/repositories/foobar.git

   เพิ่ม config ของ apache ให้รัน cgit.cgi
server:~$ sudo vim /etc/apache2/conf.d/cgit.conf
 Alias /git "/var/www/cgit/cgi-bin"


      Options FollowSymLinks +ExecCGI
      AddHandler cgi-script .cgi
      DirectoryIndex cgit.cgi

      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^.* /git/cgit.cgi/$0 [L,PT]


Alias /cgit-css "/var/www/cgit/css"

      AllowOverride None
      Options None
      Order allow,deny
      Allow from all
  จาก config ไฟล์ของ apache ต้องใช้ mod rewrite ด้วย
server:~$ sudo a2enmod rewrite
server:~$ sudo /etc/init.d/apache2 restart

   เปิด browser แล้วลองเรียกไปที่ http://server/git


Ref:

My GPG key transition

 
http://linux.sut.ac.th/prach/gpg-transition-prach.txt.asc  <- Signed with both keys
http://debianclub.org/node/539 <- Key-Singing