2007/02/13

[生活] 口罩戴那一面?


最近又感冒了,感冒期間,深怕家人跟著被感染,還是學著戴一下口罩以免四處害人。

結果問題來了:「口罩該戴那一面啊?」

還好有 google 可以查: 網路追追追

上面很清楚的寫道:

網路上關於口罩怎麼戴的信件有二,第一個是活性碳口罩,一位讀者投書報紙,認為電視上示戴黑色朝外,白色朝內的戴法是錯的。我們找到疾病管制局的網頁,上面並沒有說明那個顏色該朝外,只說明應該把帶子頭露出的那一面朝外,如果以市售的一般活性碳口罩來說,那就是白色朝外囉?先別急,還有下文。


下文是什麼?

原來,白色朝外的原因就是為了要防水,怕人家的口水噴到你啦,所以是「防水」的那邊朝外。這是最重要的理由。其它的都只是附加的啦。

2007/02/09

[Linux] flawfinder and splint

這裡有提到一個在 Linux 上面幫你檢查程式碼的工具。

嘿嘿,這個工具顯然對我這種肉腳有很大的幫助。

在軟件開發過程中,我們可以利用源碼檢查工具來找出常見的編程錯誤以及安全漏洞。這些工具用起來並不複雜,下面介紹splint和flawfinder這兩款源碼檢查工具的使用方法。

splint是一款靜態源代碼檢查工具,能對源代碼進行全面的分析。對於沒有註釋的源代碼,可以使用-weak選項:

splint -weak *.c -I./inc

其中,./inc是頭文件所在的子目錄。此外,Splint還支持標準檢查模式(選項-standard),若要進行中等強度檢查則使用選項-checks,若使用選項-strict則進行最嚴格的檢查。

flawfinder也是一款用來尋找源代碼錯誤的靜態分析工具。通過該工具提供錯誤消息,開發人員可以更快的找到錯誤所在。請看下面的例子:

$ flawfinder test.c
test.c:11: [2] (buffer) char:
Statically-sized arrays can be overflowed. Perform bounds
checking, use functions that limit length, or ensure that
the size is larger than the maximum possible length.
$

本例中,flawfinder給出了一個提示,指出靜態尺寸的數組可能被惡意利用的潛在危險。

2007/02/08

[Linux] 中文字型缺字



中文字型的問題,在 Linux 上面因為近年來 Linux 開放源碼運動的關係,許多開放源碼的朋友的成果,得以由此造福大眾。不得不說開放源碼在資訊普及上面的確有著顯著的效果。

讓許多人可以不用花錢就享受到一樣高品質的網路資源。

o.s: 在說什麼啊... 總之就是,我的中文不缺字了~ 耶
上篇寫完新增字型只給 root 用,忘了給一般使用者權限,所以我的字型統統沒有出來~
耍了一整天的笨~

[Linux] 光用 Bash 抓網頁

黑糖的文章

應用1 - 簡單的顯示完整 HTTP Message

  $ exec 5<> /dev/tcp/outian.net/80
  $ printf "GET / HTTP/1.0\n\n" >& 5
  $ cat <& 5

[Linux] 中文字型缺字

最近在追加嘸蝦米的表格,發生一些字元秀不出來的情況。

碰巧 ptt 的 Liu 版在討論字型的問題,有人提供了連結:
這裡下載字型

95.1.2版 27,484字 新增CNS11643第三字面原美國與香港所使用之國際用字
247字。
95.1.2版 16,830字 新增CNS11643第三字面原美國與香港所使用之國際用字
247字


去下載下來用,雖然不是 GPL 的 license ,不過還是對於我的工作很好用的。

現在可以很順利的在 Linux 底下打出「忈」「奣」等字,也「嫑」擔心會秀出怪怪的字碼。

2007/02/06

[Linux] 專門記錄系統使用情況的工具: acct

今天介紹一個專門記錄系統使用情況的工具: acct

原介紹網址在這裡:賽迪網

一些異常用戶試圖移去系統上的所有活動記錄(比如 ~/.bash_history), 不過我們可以使用專門的工具來監視所有用戶執行的命令。推薦你使用進程記帳來記錄用戶的活動, 你可以通過進程記帳查看每一個用戶執行的命令, 包括CPU時間和記憶體佔用。

Psacct程式提供了幾個進程活動監視工具: ac, lastcomm, accton和sa。

◆ac命令顯示用戶連接時間的統計。

◆lastcomm命令顯示系統執行的命令。

◆accton命令用於打開或關閉進程記帳功能。

◆sa命令統計系統進程記帳的情況。


在我的 Ubuntu 上面安裝這個工具很簡單,只要做

apt-get install acct

就夠了。

2007/02/01

[筆記] php.ini 的配置說明

原始出處是這裡: http://leexuan.blogbus.com/logs/2367737.html
我有再修過兩岸一些用語上的不同。

