2012年12月31日 星期一

影片剪輯軟體

OpenShot
Linux
PiTiVi
Linux
LiVES
Linux / OSX
cinefx
Kdenlive
Linux / OSX
Avidemux
Jahshaka
Open Movie Editor
Kino




References :
請問支援linux影片剪輯有哪些軟體?

2012年12月26日 星期三

Apache Multi-Processing Module (MPM)

prefork :
non-threaded
pre-forking
耗費較多記憶體
速度較 worker 快
一般使用 prefork,他可以使用不支持 Thread-Safe 的模組








worker :
multi-threaded
multi-process
耗費較少記憶體
適用於多 HTTP request
worker mpm一般不会跟mod php搭配, worker mpm一般都是跟apache的mod fcgid 搭配,然后php要安装php-cgi 来跑php的.



# apachectl -l




Reference :
Apache的prefork模式和worker模式 - 平凡的世界
Apache mpm 模組的 worker 和 prefork 差別為何 ? 

2012年12月25日 星期二

apt-cacher 安裝

atp-cacher 只會緩存客戶安裝過的套件包, 而不是所有套件包,緩存資料夾在 /var/cache/apt-cacher/packages

Server :
# apt-get install apt-cacher
# vi /etc/apt-cacher/apt-cacher.conf
allowed_hosts = *

or

allowed_hosts = 192.168.1.0/24
# /etc/init.d/apt-cacher restart


Client :

http://your-server:3142/

# vi /etc/apt/apt.conf
Acquire::http::proxy "http://your-server:3142";

Jenkins 安裝

$ apt-get install openjdk-6-jre
$ mkdir -p /home/jenkins
$ cd /home/jenkins
$ wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war
$ java -jar jenkins.war

啟動參數
Starting and Accessing Jenkins - Jenkins - Jenkins Wiki

Dashboard
http://localhost:8080/

管理外掛程式
http://localhost:8080/pluginManager/





新增一個 Job

git ssh 位址
ssh://git@remote.repository:22/home/git/my_project.git

 
使用 git 取得 source code 時,要將運行 Jenkins 的使用者的 ssh public key 放入 repository  機器的登入用戶 (~/.ssh/authorized_keys)
$ cd ~/.ssh
$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub  # public key

2012年12月18日 星期二

Kurogo admin page authenticate 管理後台驗證

http://localhost/kurogo/www/admin/ -> Site Configuration -> Authentication


1. Authentication
  • 啟用驗證機制
  • 設定 Session 儲存方式


2.  Authentication Authorities (設定驗證方式)
  • 選擇驗證方式
  • 選擇登入形態 (從本地網頁登入或透過外部驗證(ex : Facebook))
  • 設定帳號密碼與群組檔案 (like Linux /etc/passwd、/etc/group)

User file 與 Group file 設定 :
  • 如圖設定 DATA_DIR 部分為資料夾路徑;passwd 為檔案名稱
    ( /var/www/Kurogo-Mobile-Web/site/YOUR_SITE/data/passwd)
  • User file 格式 (Kurogo 裡有一個範例 passwd 檔,帳號密碼為 test / test):
    USERID:MD5_PASSWD:EMAIL:USERNAME
    test:098f6bcd4621d373cade4e832627b4f6:test@kurogo.org:Test User


3. Access Control (設定 ACL 表)
  • Type : 設定為 Admin -> 登入後可進入管理,若設定為 Access 則為是否可訪問頁面
  • Action : 允許或拒絕
  • Scope : 設定驗證檢查範圍,為登入之使用者、使用者群組、或是所有人 (Everyone)
  • Authority : 第二步設定的驗證方式
  • Value : 設定使用者帳號或群組名稱
允許名稱為 test 之使用者進入管理頁面





* Unable to load password file /var/www/Kurogo-Mobile-Web/site/YOUR_SITE/passwd
請參照如上 "User file 與 Group file 設定"




Reference :
Access Control and Authorization — Kurogo 1.5 documentation
How to enable AUTHENTICATION for own created module like twitter - Google 網上論壇

麻油雞

雞肉 900g
麻油 50g
米酒 一瓶

熱水  800cc



備料:
雞肉先洗淨備用
煮一鍋熱水



1. 麻油與薑先炒香
2. 加入雞肉和一些米酒炒至半熟以上
3. 加入水與米酒煮 20 分鐘後加鹽調味







2012年12月17日 星期一

Linux LVM

# pvscan
# vgchange -ay VG
# lvdisplay /dev/VG
# mount /dev/VG/LV /mnt

2012年12月16日 星期日

git submodule

$ cd my_project/

// 新增 submodule
$ git submodule add git@github.com:xxxx/module_1.git lib/module_1  // $ git submodule REPOSITORY PATH
$ git status  // 會多一個檔案及模組的資料夾
$ git add .gitmodules lib/module_1
$ git add .gitmodules lib/module_1/ 在最後不要加了 /,會 commit 到模組資料夾裡的檔案
$ git commit -a -m "Add submodule into version control"
$ git push

