- token_get_all() 將原始碼拆成陣列,每個陣列元素可能是字串或陣列,字串的話包括像等於、分號或大小括弧等,陣列的話則依序包括 token index 、內容跟所在行數。這裡的 token index 是整數,可以用 token_name() 轉成相對應的名字。
- 以下是簡單的範例,將每個元素用 <span> 包起來,並設定 class 為 token name :
<?php
$source = file_get_contents(__FILE__);
$ary = token_get_all($source);
foreach ($ary as $key => $value) {
if (is_array($value)){
echo '<span class="' . token_name($value[0]) . '">' . htmlspecialchars($value[1]) . '</span>';
} else {
echo '<span>' . htmlspecialchars($value) . '</span>';
}
}
?> - 用 get_defined_constants 取得所有可用的 token (參見 PHP: List of Parser Tokens - Manual):
<?php
$constants = get_defined_constants(true);
var_dump($constants['tokenizer']);
?> - 首先要注意的是, token_get_all 對原始碼分析的結果跟本機環境設定有關:
- 像 <?= 在 short_open_tag = On 的時候是 T_OPEN_TAG_WITH_ECHO ,反之則是 T_INLINE_HTML 。
- 我用的 PHP 5.2.6 就沒有 T_DIR 、 T_NS_C 這些 5.3 版才定義的 token 。
- 另外要注意的是,到了 CSS 2.1 才定義可以使用底線 (
_
; underscore) 做為 class name selector ,參見 CSS2 syntax and basic data types 與 Grammar of CSS 2.1,如果要將 token name 做為 CSS class selector 的話,最好將底線換為連字號 (-
; hyphen)
歡迎來到小豬圈!
2008-11-06
用 token_get_all 分析 PHP 原始碼
Parse_Tree 分析 PHP 原始碼並輸出 XML
- 因為內建的 highlight_file 和 highlight_string 輸出的結果太醜,要改的話又太麻煩,所以找了個替代方案 PECL :: Package :: Parse_Tree 。
- 該模組只有 parse_tree_from_file() 一個函式、唯一一個參數要傳入原始碼的路徑。這份文件寫的 generate_parse_tree() 是錯的。
- 使用方法也很簡單,下例會輸出該程式本身分析後的 XML:
<?php
echo parse_tree_from_file(__FILE__);
?> - 缺點是要另外下載模組,實際要用得把 XML 轉換成 HTML ,對我而言相當不方便。
- 這研究這個模組途中,才發現 PHP 已經有內建分析原始碼的函式 token_get_all(),詳見下篇。
安裝 Glade 3.4.3 for Windows (gladewin32) 遇到的問題

圖為安裝 Glade/Gtk+ for Windows 3.4.3 版遇到的錯誤訊息。glade-3.exe - Entry Point Not Found
The procedure entry point g_assertion_message_expr could not be located in the dynamic link library libglib-2.0-0.dll.- 解決方法是將 GTK+ 的版本更新至 2.12.9 以上。為什麼我會知道?因為我電腦裡裝的是不曉得哪個程式附的 GTK+ 2.12.8 … (囧),更新(目前最新是 2.14.4)後就沒問題了。
- 如果是遇到缺什麼 dll 的情況,先確認 GTK+ 的 bin 目錄有沒有加到環境變數 PATH 裡,不行再到 GTK+ 官網下載或網上去找吧。
2008-11-01
PHP-GTK on Windows 筆記
- 到 PHP-GTK : Downloads 下載 php-gtk-2.0.1 Windows binary pack
- 到下載回來的檔案解開後的 php-gtk2 目錄裡,執行
php demos\phpgtk2-demo.php範例測試。 - 在利用既有的 PHP 環境執行時遇到下列錯誤訊息,應該是因為 PHP-GTK 是 Non-thread-safe 的,和我現有的版本不符的關係。
PHP Warning: PHP Startup: php-gtk: Unable to initialize module Module compiled with module API=20060613, debug=0, thread-safety=0 PHP compiled with module API=20060613, debug=0, thread-safety=1 These options need to match in Unknown on line 0
- 修改 php-cli.ini 檔案中 php-gtk.codepage 一項,修改為 CP850 用以在 Windows 上正常顯示繁體中文。參見:Code Pages
改變 Google Chrome 的 Cache 路徑 (2011-04-17 更新)
2011-04-17 更新
- 只設定
user-data-dir時,快取目錄會自動設定於該目錄下。 - 若要單獨指定快取目錄時,使用:
disk-cache-dir參數。 - 使用
--disk-cache-size設定快取大小。 - 更多其它的參數請參考 http://src.chromium.org/svn/trunk/src/chrome/common/chrome_switches.cc
- 裝了 Google Chrome 一陣子以來,只有偶而開個幾次,所以沒什麼心得。不過每次打開 Google Chrome 一段時間後,即使沒有正在執行的連線, Google Chrome 還是會小量而頻繁的存取硬碟(一直咔啦咔啦的)。
- 後來加上
--user-data-dir=Z:\Temp參數,將路徑改到 RAMDisk 上就好了。參見:Meme -- 教學與反省: 將 Google Chrome 的暫存檔移至 RAMDisk - 這也同時解決了隱私的問題, Google Chrome 預設首頁會顯示之前瀏覽頁面,但卻無法預設使用無痕式視窗、也無法在程式開閉後自動清除瀏覽資料。
2008-10-31
修改 Blogger Layout 筆記
- 要下載回來編輯的話,最好用像 Notepad++ 這種有收合語法功能的編輯器。
- 基本上就是 XHTML ,再加上 Google 另外定義的 Namespace "http://www.google.com/2005/gml/" (GML?)。
- 主要的標籤有:(參見 Widget Tags for Layouts)
- <b:skin> 除多了變數功能外,幾乎同等於 <style> 。
- <b:section> 分區用。
- <b:widget>
- <b:includable> 、 <b:include>
- <b:if> 、 <b:loop>
- 其中 <b:section> 的子系只允許是 <b:widget> ,而 <b:widget> 的子系只允許是 <b:includable> 。
- 預先定義的 <b:section> 有 header 、 main 、 sidebar 、 footer 四個區塊。
- <b:widget> 要有一個 id 是 main 的 <b:includable> ,若是其它的 id 的話則預設是不會顯示的( header 似乎是例外),但可以用 <b:include> 加入其中。
- 有些 data 項目沒有在 Layouts Data Tags 列出。
- navMessage :用來顯示 Showing posts with label PHP. Show all posts 之類的訊息。
- adStart :插廣告用的?
2008-10-29
Zend_Log 與 FireBug+FirePHP
- 一個 Zend_Log 可以註冊好幾個 Zend_Log_Writer ,意即一個訊息可以送多個地方記錄。
- Zend_Log 將訊息透過 HTTP Header (Zend_Wildfire) 傳到 Firebug + FirePHP 的 Console 畫面上,記得要啟用 Firebug 的 Console 和 Net 介面。
- 另一個和 FireBug 相關的元件是 Zend_Db_Profiler_Firebug ,利用一樣的原理將對資料庫的查詢資訊,傳到 FireBug 上。
Zend_Translate 與 Poedit
- 在用 Zend_Translate 和 Poedit (1.4.2) 時遇到一個問題,就是 xgettext 不吃 *.phtml 而把它當成 C 來處理,解決方法如下:(參見:using poEdit - Zend Framework Forum)

圖為 Poedit 的 File » Preferences » Parsers » PHP » Edit 截圖。- 在 extension 增加 *.phtml ,注意分號後面不能有空格。
- 在 parser command 後加上 -L php 即可,如:
xgettext --force-po -o %o %C %K %F -L php - 在 Poedit 的 Catalog » Setting » Keywords 增加 translate 一項。
- 在 Zend_View_Helper_Translate 裡沒有對應 Zend_Translate_Adapter::_ (底線,就如同 gettext 的底線函式) 這個用來省幾個字的方法。
- 真的要用底線也是有啦,只是省不到字就是了:
<?php
echo $this->translate('something');
echo $this->translate()->_('something');
?> - 做為 message id 的字串要應該考慮大小寫及前後空格與符號等,就想原文是如何就是了。
2008-10-28
Zend Framework Components 分類
- 以下分類僅供參考,有很多我都還沒用過。參見:Zend Framework: About Components。
- core
- Zend_Loader 「載入元件」的元件,提供個別載入或 autoload 的方法。
- Zend_Version
- 使用者認證/授權
- Zend_Acl
- Zend_Auth
- Zend_Captcha
- Zend_InfoCard
- Zend_Ldap
- Zend_OpenId
- Zend_Service_ReCaptcha
- 儲存/快取/暫存資料
- Zend_Cache
- Zend_Config
- Zend_Db
- Zend_Memory
- Zend_Registry
- Zend_Session
- 跟 MVC 有關的
- Zend_Controller
- Zend_Layout
- Zend_Paginator
- Zend_View
- i18n
- Zend_Currency
- Zend_Date
- Zend_Locale
- Zend_Measure
- Zend_Translate
- debug
- Zend_Debug
- Zend_Exception
- Zend_Log
- Zend_Test
- XML Manipulation
- Zend_Dom
- Zend_Feed
- 處理表單及使用者輸入資料
- Zend_File
- Zend_Filter
- Zend_Filter_Input
- Zend_Form
- Zend_Validate
- 網路服務
- Zend_Gdata
- Zend_Service_Akismet
- Zend_Service_Amazon
- Zend_Service_Audioscrobbler
- Zend_Service_Delicious
- Zend_Service_Flickr
- Zend_Service_Nirvanix
- Zend_Service_Simpy
- Zend_Service_SlideShare
- Zend_Service_StrikeIron
- Zend_Service_Technorati
- Zend_Service_Yahoo
- 跟寄 E-Mail 有關的
- Zend_Mail
- Zend_Mime
- Web Services
- Zend_Soap
- Zend_XmlRpc
- 雜
- Zend_Console_Getopt
- Zend_Dojo
- Zend_Http
- Zend_Json
- Zend_Pdf
- Zend_Rest
- Zend_Search_Lucene
- Zend_Server_Reflection
- Zend_Text
- Zend_Timesync
- Zend_Uri
- Zend_Wildfire
關於 PHP 的 closing tag
- PHP 的 closing tag (即“?>”)是可以省略的,雖然有寫在 PHP: Instruction separation - Manual 這一篇的 Note 裡,但我一直到最近才知道。
- 省略 closing tag 可以在 include 文件時,避免因文未多餘的字元而無法送出 header 的情況。
2008-10-26
戰爭機器二