php.ini 或 php3.ini 是 PHP 在啟動時會讀取的配置文件。該文件的存放路徑為 /usr/local/lib/。在 PHP 3.x 版的配置文件為 php3.ini;而在 PHP 4.x 版改為 php.ini。若 PHP 安裝成服務器的模組,則在 Web 服務器啟動執行時會讀取,之後就不再讀取,因此改動配置的話要重新啟動 Web 服務器。若使用獨立 PHP CGI 方式,則每次都讀一次。

要看目前的系統配置,可以用phpinfo()看到。以下為選項配置

php_value name value
配置變數名稱和值。本選項需 PHP 4.x 版之後才能使用。

php_flag name on|off
配置標誌布林變數選項。本選項需 PHP 4.x 版之後才能使用。

php_admin_value name value
配置 Apache 的配置文件變數。原來在 .htaccess 的配置改到這個選項配置。本選項需 PHP 4.x 版之後才能使用。

php_admin_flag name on|off
配置布林變數當標誌。本選項需 PHP 4.x 版之後才能使用。

asp_tags boolean
配置 PHP 程序是否解析以 ASP Script 語法 <% %> 的標記 (tag)。本選項在 PHP 3.0.4 之後才可使用。更多的細節可以參考>嵌入方法的部份。

auto_append_file string
配置本選項可以讓指定的文件附加在原 PHP 程序後面自動執行。若 PHP 程序中有用到 exit() 函數,則指定的文件不會執行。參數 string 即為指定自動執行的文件。

auto_prepend_file string
配置本選項可以讓指定的文件在原 PHP 程序之前自動執行。參數 string 即為指定自動執行的文件。

cgi_ext string
本選項配置 CGI 程序的擴展名。

display_errors boolean
本選項配置是否要將執行的錯誤信息顯示在用戶的瀏覽器上。

doc_root string
配置服務器的文件及 PHP 文件放置的根目錄。

engine boolean
本選項需要使用apache的模組方式使用 PHP。可配置是否要使用 PHP 引擎。在 httpd.conf 中加入 php3_engine on/off 亦可配置某目錄或某虛擬網站是否要用 PHP 解析器。

error_log string
本選項用來配置錯誤記錄文件。在 UNIX 系統上參數 string 即為文件名。Windows NT 會將記錄記在事件檢視器的日誌之中。Windows 95/98 則不支持系統記錄。

error_reporting integer
本選項用來配置系統記錄的等級。參數 integer 即為等級的級數標誌,可以加在一起,預設值為 7,見下表
級數 說明
1 一般的錯誤
2 一般的警告
4 解析錯誤
8 非關鍵的警告

open_basedir string
本選項用來配置提供 PHP 存取的最底層目錄。從該指定目錄之下的文件或目錄,PHP 程序才能存取。使用本選項主要是為了系統安全性的考慮。參數 string 即為要限制的最底層目錄節點。值得注意的是在 UNIX 系統中,若該節點之下的文件或目錄有符號鏈結 (symbolic link),則可能會讓使用本選項的目的打折,因此在目錄的設計上考慮,也是 Webmaster 的重要任務。預設值是所有文件均可存取。在 PHP 3.0.7 版之後,可以配置多個底層目錄。

gpc_order string
配置 GET/POST/COOKIE 三種模組的順序及規則。參數 string 即為要配置的規則,例如:配置成 "GP" 表示忽視 cookie,並在存取方法 (method) 相同時,以 POST 取代 GET。

ignore_user_abort string
預設值為 Off。用來配置當傳輸未完成時,用戶端斷線是要繼續處理。

include_path string
為 PHP 程序中 require、include 及 fopen_with_path 等函數的文件搜尋路徑。在 UNIX 或 Windows 中的斜線方向不同。

log_errors boolean
指定程序錯誤時是否要記錄在 log 文件中。

magic_quotes_gpc boolean
配置 GET/POST/COOKIE 三種模組的特殊字符,包含單引號、雙引號、反斜線、及空字符 (NUL) 是否要自動加入反斜線當溢出字符。

magic_quotes_runtime boolean
配置返回資料是否自動加入反斜線當溢出字符。

magic_quotes_sybase boolean
配置 sybase 資料中單引號要自動加上反斜線當溢出字符。

max_execution_time integer
配置程序最久執行時間。單位是秒。

memory_limit integer
配置程序最多使用多少內存。

short_open_tag boolean
配置是否使用短的 PHP 標記 ()。若不使用,則必須要用
track_errors boolean
打開本選項可使最後的錯誤信息跟著全局變數 $php_errormsg。

track_vars boolean
打開本選項可讓用戶輸入的字串自動解析到變數之中,而不用自己處理。

upload_tmp_dir string
指定上傳文件臨時路徑。

user_dir string
指定用戶根目錄的路徑。

warn_plus_overloading boolean
若打開本選項,字串間就只能用英文的句號 (.) 鏈接,而不能用加號 (+) 鏈接字串。

