2013年9月21日 星期六

php compile error: mcrytp.h not found

使用 phpbrew buld php 時,發生錯誤:
$ phpbrew install php-5.3.27 +default
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
Error

原因:
libmcrypt package 不會帶有 mcrypt.h 檔案

解決方法如下:
$ # 安裝 libmcrypt-dev
$ sudo apt-get intall libmcrypt-dev

phpbrew 補充:
php 函數 is_subclass_of 只接受兩個參數
需將 php 更新至 5.3.9 版本以上
ps. php-5.3.9 Added allow_string parameter

2012年9月13日 星期四

get file basename


Two ways for getting base name frome file path.

/* way 1by Rifur */
static const char * _get_file_baseName(const char *str, int len)
{
        for( ; str[len-1] != '/' && len > 0; --len );
        return &str[len];
}                                                                                                                                 

/* way 2 */
static const char * gnu_basename(const char *path)
{
        const char *base = strrchr(path, '/');
        return base ? base+1 : path;
}



htaccess don't work no apache2, CustomLog don't dork



今天寫網頁時,發生了兩個問題:
1. .htaccess 沒有正常工作
2. 自訂 CustomLog ,不會正常輸出 log 內容 ( 有產生 log 檔案,但檔案內容一直都是空的 )


第一個問題,原因是:Using apache2 on a Ubuntu, the .htaccess does not work !
reference : https://www.dokuwiki.org/security

解決方法如下:

In the /etc/apache2/sites-available you need to modify the file default (or the file default-ssl if you use https rather than http)

Default for AllowOverride in the <Directory /var/www/> is none, should be all


第二個問題的解決方法:
別在 apache.conf 寫 CustomLog 腳本,要寫在這個檔案
 /etc/apache2/sites-available/default 才會動

2012年7月24日 星期二

安裝及設定 LAMP ( Linux + Apache + MySQL + PHP )



[前言]
LAMP 是縮寫,通常分別指以下自由軟體:

Linux:作業系統
Apache:網頁伺服器
MySQL:資料庫管理系統 / 資料庫伺服器
PHP:腳本語言

Michael Kunze 在一篇為德國電腦雜誌c't(1998,第12期,230頁)而寫的文章中使用了縮略語LAMP。這篇文章意在展示一系列的自由軟體成為了商業包的替換物。由於IT世界眾所周知的對縮寫的愛好,Kunze提出LAMP這一容易被市場接受的術語來普及自由軟體的使用。[1]

[安裝設定]
安裝以下套件
apache2
mysql-server
php5
php5-mysql
php5-gd
phpmyadmin

安裝指令,以 debian 系統為例
$ sudo apt-get install apache2 mysql-server php5 php5-mysql php5-gd phpmyadmin

注意
安裝過程中,會詢問 mysql root 密碼,請設定好密碼。

[後記]
筆者先把安裝的套件寫出來,稍候補上設定過程。














[引註資料]
[1] http://zh.wikipedia.org/wiki/LAMP

2012年7月14日 星期六

Git + Dropbox,在 Dropbox 上建立 Git Server DB


[前言]
Git 的強大版本控制、Dropbox 免費雲檔案儲存服務,是無人不曉的!

本篇文章將教您如何在 Dropbox 上建立 Git Server DB!

如果對於 Git 、 Doprpbox 想多了解如何使用,可以參考下列文章:

關於 Git 使用方式,可以看看這份簡報
http://www.slideshare.net/littlebtc/git-5528339
Littlebtc ( Hsiao-Ting Yu )

Dropbox 使用方式可以參考這篇文章
http://blog.xuite.net/yh96301/blog/36409663-Dropbox%E5%85%8D%E8%B2%BB%E7%A9%BA%E9%96%93


[範例教學]
範例環境:Linux
假設 Dropbox 放在你的家目錄底下:~/Dropbox

你可以如下方式設定好 git + dropbox !!

# 安裝必要套件
$ sudo apt-get install git git-core

# 在 Dropbox 底下建立 git/test 目錄
$ mkdir -p ~/Dropbox/git/test

# 將 git/test 初始化
$ cd ~/Dropbox/git/test
$ git init-db --bare

# 建立 ~/git ,準備 clone test
$ mkdir -p ~/git/
$ cd ~/git

# clone test
$ git clone ~/Dropbox/git/test
$ cd test

# 第一次使用,建立一個檔案並 push
$ touch README
$ git add README
$ git commit -m "Init"
$ git push origin master:refs/heads/master

# 大功告成 !
# 以後就可以使用如下指令 push 啦!
$ git push



[後記]
在 Dropbox 上建立好專屬的 git server 後,
如果開發專案/專題,可將 Dropbox/git/xxx 專案目錄分享給其他開發者,
方便協同開發!
Happy git, Happy coding!

2012年7月13日 星期五

編譯 新酷音 libchewing

跟了 TSoC 計劃

題目是,將 新酷音改良、支援多動態詞庫,並探討多詞庫與辨識率之關係。

編譯時使用 Ubuntu / Kubuntu 11.x 遇到 libncursesw5-dev 都會錯誤
原來是 Ubuntu / Kubuntu沒把 ncursesw 包好...

改用 12.x 版就沒問題了!



1. 先抓 libchewing Repository
# https://github.com/chewing/libchewing
$ git clone https://github.com/chewing/libchewing.git

2. 安裝如下套件
gcc
build-essential
automake               # for autoconf
libtool                      # for autoconf
check                       # for check
libncursesw5-dev  # for ncursesw
libgconf2-dev         # for autoconf & m4

3. 安裝完後,到 libchewing 資料夾,下指令編譯
$ ./autogen.sh
$ ./configure
$ make

4. 編譯完成! 來跑測試程式
$ cd test
$ make install

5. 測試程式使用方式,可以看 ./test/README



我們正在修改的程式,放在這個 github 位置
# https://github.com/seachaos/libchewing

目前支援「載入多靜態、動態詞庫」功能,
正在實作「分享 ( 匯出 ) 詞庫」及「加入多個詞庫,對原本的辨識率是否有幫助」的功能!

如有任何想法,歡迎透過下列方式指教
https://groups.google.com/group/chewing-devel
irc.freenode.net#im-dev