- 連著兩天玩了共約十一個小時,爽!劇情還滿充實的,不會有一下就結束的感覺。現在就等第三集了。
- 只有在殺人冰雹和大嘴魚那裡卡了幾次。殺人冰雹那會有幾條「看起來」好像可以過的路,實際上卻只有眼前最短的路才是對的。而大嘴魚那裡則是不要害怕,往嘴裡衝就是了。
- 持久戰模式我們只能撐到第八波而已…被巴假的啊。(淚)
- 你說這個時候還遊戲都還沒上市?就當我是在做夢吧。
- 戰爭機器 2》遊戲搶先偷跑?數十張遊戲內容實際圖片! - SOC 電子競技職業聯盟
2008-10-21
詭異的 Zend_Mail
- 目前測試成果之一,是可以用 Gmail SMTP 寄信。
- 中文(正確來說是需要編碼的非 ASCII 字元)無法正常顯示。除了太長以外,還有中文字被截開的問題。得改寫 Zend_Mail::_encodeHeader 、 Zend_Mime::encodeQuotedPrintable 。我改寫的版本在 Gmail 測試成功,不過寫太醜了就不放上來了。
- 後來查了一下才知道,原來這問題之前就有了… Zend_Mail中文標題亂碼問題 - IT邦幫忙::IT知識分享社群。我現在用的是 1.6.1 版,依然有這個問題。
- Subject header 的格式範例:
Subject: =?UTF-8?Q?=11=22=33=44=55=66=77=88=99=AA=BB=CC=DD=EE=FF?= =?UTF-8?Q?=11=22=33=44=55=66=77=88=99=AA=BB=CC=DD=EE=FF?=
(超過 78 個字元“應該”換行) - 若只送出 BodyText 或 BodyHtml 其中一種,則不會送出 Content-Type 和 Content-Transfer-Encoding 的 header 。
- 文件第 29.5. HTML E-Mail 一節提到:同時送出 BodyText 跟 BodyHtml 會自動換成 multipart/alternative
並沒有發生。解決標題問題後,這功能也恢愎正常。 - Zend_Mail::_storeHeader 裡有一行奇怪的 comment :
// ?? $value = strtr($value,"\r\n\t",'???');
2008-10-17
再加上 PostgreSQL
- 裝完 PostgreSQL 後,重新啟動 Apache 時,出現了無法載入 php_pgsql.dll 、 php_pdo_pgsql.dll 的錯誤訊息(執行環境 Windows XP SP3 / Apache 2.2.8 / PHP 5.2.6 / PostgreSQL 8.3.4)。在 PATH 中加入 PostgreSQL\8.3\bin 路徑後重開機即可。
- 管理工具 phpPgAdmin 。
- 在 PostgreSQL 裡要達成 AUTO INCREMENT 的功能,要另外 CREATE SEQUENCE 或指定欄位資料型態為 SERIAL (意思是一樣的,不過改由 PostgreSQL 代勞)。
SQLite
- 為了測試 PDO 的通用性,以及尋找 MySQL 的替代品,選了 SQLite 試用中(下一個候選是 PostgreSQL)。
- 和 Microsoft Access 一樣無需架設伺服器,檔案式的資料庫。
- SQLite 是無資料類型“ Typeless ”這點還滿特別的,你依然可以宣告資料類型,但資料庫內部都當成 ASCII 文字處理, SQLite 3 再從 TEXT 分出 INTEGER 、 REAL 和 BLOB 。參見: Datatypes In SQLite / Datatypes In SQLite Version 3
- 一個 SQLite 管理工具 SQLite Manager :: Firefox Add-ons 。
- 從 MySQL 換過來第一個遇到問題的是 CREATE TABLE 語法,主鍵固定是用“ INTEGER PRIMARY KEY AUTOINCREMENT ”。
2008-10-15
2008-10-13
Apache 子網域對應
- 以下是使用 Apache HTTP Server 的 mod_vhost_alias 模組。
- 假設擁有的網域和 IP 是: example.com 與 256.256.256.256 。
- 在 DNS 新增一筆泛解“*”:
* IN A 256.256.256.256 - 泛解“*”是標準語法,而且不會覆蓋已設定的域名。參見 Wildcard DNS record - Wikipedia, the free encyclopedia 。
- 意思是指 example.com 的子網域 (像 www.example.com 或 ftp.example.com 之類的) 全部對應到 256.256.256.256 。
- 在 Apache httpd.conf 加入:
LoadModule vhost_alias_module modules/mod_vhost_alias.so UseCanonicalName Off VirtualDocumentRoot "C:/web/%-1/%-2/%-3"
- 上述設定會使 www.example.com 對應到 C:/web/com/example/www ,或 abc.example.com 對應到 C:/web/com/example/abc …之類的效果,這樣新增子網域只要增加子目錄即可,不需重開 Server。
- Apache 還有其它對應網域/網址的方法。參見 Mapping URLs to Filesystem Locations - Apache HTTP Server
2008-10-10
申請 Yahoo BBAuth 的 App ID 遇到的問題
- 申請步驟一直到 Check Domain 都沒有問題,但按下 Check Domain 後卻導向 Yahoo 登入頁面,登入後又被導到“申請 App ID ”的頁面,然後就鬼打牆一直重覆申請、 Check Domain 、登入的動作,試了兩天都一樣。
- 另外,今天想試用 Yahoo OpenID 時,也傳回錯誤訊息。
- 兩個事件的相同之處,只有從英文網站導回中文的登入頁面,所以我試著在主站(www.yahoo.com)新申請一個帳號,然後…就都申請成功了。
- \(囧)/
2008-10-08
OAuth
- OAuth 是一個關於提供第三方“授權”(authorization)的開放協定,參見:OAuth Core 1.0 Spec 和函式庫。
- 對於一般使用者而言,可以使用已經擁有的帳號(及其服務)。
- 對於開發者而言,可以有開放、統一的授權協定,整合網路服務。但因為授權後取得的是一組代號(Access token)而不是帳號,所以有識別使用者的問題,見:Racklin's 阿土伯程式大觀園: 另人遺憾的 Google AuthSub API 有感。
- Google Account Authentication API 已經可以使用了 OAuth,原有的 AuthSub 改為輔助,只是在 PHP 上還沒跟 Zend Framework GData 銜接上。
- Yahoo OAuth 目前還在 preview 的階段。
- 以下是一些 OAuth 名詞定義:
- User:即一般使用者。
- Consumer:第三方應用服務。
- Service Provider:服務供應者,像 Google 和 Yahoo 之類。
- Consumer Key/Secret:Service Provider 提供給 Consumer 做為簽證使用。
- Request Token:向 Service Provider 請求認證 Consumer 和向使用者要求授權的一組代號。
- Access Token:經過認證授權後,實際用來存取 Service Provider 服務的一組代號。
2008-10-07
關於密碼儲存
- 使用者傳來的密碼絕不可以直接(以明文)儲存!避免有心人士取得密碼表後直接利用。
- 一個常見的做法是利用雜湊(Hash)函數,將密碼編碼後儲存。
- 例: mypassword 這段字用 md5() 編碼的結果是 34819d7beeabb9260a5c854bc85b3e44 。
<?php
// Outputs: 34819d7beeabb9260a5c854bc85b3e44
echo md5('mypassword');
?> - 但是,這樣我就知道 34819d7beeabb9260a5c854bc85b3e44 就是 mypassword 用 md5() 計算的雜湊值啦!
- 所以有心人士可以事先將所有可能用來當密碼的字串,用 md5() 或其它雜湊函數先行編碼、記錄下來(就是所謂的 Rainbow Tables),取得密碼表後,只要一比對就可以知道密碼。
- 一個應對的方法就是加鹽(salt, see:Rainbow table - Wikipedia, the free encyclopedia),意思是將密碼加上一段字串後,再計算雜湊值。
- 例:
<?php
// Outputs: f5c8bdfe11ef33040331747636877629
echo md5('salt' . 'mypassword');
?> - 加了 salt 後,即使有心人士比對出原文,也不能直接拿來使用,還得找出 salt 才行。可針對使用 Rainbow Tables 的情況,加長 salt 的長度或使用特殊字元(鍵盤上無法直接打出來的),增加被找到的難度與所需時間。
- 在擁有大量密碼情況下,常有重覆的雜湊值出現的情況,除了碰撞外,有可能是不同的使用者使用了相同的密碼,或是像 123456 之類的隨意輸入的密碼,有心人士可能會刻意針對這些值(使用者)。
- 這時可以利用隨機函數產生 salt ,這樣即使用同樣的密碼,每次計算出來的雜湊值都不一樣。
<?php
$salt = md5(mt_rand());
echo $salt . md5($salt . 'password');
?> - 以下為簡單的範例:
-
<?php
function hash_pwd($pwd, $salt = false){
if (!$salt) {
$salt = md5(mt_rand());
}
return $salt . md5($salt . $pwd);
}
function compare_pwd($pwd, $pwd_hashed){
$salt = substr( $pwd_hashed, 0, 32 );
return $pwd_hashed === hash_pwd($pwd, $salt);
}
$user_pwd = 'password';
$user_pwd_hashed = hash_pwd($user_pwd);
var_dump( $user_pwd_hashed );
var_dump(compare_pwd($user_pwd, $user_pwd_hashed));
?> - 若使用 PHP 5.1.2 以上版本,建議改用內建的 hash() 函數,並換成其它較複雜的雜湊演算法,如 WHIRLPOOL。
- 對一般使用網站服務的使用者,要知道網站有沒有用雜湊函數之類的方法儲存你的密碼,只要使用網站提供的“忘記密碼”的服務,一般來說,網站會自動重設一組隨機密碼讓你使用,但若是網站會傳回你原本的密碼的話…。
- 在每個網站服務最好都使用不同的帳號、密碼,避免在某個網站被破,其它服務也遭殃。例如在某網站註冊時填的帳號、密碼和 E-mail,“剛好”都跟該 E-mail 用的一樣…。
2008-10-05
YUI 非同步的傳案上傳
- 使用 YUI Connection Manager 實作。
- 觸發事件不用 button.onClick 而用 form.onSubmit,其中一個考量是避免遺漏使用者以「按下 Enter 」的方式送出表單。
- 在關閉 Javascript 的情況下,也能一般的方式送出表單內容。
- 同時使用 POST 與 GET (自行在 URL 後附加參數),來判斷資料是由 AJAX 還是一般方式送出(瀏覽器有無支援 Javascript)。前者可以送出 JSON 編碼的資料方便用 Javascript 處理,而後者就出一般的網頁。
- async_file_upload.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Language" content="zh-TW"> <title>Asynchronous File Upload With YUI 非同步檔案上傳</title> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/yahoo-dom-event/yahoo-dom-event.js"></script> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/connection/connection-min.js"></script> <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/json/json-min.js"></script> <script type="text/javascript"> function doSubmit(objForm){ // 第二個參數設成 true 允許檔案上傳 YAHOO.util.Connect.setForm(objForm, true); var callback = { upload: function(o) { var result = YAHOO.lang.JSON.parse(o.responseText); document.getElementById('log').innerHTML = 'name: ' + result.name + '<br>\n' + 'type: ' + result.type + '<br>\n' + 'size: ' + result.size + '<br>\n' + 'tmp_name: ' + result.tmp_name + '<br/>\n' + 'error: ' + result.error + '<br>\n'; } }; // 同時使用 POST 與 GET (async) 判斷資料是由 AJAX 或表單直接送出 YAHOO.util.Connect.asyncRequest('POST', objForm.action + '?async=1', callback); // 這裡傳回 false 並不能阻止 submit (原因未知) return false; } </script> </head> <body> <!-- 在 onSubmit 呼叫 doSubmit 後再傳回 false 避免以一般方式送出表單 --> <form id="form_1" action="async_file_upload_action.php" enctype="multipart/form-data" method="post" onsubmit="doSubmit(this); return false;" > <div> <input type="file" id="input_file_1" name="input_file_1"> <input type="submit" id="input_submit_1" name="input_submit_1"> </div> </form> <pre id="log"></pre> </body> </html> - async_file_upload_action.php:
<?php if (isset($_GET['async'])) { echo json_encode($_FILES['input_file_1']); } else { echo '<pre>', print_r($_FILES, true), '</pre>'; } ?>
- Yahoo! UI Library: Connection Manager The Callback Object and File Upload
- Asynchronous File Upload - YUI's Approach | Code Central
2008-10-02
reCAPTCHA
圖為 reCAPTCHA 的實例圖。- 到 PHP CAPTCHA Library for reCAPTCHA 下載 API 和範例。
- 申請一組金鑰,這裡除了要申請該站的帳號外,還要填入你要使用 reCAPTCHA 的域名。
- 在範例 (example-captcha.php) 中填入該組金鑰後就可以直接測試了,填入正確的答案的話會傳回“You got it!”。
- 如果有使用 NoScript 的話,要允許該網頁本身和 http://api.recaptcha.net 執行 Script。
- reCAPTCHA 在瀏覽器不支援 script 的情況下也可以運作,只是要多一道傳回運算值的步驟,還有,要支援 iframe 才行(也有可能被 NoScript 擋掉)。
- reCAPTCHA 除了提供一般常見的文字(圖形)測試外,還提供的語音測試(目標是辨識一串數字),但還滿難聽的出來就是了。
- reCAPTCHA Mailhide 是把網頁上顯示的 E-mail ,取代成連往 CAPTCHA 測試的鏈結,測試成功後再秀出完整的 E-mail,目地是要避免被網路 bot 收集。
- 範例:exam...@example.com。
- reCAPTCHA Mailhide 需要載入 mcrypt 模組,在此之前得先把 PHP 附的 libmcrypt.dll 複製到 %WINDIR%\system32 裡。
2008-10-01
KENWOOD UD-700 組合音響
- 幾星期前,陸續從 Benson 那搬回來的一組音響,今天第一次試用,產品型號應該是 KENWOOD UD-700。雖然有點舊,但是,是免費的就算有賺到啦!
- A-A7 擴大機兼 AM/FM 收音機,曾在搬動後出現“PROTECT”訊息,說明書上寫是有線路短路,結果用吹風機吹吹就好了。
- GE-A7 等化器 EQUALIZER,機背的接頭氧化的很嚴重。
- X-A9 雙錄音帶播放機,其中一匣播出的聲音變的很低沉、小聲,另一匣則正常。
- DP-A9 CD播放機,常讀不到片,更誇張的是,剛播完的片子就讀不到了。
- LS-A7 一對喇叭,偶而會出現小聲的“啪”的聲音,但還不確定是不是音樂的問題。
2008-09-26
申請一個泛英網域
- 下午在 Hinet 網域名稱申請服務申請了一個泛英網域,下午一點填表,兩點匯款,五點就收到 e-mail 說開通了。
- 在 Hinet 申請的泛英網域沒有提供網域代管,原本想用 ISC BIND 自行架設 DNS Server,但指定 DNS 時一直出現 637 的錯誤,改用 EveryDNS 馬上就成功了。
- 以下是 EveryDNS 提供的四組 DNS Server Name / IP():
- ns1.everydns.net / 208.76.56.56
- ns2.everydns.net / 204.152.184.150
- ns3.everydns.net / 89.188.0.57
- ns4.everydns.net / 208.96.6.134
2008-09-25
2008-09-24
查詢 IP 來自哪個地區/城市 (三) 半自動更新資料庫
- MaxMind GeoIP 提供兩個每月更新的免費資料庫: GeoLite Country (GeoIP.dat.gz) / GeoLite City (GeoLiteCity.dat.gz) ,檔案是用 gzip 壓縮,有固定鍵結可以直接下載,所以可以利用 PHP Compression Streams 下載同時解壓,然後存檔。
- 要用 compress.zlib:// 這個 wrapper,必須打開 allow_url_fopen 這項設定。
<?php $source_filename = 'http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz'; // 取得解開 .gz 後要用的檔名 GeoIP.dat $base_filename = basename($source_filename, ".gz"); $destination_filename = './' . $base_filename; $file_handle = fopen('compress.zlib://' . $source_filename, 'rb'); $data = ''; if($file_handle){ while (!feof($file_handle)) { $data .= fgets($file_handle, 1024); set_time_limit(5); // 增加執行時間的上限,避免逾時 } file_put_contents($destination_filename, $data); // 預設會覆蓋同名檔案 fclose($file_handle); }else{ exit('無法開啟遠端檔案'); } ?>
2008-09-23
查詢 IP 來自哪個地區/城市 (二) 世界各國國旗
- 絕大部份的國旗圖案是來自 Icon Drawer,其它的少部份則是來自維基百科。我只是稍微整理、打包,並將圖檔檔名改為 ISO 3166-1 的二位字母代碼,圖檔格式為 PNG。按此下載:Flags_ISO_3166-1_alpha-2.zip。
- 內附從 ISO 下載的 iso_3166-1_list_en.xml是修改過的改本(把 PROVINCE 改成 REPUBLIC),嘿嘿。
- 雖然大部份都可以藉由程式照表處理,不過還是有約 50 檔案得手動修改。這也提醒自已,以後不論處理什麼資料的時候,都要考慮電腦處理的可能性。
- 我猜 Icon Drawer 應該是用“工人智慧”處理,才會出像 South Afriica.png 這樣多打一個字的錯誤(囧)。
- 註:Icon Drawer 有要求使用其提供的國旗圖檔的同時,必須在網站放置鏈結。
2008-09-19
中國的戶口二元制
- 【中國觀察】圖解中國黑心商品頻傳的根本原因! @ 假圖天國 :: PIXNET 痞客邦 ::
- 今天第一次知道中國有“戶口二元制”這種事,感覺這種制度會造成很大的城鄉及貧富差距吧。
- 如果沒有居住遷徙的自由…。
2008-09-18
查詢 IP 來自哪個地區/城市
- IP 的查詢是利用 Maxmind 提供的 GeoIP PHP API 及免費版的資料庫(GeoLite Country / GeoLite City)。
- 國旗的圖片主要來自 Icon Drawer,詳見:歡迎來到小豬圈: 查詢 IP 來自哪個地區/城市 (二) 世界各國國旗。
- 按此下載我寫的範例:geoip_flag.zip。下列檔案請自行下載:
- GeoIP.dat GeoLite Country 資料庫。
- GeoLiteCity.dat GeoLite City 資料庫。
- 利用 $_SERVER['REMOTE_ADDR'] 取得客戶端的 IP。
- 用 ip2long() 檢查 IP,順便取得數值方便處理(如果需要的話)。
2008-09-17
TVBS新聞自律規範
- 生命安全第一,新聞採訪第二。
- 不得偽造作假,不得誤導觀眾。
- 不得造成受害者及其家屬的二次傷害。
- 不得造成警消醫護執行公務的延誤。
- 不因個人觀點或利益影響公正。
- 不因刻板印象傷害弱勢團體。
- 尊重各族群.宗教.文化的價值觀。
- 不製作不想讓自己小孩看的新聞。
- 尊重智慧財產權。
- 保護消息來源。
2008-09-14
依照片 EXIF 資訊 Orientation 自動旋轉
- 有些相機支援偵測使用者是水平或垂直拍攝這項功能,並將這項資料寫入相片的 EXIF 資訊中, Orientation 這項目裡。

在 EXIF 2.2 裡 Orientation 預先定義了八個可能的值,圖來自:ImpulseAdventure - JPEG / Exif Orientation and Rotation。- 利用 exif_read_data() 讀取 EXIF 中 Orientation 的資料。
- 因為 GD 沒有鏡像翻轉的函數,所以我改用 Imagick 的函數(Imagick::flipImage() 、 Imagick::flopImage() 、Imagick::rotateImage())。
- 我寫的版本在這裡下載: exif_auto_rotation.zip ,其中包括 1.JPG 到 8.JPG 八張圖(其實內容是同一張圖),利用 Quick EXIF editor 修改其 EXIF 的值,分別對應 Orientation 的 1 到 8 的值。
- exif_auto_rotation.php:
<?php // exif_auto_rotation.php?file=1.JPG if (!isset($_GET['file'])){ exit; } $file = $_GET['file']; $image = new Imagick(); if ( $image->readImage($file) !== false) { $exif = exif_read_data($file); switch ($exif['Orientation']) { case 1: // 水平(一般) break; case 2: // 水平鏡像 $image->flopImage(); break; case 3: // 翻轉180度 $image->rotateImage(new ImagickPixel(), 180); break; case 4: // 垂直鏡像 $image->flipImage(); break; case 5: // 水平鏡像後,順時鐘翻轉270度 $image->flopImage(); $image->rotateImage(new ImagickPixel(), 270); break; case 6: // 順時鐘翻轉270度 $image->rotateImage(new ImagickPixel(), 270); break; case 7: // 水平鏡像後,順時鐘翻轉90度 $image->flopImage(); $image->rotateImage(new ImagickPixel(), 90); break; case 8: // 順時鐘翻轉90度 $image->rotateImage(new ImagickPixel(), 90); break; default: // 讀取 EXIF Orientation 錯誤 exit; break; } header('Content-type: ' . image_type_to_mime_type(exif_imagetype($file))); echo $image; } else { // 圖檔讀取錯誤 } ?>
在 Windows 上安裝 ImageMagick for PHP (imagick)
- 到 PHP Snapshots 下載 PECL (pecl-5.2-dev (zip) (4.5M))。
- 將裡頭包含的 php_imagick.dll 放到 php\ext 目錄下。
- 在 php.ini 裡增加一項 extension=php_imagick.dll 即可。
- 為了 php_imagick.dll 這個檔案查了許多文章,只因 PHP 並沒有內建,在官方下載頁 PHP: Downloads 裡附的 PECL 壓縮檔裡也沒有,連 ImageMagick 官方也沒有編譯 Win32 的版本
- 使用 PECL4WIN :: The PECL Windows Repository 裡附的 php_imagick.dll 時出現:
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\php\\ext\\php_imagick.dll' - The specified module could not be found.\r\n in Unknown on line 0這樣的錯誤訊息。 - 曾一度試著下載 VC++ 2005 Express,想自行編譯,但也被一連串的錯誤訊息逼退。
2008-09-11
看了 Batman: The Dark Knight

圖片來自:鬼畜之道 ~地獄人間紀實~: Y SO SRS?- 我想下一集蝙蝠俠為了要克服自已最大的恐懼,跑到拉拉山修行後變成“獵犬俠“…。

圖片來自:誰可以接演【蝙蝠俠:黑暗騎士】中的小丑? @ A Rain Dog's Cave ‧ 雨狗小窩 :: PIXNET 痞客邦 ::。
蛙鞋破洞了
圖為我破掉的蛙鞋,拍攝於 2008-09-12。- 這雙蛙鞋什麼時候買的我已經不記得了,只記得是一雙不到 NT$500 的便宜蛙鞋,在相機(720sw)之前買的,所以最少有三年了吧。我的腳長 26 公分,穿這雙 7-9 號理論上應該剛好,但或許是因為我足背太厚,穿超過半小時後足背就會開始麻麻的,而真要用力踢水時足弓兩側又會有點鬆。
- 最近在游泳的時候,都會覺得右腳大拇指處怪怪,可是又看不出哪裡不對,還一度以為是指甲太長。今天仔細一瞧,原來破洞內側早就磨出一個凹槽了,只是今天看到裂痕才注意到而已。
- 雖然希望還能再撐一陣子,但再用力踢下去,套腳的部份應該就會裂開,所以現在得物色下一雙蛙鞋了。目前不考慮調整型的,因為曾跟 Benson 借來試用,覺得力道都被套鞋吸走了。原本是想要分叉式或單蹼蛙鞋的,但台灣網拍上似乎很少套腳的分叉式蛙鞋,而單蹼不但貴也不容易入手,目前看上眼的是 Gara-3000 長蛙鞋,其次是 Atomic SplitFins 套腳式的。
- CRESSI-SUB Gara-3000 套腳長蛙鞋,蛙鞋總長約 90cm,網拍上看到約 NT4300,其中 Gara-3000是黑色較硬,Gara-3000LD 是灰色較軟(我喜歡硬的)。
- Atomic SplitFins 套腳分叉式蛙鞋,網拍上看到約 NT2500,但圖是放調整式的?
Windows Live Writer 無體驗
- 因為想要試著離線編輯 Blogger,所以下載 Windows Live Writer 試試。
- 安裝前得先更新 Windows Update Agent,安裝完成後立即跳出一個連結,但也被我反射性的關掉…。
- 安裝結束只有在程式集多了 Windows Live Home 一個捷徑,打開卻找不到任何有關 Writer 的字眼,一怒之下將頁面一關,我的 Windows Live Writer 初體驗就這樣結束了…。(囧)
2008-09-08
天殺的 Windows XP SP3
- 剛剛試著用 ASUS V80 手機良伴(USB連線)來更新手機通訊錄,卻一直無法成功連線,查了一下才知道跟 SP3 有關。
- 試過覆蓋 usbser.sys 的方式,但因 Windows 檔案保護的功能而沒有成功,不過我也懶的再弄下去了。
- 不過還好用 Bluetooth 連線的方式還是可以正常使用,只是要另外裝 ASUS V80 手機良伴 Bluetooth 版的就是了。額外要注意的是,連結 Bluetooth 裝置時要選需要 Passkey 的連結方式。
2008-09-05
2008-09-04
海大操場.路不轉人轉
- 最近海大的濱海操場在施工,跑道被隔成兩半,出入口處也圍了網子,看樣子似乎是要把跑道縮減成兩百公尺的規模。
- 之前圍的網子只要墊個腳就可以直接跨過,今天再去運動時卻已經用封鎖線加高,而跑道也隔的更徹底了…。
- 跑道那裡再怎麼封鎖也還是有人去運動,不過卻變成很奇怪的“半圈折返跑法”。
2008-09-03
Google Chrome 瀏覽器
- 操作方式和 Firefox 類似。
- 內建 Google Gears,在瀏覽 Google Reader 時出現下載內容以供離線瀏覽的訊息。
- 在網址列輸入下列網址可以看到 Chrome 的額外資訊:
- about:memory
- about:stats
- about:network
- about:internets
- about:histograms
- about:dns
- about:cache
- about:plugins
- about:version
2008-09-02
在中正紀念堂跑三千

圖為中正紀念堂空照圖,圖中藍線長約一千公尺,來自 Google Maps。- 當兵時,在下部隊之後的運動就只有每天晨跑(不到四百公尺),和在體測時跑過兩次三千公尺。還記得那時是整隊去中正紀念堂跑三圈,兩次都是十八分鐘左右。
2008-08-30
PHP 摩斯碼 編碼/解碼 轉換程式
- 雖膾然不是很實用的東西,但在 Tsung's Blog 看到後就想試著寫寫看。我寫的版本在這裡下載:morse_code.zip。
- 從明文(原文)翻成摩斯碼時,因為是用點(.)和槓(-),要先處理掉原文裡的點、槓和空格,26個英文字母、10個數字、18個符號等,共54個字元。 (VT or 0x0B (11) in ) (since PHP 5.2.5)
- 點(.)和槓(-) 暫時取代為 \v (ASCII(11) vertical tab)和 \f (ASCII(12) form feed),也因如此這個程式需 PHP 5.2.5 以上。
- 將明文裡的空白字元視為單字結尾,換成“/”。
- 從摩斯碼翻成明文時,要注意替換的順序,原則是從長的先開始取代。
- 為了方便,我另外寫了一個依長度排序的自訂排序(同時為了維持索引的對應,而使用 PHP 內建的 uasort() ),先將編碼排好再寫死在程式裡。
2008-08-15
TOEIC 成績意料之外
- 今天一早就接到玉米的來電,提醒我上次參加的 TOEIC 考試(2008-07-27)可以查成績了,馬上上網查了一下,沒想到成績比我想像中的高,原本希望至少五百以上就好了。
- 總分為705 (滿分990),其中聽力為440,加上閱讀 265(滿分各為495)。
- 回想起來,聽力的部份錯的題數還是比預料的多,而閱讀方面,文法就不提了(淚),另外則是速度不夠,最後約有十題閱讀測驗來不及寫。
2008-08-14
Aopen G325
2008-08-07
買了一台MP4

圖片來自:★ISunfar 愛順發購物網- 到順發買了一台 GTEK PEBL 250 2G 的 MP4 播放器,準備拿來當父親節的禮物。
- 主要功能有音樂、影片、照片播放,電子書、FM收音機、錄音等。
- 2.6吋 26萬色 TFT LCD,16:9 寬螢幕,解析度是 400x240。
- 支援歌詞同步 .LRC
- 影片支援 .AVI(但沒有說明支援哪些編碼)、.RM、.RMVB 和 .FLV!
- 可插 T-Flash (即 MicroSD)記憶卡擴充,最大可支援到 4GB。
- 厚僅 0.7 cm 真的是超薄!
- USB 2.0 傳輸兼充電。
- 可看 .TXT 文字檔(限 ANSI 編碼)。
- 主控晶片:RK2706 軟體版本號:2.19
- 保固是一年。
- 按鍵精簡但不夠直覺,像是:主選單用左右鍵選擇,而子選單如歌曲列表是上下排列的,但依然得用左右鍵選擇,用了一陣子後還是容易按錯。
- 電源開關方式似乎有些多餘,側面的撥動鍵或許該設計成鎖定鍵。
- 調整音量的方式也很奇怪,而且還得插上耳機才行。
- 播幾次影片後,機背就開始發燙了。
- 圖示與文字都太小,電子產品好像都不太注重中年人的市場。
- 附贈耳機超醜,不過這也是常態啦。
- 桌布只有內建的六項可選,且不能設置為自已匯入的圖片。
- 有內建繁體中文,但預設值是簡體中文。
- FM收聽地區選項中,有大陸、日本、美國、歐洲和校園廣播等項目,就是沒有台灣可以選。
- FM自動搜尋得到的頻道很少,我只找的到兩個,同樣情況下我的手機就多很多。
- FM選單裡“桌面選擇”這項應該翻錯了,其功能是FM錄音。
- 外盒的產品特點有提到“遊戲下載”這項,不過裡頭卻完全找不到個屁。似乎只是晶片有這項功能但沒有實作。
- 可以邊聽音樂邊看電子書或圖片。
- ★ISunfar 愛順發購物網: GTEK PEBL2502G 2.6"免轉檔超薄型MP4播放器
- Home - Gigantek 閎發科技官網,不過目前(2008-08-07)還沒有這產品的訊息。
- 瑞芯微電子 RK2706 晶片產品展示頁。
2008-08-05
此 Change 非彼 Change 也
- 昨天中午吃飯時看到的新聞,當下就覺得這篇又是沒新聞時用來墊檔用的,不過依然造成了話題。Google 網誌搜尋已經有十幾篇在討論“baby changing”這個話題了,連聯合新聞網也再發了一篇:「changing後面應該要再加個東西。」。
2008-08-04
2008-07-27
TOEIC 考試
- 跟玉米去台科大考 TOEIC,人超多,其中還是以年輕人為主,但也不乏中年人。考題難度跟想像中差不多(希望成績也能像想像中差不多就好了)。
- 2008-08-15 就可上網路查詢成績了。
2008-06-23
這麼愛封鎖啊
圖為湘瑩秀出印有雪山獅子旗圖示的衣服,來自 YouTube - 康熙來了20080618 你不相信的藝能界宅女 part 3
- 之前就一直有在大陸論譠下載康熙來了,後來在網路上看到文章才注意到 2008-06-18 那集沒抓到。找了一下,原來是因為“政治因素”,真沒想到短短幾秒的畫面都可以拿來亂。
2008-05-24
The Bucket List 一路玩到掛
- 這部電影最讓我印像深刻的事,是最後一幕那個人是秘書,找到這樣的秘書真是三生有辛,不管那秘書到底叫 Tommy、Thomas 還是 Matthew …
- 以下附上一些關於秘書的對白:
Thomas: Uh, sir, I don't mean to sound indelicate but how do you want me to handle your...
Edward: Death? Treat it as if it were your own.
Thomas: So leave all the money to my assistant?Edward: Tommy, we live to die another day.
Thomas: How lucky for me.
Edward: No jokes, thomas, remember the will. you're so close.
Carter: Let me ask you something. Uh, is it tommy or thomas?
Thomas: Um, it's actually matthew, but he finds that too biblical.Edward: Thomas, I'd really like to say you're irreplaceable but I'd be lying.
Thomas: And I'd really like to say you're a gracious man, and I love my job but i, too, would be lying.
Edward: Turnabout is fair play. I believe you learned that from the master. - 如果真有那麼一天,我還是希望能夠明確的知道自已的死期,不過,就只怕到時錢都花完了人還沒死…。
2008-05-22
退租 MOD
- 換用光世代(10M/2M)已經一年了,老哥說得續約才行,原本想試試能不能在網路上處理的,不過沒多久就放棄了(囧),還好 123 按 9 轉客服還算滿方便。
- 原本的合約是「MOD三合一光纖專案」,兩年的線路加網路月費($980),再加上 MOD 一年月費($10)。
- 一年到期後,只有 MOD 漲價而已(好像是變 $89),但線路是兩年約,所以也沒辨法用續約方案。
- 我覺得 MOD 影片的價格並沒有多大優惠,但一樣有時間限制,而且也沒有什麼讓人會想非看不可的節目。
- 所以想省錢的話,只好選擇退租 MOD 囉,原本想說續約還綁 MOD 的話,應該可以換個 HD 的版本來看看的。
- 上網看了一下目前的優惠方案 10M/2M 是 線路加網路是 $990,而牌告費率是 $1300!
2008-05-15
2008-05-14
關於加班
- 一直以來就常聽說,台灣人加班時數是世界數一數二的。
- 今天看到“劣幣驅逐良幣的加班文化”一文裡,看到「就員工工作的積極性來看,調查顯示,印度在亞太地區排名第二,排在第一位的是新加坡,台灣排在最後。」
- 那麼台灣人上班、加班都在幹嘛!?(囧)
- 該篇文章中另一段更是經典:
員工工作效率經常因個人能力而有所不同。同樣的工作量,有人在一天八小時的工作時間內就可完成,有人卻得加班兩、三小時才能完成。很明顯地,這是個人能力優劣造成的差異。但是令人難以理解的是,能力差的人卻還可以領到加班津貼,等於是變相的加薪。這真是矛盾的現象。
- 時數才是可以稱斤算兩的,效率是什麼東西?可以用皮尺量嗎?
- 很快把工作完成而休息的人被視為打混,而死拖活拖、早加晚加的人才是認真負責…。
- 2oB 不久前找到的工作也是要“常態加班”的。
2008-05-13
2008-04-22
2008-04-18
Flash 遊戲存檔修改
- 以 flash 製做可以存檔的遊戲,其存檔會放在 %APPDATA%\Macromedia\Flash Player\#SharedObjects\ 下,副檔名為 sol 的檔案(實際目錄和檔名會依情況有所不同)。
- 通常資料是明文儲存的,以 HEX 編輯模式(如 UltraEdit 等)開啟修改即可。
- 以我在 Kongregate 玩 The Endless Zombie Rampage 為例,存檔是放在 C:\Documents and Settings\admin\Application Data\Macromedia\Flash Player\#SharedObjects\ZF3G4HEJ\chat.kongregate.com\game_files\0000\0703\the-endless-zombie-rampage.swf\userData.sol 。修改 exp 後的數值即可。
2008-03-31
2008-03-30
Dice Wars
2008-03-29
Do not stand at my grave and weep, I am not there
Do not stand at my grave and weep, I am not there, I do not sleep. I am in a thousand winds that blow, I am the softly falling snow. I am the gentle showers of rain, I am the fields of ripening grain. I am in the morning hush, I am in the graceful rush Of beautiful birds in circling flight, I am the starshine of the night. I am in the flowers that bloom, I am in a quiet room. I am in the birds that sing, I am in each lovely thing. Do not stand at my grave and cry, I am not there. I do not die.
- 還滿適合當墓誌銘的…。
2008-03-28
2008-03-20
2008-03-18
自由跟民主並沒有絕對的關係
8、 美國自由之家調查報告,台灣在一九七二年至一九七五年被列為「不自由國家」,一九七六年至一九九五年被列為「部分自由國家」,一九九六年起列入「自由國家」。2008年自由度調查報告,台灣再獲評為最高等級的「自由國家」。台灣在亞洲國家中名列前茅,與日本相當,顯示台灣民主獲高度肯定,這是全民的驕傲。
- 我覺得在台灣真的很自由,但民主這部份應該還要再加油。
2008-03-09
2008-03-06
2008-03-02
Wishlist 禮物清單
依想要的程度排序,不過應該沒有人會送給我吧…。最後更新日期:2008-09-12。
- 蛙鞋
- 單蹼蹼泳蛙鞋(Monofin)
- CRESSI-SUB GARA-3000 / GARA-3000-LD
- Atomic Aquatics Full-Foot SplitFin 分叉式蛙鞋,套腳式的版本。
- 單面面鏡。單面面鏡優缺點:較重、視野較好、可選度數矯正的較少、水下攝影時表情效果較好。
- ACARD ANS-9010 5.25 inch SATA x 2-to-DDRII RAM Disk
- 相機
- 要能存RAW格式,最好能同時存RAW+JPG。
- 包圍曝光
- 使用CF或SD記憶卡
- 最好可用三號AA電池
- 要有專用的潛水盒
- 要有適用的快門線
- 自動偵測是否垂直拍攝,並寫入 EXIF
- 支援 GPS 裝置
- 數位單眼相機 DSLR Canon EOS-400D黑色 +kit(EF-S 18-55mm鏡頭)
- 閃光燈 Canon Speedlite 580EX $13000 - $18000
- 超廣角鏡 18mm 以下
- 大光圈 F2 以上
- 廣角高倍率 旅遊鏡
- Canon EF 14mm F2.8L USM $60000 - $75000
- Canon EF 24mm F1.4L USM $40000 - $50000
- Canon EF 50mm F1.8 II $3000
- SIGMA 18-200mm F3.5-6.3 DC for Canon $12000
- 相機防水盒 Sea&Sea DX-400D (for Canon 400D) $231,000隻羊含稅
- Casio EX-F1
- NU Dolphin 防水 MP3 隨身聽 (~= $2800 2008-08)
- 腳架、雲台、快拆板
- 中小型腳架:收長(包括雲台)要在38cm以內(此為我目前的機車踏板與車箱長度以及包包大小)
- 腳踏車
- 剎車不能太大聲,而且可以長時間使用。
- 公路車
- 登山車
- 折疊車
- 座墊 ALLAY NOMAD 1.1
- 車褲 pearl izumi 298-3D 短褲 NT$2890
- 車褲 pearl izumi 296-3D 七分褲 NT$3465
- Giant 雨衣 透明 $300
- 外胎 maxxis 一級防刺胎
- 家用打氣筒 壓力計
- 隨車打氣筒 TOPEAK Micro Rocket AL/CB (鋁/碳纖) $840/$1600
- 後視鏡 TOPEAK Bar'n Mirror 牛角後視鏡(僅適用於平把) $1000
- 註車架
- Sigma 1606L有線碼表+迴轉速套件
- Egon GR-2或GC-2牛角握把
- TOPEAK TriBag 三鐵專用上管袋 $550
- TOPEAK TourGuide Handlebar Bag DX $2290
- 自行車保護罩 TOPEAK Bike Cover MTB
- 車衣/褲捷安特車衣專用洗劑
- 風衣
- 防風眼鏡
- 水袋背包
- 全指手套/半指手套
- 剎車皮
- 挖胎棒
- 備胎 內/外胎
- 砂紙
- 補胎片
- 法式氣嘴轉接器
- 六角扳手
- v煞 維修容易、遇水易失靈、煞車需用力,煞車皮選購軟硬度要適中不然很容易造成很吵的聲音、長時間煞車易因輪框過熱導致內胎爆胎、雨季也可換用雨天用的煞車皮。
- 自動製冰機
- 羅技 無限星幻手 無線滑鼠鍵盤組 diNovo Cordless Desktop
- 潛水用 水中紀錄板
- LCD Monitor
- 19in 以上
- 長寬比不拘
- 最好有能夠輕鬆將螢幕轉90度的底座支架
- Viewsoinc VP191b-2 @17000
- UPS
- 在線式
- RJ11/RJ45突波保護器
- 800VA以上
- 不斷電系統 Delta GES102N N-series 1000VA On-line NT$7500
- 安靜的電腦
- 無風扇電源供應器
- 無風扇主機板
- 固態硬碟 Solid State Disk
- i-RAM 雖然很想要,不過還是等它改成SATA II在說。
- 硬碟 SATA 容量不拘WD360GD
- 鍵盤 Layout 應與桌上型相似 左下角 為 Ctrl 而非 FN
- Power Supply 全鋁 無/12cm風扇 主動式PFC 80Plus
- SilverStone ST30NF >= $4000
- 筆記型電腦
- 大小最好在12到15in內
- keyboard layout
- 左下角是Ctrl鍵,而不是Fn或其它
- Del和Backspace鍵要明顯,而且不能是複合鍵
- 1.5kg以下
- RAID 支援 Hot-swap、Hot-spare
- APC UPB70 筆電萬用電池 (~= $5500)
- 吉他 Yamaha Silent Guitar SLG100N/S >= $15000
- 透明獨木舟 Molokini
- 車子 Smart
三腳架 SLIK MINI-PRO III NT$850Pioneer DVR-AXX 最主要的是銀色面版 @1800- 手機
- 要可以聽mp3
- 可擴充記憶卡
- 要能邊充電邊使用
Asus V80 $5500
2008-03-01
Rail of War

- 前兩、三關還可以橫衝直撞,之後的關卡就得步步為營,甚至“以退為進”才行。
- 遊戲節奏還滿慢的,雖然後期會得到比較快的車種,但速度超過 180 KM/h 過彎就會出軌,還得要全部車箱都出彎才能加速,不實用。
- 執行夜間任務時畫面太黑的話,可以試著調整螢幕 Gamma 值( nVidia 顯卡驅動)。
- 修改金錢:找 savedmission.sol 這個檔案,用16進位模式編輯(在“cash”之後)。
- Rail Of War Action Game - Play Free Flash Games Online - Youdagames.com
- Rail of War full version 1.3 RapidShare.
2008-02-29
安裝與使用 phpDocumentor
- 安裝 PEAR:
go-pear.bat - 安裝 phpDocumentor:
pear.bat install -o PhpDocumentor - 安裝時遇到 memory_limit = 8M (php.ini)不夠用…,要 16M 才夠。
- 執行 PhpDocumentor:
phpdoc.bat -o HTML:Smarty:PHP -d c:\path\to\project -t c:\path\to\project\docs
2008-02-20
關於 學長姊和學弟妹的英文翻譯 雜想
- 原本是沒有相對應字彙。upper/lower 和 senior/junior classmate 還滿生硬的。
- 雖然“聞道有先後”,但該令人尊敬的是“聞道”,而不是“先後”。
2008-02-11
2008-02-07
在 CentOS 與 Ubuntu 上設定 ADSL 撥接
- 在 CentOS 上是執行 /sbin/adsl-setup 這個 Shell script 。然後依提示輸入撥接帳號、密碼、DNS 的 IP (Hinet 主要的是 168.95.1.1) 及選擇一些選項(開啟防火牆、開機時自動撥接…等)即可。
- 手動啟動則執行 /sbin/adsl-start ,以此類推。
- 在 Ubuntu 上則是執行 sudo pppoeconf 這個 Shell script 。然後依提示輸入撥接帳號、密碼、DNS 及選擇一些選項(開啟防火牆、開機時自動撥接…等)即可。
- 手動連線
sudo pon dsl-provider,手動斷線sudo pon dsl-provider
2008-01-31
不用三腳架也能拍出完美不手震的影像
- 好像還滿方便的(至少夠便宜),有點像在用單腳架的感覺,只不過一個是住下壓、一個往上拉。原文沒有文字敘述,以下為簡記。
- 材料:一個用在相機腳架或雲台上的那種螺絲 (1/4 螺絲;有零賣)、一條細繩子(至少需同等於身高)和一個大型螺絲墊片。
- 螺絲與墊片挷在繩子兩端,螺絲鎖在相機上,拍照時一腳踩在墊片並把相機往上抬,以拉直繩子。
關於 PortableApps.com
- 立意不錯,但打包成安裝檔的點還滿詭異的(只針對可攜性,不考慮免安裝的部份?)。
- 跟各軟體的官方釋出的版本比起來,更新較慢(像 Firefox 2 剛出那陣子一直有安全性更新那種情況),語系較少(像 OpenOffice …等)。
- 有些軟體沒有必要用 PortableApps.com 的版本,如 Notepad++ 下載官方提供壓縮檔的版本即可。
- 而另外有一些軟體的設定值存取不順利,像我用 MPlayer Portable 1.0 RC1 時修改設定要重覆設定兩次才能成功。(也許是個案)
2008-01-28
關於 XDite 網站創業,你準備好了嗎?系列
- 簡單來分,成功的因素不外乎就是“運氣”跟“實力”,沒有實力的話,不就只能靠運氣了嗎。(囧)
- 在“實力”的項目之中,最能掌握的就是自身擁有的能力,至少比較不會受外在因素(像資金、人事)影響。
- 很多時候、很多的人、事、物,都還是得親自遇到了才知道。
2008-01-21
老哥買了 Wii + Fit
2008-01-16
InstallShield Error code: -6006
- 這次重灌中安裝驅動程式時遇到的問題,詳細原因並不清楚,只知道跟 Windows Installer 有關。我的情況是在 Windows Installer 設為 Manual 的狀態下,沒有自動啟動,手動打開就好了。
2008-01-12
關於國內大學要求微軟調降權利金相關新聞
- 若沒有表現出一副“沒有也沒關係,用別的也可以”的樣子,反而露出一臉“我就是只要買你的東西,你給我便宜點”的傻樣,怎麼跟人談殺價,這個不是菜市場阿婆都會的道理嗎。(囧)
- 我最後一次使用的微軟 Office 系列的經驗,大概是 OfficeXP 剛推出的版本,之後就開始改用 OpenOffice.org,不過,我覺得相形之下, OpenOffice.org 實在稱不上“好用”。
- 目前我個人主要使用的編輯器是 Notepad++ ,文件格式是 HTML 與文字檔,OpenOffice.org 常用的就僅有試算表,偶而用 Writer 和 Impress 開啟一些(大都是微軟 Office 格式的)文件而已。
- 使用 HTML 格式的好處之一是編輯與瀏覽的環境需求很低,只需要文字編輯器和瀏覽器而已(可說是僅次純文字)。字元編碼在支援 Unicode/UTF8 越來越完善的今日,也逐漸不成問題了。
- 似乎講偏了…
2008-01-10
從登錄檔修改服務啟動的類型
- 以下內容的測試環境是 WindowsXP SP3RC1(在 VirtualPC 2007 所建構的 VM 之中),提到的“服務”指的是 Windows 內建的 service,一種在背景執行的特殊程式。“登錄”指的是 Windows Registry,而“登錄檔”指的是副檔名為 reg 的文件。
- 一般情況下,透過執行 services.msc 這項管理工具來修改服務的啟動類型即可,編輯成登錄檔的形式僅便於重灌或大量套用。更動登錄有其風險,不建議冒然修改。
- 文末附上個人設定僅供參考,若需套用,請務必檢視、修改以符合實際需求,勿直接匯入。用 Notepad 存檔時編碼要選 Unicode (Notepad++ 即 UCS-2 little Endian),並將副檔名設為 reg。
- Start (DWORD) 一值即為設定啟動類型的項目,可用值如下:
- 0: Boot
- 1: System
- 2: Automatic
- 3: Manual
- 4: Disable
- 服務的詳細機碼內容,可執行 regedit.exe ,到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ 中查看。
- 依更新進度不同,每個作業系統有的服務項目會有所增減,因為有些服務是在 Service Pack 才加入的。(像 Bluetooth Support Service, Extensible Authentication Protocol Service, Health Key and Certificate Management Service, Network Access Protection Agent, Network Provisioning Service, Wired AutoConfig …等)
- 目前測試結果(測試方法是先將所有服務設為 Manual,再逐項啟動),只有“Plug and Play”與“Remote Procedure Call (RPC)”兩項較有設為自動啟動的必要(否則大部份的服務無法正常的手動啟動)。
- 而在所有服務都停用的情況下,Windows 依然可以正常開機、登入,但不只工作列無法顯示,還有大部份的 MMC 管理頁面也都無法正常運作。此時只能用 Ctrl+Alt+Del 叫出工作管理員來執行程式。前述情況是在 VM 環境內測試的結果,實機測試有些出入(工作列有出現)。
- 有些服務從名稱、說明或依存性,都看不出有什麼大不了的,但實際上卻很重要。像是使用 PPPoE (台灣常見的 ADSL 撥接) 時, Telephony 服務是必要的(還有 Network Connections、Remote Access Connection Manager 兩項),但從說明看來卻像是 VoIP 之類的服務。
- 有些服務如 Print Spooler、Smart Card、UPS … 等,則應依個人設備需設定。
- Windows service - Wikipedia, the free encyclopedia
- Windows Registry - Wikipedia, the free encyclopedia
- CurrentControlSet\Services Subkey Entries Microsoft Help and Support
Windows Registry Editor Version 5.00 #Start (DWORD): 0x0 - Boot; 0x1 - System; 0x2 - Automatic; 0x3 - Manual; 0x4 - Disabled. #@See http://support.microsoft.com/kb/103000/en-us #Alerter [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Alerter] "Start"=dword:00000004 #Application Layer Gateway Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ALG] "Start"=dword:00000004 #Application Management [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AppMgmt] "Start"=dword:00000003 #Automatic Updates [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv] "Start"=dword:00000003 #Background Intelligent Transfer Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BITS] "Start"=dword:00000003 #Bluetooth Support Service #ClipBook [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ClipSrv] "Start"=dword:00000004 #COM+ Event System [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventSystem] "Start"=dword:00000002 #COM+ System Application [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\COMSysApp] "Start"=dword:00000003 #Computer Browser [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser] "Start"=dword:00000004 #Cryptographic Services #@See http://www.binbin.net/messages/qa_win_xp/0037.htm [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CryptSvc] "Start"=dword:00000003 #DCOM Server Process Launcher #Windows Firewall Network Connections service and the COM+ Event System service #@See http://support.microsoft.com/kb/892504/en-us [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DcomLaunch] "Start"=dword:00000003 #DHCP Client [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dhcp] "Start"=dword:00000004 #Distributed Link Tracking Client [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TrkWks] "Start"=dword:00000004 #Distributed Transaction Coordinator [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC] "Start"=dword:00000004 #DNS Client [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache] "Start"=dword:00000002 #Error Reporting Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ERSvc] "Start"=dword:00000004 #Event Log [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog] "Start"=dword:00000002 #Extensible Authentication Protocol Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EapHost] "Start"=dword:00000004 #Fast User Switching Compatibility [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\FastUserSwitchingCompatibility] "Start"=dword:00000004 #Health Key and Certificate Management Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hkmsvc] "Start"=dword:00000004 #Help and Support [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\helpsvc] "Start"=dword:00000004 #HID Input Service, Human Interface Device Access [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HidServ] "Start"=dword:00000004 #HTTP SSL [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTPFilter] "Start"=dword:00000003 #IMAPI CD-Burning COM Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ImapiService] "Start"=dword:00000004 #Indexing Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CiSvc] "Start"=dword:00000004 #IPSEC Services [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent] "Start"=dword:00000004 #Logical Disk Manager [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dmserver] "Start"=dword:00000003 #Logical Disk Manager Administrative Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dmadmin] "Start"=dword:00000003 #Messenger [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Messenger] "Start"=dword:00000004 #MS Software Shadow Copy Provider [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SwPrv] "Start"=dword:00000004 #Net Logon [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon] "Start"=dword:00000004 #NetMeeting Remote Desktop Sharing [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mnmsrvc] "Start"=dword:00000004 #Network Access Protection Agent [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\napagent] "Start"=dword:00000004 #Network Connections [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netman] "Start"=dword:00000002 #Network DDE [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetDDE] "Start"=dword:00000004 #Network DDE DSDM [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetDDEdsdm] "Start"=dword:00000004 #Network Location Awareness (NLA) [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Nla] "Start"=dword:00000004 #Network Provisioning Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\xmlprov] "Start"=dword:00000004 #NT LM Security Support Provider [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NtLmSsp] "Start"=dword:00000004 #Performance Logs and Alerts [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SysmonLog] "Start"=dword:00000004 #Plug and Play [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PlugPlay] "Start"=dword:00000002 #Portable Media Serial Number Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WmdmPmSN] "Start"=dword:00000004 #Print Spooler [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler] "Start"=dword:00000003 #Protected Storage [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ProtectedStorage] "Start"=dword:00000004 #QoS RSVP [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RSVP] "Start"=dword:00000004 #Remote Access Auto Connection Manager [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasAuto] "Start"=dword:00000004 #Remote Access Connection Manager [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan] "Start"=dword:00000003 #Remote Desktop Help Session Manager [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RDSessMgr] "Start"=dword:00000004 #Remote Procedure Call (RPC) [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs] "Start"=dword:00000002 #Remote Procedure Call (RPC) Locator [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcLocator] "Start"=dword:00000004 #Remote Registry [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RemoteRegistry] "Start"=dword:00000004 #Removable Storage [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NtmsSvc] "Start"=dword:00000003 #Routing and Remote Access [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RemoteAccess] "Start"=dword:00000004 #Secondary Logon [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\seclogon] "Start"=dword:00000004 #Security Accounts Manager [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SamSs] "Start"=dword:00000003 #Security Center [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wscsvc] "Start"=dword:00000004 #Server [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver] "Start"=dword:00000004 #Shell Hardware Detection [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ShellHWDetection] "Start"=dword:00000004 #Smart Card [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SCardSvr] "Start"=dword:00000004 #SSDP Discovery Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SSDPSRV] "Start"=dword:00000004 #System Event Notification [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SENS] "Start"=dword:00000004 #System Restore Service [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\srservice] "Start"=dword:00000004 #Task Scheduler [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule] "Start"=dword:00000004 #TCP/IP NetBIOS Helper [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LmHosts] "Start"=dword:00000004 #Telephony [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TapiSrv] "Start"=dword:00000003 #Telnet [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TlntSvr] "Start"=dword:00000004 #Terminal Services [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService] "Start"=dword:00000004 #Themes [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Themes] "Start"=dword:00000004 #Uninterruptible Power Supply [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UPS] "Start"=dword:00000004 #Universal Plug and Play Device Host [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\upnphost] "Start"=dword:00000004 #Volume Shadow Copy [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS] "Start"=dword:00000004 #Web Client [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient] "Start"=dword:00000004 #Windows Audio [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AudioSrv] "Start"=dword:00000002 #Windows Firewall/Internet Connection Sharing (ICS) [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess] "Start"=dword:00000004 #Windows Image Acquisition (WIA) [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stisvc] "Start"=dword:00000004 #Windows Installer [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSIServer] "Start"=dword:00000003 #Windows Management Instrumentation [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\winmgmt] "Start"=dword:00000003 #Windows Management Instrumentation Driver Extensions [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Wmi] "Start"=dword:00000004 #Wired AutoConfig [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dot3svc] "Start"=dword:00000004 #Windows Time [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time] "Start"=dword:00000004 #Windows User Mode Driver Framework [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UMWdf] "Start"=dword:00000004 #Wireless Zero Configuration [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WZCSVC] "Start"=dword:00000004 #WMI Performance Adapter [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WmiApSrv] "Start"=dword:00000004 #Workstation [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation] "Start"=dword:00000004
2008-01-07
原來 UNIX-like 的目錄結構有 FHS 這項標準啊
- 從以前剛接觸 linux 開始,就一直對目錄結構有很多的疑問,今天無意間找到 Filesystem Hierarchy Standard 這份文件著實解決了我不少疑惑。
- “user » usr”在那年代,省這一個字真的這麼開心嗎!?
2008-01-05
2008-01-02
關於 Virtual PC 2007
- 2008-01-15 更新:
- Virtual PC 2007 有預先配置硬碟空間的選項,不過不在“New Virtual Machine Wizard”裡,而是要在“Virtual Disk Wizard”中選擇“Fixed size”。
- 使用預先配置的硬碟空間後,明顯有加快作業系統的安裝速度,大約是從 30 進步到 25 分鐘,不過還是比 VMware Server 稍慢(前述兩者的時間差並沒有精確比較,僅記錄、不值參考)。
- 嘗試安裝 Linux 失敗 (試過 CentOS-5.1-i386-bin-DVD.iso 與 ubuntu-7.10-desktop-i386.iso 的 live-cd 模式),不過這也是在預料之中的事。一個意外的事是安裝 Linux 失敗後的 Virtual Disk ,拿去安裝別的作業系統會當機?
- 試用的環境與安裝的作業系統都是 Windows XP SP2 up to date。
- 半年前曾試用過 VMware Server 1.0.2-39867,比起來,Virtual PC 2007 安裝作業系統所需時間較久。
這應該與沒有預先配製硬碟空間有關(Virtual PC 沒有這項設定)。 - 在安裝 Guest OS 的過程中沒有提示讓滑鼠游標脫離 VM 的方法(按 Right Alt 鍵),而VMware Server 會在狀態列提示。
- 內建分享資料夾的功能,設定相當簡單。
- 切換全螢幕模式時會同時切換解析度,而且反應速度相當快。
- 在 Guest OS 運行時更改 VM 設定,會暫停所有 Guest OS (即使只更動其中之一)。
- 可以更動 VM 硬體設備與選項太少,像是最多只能有三個硬碟、一台光碟機和一台軟碟機,也不能新增清單上沒有的設備。
- Microsoft Virtual PC 2007官方網站,下載頁面 在此
個人常用鏈結
Labels
- .NET (1)
- Accessibility (3)
- ADSL (1)
- Apache (9)
- ASP.NET (1)
- Babyer (1)
- Browser (1)
- Canon MX700 (1)
- CAPTCHA (1)
- CentOS (1)
- CSS (7)
- DB:SQL (1)
- DB:SQLite (2)
- DNS (3)
- English (1)
- EXIF (1)
- filename.ext (1)
- Firefox (4)
- Firewall (1)
- Flash (4)
- Game 遊戲 (28)
- Game:PC (6)
- Game:PS3 (4)
- Game:Xbox360 (3)
- GNU (1)
- Google (6)
- Google:Android (8)
- Google:Blogger (2)
- Google:Chrome (1)
- Google:Code (2)
- GoogleAppEngine (2)
- GoogleMaps (1)
- GPG (1)
- Hinet (1)
- HTML (2)
- HTTP (1)
- i18n (1)
- IE (3)
- Java (2)
- Javascript (2)
- Linux (1)
- Microsoft (2)
- MIME (1)
- MySQL (7)
- NexusOne (2)
- OAuth (1)
- Open source 開放原始碼 (1)
- OpenID (1)
- OS (1)
- OS:Windows (33)
- PHP (49)
- PHP:GTK (2)
- PHP:PEAR (1)
- PHP:PECL (3)
- PHP:ZendFramework (4)
- PostgreSQL (1)
- PPPoE (1)
- RegularExpressions (2)
- Security (11)
- Sphinx (2)
- SQLite (1)
- TCP (1)
- Ubuntu (1)
- UDP (1)
- Usability (2)
- Virtaul PC (1)
- Wii (2)
- XML (1)
- Yahoo (2)
- Yahoo:BBAuth (1)
- Yahoo:YUI (1)
- Youtube (1)
- 不如賣雞排 (2)
- 不願役 (33)
- 中文處理 (1)
- 圖 (5)
- 媒體 (2)
- 影片 (1)
- 影音 (19)
- 思 (8)
- 攝 (9)
- 政 (7)
- 敗 (2)
- 漫畫 (5)
- 生活 (34)
- 硬體設備 (13)
- 網站開發 (16)
- 網路 (8)
- 英文 (3)
- 貓 (2)
- 資安 (1)
- 趣 (29)
- 軟體 (12)
- 遊記 (8)
- 運動 (2)
- 關於我 (1)
- 電影 (10)





