SMTP string
在 Windows 系列操作系統中,用來指定 SMTP 服務器,供 mail 函數使用。參數 string 為 SMTP 服務器名字。

sendmail_from string
配置 "From: " 字串供 Windows 系列操作系統使用 mail 函數。

sendmail_path string
配置 sendmail 程序的放置路徑。例如 /usr/sbin/sendmail。

safe_mode boolean
配置 PHP 在安全模式下執行。

safe_mode_exec_dir string
配置安全模式程序執行的路徑。

debugger.host string
指定遠端調試的服務器名稱,可以是 IP 或 Domain Name。

debugger.port string
配置遠端調試服務器的端口 (port)。

debugger.enabled boolean
配置是否可以為調試模式。

enable_dl boolean
本選項要使用apache模組 (Apache module) 的方式才有效。用來配置 PHP 的函數可否作用。當系統處於安全模式 (safe-mode) 時,本選項 enable 也無法使用 dl() 函數。

extension_dir string
配置動態函數的路徑。

extension string
PHP 啟動時所要載入的動態擴充功能。

mysql.allow_persistent boolean
配置是否允許 MySQL 數據庫持續連接 (persistent connections),會影響函數。

mysql.max_persistent integer
配置每個處理程序最多保持幾個 MySQL 持續連接。

mysql.max_links integer
配置每個處理程序最多開幾個 MySQL 連接,包括持續連接。

msql.allow_persistent boolean
配置是否允許 mSQL 數據庫持續連接 (persistent connections),會影響函數。

msql.max_persistent integer
配置每個處理程序最多保持幾個 mSQL 持續連接。

msql.max_links integer
配置每個處理程序最多開幾個 mSQL 連接,包括持續連接。

pgsql.allow_persistent boolean
配置是否允許 Postgres 數據庫持續連接 (persistent connections),會影響函數。

pgsql.max_persistent integer
配置每個處理程序最多保持幾個 Postgres 持續連接。

pgsql.max_links integer
配置每個處理程序最多開幾個 Postgres 連接,包括持續連接。

sybase.allow_persistent boolean
配置是否允許 Sybase 數據庫持續連接 (persistent connections),會影響函數。

sybase.max_persistent integer
配置每個處理程序最多保持幾個 Sybase 持續連接。

sybase.max_links integer
配置每個處理程序最多開幾個 Sybase 連接,包括持續連接。

sybct.allow_persistent boolean
配置是否允許 Sybase-CT 數據庫持續連接 (persistent connections),預設值是打開的。

sybct.max_persistent integer
配置每個處理程序最多保持幾個 Sybase-CT 持續連接。預設值為 -1 表示無限制。

sybct.max_links integer
配置每個處理程序最多開幾個 Sybase-CT 連接,包括持續連接。預設值為 -1,表示沒有限制。

sybct.min_server_severity integer
配置 Sybase-CT 服務器錯誤報告的最少筆數。預設值為 10。

sybct.min_client_severity integer
配置 Sybase-CT 客戶端錯誤報告的最少筆數。預設值為 10。

sybct.login_timeout integer
配置 Sybase-CT 最久可以使用的登入時間。預設值…置值,都在 PHP 4.x 以上的版本方支持。在 php.ini 的配置文件中。

session.save_handler
定義 session 儲存資料的文件名稱。預設值為 files。

session.save_path
定義 session 儲存資料的文件路徑。預設值為 /tmp。

session.name
配置 session 所使用的 cookie 名稱。預設值為 PHPSESSID。

session.auto_start
配置 session 是否自動打開。預設值為 0 (否)。

session.lifetime
配置 cookie 送到瀏覽器後的保存時間,單位為秒。預設值為 0,表示直到瀏覽器關閉。

session.serialize_handler
定義連續/解連續資料的標頭,本功能只有 WDDX 模組或 PHP 內部使用。預設值為 php。

session.gc_probability
配置每筆要求回應時的垃圾蒐集 (gc, garbage collection) 處理機率。預設值為 1。

session.gc_maxlifetime
配置垃圾被清除前的存活秒數。

session.extern_referer_check
決定參照到客戶端的 Session 代碼是否要刪除。有時在安全或其它考慮時,會配置不刪除。預設值為 0。

session.entropy_file
配置 session 代碼建立時,使用外部高熵值資源或文件來建立,例如 UNIX 系統上的 /dev/random 或 /dev/urandom。

session.entropy_length
配置 session 從高熵值資源讀取的位組數。預設值為 0。

session.use_cookies

配置是否要將 session 變成 cookie 存在用戶端。預設值為 1,表是打開本功能。

[Windows] git-bash 底下的工具

因為工作轉到 Windows 平台上的關係,所以很多工具改到 Windows 上面運作,跟著在 TortoiseGit 底下使用 git-bash 來維護自己的專案原始碼。結果就是裝了前面提過的 auto-hotkey 使用熱鍵來提昇自己的平台操作速度; 但除了 hotkey...