Jay's 圖形化防火牆設定(iptables Firewall)

Jay's Iptables Firewall 看起來好像蠻好用的, 只要選一選就搞定.

先記下來, 有空再試用看看, 有包成 rpm, deb, tar.gz 的版本可用.

閱讀全文〈Jay's 圖形化防火牆設定(iptables Firewall)〉

PHP 測量程式執行時間

程式在執行時, 遇到莫名奇妙執行很久, 但又不知道是什麼問題的時後, 就用此 function 來將每個執行的時間印出來, 將可輕易找出問題所在.

<?php
function getMicrotime()
{
    list($usec, $sec) = explode(' ', microtime());
    return ((double)$usec + (double)$sec);
}?>

使用方法:(以抓 mysql_connect() 時間為例)

<?php
$start = getMicrotime();
mysql_connect('localhost', 'id', 'password');
$end = getMicrotime();
$time = $end - $start;
echo "mysql_connect 執行時間: $time";
?>

註: PHP5 以後, 可以採用下述作法:

<?php
$time_start = microtime(true);

// Sleep for a while
usleep(100);

$time_end = microtime(true);
$time = $time_end - $time_start;
?>

<?php
$time_start = microtime(true);

// Sleep for a while
usleep(100);

$time = microtime(true) - $time_start;
?>

CVS 加 TAG 標籤

要 Release 一個新版本的時後, 可以順便做個 tag, 將此 release 的各個檔案版本資訊都記錄下來, 之後要取得也可以方便取的.

CVS 要加個 tag 的方法如下:

加 tag: cvs tag tag_name
EX: cvs tag public-release-2-0-20060105-stable
取出 tag 的版本: cvs co -r tag_name output_path
EX: cvs co -r public-release-2-0-20060105-stable work/plog/

閱讀全文〈CVS 加 TAG 標籤〉

防止表單送出兩次又能禁止留空

寫網頁的程式最怕的就是 Double Submit(同一時間重覆點擊), 只要簡單加上一段就可以解決這種問題. (於 input 點下去的時後, 馬上將此 button disable 掉)

加此行: onclick="this.disabled=true"

Ex:
<input type="button" name="Submit" value="Submit" onclick="this.disabled=true" />

閱讀全文〈防止表單送出兩次又能禁止留空〉

關閉光碟自動啟動功能

每次放入光碟時, 電腦會自動執行開啟光碟功能, 都會頓一下, 有時後還停蠻久的, 以下方法可以把 自動執行開啟光碟 的功能關閉.

  1. 執行 → 輸入 gpedit.msc
  2. 出現 "群組原則" 視窗, 依序選左邊 電腦設定 → 系統管理範本 → 系統
  3. 找到右邊視窗的 → 關閉自動播放 點兩下左鍵
  4. 出現 "關閉自動播放內容" 對話窗, 點選 "已啟用"
  5. 再下來在 "停用自動播放在" 的下拉選單, 選擇 "CDROM光碟機"
  6. 完成, 光碟放入 就不會再自動執行了~

簡易流程:
執行 → gpedit.msc → 電腦設定 → 系統管理範本 → 系統 →
關閉自動播放 → 已啟用 → CDROM光碟機 → 完成

以上 for Windows XP

閱讀全文〈關閉光碟自動啟動功能〉

GPG Error for apt-get

apt-get 發生 GPG Error 的處理方式.

轉載自: GPG error: for apt-get

錯誤訊息

W: GPG error: ftp://www.hk.debian.org unstable Release: 
    The following signatures couldn't be verified
    because the public key is not available: 
    NO_PUBKEY F1D53D8C4F368D5D NO_PUBKEY 010908312D230C5F
W: You may want to run apt-get update to correct these problems

解決方法:

$ gpg --keyserver wwwkeys.eu.pgp.net --recv-keys F1D53D8C4F368D5D
$ gpg --armor --export F1D53D8C4F368D5D | apt-key add -
$ gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 010908312D230C5F
$ gpg --armor --export 010908312D230C5F | apt-key add -
$ apt-get update

感謝 Range 大師告知, 下述兩個步驟即可解決此問題 🙂

$wget http://ftp-master.debian.org/ziyi_key_2006.asc
$apt-key add ziyi_key_2006.asc

閱讀全文〈GPG Error for apt-get〉

PHP 截字、斷字專用 function

在寫網頁的時後常會遇到 80 個字要截字, 然後超過 80 字加 "...", 未滿 80 字不加.. 等等之類的問題.

之前用 substr 的寫法如下:

$string = strip_tags($string); // 先清掉 html tag, 以免 html tag 被破壞
$string = mb_substr($string, 0, 80, 'UTF-8');
$string .= (mb_strlen($string, 'UTF-8') > 80) ? '...' : '';

PHP 有支援很方便的 function 可以直接達到此功能.

$string = strip_tags($string);
$string = mb_strimwidth($string, 0, 80, '...', 'UTF-8');

在 UTF-8 的環境算字數用 strlen 或 mb_strlen 都不是很準, 所以可以用另一個做法, 算字的寬度, 也是個不錯的做法

echo mb_strwidth($string, 'UTF-8'); // 算字寬度

閱讀全文〈PHP 截字、斷字專用 function〉