// 將模組資訊加入 .git/config
$ git submodule init

Linux Python 讀取健保卡 程式碼

$ vi healthcard.py
from smartcard.System import readers                                                                                        

# define the APDUs used in this script
SelectAPDU = [ 0x00, 0xA4, 0x04, 0x00, 0x10, 0xD1, 0x58, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00 ]

ReadProfileAPDU = [ 0x00, 0xca, 0x11, 0x00, 0x02, 0x00, 0x00 ]

# get all the available readers
r = readers()
print "Available readers:", r

reader = r[0]
print "Using:", reader

connection = reader.createConnection()
connection.connect()

data, sw1, sw2 = connection.transmit(SelectAPDU)
print "Select Applet: %02X %02X" % (sw1, sw2)

data, sw1, sw2 = connection.transmit(ReadProfileAPDU)
#print data
print "Command: %02X %02X" % (sw1, sw2)
print  'Card Number : %s' % ''.join(chr(i) for i in data[0:12])
print  'Name : %s' % ''.join(chr(i) for i in data[12:18])
print  'ID Number : %s' % ''.join(chr(i) for i in data[32:42])
print  'Birthday : %s' % ''.join(chr(i) for i in data[43:49])
print  'Sex : %s' % ''.join(chr(i) for i in data[49:50])
print  'Card Date : %s' % ''.join(chr(i) for i in data[51:57])

$ python healthcard.py



Reference :
Ludovic Rousseau blog: PCSC sample in Python

2012年12月13日 星期四

Kurogo 階層選單模組 nestedlinks module

$ git clone git@bitbucket.org:a0726h77/nestedlinks.git
 



Kurogo 管理後台

http://localhost/kurogo/www/admin


* 會認 User Agent,不能用行動裝置訪問

Kurogo 手動指定裝置瀏覽位址 Pagetype url

平板
http://localhost/kurogo/www/device/tablet/home/


手持
http://localhost/kurogo/www/device/compliant/home/
http://localhost/kurogo/www/device/compliant-bbplus/home/
http://localhost/kurogo/www/device/touch/home/


簡易
http://localhost/kurogo/www/device/basic/home/




Reference :

Style and Themes — Kurogo 1.5 documentation

2012年12月11日 星期二

php tidy DOMDocument parse html 範例

HTML :

   
        ....1....
   
   
        ....2....
   
   
        ....3....
   
   
        ....4....
   





PHP + Tidy + DOMDocument (有處理中文亂碼 (UTF-8)):
            $html = file_get_contents($url);

            $tidy = new tidy();
            $conf = array(
                'output-xhtml'=>true,
                'drop-empty-paras'=>FALSE,
                'join-classes'=>TRUE,
                'show-body-only'=>TRUE,
                'output-encoding' => 'raw',
            );
            $html = $tidy->repairString($html,$conf,'utf8');

            $dom = new DOMDocument;
            @$dom->loadHTML('' . $html);

            foreach($dom->getElementsByTagName('table') as $table)
            {
                if ( ! $table->hasAttribute('class'))
                {
                    continue;
                }

                $class = explode(' ', $table->getAttribute('class'));

                if ( in_array('baseTB', $class) || in_array('listTB', $class) )
                {
                    $rows = $table->getElementsByTagName("tr");

                    foreach ($rows as $row) {
                        foreach($row->getElementsByTagName('a') as $a)
                        {
                            if($a->nodeValue)
                            {
                                $items[] = array(
                                    'name' => $a->nodeValue,
                                    'href' => $a->getAttribute('href')
                                );
                            }
                        }
                    }
                    //print_r($items);
                    //echo "

";
                }
            }

            return $items;




Reference :
PHP+Tidy-完美的XHTML纠错+过滤_php技巧_脚本之家
DOMDocument->loadHTML()处理中文的一点问题 - Fwolf's Blog

2012年12月9日 星期日

2012年12月5日 星期三

KMPlayer / PowerDVD DVD 播放問題

KMPlayer:
無法新建圖表生成器

PowerDVD:
Error code: 00002711 Unable to load file --*.IMP


1. 先反註冊 quartz.dll 函式庫
Start -> Run -> regsvr32 /u quartz.dll
2. 接著重新註冊 quartz.dll 函式庫
Start -> Run -> regsvr32 quartz.dll
* 如果 regsvr32 /u quartz.dll 時提示
LoadLibrary("quartz.dll") 失敗 - 找不到指定的模組
則下載 quartz.dll 後放入 C:\WINDOWS\system32 資料夾再重新執行步驟





Reference :
knityster: KMP重装后出现"无法创建图表生成器"的解决办法