2007年11月29日 星期四

在UltraEdit中作PHP語法檢查

參考自 Dabinn的筆記文章
可以直接在UltraEdit中檢查php語法是否正確的設定
很好用的東東
記下來免得又忘了


Advanced-->Tool Configuration
按Insert

[Command]
Manu Item Name: PHP syntax Check
(PHP5)
Command Line: C:\php\php-win.exe -l -f %F
Working Directory: C:\php\
(PHP4)
Command Line: C:\php\cli\php.exe -l -f %F
Working Directory: C:\php\cli\

[Options]
Program Type: Dos program
v Save active File

[Output]
Command Output: Output to List Box
v Capture Output
Replace select text with: No Replace


設到這樣就已經可以用了
不過去設一下快速鍵會更順手
Advanced-->Configuration-->Key Mapping
找到AdvancedUserTool1
內定快速鍵是Ctrl+Shit+0
改為Alt+S

設定完了
平常按Ctrl+S是存檔
按Alt+S就是存檔並作語法檢查了
語法檢查結果會顯示在UltraEdit底下的視窗中
參考自 Dabinn的筆記文章
可以直接在UltraEdit中檢查php語法是否正確的設定
很好用的東東
記下來免得又忘了


Advanced-->Tool Configuration
按Insert

[Command]
Manu Item Name: PHP syntax Check
(PHP5)
Command Line: C:\php\php-win.exe -l -f %F
Working Directory: C:\php\
(PHP4)
Command Line: C:\php\cli\php.exe -l -f %F
Working Directory: C:\php\cli\

[Options]
Program Type: Dos program
v Save active File

[Output]
Command Output: Output to List Box
v Capture Output
Replace select text with: No Replace


設到這樣就已經可以用了
不過去設一下快速鍵會更順手
Advanced-->Configuration-->Key Mapping
找到AdvancedUserTool1
內定快速鍵是Ctrl+Shit+0
改為Alt+S

設定完了
平常按Ctrl+S是存檔
按Alt+S就是存檔並作語法檢查了
語法檢查結果會顯示在UltraEdit底下的視窗中

2007年11月12日 星期一

最近太忙了....

最近忙翻了~~
先是到廣州出差
回來後又是瘋狂的改版
真是差點沒過勞死.....

謎之音:想不到一個多月了才寫一篇,而且還跟工作,理財不相關的題材..... 最近忙翻了~~
先是到廣州出差
回來後又是瘋狂的改版
真是差點沒過勞死.....

謎之音:想不到一個多月了才寫一篇,而且還跟工作,理財不相關的題材.....

2007年10月2日 星期二

Apache 檔案上傳限制設定

要修改的地方有二個
1.Apache的httpd.conf
2.PHP的phi.ini

httpd.conf的部份

< f i l e s >
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 524288
註:524288是512*1024,單位為bit
< / f i l e s >


php.ini的部份

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time = 20000

;Maximum execution time of each script, in seconds
max_input_time = 20000

; Maximum amount of time each script may spend parsing request data
memory_limit = 50M

; Maximum amount of memory a script may consume (50MB,default =8MB)

post_max_size = 50M

; Maximum size of POST data that PHP will accept.

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =

; Maximum allowed size for uploaded files.
upload_max_filesize = 100M

要修改的地方有二個
1.Apache的httpd.conf
2.PHP的phi.ini

httpd.conf的部份

< f i l e s >
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 524288
註:524288是512*1024,單位為bit
< / f i l e s >


php.ini的部份

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time = 20000

;Maximum execution time of each script, in seconds
max_input_time = 20000

; Maximum amount of time each script may spend parsing request data
memory_limit = 50M

; Maximum amount of memory a script may consume (50MB,default =8MB)

post_max_size = 50M

; Maximum size of POST data that PHP will accept.

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =

; Maximum allowed size for uploaded files.
upload_max_filesize = 100M

2007年10月1日 星期一

投資基金 善用夏普值、標準差

投資基金二年多了...
一直以來都是大概看一下市場趨勢...
下手....績效到一定程度就贖回...
從來就不看夏普值、標準差的....

看了這篇文章..來我要好好利用這二個數值了.....


投資基金 善用夏普值、標準差

面對投資,復華投信亞太成長基金經理人楊惠元要投資人捐棄一切先入為主的觀念,善用夏普值(Sharp Ra-tio)與標準差(Standard Devia-tion)這兩個容易獲得的統計數據,選出良好基金,並且決定進出場時點。


「許多投資人會被發行投信、產品的話題誤導」,楊惠元表示,不少投資人迷信「外國的月亮比較圓」,堅信海外市場就該由外資投信操盤,或是過度熱衷於話題基金。回歸到投資本質,一個好的全球基金操作團隊,什麼樣的話題熱潮都會即時布局,端賴投資人有沒有辦法找出這樣的基金。

37歲的楊惠元,在投資上相當積極,投資基金以單筆操作為主,因此挑選基金、決定進出場時點變的非常重要。在挑選基金上,楊惠元建議投資人可以回歸數字面,理性選擇基金。 首先,楊惠元要投資人參考基金的夏普值,夏普值是指基金每一單位的風險所能獲得的超額報酬,該值愈高,表示在相同風險下,帶來的報酬愈大,也就是基金的績效愈好,是同時衡量風險及報酬的最佳指標。

楊惠元認為,夏普值是最能夠彰顯操盤能力的數值,因此建議投資人以夏普值篩選基金。 在選出基金後,建議可以由報酬率的標準差來衡量基金的波動度,以決定進出場時機。簡單而言,在基金報酬率幅度高出一個標準差時,就可以贖回一半的投資金額,高出兩個標準差時,便可以全面獲利了結。

若是基金在市場態勢不變下,績效卻不如預期,報酬率幅度低於平均超過一個標準差,這時候代表基金處於低點,建議可以加碼一半額度,或是降低超過兩個標準差,則建議全面加碼,低點布局。

那麼,什麼時候應該認賠出場呢?投資態度積極的楊惠元表示,假設市場出現反轉趨勢,或基金報酬率持續低於平均超過一個標準差的情況逾一個禮拜,就建議認賠出場。 一個禮拜的時間或許很短,但在楊惠元觀念中,資金利用分秒必爭,表現偏弱的市場,長線雖然有回升可能,但在資金等待市場轉強的同時,一定有更好的標的可以投資。然而,楊惠元提醒投資人,這樣的基金操作方式需要有一定的歷史依據,建議投資人介入成立二、三年以上的基金,並且搭配總體經濟、產業新聞觀察,投資方向將更明確。


徐慧君 【2007-09-24/經濟日報/B5版/基金平台】
投資基金二年多了...
一直以來都是大概看一下市場趨勢...
下手....績效到一定程度就贖回...
從來就不看夏普值、標準差的....

看了這篇文章..來我要好好利用這二個數值了.....


投資基金 善用夏普值、標準差

面對投資,復華投信亞太成長基金經理人楊惠元要投資人捐棄一切先入為主的觀念,善用夏普值(Sharp Ra-tio)與標準差(Standard Devia-tion)這兩個容易獲得的統計數據,選出良好基金,並且決定進出場時點。


「許多投資人會被發行投信、產品的話題誤導」,楊惠元表示,不少投資人迷信「外國的月亮比較圓」,堅信海外市場就該由外資投信操盤,或是過度熱衷於話題基金。回歸到投資本質,一個好的全球基金操作團隊,什麼樣的話題熱潮都會即時布局,端賴投資人有沒有辦法找出這樣的基金。

37歲的楊惠元,在投資上相當積極,投資基金以單筆操作為主,因此挑選基金、決定進出場時點變的非常重要。在挑選基金上,楊惠元建議投資人可以回歸數字面,理性選擇基金。 首先,楊惠元要投資人參考基金的夏普值,夏普值是指基金每一單位的風險所能獲得的超額報酬,該值愈高,表示在相同風險下,帶來的報酬愈大,也就是基金的績效愈好,是同時衡量風險及報酬的最佳指標。

楊惠元認為,夏普值是最能夠彰顯操盤能力的數值,因此建議投資人以夏普值篩選基金。 在選出基金後,建議可以由報酬率的標準差來衡量基金的波動度,以決定進出場時機。簡單而言,在基金報酬率幅度高出一個標準差時,就可以贖回一半的投資金額,高出兩個標準差時,便可以全面獲利了結。

若是基金在市場態勢不變下,績效卻不如預期,報酬率幅度低於平均超過一個標準差,這時候代表基金處於低點,建議可以加碼一半額度,或是降低超過兩個標準差,則建議全面加碼,低點布局。

那麼,什麼時候應該認賠出場呢?投資態度積極的楊惠元表示,假設市場出現反轉趨勢,或基金報酬率持續低於平均超過一個標準差的情況逾一個禮拜,就建議認賠出場。 一個禮拜的時間或許很短,但在楊惠元觀念中,資金利用分秒必爭,表現偏弱的市場,長線雖然有回升可能,但在資金等待市場轉強的同時,一定有更好的標的可以投資。然而,楊惠元提醒投資人,這樣的基金操作方式需要有一定的歷史依據,建議投資人介入成立二、三年以上的基金,並且搭配總體經濟、產業新聞觀察,投資方向將更明確。


徐慧君 【2007-09-24/經濟日報/B5版/基金平台】

2007年9月17日 星期一

PHP 檢查信用卡號碼

以前寫過身份證字號的驗證程式...
自從有信用卡後...就常在想怎麼驗證信用卡號..
今天總算看到了...特別摘錄一下
參考資料來源:PHP 檢查信用卡號碼



PHP:
/* luhn_checker(): This is a small PHP function for checking valid *
* credit card with LUHN algorithm *
* *
* Last updated: 26 August 2007 *
* This is a free PHP script under GNU GPL version 2.0 or above *
* Copyright (C) 2007 Sam Tang *
* Feedback/comment/suggestions : http://www.real-blog.com/ */

function luhn_checker($card_num){
// 將非數字的字串移除
$card_num = preg_replace("/\D|\s/", "", $card_num);

$sum = 0;
for($i=0; $i $digit = substr($card_num, $i, 1);
if(($i % 2) == 0){
// 在單數位置的數值乘 2
$digit = $digit * 2;
}

if ($digit> 9) $digit = $digit - 9;
$sum += $digit;
}

if(($sum % 10) == 0 && strlen($card_num) == 16){
return TRUE;
}else{
return FALSE;
}
}

/* Example
if(luhn_checker("1234567812345678")){
echo "Correct!";
}else{
echo "Wrong card number!";
}
*/
?>

以前寫過身份證字號的驗證程式...
自從有信用卡後...就常在想怎麼驗證信用卡號..
今天總算看到了...特別摘錄一下
參考資料來源:PHP 檢查信用卡號碼



PHP:
/* luhn_checker(): This is a small PHP function for checking valid *
* credit card with LUHN algorithm *
* *
* Last updated: 26 August 2007 *
* This is a free PHP script under GNU GPL version 2.0 or above *
* Copyright (C) 2007 Sam Tang *
* Feedback/comment/suggestions : http://www.real-blog.com/ */

function luhn_checker($card_num){
// 將非數字的字串移除
$card_num = preg_replace("/\D|\s/", "", $card_num);

$sum = 0;
for($i=0; $i $digit = substr($card_num, $i, 1);
if(($i % 2) == 0){
// 在單數位置的數值乘 2
$digit = $digit * 2;
}

if ($digit> 9) $digit = $digit - 9;
$sum += $digit;
}

if(($sum % 10) == 0 && strlen($card_num) == 16){
return TRUE;
}else{
return FALSE;
}
}

/* Example
if(luhn_checker("1234567812345678")){
echo "Correct!";
}else{
echo "Wrong card number!";
}
*/
?>

2007年9月4日 星期二

PHP function: 亂數密碼產生

最近發現我很常在Tsung's Blog那邊挖寶

今天又看到PHP function: 亂數密碼產生這篇~

僅節錄程式部份及其說明

程式有兩個地方可以設定:
  $password_len: 設定密碼長度要多長
  $word: 設定密碼要包含那些字元(密碼會由這些字元去湊, 並產生出來)
  PS:照理說要符合上述所說的安全性, 最好是把符號, 英數字大小寫, 都另外存

    Array 來拼湊(確定一定產生出大小寫和符號), 這個以後再說吧. :P
程式執行方法:
  直接呼叫 generatorPassword(), 接收回傳值就是了.
  ex: $passwd = generatorPassword()

程式碼
<?php
function generatorPassword()
{
$password_len = 7;
$password = '';

// remove o,0,1,l
$word = 'abcdefghijkmnpqrstuvwxyz!@#$%^&*()-=ABCDEFGHIJKLMNPQRSTUVWXYZ<>;{}[]23456789';
$len = strlen($word);

for (
$i = 0; $i < $password_len; $i++) {
$password .= $word[rand() % $len];
}

return
$password;
}

// USAGE:
// echo generatorPassword() . "\n";
?>

最近發現我很常在Tsung's Blog那邊挖寶

今天又看到PHP function: 亂數密碼產生這篇~

僅節錄程式部份及其說明

程式有兩個地方可以設定:
  $password_len: 設定密碼長度要多長
  $word: 設定密碼要包含那些字元(密碼會由這些字元去湊, 並產生出來)
  PS:照理說要符合上述所說的安全性, 最好是把符號, 英數字大小寫, 都另外存

    Array 來拼湊(確定一定產生出大小寫和符號), 這個以後再說吧. :P
程式執行方法:
  直接呼叫 generatorPassword(), 接收回傳值就是了.
  ex: $passwd = generatorPassword()

程式碼
<?php
function generatorPassword()
{
$password_len = 7;
$password = '';

// remove o,0,1,l
$word = 'abcdefghijkmnpqrstuvwxyz!@#$%^&*()-=ABCDEFGHIJKLMNPQRSTUVWXYZ<>;{}[]23456789';
$len = strlen($word);

for (
$i = 0; $i < $password_len; $i++) {
$password .= $word[rand() % $len];
}

return
$password;
}

// USAGE:
// echo generatorPassword() . "\n";
?>

Aglogo網路賺錢回顧

太久沒回來關心這個了,於是又四處看看,看到robin的活動~
【活動】我幫你拉AGLOCO下線!

趕緊來參加~讓下線多增加幾個也好~~

Typed ROBIN 這個專講網路賺錢的部落格現在在舉辦一個【活動】我幫你拉AGLOCO下線! ,你不必是他的下線也可以參加,趕快去看看。

話說回來,Typed ROBIN 的網站還真不是蓋的,一直以來都有在認真關心Agloco的發展
而不是像其他網站(還有我的~)只是把文章貼一貼就算了~

從2月到現在,我大概也只有看到robin的站有在針對Agloco的發展持續發文,其他的倒是沒看到 (還是我資訊太落後,沒看到更屌的??)

可以從他每個月的AGLOCO月報 (2007/07)答覆網友對我幫你拉AGLOCO下線活動的疑慮
這一的文章中看出,他真的很用心在經營這件事!!

補充:真的是我太過無知了...剛剛用google搜尋了一下..
一瞬間又看到幾個好站...
網路賺錢三十六計-Adsense,AGLOCO,AdBux
Adsense繁體中文觀測站

看來我真的要多花點心思了.... 太久沒回來關心這個了,於是又四處看看,看到robin的活動~
【活動】我幫你拉AGLOCO下線!

趕緊來參加~讓下線多增加幾個也好~~

Typed ROBIN 這個專講網路賺錢的部落格現在在舉辦一個【活動】我幫你拉AGLOCO下線! ,你不必是他的下線也可以參加,趕快去看看。

話說回來,Typed ROBIN 的網站還真不是蓋的,一直以來都有在認真關心Agloco的發展
而不是像其他網站(還有我的~)只是把文章貼一貼就算了~

從2月到現在,我大概也只有看到robin的站有在針對Agloco的發展持續發文,其他的倒是沒看到 (還是我資訊太落後,沒看到更屌的??)

可以從他每個月的AGLOCO月報 (2007/07)答覆網友對我幫你拉AGLOCO下線活動的疑慮
這一的文章中看出,他真的很用心在經營這件事!!

補充:真的是我太過無知了...剛剛用google搜尋了一下..
一瞬間又看到幾個好站...
網路賺錢三十六計-Adsense,AGLOCO,AdBux
Adsense繁體中文觀測站

看來我真的要多花點心思了....

2007年9月3日 星期一

unix-like底下 apache2+php5+mysql5安裝方式

節錄自[分享] unix-like底下 apache2+php5+mysql5安裝方式
感謝acman's 便利地毯的分享

紅字部份為輸入之指令
切換目錄至/usr/local/src ;準備自行編譯
cd /usr/local/src

到以下的官方網站下載需要的版本
MySQL官方網站:http://www.mysql.com
Apache官方網站:http://www.apache.org
PHP官方網站:http://www.php.net

安裝mysqld:mysql-5.0.37
解開tarball
tar -zxvf mysql-5.0.37.tar.gz
切換到解開的目錄下
cd mysql-5.0.37
1.組態:(編譯參數參考原廠doc或是google找其它人的經驗或是依之前經驗)
./configure --prefix=/usr/local/mysql --localstatedir=/home/mysql --with-mysqld-user=mysql --enable-large-files
2.編譯
make
3.安裝
make install
4.複製系統設定檔至指定位置:
cp support-files/my-medium.cnf /etc/my.cnf
5.增加mysqld要使用的user跟group
vi /etc/group
新增一行內容為:mysql:x:60:
vi /etc/passwd
新增一行內容為:mysql:x:60:60:mysql:/home/mysql:/bin/false
6.切換資料夾
cd /usr/local/mysql
7.安裝系統資料庫
bin/mysql_install_db --user=mysql
8.更改目錄權限
chown -R root:mysql /home/mysql
9.啟動 MySql Server
bin/mysqld_safe --user=mysql &
10.更改資料庫管理者的管理密碼("new-password"部分請自行輸入):
bin/mysqladmin -u root password new-password

安裝apache:httpd-2.2.4
切換目錄
cd /usr/local/src
解開tarball
tar -zxvf httpd-2.2.4.tar.gz
切換到解開的目錄下
cd httpd-2.2.4
1.組態:
./configure --prefix=/home/apache --enable-shared=max --enable-module=most --enable-so
祝註:因為我偷懶的原因,所以apache的module是直接掛載,不在httpd.conf中一個一個自行選定是否載入
有空再做自行選擇的部份
2.編譯:
make
3.安裝:
make install

安裝php:php-5.2.1
安裝php前:為讓php support更多模組,以下部份先安裝(常用的)
指令:
gentoo適用:
emerge zlib
emerge libpng
emerge freetype
emerge jpeg
emerge gd
emerge libxml2

自行編譯者:自行找到tarball後(問google),直接組態->編譯->安裝,無需加任何參數
安裝php:php-5.2.1
切換目錄
cd /usr/local/src
解開tarball
tar -jxvf php-5.2.1.tar.bz2
切換到解開的目錄下
cd php-5.2.1

1.組態:
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.2.4/bin/apxs --with-config-file-path=/usr/local/php --with-mysql=/usr/local/mysql --with-gd --with-jpeg --with-zlib --with-libxml --enable-socket --with-iconv --with-pear --enable-zend-multibyte
這部份同apache,php可以把許多功能都編成extensions,僅載入需要的部份,這也是我偏愛的方式.....不過在這邊也偷懶
2.編譯
make
3.安裝
make install
4. 檢查是否有生成apache需要的php module
ls -al /usr/local/apache2.2.4/modules/libphp5.so
5. 複制php的設定檔
cp /usr/local/src/php-5.2.1/php.ini-dist /usr/local/php/

設定apache的httpd.conf
1. 查看是否有增加這一行
LoadModule php5_module modules/libphp5.so
2.更改admin信箱:
ServerAdmin 你的emailaddress
3.設定伺服器名稱(可以使用dmian:www.ooo.net:80 或 192.168.1.1:80)
ServerName 192.168.1.1:80(用你自己機器的ip address啊)
4.找到DirectoryIndex敘述,設定首頁名稱加上 index.php
DirectoryIndex index.htm index.html index.php
5.找到AddType部份,增加一行:
AddType application/x-httpd-php .php
6.啟動apache
/usr/local/apache2.2.4/bin/apachectl start
7.檢查php是否有正常運作
在/usr/local/apache2.2.4/htdocs/底下新增一個檔案:info.php,內容如下:
<?
phpinfo();
?>

8.用瀏覽器看 http://你的ip/info.php
有phpinfo畫面生成的話就ok啦 節錄自[分享] unix-like底下 apache2+php5+mysql5安裝方式
感謝acman's 便利地毯的分享

紅字部份為輸入之指令
切換目錄至/usr/local/src ;準備自行編譯
cd /usr/local/src

到以下的官方網站下載需要的版本
MySQL官方網站:http://www.mysql.com
Apache官方網站:http://www.apache.org
PHP官方網站:http://www.php.net

安裝mysqld:mysql-5.0.37
解開tarball
tar -zxvf mysql-5.0.37.tar.gz
切換到解開的目錄下
cd mysql-5.0.37
1.組態:(編譯參數參考原廠doc或是google找其它人的經驗或是依之前經驗)
./configure --prefix=/usr/local/mysql --localstatedir=/home/mysql --with-mysqld-user=mysql --enable-large-files
2.編譯
make
3.安裝
make install
4.複製系統設定檔至指定位置:
cp support-files/my-medium.cnf /etc/my.cnf
5.增加mysqld要使用的user跟group
vi /etc/group
新增一行內容為:mysql:x:60:
vi /etc/passwd
新增一行內容為:mysql:x:60:60:mysql:/home/mysql:/bin/false
6.切換資料夾
cd /usr/local/mysql
7.安裝系統資料庫
bin/mysql_install_db --user=mysql
8.更改目錄權限
chown -R root:mysql /home/mysql
9.啟動 MySql Server
bin/mysqld_safe --user=mysql &
10.更改資料庫管理者的管理密碼("new-password"部分請自行輸入):
bin/mysqladmin -u root password new-password

安裝apache:httpd-2.2.4
切換目錄
cd /usr/local/src
解開tarball
tar -zxvf httpd-2.2.4.tar.gz
切換到解開的目錄下
cd httpd-2.2.4
1.組態:
./configure --prefix=/home/apache --enable-shared=max --enable-module=most --enable-so
祝註:因為我偷懶的原因,所以apache的module是直接掛載,不在httpd.conf中一個一個自行選定是否載入
有空再做自行選擇的部份
2.編譯:
make
3.安裝:
make install

安裝php:php-5.2.1
安裝php前:為讓php support更多模組,以下部份先安裝(常用的)
指令:
gentoo適用:
emerge zlib
emerge libpng
emerge freetype
emerge jpeg
emerge gd
emerge libxml2

自行編譯者:自行找到tarball後(問google),直接組態->編譯->安裝,無需加任何參數
安裝php:php-5.2.1
切換目錄
cd /usr/local/src
解開tarball
tar -jxvf php-5.2.1.tar.bz2
切換到解開的目錄下
cd php-5.2.1

1.組態:
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.2.4/bin/apxs --with-config-file-path=/usr/local/php --with-mysql=/usr/local/mysql --with-gd --with-jpeg --with-zlib --with-libxml --enable-socket --with-iconv --with-pear --enable-zend-multibyte
這部份同apache,php可以把許多功能都編成extensions,僅載入需要的部份,這也是我偏愛的方式.....不過在這邊也偷懶
2.編譯
make
3.安裝
make install
4. 檢查是否有生成apache需要的php module
ls -al /usr/local/apache2.2.4/modules/libphp5.so
5. 複制php的設定檔
cp /usr/local/src/php-5.2.1/php.ini-dist /usr/local/php/

設定apache的httpd.conf
1. 查看是否有增加這一行
LoadModule php5_module modules/libphp5.so
2.更改admin信箱:
ServerAdmin 你的emailaddress
3.設定伺服器名稱(可以使用dmian:www.ooo.net:80 或 192.168.1.1:80)
ServerName 192.168.1.1:80(用你自己機器的ip address啊)
4.找到DirectoryIndex敘述,設定首頁名稱加上 index.php
DirectoryIndex index.htm index.html index.php
5.找到AddType部份,增加一行:
AddType application/x-httpd-php .php
6.啟動apache
/usr/local/apache2.2.4/bin/apachectl start
7.檢查php是否有正常運作
在/usr/local/apache2.2.4/htdocs/底下新增一個檔案:info.php,內容如下:
<?
phpinfo();
?>

8.用瀏覽器看 http://你的ip/info.php
有phpinfo畫面生成的話就ok啦

2007年8月23日 星期四

無間斷圖片跑馬燈

男丁格爾's 脫殼玩
那看到了一種做法無間斷圖片跑馬燈
看似不錯,但畫面會被拉長...

因綠際會下...不小心在網路上找到了下面這方法
唯因為原作者己不可考...故無法列出處(若原作者有看到,請來信通知,好讓我補上,謝謝)


原始程式如下....原作者的註解我就不做更動
中文部份是我自己加上的註解

//這是要滾動的內容,最好用div包起來
<div id="scrollbarDemo">
這裡是要滾動的內容
</div>

<SCRIPT type="text/javascript">
//這一塊是主要程式運作的地方
var __scrollBarControl = null;
var __divinnerHTML=null;
var __firstTime=true;
function innerBarProp(barID, width, height, interval, direction)
{
 this.barID = barID;
 this.width = width;
 this.height = height;
 this.interval = interval;
 this.direction = direction;
 this.stopScroll = false;
 this.maxValue = 0;
 this.preValue = 0;
}
function scrollBar()
{
 this.barsArray = new Array();
 //save current object
 __scrollBarControl = this;
}
//////////////////////////////////////////////////////////////////
// add scrollbar to bar list and set properties
// parameters:
// barID: HTML's tag <DIV>'s id property
// (for js access the DIV object)
// width: define the scrollbar's width
// height: define the scrollbar's height
// interval: define the scroll speed
// ( scroll up/down per XX millinSecond )
// direction: scroll direction's defined
// "up"
// "down"
// "left"
// "right"
//////////////////////////////////////////////////////////////////
scrollBar.prototype.addBar = function(barID, width, height, interval, direction)
{
 //check parameters
 var paraCount = arguments.length;
 if ( paraCount < 1 )
 {
  alert("parameters count incorect!");
  return;
  //throw "parameters count inccorect!";
 }

 //width's default value
 if ( typeof( width ) == "undefined" )
 {
  var width = 100;
 }

 //height's default value
 if ( typeof( height ) == "undefined" )
 {
  var height = 100;
 }

 //interval's default value
 if ( typeof( interval ) == "undefined" )
 {
  var interval = 1000;
 }
 
 //direction's default value
 if ( typeof( direction ) == "undefined" )
 {
  var direction = "up";
 }

 //create scrollbar's inner properties
 var barProp = new innerBarProp(barID, width, height, interval, direction);
 var objBar = document.getElementById(barID);
 if(__divinnerHTML!=null)
  objBar.innerHTML=__divinnerHTML;
 else
  __divinnerHTML=objBar.innerHTML;
 var barCount = this.barsArray.length;
 this.barsArray[barCount] = barProp;
}
scrollBar.prototype.clear = function()
{
 for(i=0;i<this.barsArray.length;i++)
  this.barsArray.pop();
}
scrollBar.prototype.createScrollBars = function()
{
 //get bar's count
 var barCount = this.barsArray.length;
 //if no bar add to scrollControl do nothing
 if ( barCount == 0 )
 {
  return;
 }

 //init scroll bars
 for ( var i=0; i<barCount; i++ )
 {
  var objBarID = this.barsArray[i].barID;
  //if typeof objBarID is object
  // that's meaning it inited
  //if typeof objBarID is string
  // init that scroll bar
  if ( typeof( objBarID ) == "string" )
  {
   //get scroll <DIV> object
   var objBar = document.getElementById( objBarID );
   if (objBar == null)
   {
    //objBarID is not exist
    if ( document.readyState == "complete" || document.readyState == "loaded" )
    {
     //the objBarID not exists in current document
     //throw "the objBarID is not exists.";
     alert("ScrollBar[" + objBarID + "]: not exist!");
     return;
    }
    else
    {
     //wait for document to load objBarID
     window.setTimeout("__scrollBarControl.createScrollBars()",50);
     //exit processing..........
     //and wait next time callbak
     return;
    }
   }
   //update barID
   this.barsArray[i].barID = objBar;
  }
 }

 for ( var i=0; i<barCount; i++ )
 {
  this.innerInitBar(i);
 }
}
scrollBar.prototype.innerInitBar = function (index)
{
 //get properties
 var barID = this.barsArray[index].barID;
 var width = this.barsArray[index].width;
 var height = this.barsArray[index].height;
 var interval = this.barsArray[index].interval;
 var direction = this.barsArray[index].direction;
 var maxValue = 0;

 //set scrollBar's properties
 with(barID)
 {
  style.width = width;
  style.height = height;
  noWrap=true;
  switch( direction )
  {
   //這裡是實際決定滾動方向及內容的地方
   //有up,down,left,right
   case "up":
    maxValue = Math.max(scrollHeight, height);
    style.overflowX = "visible";
    style.overflowY = "hidden";
    //宣告barHtml來放代入的div裡面的內容
    var barHtml = innerHTML;
    //將之複製二次,並擺在一個table裡面
    //若外面傳入的div裡面的table己寫好
    //這裡則可以直接省略,直接使用innerHTML = barHtml+barHtml;來代替
    var newHtml = "<table border='0' cellspacing='0' cellpadding='0'>\n";
    newHtml += " <tr height='20'>\n";
    newHtml += " <td> \n";
    newHtml += " </td>\n";
    newHtml += " </tr>\n";
    newHtml += " <tr>\n";
    newHtml += " <td height='" + maxValue + "' valign='top'>\n";
    newHtml += barHtml + "\n";
    newHtml += " </td>\n";
    newHtml += " </tr>\n";
    newHtml += " <tr>\n";
    newHtml += " <td height='" + maxValue + "' valign='top'>\n";
    newHtml += barHtml + "\n";
    newHtml += " </td>\n";
    newHtml += " </tr>\n";
    newHtml += " <tr>\n";
    newHtml += " <td height='" + maxValue + "' valign='top'>\n";
    newHtml += barHtml + "\n";
    newHtml += " </td>\n";
    newHtml += " </tr>\n";
    newHtml += "</table>\n";
    innerHTML = newHtml;
    break;
   case "down":
    maxValue = Math.max(scrollHeight, height);
    style.overflowX = "visible";
    style.overflowY = "hidden";
    var barHtml = innerHTML;
    var newHtml = "<table border='0' cellspacing='0' cellpadding='0'>\n";
    newHtml += " <tr>\n";
    newHtml += " <td height='" + maxValue + "' valign='top'>\n";
    newHtml += barHtml + "\n";
    newHtml += " </td>\n";
    newHtml += " </tr>\n";
    newHtml += " <tr>\n";
    newHtml += " <td height='" + maxValue + "' valign='top'>\n";
    newHtml += barHtml + "\n";
    newHtml += " </td>\n";
    newHtml += " </tr>\n";
    newHtml += "</table>\n";
    innerHTML = newHtml;
    scrollTop = maxValue;
    break;
   case "left":
    maxValue = Math.max(scrollWidth, width);
    style.overflowX = "hidden";
    style.overflowY = "visible";
    var barHtml = barID.innerHTML;
    var newHtml = "<table border='0' cellspacing='0' cellpadding='0' width='" + (maxValue * 2 ) + "'>\n";
    newHtml += " <tr>\n";
    newHtml += " <td width='" + maxValue + "' valign='top'>\n";
    newHtml += barHtml + "\n";
    newHtml += " </td>\n";
    newHtml += " <td width='" + maxValue + "' valign='top'>\n";
    newHtml += barHtml + "\n";
    newHtml += " </td>\n";
    newHtml += " </tr>\n";
    newHtml += "</table>\n";
    innerHTML = newHtml;
    break;
   case "right":
    maxValue = Math.max(scrollWidth, width);
    style.overflowX = "hidden";
    style.overflowY = "visible";
    var barHtml = innerHTML;
    var newHtml = "<table border='0' cellspacing='0' cellpadding='0' width='" + (maxValue * 2 ) + "'>\n";
    newHtml += " <tr>\n";
    newHtml += " <td width='" + maxValue + "' valign='top'>\n";
    newHtml += barHtml + "\n";
    newHtml += " </td>\n";
    newHtml += " <td width='" + maxValue + "' valign='top'>\n";
    newHtml += barHtml + "\n";
    newHtml += " </td>\n";
    newHtml += " </tr>\n";
    newHtml += "</table>\n";
    innerHTML = newHtml;
    scrollLeft = maxValue;
    break;
   default:
    //throw "direction is inccorect!";
    alert("ScrollBar[" + id + "]: direction is incorect!");
    return;
  }

  //set mouse events
  onmouseover = new Function("__scrollBarControl.mouseEvt(" + index + ",true);");
  onmouseout = new Function("__scrollBarControl.mouseEvt(" + index + ",false);");
  if(__firstTime)
  {
   __firstTime=false;
   window.setInterval("__scrollBarControl.scroll(" + index + ");",interval);
  }
  //save maxValue
  this.barsArray[index].maxValue = maxValue;
 }
}
scrollBar.prototype.mouseEvt = function(index, stop)
{
 this.barsArray[index].stopScroll = stop;
}
scrollBar.prototype.scroll = function(index)
{
 //get properties
 var barID = this.barsArray[index].barID;
 var width = this.barsArray[index].width;
 var height = this.barsArray[index].height;
 var interval = this.barsArray[index].interval;
 var direction = this.barsArray[index].direction;
 var stopScroll = this.barsArray[index].stopScroll;
 var preValue = this.barsArray[index].preValue;
 var maxValue = this.barsArray[index].maxValue;

 if ( stopScroll == true ) return;

 switch(direction)
 {
  case "up":
   preValue++;
   if ( preValue >= maxValue )
   {
    preValue = 0;
   }
   barID.scrollTop = preValue;
   break;
  case "down":
   preValue--;
   if ( preValue <= 0 )
   {
    preValue = maxValue;
   }
   barID.scrollTop = preValue;
   break;
  case "left":
   preValue++;
   if ( preValue >= maxValue )
   {
    preValue = 0;
   }
   barID.scrollLeft = preValue;
   break;
  case "right":
   preValue--;
   if ( preValue <=0 )
   {
    preValue = maxValue;
   }
   barID.scrollLeft = preValue;
   break;
 }
 this.barsArray[index].preValue = preValue;
}
//=================end of file===========================
</SCRIPT>
<SCRIPT type="text/javascript">
//這裡是使用在網頁上的
var scrollBarControl = new scrollBar();
MoveTo("up");
function MoveTo(d)
{
 //清除剛才宣告的scrollbarcontrol
 scrollBarControl.clear();
 //新增一欲滾動的ID,五個參數分別為
 //欲滾動的區塊ID,寬,高,速度,方向
 scrollBarControl.addBar("scrollbarDemo", 228, 120, 100, d);
 scrollBarControl.createScrollBars();
}
</SCRIPT>

男丁格爾's 脫殼玩
那看到了一種做法無間斷圖片跑馬燈
看似不錯,但畫面會被拉長...

因綠際會下...不小心在網路上找到了下面這方法
唯因為原作者己不可考...故無法列出處(若原作者有看到,請來信通知,好讓我補上,謝謝)


原始程式如下....原作者的註解我就不做更動
中文部份是我自己加上的註解

//這是要滾動的內容,最好用div包起來
<div id="scrollbarDemo">
這裡是要滾動的內容
</div>

<SCRIPT type="text/javascript">
//這一塊是主要程式運作的地方
var __scrollBarControl = null;
var __divinnerHTML=null;
var __firstTime=true;
function innerBarProp(barID, width, height, interval, direction)
{
 this.barID = barID;
 this.width = width;
 this.height = height;
 this.interval = interval;
 this.direction = direction;
 this.stopScroll = false;
 this.maxValue = 0;
 this.preValue = 0;
}
function scrollBar()
{
 this.barsArray = new Array();
 //save current object
 __scrollBarControl = this;
}
//////////////////////////////////////////////////////////////////
// add scrollbar to bar list and set properties
// parameters:
// barID: HTML's tag <DIV>'s id property
// (for js access the DIV object)
// width: define the scrollbar's width
// height: define the scrollbar's height
// interval: define the scroll speed
// ( scroll up/down per XX millinSecond )
// direction: scroll direction's defined
// "up"
// "down"
// "left"
// "right"
//////////////////////////////////////////////////////////////////
scrollBar.prototype.addBar = function(barID, width, height, interval, direction)
{
 //check parameters
 var paraCount = arguments.length;
 if ( paraCount < 1 )
 {
  alert("parameters count incorect!");
  return;
  //throw "parameters count inccorect!";
 }

 //width's default value
 if ( typeof( width ) == "undefined" )
 {
  var width = 100;
 }

 //height's default value
 if ( typeof( height ) == "undefined" )
 {
  var height = 100;
 }

 //interval's default value
 if ( typeof( interval ) == "undefined" )
 {
  var interval = 1000;
 }
 
 //direction's default value
 if ( typeof( direction ) == "undefined" )
 {
  var direction = "up";
 }

 //create scrollbar's inner properties
 var barProp = new innerBarProp(barID, width, height, interval, direction);
 var objBar = document.getElementById(barID);
 if(__divinnerHTML!=null)
  objBar.innerHTML=__divinnerHTML;
 else
  __divinnerHTML=objBar.innerHTML;
 var barCount = this.barsArray.length;
 this.barsArray[barCount] = barProp;
}
scrollBar.prototype.clear = function()
{
 for(i=0;i<this.barsArray.length;i++)
  this.barsArray.pop();
}
scrollBar.prototype.createScrollBars = function()
{
 //get bar's count
 var barCount = this.barsArray.length;
 //if no bar add to scrollControl do nothing
 if ( barCount == 0 )
 {
  return;
 }

 //init scroll bars
 for ( var i=0; i<barCount; i++ )
 {
  var objBarID = this.barsArray[i].barID;
  //if typeof objBarID is object
  // that's meaning it inited
  //if typeof objBarID is string
  // init that scroll bar
  if ( typeof( objBarID ) == "string" )
  {
   //get scroll <DIV> object
   var objBar = document.getElementById( objBarID );
   if (objBar == null)
   {
    //objBarID is not exist
    if ( document.readyState == "complete" || document.readyState == "loaded" )
    {
     //the objBarID not exists in current document
     //throw "the objBarID is not exists.";
     alert("ScrollBar[" + objBarID + "]: not exist!");
     return;
    }
    else
    {
     //wait for document to load objBarID
     window.setTimeout("__scrollBarControl.createScrollBars()",50);
     //exit processing..........
     //and wait next time callbak
     return;
    }
   }
   //update barID
   this.barsArray[i].barID = objBar;
  }
 }

 for ( var i=0; i<barCount; i++ )
 {
  this.innerInitBar(i);
 }
}
scrollBar.prototype.innerInitBar = function (index)
{
 //get properties
 var barID = this.barsArray[index].barID;
 var width = this.barsArray[index].width;
 var height = this.barsArray[index].height;
 var interval = this.barsArray[index].interval;
 var direction = this.barsArray[index].direction;
 var maxValue = 0;

 //set scrollBar's properties
 with(barID)
 {
  style.width = width;
  style.height = height;
  noWrap=true;
  switch( direction )
  {
   //這裡是實際決定滾動方向及內容的地方
   //有up,down,left,right
   case "up":
    maxValue = Math.max(scrollHeight, height);
    style.overflowX = "visible";
    style.overflowY = "hidden";
    //宣告barHtml來放代入的div裡面的內容
    var barHtml = innerHTML;
    //將之複製二次,並擺在一個table裡面
    //若外面傳入的div裡面的table己寫好
    //這裡則可以直接省略,直接使用innerHTML = barHtml+barHtml;來代替
    var newHtml = "<table border='0' cellspacing='0' cellpadding='0'>\n";
    newHtml += " <tr height='20'>\n";
    newHtml += " <td> \n";
    newHtml += " </td>\n";
    newHtml += " </tr>\n";
    newHtml += " <tr>\n";
    newHtml += " <td height='" + maxValue + "' valign='top'>\n";
    newHtml += barHtml + "\n";
    newHtml += " </td>\n";
    newHtml += " </tr>\n";
    newHtml += " <tr>\n";
    newHtml += " <td height='" + maxValue + "' valign='top'>\n";
    newHtml += barHtml + "\n";
    newHtml += " </td>\n";
    newHtml += " </tr>\n";
    newHtml += " <tr>\n";
    newHtml += " <td height='" + maxValue + "' valign='top'>\n";
    newHtml += barHtml + "\n";
    newHtml += " </td>\n";
    newHtml += " </tr>\n";
    newHtml += "</table>\n";
    innerHTML = newHtml;
    break;
   case "down":
    maxValue = Math.max(scrollHeight, height);
    style.overflowX = "visible";
    style.overflowY = "hidden";
    var barHtml = innerHTML;
    var newHtml = "<table border='0' cellspacing='0' cellpadding='0'>\n";
    newHtml += " <tr>\n";
    newHtml += " <td height='" + maxValue + "' valign='top'>\n";
    newHtml += barHtml + "\n";
    newHtml += " </td>\n";
    newHtml += " </tr>\n";
    newHtml += " <tr>\n";
    newHtml += " <td height='" + maxValue + "' valign='top'>\n";
    newHtml += barHtml + "\n";
    newHtml += " </td>\n";
    newHtml += " </tr>\n";
    newHtml += "</table>\n";
    innerHTML = newHtml;
    scrollTop = maxValue;
    break;
   case "left":
    maxValue = Math.max(scrollWidth, width);
    style.overflowX = "hidden";
    style.overflowY = "visible";
    var barHtml = barID.innerHTML;
    var newHtml = "<table border='0' cellspacing='0' cellpadding='0' width='" + (maxValue * 2 ) + "'>\n";
    newHtml += " <tr>\n";
    newHtml += " <td width='" + maxValue + "' valign='top'>\n";
    newHtml += barHtml + "\n";
    newHtml += " </td>\n";
    newHtml += " <td width='" + maxValue + "' valign='top'>\n";
    newHtml += barHtml + "\n";
    newHtml += " </td>\n";
    newHtml += " </tr>\n";
    newHtml += "</table>\n";
    innerHTML = newHtml;
    break;
   case "right":
    maxValue = Math.max(scrollWidth, width);
    style.overflowX = "hidden";
    style.overflowY = "visible";
    var barHtml = innerHTML;
    var newHtml = "<table border='0' cellspacing='0' cellpadding='0' width='" + (maxValue * 2 ) + "'>\n";
    newHtml += " <tr>\n";
    newHtml += " <td width='" + maxValue + "' valign='top'>\n";
    newHtml += barHtml + "\n";
    newHtml += " </td>\n";
    newHtml += " <td width='" + maxValue + "' valign='top'>\n";
    newHtml += barHtml + "\n";
    newHtml += " </td>\n";
    newHtml += " </tr>\n";
    newHtml += "</table>\n";
    innerHTML = newHtml;
    scrollLeft = maxValue;
    break;
   default:
    //throw "direction is inccorect!";
    alert("ScrollBar[" + id + "]: direction is incorect!");
    return;
  }

  //set mouse events
  onmouseover = new Function("__scrollBarControl.mouseEvt(" + index + ",true);");
  onmouseout = new Function("__scrollBarControl.mouseEvt(" + index + ",false);");
  if(__firstTime)
  {
   __firstTime=false;
   window.setInterval("__scrollBarControl.scroll(" + index + ");",interval);
  }
  //save maxValue
  this.barsArray[index].maxValue = maxValue;
 }
}
scrollBar.prototype.mouseEvt = function(index, stop)
{
 this.barsArray[index].stopScroll = stop;
}
scrollBar.prototype.scroll = function(index)
{
 //get properties
 var barID = this.barsArray[index].barID;
 var width = this.barsArray[index].width;
 var height = this.barsArray[index].height;
 var interval = this.barsArray[index].interval;
 var direction = this.barsArray[index].direction;
 var stopScroll = this.barsArray[index].stopScroll;
 var preValue = this.barsArray[index].preValue;
 var maxValue = this.barsArray[index].maxValue;

 if ( stopScroll == true ) return;

 switch(direction)
 {
  case "up":
   preValue++;
   if ( preValue >= maxValue )
   {
    preValue = 0;
   }
   barID.scrollTop = preValue;
   break;
  case "down":
   preValue--;
   if ( preValue <= 0 )
   {
    preValue = maxValue;
   }
   barID.scrollTop = preValue;
   break;
  case "left":
   preValue++;
   if ( preValue >= maxValue )
   {
    preValue = 0;
   }
   barID.scrollLeft = preValue;
   break;
  case "right":
   preValue--;
   if ( preValue <=0 )
   {
    preValue = maxValue;
   }
   barID.scrollLeft = preValue;
   break;
 }
 this.barsArray[index].preValue = preValue;
}
//=================end of file===========================
</SCRIPT>
<SCRIPT type="text/javascript">
//這裡是使用在網頁上的
var scrollBarControl = new scrollBar();
MoveTo("up");
function MoveTo(d)
{
 //清除剛才宣告的scrollbarcontrol
 scrollBarControl.clear();
 //新增一欲滾動的ID,五個參數分別為
 //欲滾動的區塊ID,寬,高,速度,方向
 scrollBarControl.addBar("scrollbarDemo", 228, 120, 100, d);
 scrollBarControl.createScrollBars();
}
</SCRIPT>

2007年8月15日 星期三

讓 crontab 自動排程執行 php

前一陣公司的網站改了很多東西...
寫了很多需要利用 crontab 去跑的php
當時利用的方法是
寫一支程式,讓crontab去跑..
內容是

lnyx http://myweb/test.php > /dev/null
2>&2

剛剛在Real-Blog看到這篇文章--讓 crontab 自動排程執行 php

才發現也有這樣的方式可以寫...記錄一下~~

要用 crontab 自動執行 php 程式,可以這樣做:
方法一
1. 在 php 程式的第一行加入:

#!/usr/local/php/bin/php -q
例如:

#!/usr/local/php/bin/php -q
< ? php $foo = 123; ? >
請留意,我的 php 是安裝在 /usr/local/php,請根據你的 php 執行檔位置作出修改。

2. 將 php 程式給予可執行權限:

chmod +x testing.php

3. 執行 crontab -e,然後加入以下內容:

00 00 * * * /path/to/testing.php > /dev/null 2>&2
以上語法會在每天的零時零分執行 /path/to/testing.php

方法二
另一個方法是不用在 php 程式的第一行加入 "#!/usr/local/php/bin/php -q",
可以省略第一步及第二步
直接執行 crontab -e,並輸入以下內容:
00 00 * * * usr/local/php/bin/php -q /path/to/testing.php > /dev/null 2>&2

這個方法的結果跟方法一的結果相同。 前一陣公司的網站改了很多東西...
寫了很多需要利用 crontab 去跑的php
當時利用的方法是
寫一支程式,讓crontab去跑..
內容是

lnyx http://myweb/test.php > /dev/null
2>&2

剛剛在Real-Blog看到這篇文章--讓 crontab 自動排程執行 php

才發現也有這樣的方式可以寫...記錄一下~~

要用 crontab 自動執行 php 程式,可以這樣做:
方法一
1. 在 php 程式的第一行加入:

#!/usr/local/php/bin/php -q
例如:

#!/usr/local/php/bin/php -q
< ? php $foo = 123; ? >
請留意,我的 php 是安裝在 /usr/local/php,請根據你的 php 執行檔位置作出修改。

2. 將 php 程式給予可執行權限:

chmod +x testing.php

3. 執行 crontab -e,然後加入以下內容:

00 00 * * * /path/to/testing.php > /dev/null 2>&2
以上語法會在每天的零時零分執行 /path/to/testing.php

方法二
另一個方法是不用在 php 程式的第一行加入 "#!/usr/local/php/bin/php -q",
可以省略第一步及第二步
直接執行 crontab -e,並輸入以下內容:
00 00 * * * usr/local/php/bin/php -q /path/to/testing.php > /dev/null 2>&2

這個方法的結果跟方法一的結果相同。

2007年8月10日 星期五

清除UTF-8檔的BOM檔頭

今天不小心用Notepad改了個檔案
結果...BOM檔頭就一直存在...拿不掉...
這個怪怪的Bug害我花了很多時間在測試~~
還好有幸看到石頭閒語的這篇文章...
PHP::關於 PHP 4/5 對 UTF-BOM 的 bug

另外有找到移除的小程式...就節錄下來了~~
原文出處:自動移除文件中的 utf-8 bom的小程式
將此檔案擺在根目錄執行便會自動檢查所有檔案....
並自動修正~


<?php
//remove the utf-8 boms
//by magicbug at gmail dot com
if (isset($_GET[’dir’])){ //config the basedir
$basedir=$_GET[’dir’];
}else{
$basedir = ".";
}
$auto = 1;

checkdir($basedir);

function checkdir($basedir){
if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file != "." && $file != ".."){
if (!is_dir($basedir."/".$file)) {
echo "filename: $basedir/$file ".checkBOM("$basedir/$file")."";
}else{
$dirname = $basedir."/".$file;
checkdir($dirname);
}
}
}
closedir($dh);
}
}

function checkBOM ($filename) {
global $auto;
$contents = file_get_contents($filename);
$charset[1] = substr($contents, 0, 1);
$charset[2] = substr($contents, 1, 1);
$charset[3] = substr($contents, 2, 1);
if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {
if ($auto == 1) {
$rest = substr($contents, 3);
rewrite ($filename, $rest);
return ("BOM found, automatically removed.
");
} else {
return ("BOM found.
");
}
}
else return ("BOM Not Found.
");
}

function rewrite ($filename, $data) {
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}
?>
今天不小心用Notepad改了個檔案
結果...BOM檔頭就一直存在...拿不掉...
這個怪怪的Bug害我花了很多時間在測試~~
還好有幸看到石頭閒語的這篇文章...
PHP::關於 PHP 4/5 對 UTF-BOM 的 bug

另外有找到移除的小程式...就節錄下來了~~
原文出處:自動移除文件中的 utf-8 bom的小程式
將此檔案擺在根目錄執行便會自動檢查所有檔案....
並自動修正~


<?php
//remove the utf-8 boms
//by magicbug at gmail dot com
if (isset($_GET[’dir’])){ //config the basedir
$basedir=$_GET[’dir’];
}else{
$basedir = ".";
}
$auto = 1;

checkdir($basedir);

function checkdir($basedir){
if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file != "." && $file != ".."){
if (!is_dir($basedir."/".$file)) {
echo "filename: $basedir/$file ".checkBOM("$basedir/$file")."";
}else{
$dirname = $basedir."/".$file;
checkdir($dirname);
}
}
}
closedir($dh);
}
}

function checkBOM ($filename) {
global $auto;
$contents = file_get_contents($filename);
$charset[1] = substr($contents, 0, 1);
$charset[2] = substr($contents, 1, 1);
$charset[3] = substr($contents, 2, 1);
if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {
if ($auto == 1) {
$rest = substr($contents, 3);
rewrite ($filename, $rest);
return ("BOM found, automatically removed.
");
} else {
return ("BOM found.
");
}
}
else return ("BOM Not Found.
");
}

function rewrite ($filename, $data) {
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}
?>

2007年8月9日 星期四

投資心法

參考自今周刊 544 期
[資深上班族謝文通 賺遍全世界]



1.選定區域(或國家)
謝文通認為,全世界的熱錢到處流竄,尋找許久未漲且相對便宜的市場去炒作,
即使在空頭時期也是一樣。「這些錢不可躺著半年都不動!」

2.以大盤均線,20日均線,60日均線做比較
大盤跌破 20/60日均線,即逐步出場
相反的,大盤漲破20/60日均線,即逐步進場

待補充..... 參考自今周刊 544 期
[資深上班族謝文通 賺遍全世界]



1.選定區域(或國家)
謝文通認為,全世界的熱錢到處流竄,尋找許久未漲且相對便宜的市場去炒作,
即使在空頭時期也是一樣。「這些錢不可躺著半年都不動!」

2.以大盤均線,20日均線,60日均線做比較
大盤跌破 20/60日均線,即逐步出場
相反的,大盤漲破20/60日均線,即逐步進場

待補充.....

2007年8月7日 星期二

[PHP] 用 "變數" 來指定 變數名稱

$refresh_value="refresh_set1".$no; //用傳入的$no來設定一新字串
if(${$refresh_value}!="") //用上面那一個變數來設定另一個變數名稱
{
 notifyPage('點閱指數更新完成(2)!','f4modify_house_2.php3');
 exit();
}
else
{
 //若該變數不存在,則用此名稱,去設定一個cookie變數!
 setcookie($refresh_value,1,time()+3600*8,"/",$_SERVER['HTTP_POST']);
}

$refresh_value="refresh_set1".$no; //用傳入的$no來設定一新字串
if(${$refresh_value}!="") //用上面那一個變數來設定另一個變數名稱
{
 notifyPage('點閱指數更新完成(2)!','f4modify_house_2.php3');
 exit();
}
else
{
 //若該變數不存在,則用此名稱,去設定一個cookie變數!
 setcookie($refresh_value,1,time()+3600*8,"/",$_SERVER['HTTP_POST']);
}

2007年7月27日 星期五

[免費] 用 PHP 畫出 Flash 統計圖表

Neo's Blog 看到的,實在是太讚了~~

畫出來的是 Flash 檔案,非常美觀喔!
免費版本在使用者點畫面時,會連到他們的官方網站,而且沒有任何技術支援。
以這種高水準的圖表品質,卻只有這種限制,已經可以算是慈善家了。
http://www.maani.us/charts/index.php


網站上寫的很清楚~
照著做就可以做出來了~
套參數的方式也很明瞭...

唯獨好像不支援中文...
試了幾次,都無法正常顯示...
也許要改什麼地方吧...有找到再來修改 Neo's Blog 看到的,實在是太讚了~~

畫出來的是 Flash 檔案,非常美觀喔!
免費版本在使用者點畫面時,會連到他們的官方網站,而且沒有任何技術支援。
以這種高水準的圖表品質,卻只有這種限制,已經可以算是慈善家了。
http://www.maani.us/charts/index.php


網站上寫的很清楚~
照著做就可以做出來了~
套參數的方式也很明瞭...

唯獨好像不支援中文...
試了幾次,都無法正常顯示...
也許要改什麼地方吧...有找到再來修改

2007年7月24日 星期二

[Google] 用 Gmail 寄信

轉貼自 [Google] 用 Gmail 寄信
靠,用 gmail 寄信有什麼了不起?
嘿嘿,我說的可是利用 php 裡面的 libcurl 方式,把資料傳到 gmail 去,
讓 gmail 當你的 smtp 呢!這裡下載 libgmailer
以下是範例程式:
require("libgmailer.php");
$gmail_acc = "帳號@gmail.com";
$gmail_pwd =
"密碼";
$my_timezone = "GMT +08:00";
$gmailer = new GMailer();
if
($gmailer->created) {
$gmailer->setLoginInfo($gmail_acc, $gmail_pwd,
$my_timezone);
// $gmailer->setProxy("proxy.company.com");
if
($gmailer->connect()) {
// GMailer connected to Gmail successfully.
// Do something with it.
$to = "收件人@gmail.com";
$subj = "主題";
$body = "測試";

$gmailer->send($to, $subj, $body, $cc="", $bcc="",
$mid="", $tid="", $files=0, $draft=false, $orig_df="", $is_html=0, $from="",
$attachments = array());
} else {
die("Fail to connect because:
".$gmailer->lastActionStatus()."\n");
}
} else {
die("Failed to
create GMailer because: ".$gmailer->lastActionStatus()."\n");
}
轉貼自 [Google] 用 Gmail 寄信
靠,用 gmail 寄信有什麼了不起?
嘿嘿,我說的可是利用 php 裡面的 libcurl 方式,把資料傳到 gmail 去,
讓 gmail 當你的 smtp 呢!這裡下載 libgmailer
以下是範例程式:
require("libgmailer.php");
$gmail_acc = "帳號@gmail.com";
$gmail_pwd =
"密碼";
$my_timezone = "GMT +08:00";
$gmailer = new GMailer();
if
($gmailer->created) {
$gmailer->setLoginInfo($gmail_acc, $gmail_pwd,
$my_timezone);
// $gmailer->setProxy("proxy.company.com");
if
($gmailer->connect()) {
// GMailer connected to Gmail successfully.
// Do something with it.
$to = "收件人@gmail.com";
$subj = "主題";
$body = "測試";

$gmailer->send($to, $subj, $body, $cc="", $bcc="",
$mid="", $tid="", $files=0, $draft=false, $orig_df="", $is_html=0, $from="",
$attachments = array());
} else {
die("Fail to connect because:
".$gmailer->lastActionStatus()."\n");
}
} else {
die("Failed to
create GMailer because: ".$gmailer->lastActionStatus()."\n");
}

2007年7月20日 星期五

用 PHP 擷取遠端網頁資訊

轉錄自用 PHP 擷取遠端網頁資訊
以下程式碼會介紹如何擷取遠端網頁資訊,包括 HTML tag 裡面的 Title, Description 及 Keywords:

PHP:
< ? php
//----- 定義要擷取的網頁地址
$url = "http://web-address";

//----- 讀取網頁源始碼
$fp = file_get_contents($url);
//highlight_string($fp); // 顯示html

//----- 擷取 title 資訊
preg_match("/< t i t l e >(.*)< \/ t i t l e >/s", $fp, $match);
$title = $match[1];

//----- 擷取 Description 及 Keywords
$metatag = get_meta_tags($url);
$description = $metatag["description"];
$keywords = $metatag["keywords"];

//----- 印出結果
echo "URL: $url\n";
echo "Title: $title\n";
echo "Description: $description\n";
echo "Keywords: $keywords\n";
? > 轉錄自用 PHP 擷取遠端網頁資訊
以下程式碼會介紹如何擷取遠端網頁資訊,包括 HTML tag 裡面的 Title, Description 及 Keywords:

PHP:
< ? php
//----- 定義要擷取的網頁地址
$url = "http://web-address";

//----- 讀取網頁源始碼
$fp = file_get_contents($url);
//highlight_string($fp); // 顯示html

//----- 擷取 title 資訊
preg_match("/< t i t l e >(.*)< \/ t i t l e >/s", $fp, $match);
$title = $match[1];

//----- 擷取 Description 及 Keywords
$metatag = get_meta_tags($url);
$description = $metatag["description"];
$keywords = $metatag["keywords"];

//----- 印出結果
echo "URL: $url\n";
echo "Title: $title\n";
echo "Description: $description\n";
echo "Keywords: $keywords\n";
? >

2007年7月13日 星期五

PHP function: 壓縮 CSS file

Tsung's Blog 那看到的
PHP function: 壓縮 CSS file

真是獲益良多啊~~

透過此 function 可在吐 CSS 時, 或者在版本 Release 時, 自動壓縮 還是比較方便點~ :)
以下轉載自: PHP-function to optimize a CSS-file
PS: 我對此檔案加了作者, 原始連結資訊 和 簡單排版.


<?php
/**
* Converts a CSS-file contents into one string
* Source Code: http://snippets.dzone.com/posts/show/4137
* @Author: Dmitry-Sh http://snippets.dzone.com/user/Dmitry-Sh
*
* @param string $t Text data
* @param int $is_debug Skip convertion
* @return string Optimized string
*/
function text_smooth_css($t, $is_debug = 0)
{
 if ($is_debug)
 {
  return $t;
 }

 /* Remove comments */
 $t = preg_replace("/\/\*(.*?)\*\//s", ' ', $t);

 /* Remove new lines, spaces */
 $t = preg_replace("/(\s{2,}|[\r\n|\n|\t|\r])/", ' ', $t);

 /* Join rules */
 $t = preg_replace('/([,|;|:|{|}]) /', '\\1', $t);
 $t = str_replace(' {', '{', $t);

 /* Remove ; for the last attribute */
 $t = str_replace(';}', '}', $t);
 $t = str_replace(' }', '}', $t);

 return $t;
}
?> Tsung's Blog 那看到的
PHP function: 壓縮 CSS file

真是獲益良多啊~~

透過此 function 可在吐 CSS 時, 或者在版本 Release 時, 自動壓縮 還是比較方便點~ :)
以下轉載自: PHP-function to optimize a CSS-file
PS: 我對此檔案加了作者, 原始連結資訊 和 簡單排版.


<?php
/**
* Converts a CSS-file contents into one string
* Source Code: http://snippets.dzone.com/posts/show/4137
* @Author: Dmitry-Sh http://snippets.dzone.com/user/Dmitry-Sh
*
* @param string $t Text data
* @param int $is_debug Skip convertion
* @return string Optimized string
*/
function text_smooth_css($t, $is_debug = 0)
{
 if ($is_debug)
 {
  return $t;
 }

 /* Remove comments */
 $t = preg_replace("/\/\*(.*?)\*\//s", ' ', $t);

 /* Remove new lines, spaces */
 $t = preg_replace("/(\s{2,}|[\r\n|\n|\t|\r])/", ' ', $t);

 /* Join rules */
 $t = preg_replace('/([,|;|:|{|}]) /', '\\1', $t);
 $t = str_replace(' {', '{', $t);

 /* Remove ; for the last attribute */
 $t = str_replace(';}', '}', $t);
 $t = str_replace(' }', '}', $t);

 return $t;
}
?>

2007年7月12日 星期四

foreach的用法

參考自
http://linux.tnc.edu.tw/techdoc/banic/add.html

在 PHP4中,新增了一個迴圈 foreach,它很像是 perl和其它的語言,你可以給它一個陣列,讓它來取出陣列的值。它有下列這二個語法,第二個語法是較次要的,但是可用來作為第一個語法的延伸。

foreach(array_expression as $value) statement

foreach(array_expression as $key => $value) statement

第一個形式的迴圈,它會在每個迴圈上,將目前元素的值分配給 $value,並且向後移動陣列的內部指標,
所以在下一個迴圈的時候,你就會看到下一個元素了。

第二個形式的迴圈和第一個是相同的,不同的是它會在每個迴圈將目前元素的索引值分配給變數 $key。



注意 : 當 foreach第一次開始執行的時候,它會把陣列的內部指標重新設定到陣列的第一個元素,意思是說,在使用 foreach之前,你不必再去呼叫
reset( )。
注意 : foreach是運作在陣列的複製,而不是陣列它本身,因此並不會改變陣列指標

下面範例的功能都是相同的 :
<? php
 reset ($arr);
 while (list(, $value) = each ($arr)) {
  echo "Value: $value";
 }
 foreach ($arr as $value) {
  echo "Value: $value";
 }
?>
下面範例的功能也都是相同的 :
<?php
 reset ($arr);
 while (list($key, $value) = each ($arr)) {
  echo "Key: $key; Value: $value";
 }
 foreach ($arr as $key => $value) {
  echo "Key: $key; Value: $value";
 }
?>
以下的範例將說明 foreach的用法 :
<?php
 /* foreach example 1: value only */
 $a = array (1, 2, 3, 17);
 foreach ($a as $v) {
  print "Current value of \$a: $v";
 }
 /* foreach example 2: value (with key printed for illustration) */
 $a = array (1, 2, 3, 17);
 $i = 0;
 /* for illustrative purposes only */
 foreach($a as $v) {
  print "\$a[$i] => $k";
 }
 /* foreach example 3: key and value */
 $a = array (
  "one" => 1,
  "two" => 2,
  "three" => 3,
  "seventeen" => 17
 );
 foreach($a as $k => $v) {
  print "\$a[$k] => $v";
 }
?> 參考自
http://linux.tnc.edu.tw/techdoc/banic/add.html

在 PHP4中,新增了一個迴圈 foreach,它很像是 perl和其它的語言,你可以給它一個陣列,讓它來取出陣列的值。它有下列這二個語法,第二個語法是較次要的,但是可用來作為第一個語法的延伸。

foreach(array_expression as $value) statement

foreach(array_expression as $key => $value) statement

第一個形式的迴圈,它會在每個迴圈上,將目前元素的值分配給 $value,並且向後移動陣列的內部指標,
所以在下一個迴圈的時候,你就會看到下一個元素了。

第二個形式的迴圈和第一個是相同的,不同的是它會在每個迴圈將目前元素的索引值分配給變數 $key。



注意 : 當 foreach第一次開始執行的時候,它會把陣列的內部指標重新設定到陣列的第一個元素,意思是說,在使用 foreach之前,你不必再去呼叫
reset( )。
注意 : foreach是運作在陣列的複製,而不是陣列它本身,因此並不會改變陣列指標

下面範例的功能都是相同的 :
<? php
 reset ($arr);
 while (list(, $value) = each ($arr)) {
  echo "Value: $value";
 }
 foreach ($arr as $value) {
  echo "Value: $value";
 }
?>
下面範例的功能也都是相同的 :
<?php
 reset ($arr);
 while (list($key, $value) = each ($arr)) {
  echo "Key: $key; Value: $value";
 }
 foreach ($arr as $key => $value) {
  echo "Key: $key; Value: $value";
 }
?>
以下的範例將說明 foreach的用法 :
<?php
 /* foreach example 1: value only */
 $a = array (1, 2, 3, 17);
 foreach ($a as $v) {
  print "Current value of \$a: $v";
 }
 /* foreach example 2: value (with key printed for illustration) */
 $a = array (1, 2, 3, 17);
 $i = 0;
 /* for illustrative purposes only */
 foreach($a as $v) {
  print "\$a[$i] => $k";
 }
 /* foreach example 3: key and value */
 $a = array (
  "one" => 1,
  "two" => 2,
  "three" => 3,
  "seventeen" => 17
 );
 foreach($a as $k => $v) {
  print "\$a[$k] => $v";
 }
?>

2007年6月27日 星期三

2007年6月25日 星期一

用header送出編碼格式

常要用到~
便記下來了~

參考自Setting the HTTP charset parameter

PHP. Use the header() function before generating any content, e.g.:
header('Content-type: text/html; charset=utf-8'); 常要用到~
便記下來了~

參考自Setting the HTTP charset parameter

PHP. Use the header() function before generating any content, e.g.:
header('Content-type: text/html; charset=utf-8');

2007年6月4日 星期一

[轉貼].htaccess檔製作

轉貼自網站建置百寶箱

.htaccess 檔是 apache http 伺服器上的一個設定檔。
一般來說,管理人員都會開放部份功能給你自行設定,也有的會完全關閉對 .htaccess 的支援。

設定網頁密碼;
設定發生錯誤時出現的文件;
改變首頁的檔案 (index.html);
禁止讀取檔案;
重新導向文件;
加上 MIME 類別;
防止列出目綠內的檔案..等等一般常用功能
(其他進階功能則不在此談)

【.htaccess 簡介 】
.htaccess 是一個文字檔,你可以做任何好像 notepad 的文字編輯器去寫一個。
或者你會對 .htaccess 這個名字有點困惑,其實 .htaccess 是一個完全的檔案名,不是 filaname.htaccess 或者甚麼的(當然也有管理員故意把它設定成其他名字,但一般都是用 .htaccess 的)。為何是 .htaccess?因為所有以 "." 開頭的檔名在 *nix 系統中也是有屬性隱藏的,平常列出資料夾時不會出現,所以保安會好一點。你可能會問:『MS Windows 要我一定給它一個名字,如何把它存檔成為 .htaccess?』 其實方法有兩個。第一個是到 ms-dos 的視窗中,按 ren filename.xxx .htaccess 就可以了;第二個是在上傳到伺服器時才改名做 .htaccess。
而 .htaccss 內設定的格式是一行一個指令,如果你的 notepad 設定了自動換行的話,請關上它,這樣會比較安全。
一點要注意, .htaccess 是 apache 的產物,不是 IIS 的。IIS 伺服器不支援它,也就是說你不能以簡單地上傳一個 ASCII 檔去設定在 IIS 伺服器上的 http 服務。
在上載 .htaccess 時,必需使用 ASCII 模式!你或許還要 chmod 它到 644(RW_R__R_)。
每一個放了 .htaccess 的目錄和它的子目錄都會被 .htaccess 影響。如果我在 /abc/ 放了一個 .htaccess,那麼 /abc/ 和 /abc/def/ 內所有 file 都會被它影響,但 /index.html 不會被它影響 ←← 這一點是很重要的。

【密碼保護 】

這是最常見 .htaccess 被使用的功能之一,資料夾密碼保護。
這種方法可以使沒有授權的瀏覽者不能進入你所設定的限制區域,使用了 Javacript 設的密碼太簡單了,一下字就會被破解,而使用 .htaccess 系統就比使用 CGI 程式保護會員專頁將更為有效,更安全。更重要的是使用 .htaccess 方式去設定不需要編寫程式的技能。
首先,你要開啟一般文字編輯工具,做出一個名叫 .htpasswd 的檔名(當然又可能是其他,但一般伺服器都會設定 .htpasswd 是不能經由 http 讀到的。檔案中的的每一句代表一個使用者,使用者名稱以及加密了的密碼是以冒號(分隔。而密碼必須經過加密才可以使用。加密的方法是一般密碼使用了的 crypt,如果你不知如何加密,請到以下的網頁。
UHome
http://www.euronet.nl/~arnow/htpasswd/


注: Win32 版本的 apache 好像不支援用了 crypt 加密法的密碼檔,只支援 SHA1 和 MD5 的。如果你是使用 apahce for win32 版本,請使用 appserv\apache\bin\htpasswd.exe 做出以 MD5 加密的密碼檔!!

再在 .htaccess 中,加上以下句子
AuthName MemberPage
AuthType Basic
AuthUserFile /absolute/path/.htpasswd
require valid-user

AuthName 就是當 browser 得知要密碼時所出現的句字,你可以自行改動 MemberPage;而第二句的 AuthType Basic 就千萬不要去改;第三句的 AuthUserFile 就是設定所使用的 .htpasswd 檔,要留意它好像必需是在伺服器上的絕對路徑。請留意,這不是 URL 的位置、也不一定是在 ftp 中看到的位置、就算是由 CGI 自行測到的路徑也未必準確,請細看伺服器上的說明 (例如在 virtualave.net,URL 是 /.htpasswd ftp 看到的是 /public_html/.htpasswd,CGI 測到 /home/public_html/.htpasswd,但是事實上你要設定路徑為 /data1/virtualave.net/USERNAME/public_html/.htpasswd)。
為了保安理由,不建議把 .htpasswd 放到可以用 http 讀到的目錄;
最後的 require 就是命令伺服器誰可以進入,require valid-user 就是指只要是 .htpasswd 中的任何一人就可了;你也可以指定在名單上只有某人可以通過,require user username 或 require user username1 username2 username3;也可以指定是某組人才可以,require group groupname。

而設定組的方法是再做一個叫 .htgroup 的文字檔,內容如下:
groupname1: username1 username2 username3
groupname2: username1 username3 username4

再在 .htaccess 中加多一句 AuthGroupFile /absolute/path/.htgroup
方法和加入 .htpasswd 的一樣。 轉貼自網站建置百寶箱

.htaccess 檔是 apache http 伺服器上的一個設定檔。
一般來說,管理人員都會開放部份功能給你自行設定,也有的會完全關閉對 .htaccess 的支援。

設定網頁密碼;
設定發生錯誤時出現的文件;
改變首頁的檔案 (index.html);
禁止讀取檔案;
重新導向文件;
加上 MIME 類別;
防止列出目綠內的檔案..等等一般常用功能
(其他進階功能則不在此談)

【.htaccess 簡介 】
.htaccess 是一個文字檔,你可以做任何好像 notepad 的文字編輯器去寫一個。
或者你會對 .htaccess 這個名字有點困惑,其實 .htaccess 是一個完全的檔案名,不是 filaname.htaccess 或者甚麼的(當然也有管理員故意把它設定成其他名字,但一般都是用 .htaccess 的)。為何是 .htaccess?因為所有以 "." 開頭的檔名在 *nix 系統中也是有屬性隱藏的,平常列出資料夾時不會出現,所以保安會好一點。你可能會問:『MS Windows 要我一定給它一個名字,如何把它存檔成為 .htaccess?』 其實方法有兩個。第一個是到 ms-dos 的視窗中,按 ren filename.xxx .htaccess 就可以了;第二個是在上傳到伺服器時才改名做 .htaccess。
而 .htaccss 內設定的格式是一行一個指令,如果你的 notepad 設定了自動換行的話,請關上它,這樣會比較安全。
一點要注意, .htaccess 是 apache 的產物,不是 IIS 的。IIS 伺服器不支援它,也就是說你不能以簡單地上傳一個 ASCII 檔去設定在 IIS 伺服器上的 http 服務。
在上載 .htaccess 時,必需使用 ASCII 模式!你或許還要 chmod 它到 644(RW_R__R_)。
每一個放了 .htaccess 的目錄和它的子目錄都會被 .htaccess 影響。如果我在 /abc/ 放了一個 .htaccess,那麼 /abc/ 和 /abc/def/ 內所有 file 都會被它影響,但 /index.html 不會被它影響 ←← 這一點是很重要的。

【密碼保護 】

這是最常見 .htaccess 被使用的功能之一,資料夾密碼保護。
這種方法可以使沒有授權的瀏覽者不能進入你所設定的限制區域,使用了 Javacript 設的密碼太簡單了,一下字就會被破解,而使用 .htaccess 系統就比使用 CGI 程式保護會員專頁將更為有效,更安全。更重要的是使用 .htaccess 方式去設定不需要編寫程式的技能。
首先,你要開啟一般文字編輯工具,做出一個名叫 .htpasswd 的檔名(當然又可能是其他,但一般伺服器都會設定 .htpasswd 是不能經由 http 讀到的。檔案中的的每一句代表一個使用者,使用者名稱以及加密了的密碼是以冒號(分隔。而密碼必須經過加密才可以使用。加密的方法是一般密碼使用了的 crypt,如果你不知如何加密,請到以下的網頁。
UHome
http://www.euronet.nl/~arnow/htpasswd/


注: Win32 版本的 apache 好像不支援用了 crypt 加密法的密碼檔,只支援 SHA1 和 MD5 的。如果你是使用 apahce for win32 版本,請使用 appserv\apache\bin\htpasswd.exe 做出以 MD5 加密的密碼檔!!

再在 .htaccess 中,加上以下句子
AuthName MemberPage
AuthType Basic
AuthUserFile /absolute/path/.htpasswd
require valid-user

AuthName 就是當 browser 得知要密碼時所出現的句字,你可以自行改動 MemberPage;而第二句的 AuthType Basic 就千萬不要去改;第三句的 AuthUserFile 就是設定所使用的 .htpasswd 檔,要留意它好像必需是在伺服器上的絕對路徑。請留意,這不是 URL 的位置、也不一定是在 ftp 中看到的位置、就算是由 CGI 自行測到的路徑也未必準確,請細看伺服器上的說明 (例如在 virtualave.net,URL 是 /.htpasswd ftp 看到的是 /public_html/.htpasswd,CGI 測到 /home/public_html/.htpasswd,但是事實上你要設定路徑為 /data1/virtualave.net/USERNAME/public_html/.htpasswd)。
為了保安理由,不建議把 .htpasswd 放到可以用 http 讀到的目錄;
最後的 require 就是命令伺服器誰可以進入,require valid-user 就是指只要是 .htpasswd 中的任何一人就可了;你也可以指定在名單上只有某人可以通過,require user username 或 require user username1 username2 username3;也可以指定是某組人才可以,require group groupname。

而設定組的方法是再做一個叫 .htgroup 的文字檔,內容如下:
groupname1: username1 username2 username3
groupname2: username1 username3 username4

再在 .htaccess 中加多一句 AuthGroupFile /absolute/path/.htgroup
方法和加入 .htpasswd 的一樣。

2007年5月17日 星期四

DIV 與 SPAN 的不同

原文轉錄:DIV 與 SPAN 標籤
HTML 中使用 CSS 來定義樣式、 版面配置, 近年又重新回到主流.

說到使用 CSS 來作為網頁版面配置, 就不得不介紹一下 DIV 這個 Tag(標籤). 除了 DIV Tag, 順便也介紹一下 SPAN 標籤.

在網路上搜尋到一個蠻清楚的定義, 可供參考如下,



The tag defines a division/section in a document.

Browsers usually place a line break before and after the div element.
Use the tag to group block-elements to format them with styles.

The tag is used to group inline-elements in a document.
Use the tag to group inline-elements to format them with styles

來源:www.w3schools.com


在 W3C 的定義中

DIV 是屬於 block-level(區塊) elements
SPAN 是 inline(行內,Text level) elements.


舉個簡單的例子, 網頁中的文字內容就是屬於 inline(行內) elements。 而 block-level(區塊) elements 則可以把文字、表格、圖層、影像檔案..等內容 Group 起來。 例如一般文字或表格預設是向左靠齊, 若使用 DIV 標籤將一個段落與表格 Group 起來成為一個 block, 則改變 DIV 標籤的 Align(對齊)屬性為向右靠齊, 該文字段落與表格都會同時變成向右靠齊。 因為它們現在屬於同一個block (區塊)。
原文轉錄:DIV 與 SPAN 標籤
HTML 中使用 CSS 來定義樣式、 版面配置, 近年又重新回到主流.

說到使用 CSS 來作為網頁版面配置, 就不得不介紹一下 DIV 這個 Tag(標籤). 除了 DIV Tag, 順便也介紹一下 SPAN 標籤.

在網路上搜尋到一個蠻清楚的定義, 可供參考如下,



The tag defines a division/section in a document.

Browsers usually place a line break before and after the div element.
Use the tag to group block-elements to format them with styles.

The tag is used to group inline-elements in a document.
Use the tag to group inline-elements to format them with styles

來源:www.w3schools.com


在 W3C 的定義中

DIV 是屬於 block-level(區塊) elements
SPAN 是 inline(行內,Text level) elements.


舉個簡單的例子, 網頁中的文字內容就是屬於 inline(行內) elements。 而 block-level(區塊) elements 則可以把文字、表格、圖層、影像檔案..等內容 Group 起來。 例如一般文字或表格預設是向左靠齊, 若使用 DIV 標籤將一個段落與表格 Group 起來成為一個 block, 則改變 DIV 標籤的 Align(對齊)屬性為向右靠齊, 該文字段落與表格都會同時變成向右靠齊。 因為它們現在屬於同一個block (區塊)。

php auth 套件

資料來源:幾隻不可不知的php auth 套件!!想省很多工快抄回家用!!!
Auth: Creating an authentication system.
Auth_HTTP: HTTP authentication
Auth_PrefManager: Preferences management class
Auth_PrefManager2: Preferences management class
Auth_RADIUS: Wrapper Classes for the RADIUS PECL.
Auth_SASL: Abstraction of various SASL mechanism responses
LiveUser: User authentication and permission management framework
LiveUser_Admin: User authentication and permission management framework 資料來源:幾隻不可不知的php auth 套件!!想省很多工快抄回家用!!!
Auth: Creating an authentication system.
Auth_HTTP: HTTP authentication
Auth_PrefManager: Preferences management class
Auth_PrefManager2: Preferences management class
Auth_RADIUS: Wrapper Classes for the RADIUS PECL.
Auth_SASL: Abstraction of various SASL mechanism responses
LiveUser: User authentication and permission management framework
LiveUser_Admin: User authentication and permission management framework

php實現文件安全下載

資料來源:♡php實現文件安全下載♡

  $file_name = "info_check.exe";

  $file_dir = "/public/www/download/";

  if (!file_exists($file_dir . $file_name)) { //检查文件是否存在

  echo "文件找不到";

  exit;

  } else {

  $file = fopen($file_dir . $file_name,"r"); //打开文件

  //输入文件标签

  Header("Content-type: application/octet-stream");

  Header("Accept-Ranges: bytes");

  Header("Accept-Length: ".filesize($file_dir . $file_name));

  Header("Content-Disposition: attachment; filename=" . $file_name);

  //输出文件内容

  echo fread($file,filesize($file_dir . $file_name));

  fclose($file);

  exit;}

  而如果文件路径是"http"或者"ftp"网址的话,则源代码会有少许改变,程序如下:

  $file_name = "info_check.exe";

  $file_dir = "www.easycn.net/";

  $file = @ fopen($file_dir . $file_name,"r");

  if (!$file) {

  echo "文件找不到";

  } else {

  Header("Content-type: application/octet-stream");

  Header("Content-Disposition: attachment; filename=" . $file_name);

  while (!feof ($file)) {

  echo fread($file,50000);

  }

  fclose ($file);

  } 資料來源:♡php實現文件安全下載♡

  $file_name = "info_check.exe";

  $file_dir = "/public/www/download/";

  if (!file_exists($file_dir . $file_name)) { //检查文件是否存在

  echo "文件找不到";

  exit;

  } else {

  $file = fopen($file_dir . $file_name,"r"); //打开文件

  //输入文件标签

  Header("Content-type: application/octet-stream");

  Header("Accept-Ranges: bytes");

  Header("Accept-Length: ".filesize($file_dir . $file_name));

  Header("Content-Disposition: attachment; filename=" . $file_name);

  //输出文件内容

  echo fread($file,filesize($file_dir . $file_name));

  fclose($file);

  exit;}

  而如果文件路径是"http"或者"ftp"网址的话,则源代码会有少许改变,程序如下:

  $file_name = "info_check.exe";

  $file_dir = "www.easycn.net/";

  $file = @ fopen($file_dir . $file_name,"r");

  if (!$file) {

  echo "文件找不到";

  } else {

  Header("Content-type: application/octet-stream");

  Header("Content-Disposition: attachment; filename=" . $file_name);

  while (!feof ($file)) {

  echo fread($file,50000);

  }

  fclose ($file);

  }

在php裡讀取Excel檔

資料來源: FIEND (EcStart 義工叔叔) 在 EcStart 論壇 發表的 分享一個 好用的 php 讀取 excel 套件 !!

PHP-ExcelReader
Overview

PHP-ExcelReader is a PHP class for reading the contents of Excel xls files. It used to require the OLE package but does not need to run on a windows platform. You could also find the OLE package here.

Starting before version 2i, the oleread.inc file is included with the PHP ExcelReader distribution, so it is no longer necessary to have the OLE package available.
Installation

The download consists of a number of files, but only two, reader.php and oleread.inc, are necessary to run the ExcelReader. The other files are an example application, readme, etc.

All that is required to run the class is to include the file with the class (reader.php by default) in your project. This, in turn, includes oleread.inc.
Usage

First, include the reader class file:

include('reader.php');

Make an instance of the class:

$xl_reader = new Spreadsheet_Excel_Reader();

Next we tell the object what file to read

$xl_reader->read("filename.xls");

This extracts all of the recognized data from the Excel file and stores it in an object.

The data is stored in two arrays. There are no methods/functions to access the data. Simply use the array names as described below.

The sheets array houses the bulk of the data that is read into the object

The data is stored in a 2D array:

$xl_reader->sheets[x][y]

* x is the sheet number in the document
* y is one of the following properties:
o numRows -- int -- number of rows on the sheet
example:

$rows = $xl_reader->sheets[0]['numRows']

o numCols -- int -- number of columns on the sheet
example:

$cols = $xl_reader->sheets[0]['numCols']

o cells -- array -- the actual information from the sheet. This is a 2D array in the form of [row][column]
example:

$cell_2_4 = $xl_reader->sheets[0]['cells'][2][4] //the data from the cell at row 2, column 4

This is correct, but not very readable, so just assign the cells array to a variable and reference from there:

$cells = $xl_reader[0]['cells']; //the array of cell information
$cell_2_4 = $cells[2][4]; //the data from the cell at row 2, column 4

o cellsInfo -- array -- the information about the different data types of the cells. For each cell this shows the raw data in the cell, and the type of data it is on the sheet.
This is an array with two parts:
raw -- the raw data in the cell
type -- the data type of the data in the cell
Note: This only displays information about non-text data.

example:

$cell_info = $xl_reader[0]['cellsInfo'][2][4];
$cell_info['raw'] is the raw data from the cell
$cell_info['type'] is the data type

[It would be nice to have more info here on how to interpret the raw and type data.]

The boundsheets array houses the remainder of the data in the object. This array is indexed by the sheet number within the workbook. The second index is always name.

$xl_reader->boundsheets['name']

gives the name of the ith sheet in the document.

example:

$sheetname = $xl_reader->boundsheets[0]['name']; // name of the first sheet


下載 :
http://sourceforge.net/project/showfiles.php?group_id=99160 資料來源: FIEND (EcStart 義工叔叔) 在 EcStart 論壇 發表的 分享一個 好用的 php 讀取 excel 套件 !!

PHP-ExcelReader
Overview

PHP-ExcelReader is a PHP class for reading the contents of Excel xls files. It used to require the OLE package but does not need to run on a windows platform. You could also find the OLE package here.

Starting before version 2i, the oleread.inc file is included with the PHP ExcelReader distribution, so it is no longer necessary to have the OLE package available.
Installation

The download consists of a number of files, but only two, reader.php and oleread.inc, are necessary to run the ExcelReader. The other files are an example application, readme, etc.

All that is required to run the class is to include the file with the class (reader.php by default) in your project. This, in turn, includes oleread.inc.
Usage

First, include the reader class file:

include('reader.php');

Make an instance of the class:

$xl_reader = new Spreadsheet_Excel_Reader();

Next we tell the object what file to read

$xl_reader->read("filename.xls");

This extracts all of the recognized data from the Excel file and stores it in an object.

The data is stored in two arrays. There are no methods/functions to access the data. Simply use the array names as described below.

The sheets array houses the bulk of the data that is read into the object

The data is stored in a 2D array:

$xl_reader->sheets[x][y]

* x is the sheet number in the document
* y is one of the following properties:
o numRows -- int -- number of rows on the sheet
example:

$rows = $xl_reader->sheets[0]['numRows']

o numCols -- int -- number of columns on the sheet
example:

$cols = $xl_reader->sheets[0]['numCols']

o cells -- array -- the actual information from the sheet. This is a 2D array in the form of [row][column]
example:

$cell_2_4 = $xl_reader->sheets[0]['cells'][2][4] //the data from the cell at row 2, column 4

This is correct, but not very readable, so just assign the cells array to a variable and reference from there:

$cells = $xl_reader[0]['cells']; //the array of cell information
$cell_2_4 = $cells[2][4]; //the data from the cell at row 2, column 4

o cellsInfo -- array -- the information about the different data types of the cells. For each cell this shows the raw data in the cell, and the type of data it is on the sheet.
This is an array with two parts:
raw -- the raw data in the cell
type -- the data type of the data in the cell
Note: This only displays information about non-text data.

example:

$cell_info = $xl_reader[0]['cellsInfo'][2][4];
$cell_info['raw'] is the raw data from the cell
$cell_info['type'] is the data type

[It would be nice to have more info here on how to interpret the raw and type data.]

The boundsheets array houses the remainder of the data in the object. This array is indexed by the sheet number within the workbook. The second index is always name.

$xl_reader->boundsheets['name']

gives the name of the ith sheet in the document.

example:

$sheetname = $xl_reader->boundsheets[0]['name']; // name of the first sheet


下載 :
http://sourceforge.net/project/showfiles.php?group_id=99160

2007年5月13日 星期日

汽機車強制險----機車篇

前一陣子跟朋友聊天聊到的....
忽然發現我一點都不清楚這東西的內容...

稍微整理了一下....
機車強制險的部份可分為三部份

1.機車強制責任險
本險係承保被保險人因所有、使用或管理被保險汽機車發生意外事故,致第三人死亡或體傷,不論被保險人有無過失,保險公司對受害人或享有損害賠償請求權之人,依保險契約規定對受益人給付保險金。

2.駕駛人傷害險
由於機車強制責任險條款載明,機車駕駛人駕駛被保險機車於單一機車交通事故致駕駛人本人死亡、殘廢或受有體傷時,保險公司不負賠償之責,因此在加保本特約保險後,本公司即對受益人負賠償之責,其保險金額與強制險相同。

3.任意第三人責任險
本保險分為傷害責任險及財損責任險其承保範圍如下:

傷害責任險:
被保險人因所有、使用或管理被保險機車發生意外事故致第三人死亡或受有體傷,依法應負賠償責任而受賠償請求時,保險公司於超過強制機車第三人責任保險金額以上部份對被保險人負賠償之責。

財損責任險:
被保險人因所有、使用或管理被保險機車發生意外事故,致第三人財物受有損害,依法應負賠償責任而受賠償請求時,保險公司對被保險人負賠償之責。


簡單來說,單純強制險(第1項)是保障對方的,自己完全是沒有保障的
若想要自己也有保障,就要投保駕駛人傷害險(第二項)....
除此之外,賠償對方財物損失或超出強制險的範疇的部份
就要再加保任意第三人責任險(第三項)來補強......

上述相關資料是從 達康保險 節錄而來 前一陣子跟朋友聊天聊到的....
忽然發現我一點都不清楚這東西的內容...

稍微整理了一下....
機車強制險的部份可分為三部份

1.機車強制責任險
本險係承保被保險人因所有、使用或管理被保險汽機車發生意外事故,致第三人死亡或體傷,不論被保險人有無過失,保險公司對受害人或享有損害賠償請求權之人,依保險契約規定對受益人給付保險金。

2.駕駛人傷害險
由於機車強制責任險條款載明,機車駕駛人駕駛被保險機車於單一機車交通事故致駕駛人本人死亡、殘廢或受有體傷時,保險公司不負賠償之責,因此在加保本特約保險後,本公司即對受益人負賠償之責,其保險金額與強制險相同。

3.任意第三人責任險
本保險分為傷害責任險及財損責任險其承保範圍如下:

傷害責任險:
被保險人因所有、使用或管理被保險機車發生意外事故致第三人死亡或受有體傷,依法應負賠償責任而受賠償請求時,保險公司於超過強制機車第三人責任保險金額以上部份對被保險人負賠償之責。

財損責任險:
被保險人因所有、使用或管理被保險機車發生意外事故,致第三人財物受有損害,依法應負賠償責任而受賠償請求時,保險公司對被保險人負賠償之責。


簡單來說,單純強制險(第1項)是保障對方的,自己完全是沒有保障的
若想要自己也有保障,就要投保駕駛人傷害險(第二項)....
除此之外,賠償對方財物損失或超出強制險的範疇的部份
就要再加保任意第三人責任險(第三項)來補強......

上述相關資料是從 達康保險 節錄而來

2007年5月11日 星期五

清除系統垃圾的BAT檔

轉錄自 網管人-電腦QA網:: 討論區

打開「記事本」,把下面的字複製進去,點「另存為」,把文件名定為「清除系統垃圾.bat」就完成,記住後副檔名一定要是.bat,好ok了!

你的垃圾清除器就這樣製作成功了!雙擊它就能很快地清理垃圾文件,大約一分鐘不到。

複製下面的字:
--------------------------------------------------------------------------------
@echo off
echo 正在清除系統垃圾檔案中,請稍候......
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak
del /f /s /q %windir%\prefetch\*.*
del /f /q %userprofile%\cookies\*.*
del /f /q %userprofile%\recent\*.*
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q "%userprofile%\recent\*.*"
DEL /S /F /Q "%systemroot%\Temp\*.*"
DEL /S /F /Q "%AllUsersProfile%\「開始」功能表\程式集\Windows Messenger.lnk"
RD /S /Q %windir%\temp & md %windir%\temp
RD /S /Q "%userprofile%\Local Settings\Temp"
MD "%userprofile%\Local Settings\Temp"
RD /S /Q "%systemdrive%\Program Files\Temp"
MD "%systemdrive%\Program Files\Temp"
RD /S /Q "%systemdrive%\d"
net user aspnet /delete
cleanmgr /sagerun:99

echo 清除系統垃圾檔案完成!!
pause
-------------------------------------------------------------------------------- 轉錄自 網管人-電腦QA網:: 討論區

打開「記事本」,把下面的字複製進去,點「另存為」,把文件名定為「清除系統垃圾.bat」就完成,記住後副檔名一定要是.bat,好ok了!

你的垃圾清除器就這樣製作成功了!雙擊它就能很快地清理垃圾文件,大約一分鐘不到。

複製下面的字:
--------------------------------------------------------------------------------
@echo off
echo 正在清除系統垃圾檔案中,請稍候......
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak
del /f /s /q %windir%\prefetch\*.*
del /f /q %userprofile%\cookies\*.*
del /f /q %userprofile%\recent\*.*
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q "%userprofile%\recent\*.*"
DEL /S /F /Q "%systemroot%\Temp\*.*"
DEL /S /F /Q "%AllUsersProfile%\「開始」功能表\程式集\Windows Messenger.lnk"
RD /S /Q %windir%\temp & md %windir%\temp
RD /S /Q "%userprofile%\Local Settings\Temp"
MD "%userprofile%\Local Settings\Temp"
RD /S /Q "%systemdrive%\Program Files\Temp"
MD "%systemdrive%\Program Files\Temp"
RD /S /Q "%systemdrive%\d"
net user aspnet /delete
cleanmgr /sagerun:99

echo 清除系統垃圾檔案完成!!
pause
--------------------------------------------------------------------------------

2007年5月8日 星期二

教育的未來(Did you know ?)

很震撼的內容....
深深發人省思啊~~



這則影片是從 Tsung's Blog好文: 你知道嗎? Did you know? (關於未來競爭力) 看來的

下面是他整理出來的資料
中文版影片 (lucifer) - 推薦必看 (這個就是上面的影片~)
英文版影片
投影片參考資料(PDF 英文版)
Did you know? WMV 檔
The Fischbowl: Did You Know? 很震撼的內容....
深深發人省思啊~~



這則影片是從 Tsung's Blog好文: 你知道嗎? Did you know? (關於未來競爭力) 看來的

下面是他整理出來的資料
中文版影片 (lucifer) - 推薦必看 (這個就是上面的影片~)
英文版影片
投影片參考資料(PDF 英文版)
Did you know? WMV 檔
The Fischbowl: Did You Know?

2007年5月7日 星期一

卓文萱+曹格--梁山伯與茱麗葉

既然都找了 愛的主旅律...
那麼這首也一併收錄好了~



作詞:曹格 作曲:曹格 編曲:涂惠源 合唱:卓文萱V.S曹格

曹:我的心想唱首歌給你聽 歌詞是如此的甜蜜
  可是我害羞我沒有勇氣 對你說一句我愛你

#卓:為什麼你還是不言不語 難道(是)你不懂我的心
   不管你用什麼方式表明 我會對你說我願意

●曹:千言萬語裡 只有一句話能 表白我的心
 卓:千言萬語裡 只要一句話就
 合:能夠讓我們相偎相依

◎曹:我愛你 你是我的茱麗葉 卓:茱麗葉
   我願意變成你的梁山伯
 合:幸福的每一天 浪漫的每一夜
 卓:把愛  曹:永遠
 卓:不放開 曹:I Love You
 卓:我愛你 你是我的羅密歐 曹:羅密歐
 卓:我願意變成你的祝英台
 合:幸福的每一天 浪漫的每一夜 美麗的愛情祝福著 未來

Repeat:(#) ● ◎ ◎ 既然都找了 愛的主旅律...
那麼這首也一併收錄好了~



作詞:曹格 作曲:曹格 編曲:涂惠源 合唱:卓文萱V.S曹格

曹:我的心想唱首歌給你聽 歌詞是如此的甜蜜
  可是我害羞我沒有勇氣 對你說一句我愛你

#卓:為什麼你還是不言不語 難道(是)你不懂我的心
   不管你用什麼方式表明 我會對你說我願意

●曹:千言萬語裡 只有一句話能 表白我的心
 卓:千言萬語裡 只要一句話就
 合:能夠讓我們相偎相依

◎曹:我愛你 你是我的茱麗葉 卓:茱麗葉
   我願意變成你的梁山伯
 合:幸福的每一天 浪漫的每一夜
 卓:把愛  曹:永遠
 卓:不放開 曹:I Love You
 卓:我愛你 你是我的羅密歐 曹:羅密歐
 卓:我願意變成你的祝英台
 合:幸福的每一天 浪漫的每一夜 美麗的愛情祝福著 未來

Repeat:(#) ● ◎ ◎

愛的主旅律

前一陣子聽廣播聽到的...
覺得不錯聽...今天才把它找出來....
(還一度以為是 卓文萱V.S曹格 唱的 梁山伯與茱麗葉 )




* 愛的主旋律 .. 歌詞

             (演唱:卓文萱,小鬼)


(鬼)是你在那個雨季 走進我生命
帶著一點任性和迷路的表情

(萱)是你在那個雨季 趕走了孤寂
溫暖的手融化還我僅有的堅定

(鬼)天上億萬顆星星 我卻只看見妳
要說這是幸運 還是不可思議

(萱)身邊有太多風景 我卻停在這裡
說我傻的可以 還不是因為你

(鬼)是妳的聲音 (萱)帶給我勇氣
(鬼)戀愛的頻率 (萱)直達我心底

(鬼)如果妳願意 (萱)是的我願意
(合)來做我幸福的主旋律

(鬼)從前都是謎 (萱)現在我相信
(鬼)天空會放晴 (萱)愛會更甜蜜

(鬼)如果妳願意 (萱)是的我願意
(合)愛的主旋律 永遠唱下去

啦啦啦........
轉載來自 ※Http://www.mojim.com 魔鏡歌詞網 前一陣子聽廣播聽到的...
覺得不錯聽...今天才把它找出來....
(還一度以為是 卓文萱V.S曹格 唱的 梁山伯與茱麗葉 )




* 愛的主旋律 .. 歌詞

             (演唱:卓文萱,小鬼)


(鬼)是你在那個雨季 走進我生命
帶著一點任性和迷路的表情

(萱)是你在那個雨季 趕走了孤寂
溫暖的手融化還我僅有的堅定

(鬼)天上億萬顆星星 我卻只看見妳
要說這是幸運 還是不可思議

(萱)身邊有太多風景 我卻停在這裡
說我傻的可以 還不是因為你

(鬼)是妳的聲音 (萱)帶給我勇氣
(鬼)戀愛的頻率 (萱)直達我心底

(鬼)如果妳願意 (萱)是的我願意
(合)來做我幸福的主旋律

(鬼)從前都是謎 (萱)現在我相信
(鬼)天空會放晴 (萱)愛會更甜蜜

(鬼)如果妳願意 (萱)是的我願意
(合)愛的主旋律 永遠唱下去

啦啦啦........
轉載來自 ※Http://www.mojim.com 魔鏡歌詞網

2007年4月17日 星期二

使用 PHP 上傳檔案

本是從使用 PHP 上傳檔案轉載而來~

建文 HTML 表單

要製作用作上傳檔案的表單與傳統的表單差不多,但必須將表單中的 enctype 屬性設成 multipart/form-data。enctype 屬性是指定瀏覽器對表單中的參數進行編碼的方法,預設值為 application/x-www-form-urlencoded。

以下是建立表單的例子:

upload.html

01 <html>
02 <head>
03 <title>A simple upload form</title>
04 </head>
05 <body>
06 <h2>A simple upload form</h2>
07
08 <form method="post" action="upload.php" enctype="multipart/form-data">
09 Enter file name: <input type="file" name="userfile"><br>
10 <input type="submit" value="Upload">
11 </form>
12
13 </body>
14 </html>

處理上傳檔案

建立了以上的 HTMl 表單後,下一步要做的就是後端的處理。在 PHP 中可以透過二維陣列 $HTTP_POST_FILES 或 $_FILES 來存取所上傳的檔案詳細內容。就以以上表單為例,輸入元素名為 userfile,各陣列元素為:

$_FILES['userfile']['name'] -- 檔案在客戶端電腦上的檔案名稱

$_FILES['userfile']['type'] -- 檔案的 MIME 類型,例如 "image/gif"

$_FILES['userfile']['size'] -- 上傳檔案的檔案大小,單為為 bytes

$_FILES['userfile']['tmp_name'] -- 上傳檔案儲存在伺服器端的暫存檔案名

$_FILES['userfile']['error'] -- 在 PHP 4.2.0 或更新的片本才有的這個陣列元素,上傳檔案的錯誤號碼


上傳檔案的 PHP 程式

以上介紹了建立上傳檔案用的表單及存取陣列,以下便建立上傳檔案的程式。首先需要建立一個目錄作儲存檔案,並需要確定 web server 有寫入的權限,一般設成 777 就可以,假設使用以上的上傳表單,以及上傳目錄是 "/var/www/uploads/",以下是程式碼範例會顯示上傳檔案資訊以及上傳檔案:

upload.php

01 <html>
02 <head>
03 <title>A simple upload form</title>
04 </head>
05 <body>
06 <h2>Uploaded File Details</h2>
07
08 <?php
09
// display file details
10
echo "Filename: " . $_FILES['userfile']['name'] . "<br>";
11 echo
"Temporary Name: " . $_FILES['userfile']['tmp_name'] . "<br>";
12 echo
"Size: ". $_FILES['userfile']['size'] . "<br>";
13 echo
"Type: ". $_FILES['userfile']['type'] . "<br>";
14
15
// copy file here
16
if(@copy($_FILES['userfile']['tmp_name'], "/var/www/uploads/" . $_FILES['userfile']['name'])){
17 echo
"<b>File successfully upload</b>";
18 }else{
19 echo
"<b>Error: failed to upload file</b>";
20 }
21
?>
22

23 </body>
24 </html>


以上傳子使用了 copy 函式上傳檔案,其實 PHP 對上傳檔案已提供了兩個專用函式,它們是 move_uploaded_file() 及 is_uploaded_file(),有興趣的朋友可參考 PHP 使用手冊關於這兩個函式的簡介及用法。

程式的改進

以上的上傳程式只做了最基本的上傳動作,在實際應用中還是會有問題,例如不能容納相同的檔案名稱、同一目錄檔案過多時存取效率減低等問題。但本文只作一個入門的介紹,希望日後可以寫一篇更深入的文章作介紹。

====================================================
歡迎轉載,但轉載時請保留此宣告,不得作為商業用途
作者: Sam Tang <admin{at}phpini{dot}com>
來源網站: http://www.phpdc.com/

本是從使用 PHP 上傳檔案轉載而來~

建文 HTML 表單

要製作用作上傳檔案的表單與傳統的表單差不多,但必須將表單中的 enctype 屬性設成 multipart/form-data。enctype 屬性是指定瀏覽器對表單中的參數進行編碼的方法,預設值為 application/x-www-form-urlencoded。

以下是建立表單的例子:

upload.html

01 <html>
02 <head>
03 <title>A simple upload form</title>
04 </head>
05 <body>
06 <h2>A simple upload form</h2>
07
08 <form method="post" action="upload.php" enctype="multipart/form-data">
09 Enter file name: <input type="file" name="userfile"><br>
10 <input type="submit" value="Upload">
11 </form>
12
13 </body>
14 </html>

處理上傳檔案

建立了以上的 HTMl 表單後,下一步要做的就是後端的處理。在 PHP 中可以透過二維陣列 $HTTP_POST_FILES 或 $_FILES 來存取所上傳的檔案詳細內容。就以以上表單為例,輸入元素名為 userfile,各陣列元素為:

$_FILES['userfile']['name'] -- 檔案在客戶端電腦上的檔案名稱

$_FILES['userfile']['type'] -- 檔案的 MIME 類型,例如 "image/gif"

$_FILES['userfile']['size'] -- 上傳檔案的檔案大小,單為為 bytes

$_FILES['userfile']['tmp_name'] -- 上傳檔案儲存在伺服器端的暫存檔案名

$_FILES['userfile']['error'] -- 在 PHP 4.2.0 或更新的片本才有的這個陣列元素,上傳檔案的錯誤號碼


上傳檔案的 PHP 程式

以上介紹了建立上傳檔案用的表單及存取陣列,以下便建立上傳檔案的程式。首先需要建立一個目錄作儲存檔案,並需要確定 web server 有寫入的權限,一般設成 777 就可以,假設使用以上的上傳表單,以及上傳目錄是 "/var/www/uploads/",以下是程式碼範例會顯示上傳檔案資訊以及上傳檔案:

upload.php

01 <html>
02 <head>
03 <title>A simple upload form</title>
04 </head>
05 <body>
06 <h2>Uploaded File Details</h2>
07
08 <?php
09
// display file details
10
echo "Filename: " . $_FILES['userfile']['name'] . "<br>";
11 echo
"Temporary Name: " . $_FILES['userfile']['tmp_name'] . "<br>";
12 echo
"Size: ". $_FILES['userfile']['size'] . "<br>";
13 echo
"Type: ". $_FILES['userfile']['type'] . "<br>";
14
15
// copy file here
16
if(@copy($_FILES['userfile']['tmp_name'], "/var/www/uploads/" . $_FILES['userfile']['name'])){
17 echo
"<b>File successfully upload</b>";
18 }else{
19 echo
"<b>Error: failed to upload file</b>";
20 }
21
?>
22

23 </body>
24 </html>


以上傳子使用了 copy 函式上傳檔案,其實 PHP 對上傳檔案已提供了兩個專用函式,它們是 move_uploaded_file() 及 is_uploaded_file(),有興趣的朋友可參考 PHP 使用手冊關於這兩個函式的簡介及用法。

程式的改進

以上的上傳程式只做了最基本的上傳動作,在實際應用中還是會有問題,例如不能容納相同的檔案名稱、同一目錄檔案過多時存取效率減低等問題。但本文只作一個入門的介紹,希望日後可以寫一篇更深入的文章作介紹。

====================================================
歡迎轉載,但轉載時請保留此宣告,不得作為商業用途
作者: Sam Tang <admin{at}phpini{dot}com>
來源網站: http://www.phpdc.com/

2007年4月14日 星期六

MySQL 資料型態

常會搜尋到,就記錄起來吧~

資料來源:《MySQL資料型態》

一.資料型態
二.數值
三.日期時間
常會搜尋到,就記錄起來吧~

資料來源:《MySQL資料型態》

一.資料型態
二.數值
三.日期時間

2007年4月10日 星期二

準新娘八週快速瘦身法

Just princess的網址看來的

蠻適合想減肥,但卻又不想刻意改變生活習慣的人~

例如:不想運動,或是無法每天運動的人~



婚前塑身最晚必須在拍婚紗前兩個月就要開始。

在拍婚紗之前就先瘦下來,事後只要維持到婚禮那天就好囉。



以八週來做瘦身計畫,大約可分成調整適應期、全力衝刺期、明顯瘦身期,與線條鍛鍊期四階段。

本人並非那種斤斤計較卡路里的人,又愛炸雞愛到欲罷不能,既然無法當個清心寡欲的素食者,只好用最簡單的原則來例行減食計畫

『早餐吃好好,中午吃飽飽,晚餐不要吃』



剛開始前兩週是最難的,若是一下子就讓自己熬不過,那後面就會失去努力的決心喔!

所以可以先從調整吃飯的習慣,謝絕點心宵夜開始。早中餐都正常,晚餐吃點水果。

此外為了避免肚子餓想吃宵夜,就說服自己美容覺的重要性,早點上床吧。



在適應與沖淡了對晚餐的想念之後,接下來兩週就是卯起來衝衝衝了。

若能夠過午不食是最好的,若真的不行,可以早餐吃得豐盛些,中午大約兩點再吃,延長飽足感

若是因為工作作息而無法調整,下午四點可以吃點水果裹腹也無傷大雅

但千萬不要吃西瓜或香蕉,這是會讓人胖的水果,蘋果倒是不錯的選擇。

而為了避免暗沈的膚色產生,對芒果可要敬謝不敏。



從開始瘦身起就盡量一天以兩餐為原則,若是在晚上真有無法避免的飯局,那天中午就甭吃了。

不管如何,飯麵等澱粉類是絕對碰不得的。

青菜跟肉到可以多吃喔~瘦身期間我還是大啖了肯德基幾次,不過倒是乖乖的把外層油炸皮給去掉了。

所以,適度的犒賞自己一下是可以的,這樣才會有繼續努力的勇氣喔!



四周過後,自己開始瘦下來了,瘦下來的速度,則在第六週達到顛峰。

在開心之餘,一定要努力的維持狀況,而每天持續的小運動更是不可少。



從開始瘦身的那天,我也開始做一些小運動,一個是針對手臂,為了能穿平口或細肩禮服所做的準備。

只要兩手平舉打直畫圓,往前跟往後各三十下就可以了,通常往前三十下做完就會覺得酸,往後的那三十下可真得撐一下。

再來就是每天20個仰臥起坐。不光是消肚子,正確的姿勢是全身都能運動到的。



在瘦身期間的人,最好不要馬上從事像跑步機或踩腳踏車這類的運動,因為一個不小心會把肉肉變成肌肉,那可就不好瘦了。

兩個小運動,花不到五分鐘,重點是持之以恆,真的很快就會看到效果喔!



而在最後兩週,線條的塑造就很重要了。我也是到這時候才突然想起應該搭配一些瘦身霜一起使用。

選用的商品是資生堂的香纖魔法液。

一方面是因為自己不喜歡太黏稠的感覺

二來進行瘦身時正值夏天,這款擦上會涼涼,擦完會發熱的商品,實在讓我很有感覺(心裡相信它會幫妳變瘦也是很重要的)。



女人的毅力會在這段時間發揮到極致

就在某一天我把常穿的一件裙子穿上,扣上扣子,拉好拉鍊還能整件直接脫掉之後,我就知道成功了!

欣喜若狂的我馬上翻出一年前的牛仔褲,果不其然就輕鬆穿上了。

以成果來說,大約甩掉了6、7公斤,線條結實了,也可以不用老穿長裙遮蓋下半身,挑選禮服也就空間更大了!



Just princess的網址看來的

蠻適合想減肥,但卻又不想刻意改變生活習慣的人~

例如:不想運動,或是無法每天運動的人~



婚前塑身最晚必須在拍婚紗前兩個月就要開始。

在拍婚紗之前就先瘦下來,事後只要維持到婚禮那天就好囉。



以八週來做瘦身計畫,大約可分成調整適應期、全力衝刺期、明顯瘦身期,與線條鍛鍊期四階段。

本人並非那種斤斤計較卡路里的人,又愛炸雞愛到欲罷不能,既然無法當個清心寡欲的素食者,只好用最簡單的原則來例行減食計畫

『早餐吃好好,中午吃飽飽,晚餐不要吃』



剛開始前兩週是最難的,若是一下子就讓自己熬不過,那後面就會失去努力的決心喔!

所以可以先從調整吃飯的習慣,謝絕點心宵夜開始。早中餐都正常,晚餐吃點水果。

此外為了避免肚子餓想吃宵夜,就說服自己美容覺的重要性,早點上床吧。



在適應與沖淡了對晚餐的想念之後,接下來兩週就是卯起來衝衝衝了。

若能夠過午不食是最好的,若真的不行,可以早餐吃得豐盛些,中午大約兩點再吃,延長飽足感

若是因為工作作息而無法調整,下午四點可以吃點水果裹腹也無傷大雅

但千萬不要吃西瓜或香蕉,這是會讓人胖的水果,蘋果倒是不錯的選擇。

而為了避免暗沈的膚色產生,對芒果可要敬謝不敏。



從開始瘦身起就盡量一天以兩餐為原則,若是在晚上真有無法避免的飯局,那天中午就甭吃了。

不管如何,飯麵等澱粉類是絕對碰不得的。

青菜跟肉到可以多吃喔~瘦身期間我還是大啖了肯德基幾次,不過倒是乖乖的把外層油炸皮給去掉了。

所以,適度的犒賞自己一下是可以的,這樣才會有繼續努力的勇氣喔!



四周過後,自己開始瘦下來了,瘦下來的速度,則在第六週達到顛峰。

在開心之餘,一定要努力的維持狀況,而每天持續的小運動更是不可少。



從開始瘦身的那天,我也開始做一些小運動,一個是針對手臂,為了能穿平口或細肩禮服所做的準備。

只要兩手平舉打直畫圓,往前跟往後各三十下就可以了,通常往前三十下做完就會覺得酸,往後的那三十下可真得撐一下。

再來就是每天20個仰臥起坐。不光是消肚子,正確的姿勢是全身都能運動到的。



在瘦身期間的人,最好不要馬上從事像跑步機或踩腳踏車這類的運動,因為一個不小心會把肉肉變成肌肉,那可就不好瘦了。

兩個小運動,花不到五分鐘,重點是持之以恆,真的很快就會看到效果喔!



而在最後兩週,線條的塑造就很重要了。我也是到這時候才突然想起應該搭配一些瘦身霜一起使用。

選用的商品是資生堂的香纖魔法液。

一方面是因為自己不喜歡太黏稠的感覺

二來進行瘦身時正值夏天,這款擦上會涼涼,擦完會發熱的商品,實在讓我很有感覺(心裡相信它會幫妳變瘦也是很重要的)。



女人的毅力會在這段時間發揮到極致

就在某一天我把常穿的一件裙子穿上,扣上扣子,拉好拉鍊還能整件直接脫掉之後,我就知道成功了!

欣喜若狂的我馬上翻出一年前的牛仔褲,果不其然就輕鬆穿上了。

以成果來說,大約甩掉了6、7公斤,線條結實了,也可以不用老穿長裙遮蓋下半身,挑選禮服也就空間更大了!



2007年4月3日 星期二

電腦安全防護軟體分享~

竹貓星球看到的..覺得不錯...
文章出自網友kuloo在竹貓星球所發佈的[分享]免費防護軟體推薦(目前仍在使用中)

僅摘錄分享的軟體部份....
使用心得請自行前往觀看....
--->[分享]免費防護軟體推薦(目前仍在使用中)


防護軟體:
AntiVir 官方網站(英、歐文): http://www.free-av.com
下載網址(英、歐文): http://www.free-av.com/antivirus/allinonen.html
簡易教學網站(中文): http://b2ddoc.tnc.edu.tw/yh/antivir-ez/
威基解釋(中文): http://zh.wikipedia.org/wiki/AntiVir
特點: 對系統的執行效能干擾極小, 防毒能力還算不錯, 其他請看中文簡介, 目前還未中文化. 安裝完, 雖然會有使用期限, 但隨著自動更新, 其使用期限, 也會一直向後延展. 基本上, 個人使用永久免費.

avast! 官方網站(可選簡中): http://www.avast.com/
下載網址(可選簡中): http://www.avast.com/eng/download-avast-home.html
簡易教學網站(中文): http://www.mobile01.com/topicdetail.php?f=174&t=166962
(注意: 這個教學要註冊登入網站才看的到圖, 也有網友的討論)
OSSACC簡介: http://www.ossacc.org/message/Group/News_Item.2006-04-28-2
特點: 七大防護模組, 防火墻, 檔案系統, 網頁, 即時通訊軟體, 郵件收發, P2P軟體等防護監控, 其他請看中文簡介, 多國語言, 包含繁體中文. avast! 4 家庭版可在安裝以後在試用模式運作 60 天 . 免費申請註冊後會通過電子郵件獲得註冊碼. 註冊號的有效期為一年.在使用一年以後需要重新註冊.

目前尚在評估對象
MS Windows Live OneCare 官方網站(中文): http://onecare.live.com/site/zh-tw/default.htm
下載網址(中文): 不須特別另外下載, 請依網頁指示進行所需動作.
官方教學網站(中文): http://help.live.com/help.aspx?mkt=zh-tw&project=WL_Safety&format=b1&querytype=keyword&query=
官方軟體簡介(中文): http://www.microsoft.com/taiwan/athome/security/update/onecare_live.mspx
特點: 微軟研發, 目前仍為測試版本, 嚴格說起來應該算是網路掃毒類型, 那為何會提這個服務哩? 因為它是微軟聲稱"全方位防護個人資訊安全"的服務, 既然如此, 咱們就來試試吧, 做一次服務可能時間要很久, 且在做完之後它會建議你一些事. 目前免費, 可能未來會收費.

特別建議: 因 Windows Live OneCare 應屬於網路掃毒類型, 所以, 它跟另外兩個防護軟體互不衝突, 可以交叉使用, 但 AntiVir 及 avast! 只能擇其一安裝.


間諜程式防護軟體
Spybot 官方網站(中文): http://www.safer-networking.org/ct/index.html
下載網址(中文): http://www.safer-networking.org/ct/mirrors/index.html
簡易教學網站(中文): http://www.safer-networking.org/ct/tutorial/index.html
軟體簡介(中文): http://www.safer-networking.org/ct/spybotsd/index.html
特點: SpyBot Search & Destroy 具有「間諜軟體(Spyware)」擒殺功能, 就算是再難纏的對手在它的也無所遁形, 可以將隱藏在系統登錄檔中「刪之不去」的間諜軟體揪出, 另搭配有詳盡的說明, 讓你對各式的間諜軟體有更進一步的認識. 若覺得這軟體對你有幫助, 可以考慮自由捐款方式回饋給作者.

MS Windows Defender (BETA 2)
官方網站(中文): http://www.microsoft.com/taiwan/athome/security/spyware/software/default.mspx
下載網址(英文): http://www.microsoft.com/downloads/details.aspx?FamilyId=435BFCE7-DA2B-4A6A-AFA4-F7F14E605A0D&displaylang=en
官方教學網站(中文): http://www.microsoft.com/taiwan/athome/security/spyware/software/support/howto/download.mspx
官方軟體簡介(中文): http://www.microsoft.com/taiwan/athome/security/spyware/software/msft/strategy.mspx
特點: 微軟研發, 目前仍為測試版本, 協助您的電腦避免由間諜軟體及其他有害軟體所帶來的快顯視窗、效能低落及安全性威脅等侵擾. 目前僅提供英文版、德文版及日文版, 在 Beta 版之後將會陸續提供其他語言版本. 目前免費, 可能未來會收費.
特別建議: 建議同時使用 MS Windows Defender 和 Spybot, 兩者有互補效果, 且目前為止並無衝突, 搭配使用應可達到不錯的防護效果!


防火牆軟體
費爾個人防火牆專業版
官方網站(中文): http://www.filseclab.com/cht/
下載網址(中文): http://www.filseclab.com/cht/download/downloads.htm
官方教學網站(中文): http://www.filseclab.com/cht/help/xfilter.htm
官方軟體簡介(中文): http://www.filseclab.com/cht/products/firewall.htm
特點: 功能非常強大, 而且簡單易用, 能滿足專業人士的需求也可讓一般使用者很容易操控. 它可以為你的電腦提供全方位的網路安全保護, 完全面費.
特別建議:
若要使用費爾個人防火牆專業版這個軟體, 建議本身要有一些網路方面的知識或是有可以諮詢網路設定方面問題的對象, 否則可能會遇到因設定問題, 而導致有部份網路無法順利執行的問題. 竹貓星球看到的..覺得不錯...
文章出自網友kuloo在竹貓星球所發佈的[分享]免費防護軟體推薦(目前仍在使用中)

僅摘錄分享的軟體部份....
使用心得請自行前往觀看....
--->[分享]免費防護軟體推薦(目前仍在使用中)


防護軟體:
AntiVir 官方網站(英、歐文): http://www.free-av.com
下載網址(英、歐文): http://www.free-av.com/antivirus/allinonen.html
簡易教學網站(中文): http://b2ddoc.tnc.edu.tw/yh/antivir-ez/
威基解釋(中文): http://zh.wikipedia.org/wiki/AntiVir
特點: 對系統的執行效能干擾極小, 防毒能力還算不錯, 其他請看中文簡介, 目前還未中文化. 安裝完, 雖然會有使用期限, 但隨著自動更新, 其使用期限, 也會一直向後延展. 基本上, 個人使用永久免費.

avast! 官方網站(可選簡中): http://www.avast.com/
下載網址(可選簡中): http://www.avast.com/eng/download-avast-home.html
簡易教學網站(中文): http://www.mobile01.com/topicdetail.php?f=174&t=166962
(注意: 這個教學要註冊登入網站才看的到圖, 也有網友的討論)
OSSACC簡介: http://www.ossacc.org/message/Group/News_Item.2006-04-28-2
特點: 七大防護模組, 防火墻, 檔案系統, 網頁, 即時通訊軟體, 郵件收發, P2P軟體等防護監控, 其他請看中文簡介, 多國語言, 包含繁體中文. avast! 4 家庭版可在安裝以後在試用模式運作 60 天 . 免費申請註冊後會通過電子郵件獲得註冊碼. 註冊號的有效期為一年.在使用一年以後需要重新註冊.

目前尚在評估對象
MS Windows Live OneCare 官方網站(中文): http://onecare.live.com/site/zh-tw/default.htm
下載網址(中文): 不須特別另外下載, 請依網頁指示進行所需動作.
官方教學網站(中文): http://help.live.com/help.aspx?mkt=zh-tw&project=WL_Safety&format=b1&querytype=keyword&query=
官方軟體簡介(中文): http://www.microsoft.com/taiwan/athome/security/update/onecare_live.mspx
特點: 微軟研發, 目前仍為測試版本, 嚴格說起來應該算是網路掃毒類型, 那為何會提這個服務哩? 因為它是微軟聲稱"全方位防護個人資訊安全"的服務, 既然如此, 咱們就來試試吧, 做一次服務可能時間要很久, 且在做完之後它會建議你一些事. 目前免費, 可能未來會收費.

特別建議: 因 Windows Live OneCare 應屬於網路掃毒類型, 所以, 它跟另外兩個防護軟體互不衝突, 可以交叉使用, 但 AntiVir 及 avast! 只能擇其一安裝.


間諜程式防護軟體
Spybot 官方網站(中文): http://www.safer-networking.org/ct/index.html
下載網址(中文): http://www.safer-networking.org/ct/mirrors/index.html
簡易教學網站(中文): http://www.safer-networking.org/ct/tutorial/index.html
軟體簡介(中文): http://www.safer-networking.org/ct/spybotsd/index.html
特點: SpyBot Search & Destroy 具有「間諜軟體(Spyware)」擒殺功能, 就算是再難纏的對手在它的也無所遁形, 可以將隱藏在系統登錄檔中「刪之不去」的間諜軟體揪出, 另搭配有詳盡的說明, 讓你對各式的間諜軟體有更進一步的認識. 若覺得這軟體對你有幫助, 可以考慮自由捐款方式回饋給作者.

MS Windows Defender (BETA 2)
官方網站(中文): http://www.microsoft.com/taiwan/athome/security/spyware/software/default.mspx
下載網址(英文): http://www.microsoft.com/downloads/details.aspx?FamilyId=435BFCE7-DA2B-4A6A-AFA4-F7F14E605A0D&displaylang=en
官方教學網站(中文): http://www.microsoft.com/taiwan/athome/security/spyware/software/support/howto/download.mspx
官方軟體簡介(中文): http://www.microsoft.com/taiwan/athome/security/spyware/software/msft/strategy.mspx
特點: 微軟研發, 目前仍為測試版本, 協助您的電腦避免由間諜軟體及其他有害軟體所帶來的快顯視窗、效能低落及安全性威脅等侵擾. 目前僅提供英文版、德文版及日文版, 在 Beta 版之後將會陸續提供其他語言版本. 目前免費, 可能未來會收費.
特別建議: 建議同時使用 MS Windows Defender 和 Spybot, 兩者有互補效果, 且目前為止並無衝突, 搭配使用應可達到不錯的防護效果!


防火牆軟體
費爾個人防火牆專業版
官方網站(中文): http://www.filseclab.com/cht/
下載網址(中文): http://www.filseclab.com/cht/download/downloads.htm
官方教學網站(中文): http://www.filseclab.com/cht/help/xfilter.htm
官方軟體簡介(中文): http://www.filseclab.com/cht/products/firewall.htm
特點: 功能非常強大, 而且簡單易用, 能滿足專業人士的需求也可讓一般使用者很容易操控. 它可以為你的電腦提供全方位的網路安全保護, 完全面費.
特別建議:
若要使用費爾個人防火牆專業版這個軟體, 建議本身要有一些網路方面的知識或是有可以諮詢網路設定方面問題的對象, 否則可能會遇到因設定問題, 而導致有部份網路無法順利執行的問題.

滑鼠游標

工作需要,要在網頁更改游標的圖示...
剛巧找到這一頁教學,寫的蠻詳細的~

OECSPACE Cursor「滑鼠游標教學與下載」

節錄我所需用到程式部份

在IE瀏覽環境,W3C發佈網頁滑鼠游標的標準寫法說明:

<style type="text/css">
<!--
body {cursor:url("mything.cur"),url("mything.cur"),text;}
//-->
</style>
當無法處理游標名單的第一個游標,則會以第二個游標代替若無法處理任何定義的游標,最後便以一般游標text顯示


網頁游標其他標籤元素CSS,寫法為:

body {cursor:url("mything.cur"),text;} 整個網頁
table {cursor:url("mything.cur"),text;} 表格
input {cursor:url("mything.cur"),text;} 單行文字表單
a {cursor:url("mything.cur"),text;} 超連結


自由變更網頁游標

複製語法貼於<head></head>之間
<script type="text/javascript">
<!--
function changeCursor(theType)
{
document.all("myCursor").style.cursor = theType;
}
//-->
</script>
複製語法貼於body框框內
ID="myCursor"

複製語法貼於<body></body>之間
按下圖片改變滑鼠游標
<img border="0"
src="1.gif" onClick="changeCursor('cur_s1.ani')">
<img
border="0" src="2.gif" onClick="changeCursor('cur_s2.ani')">

工作需要,要在網頁更改游標的圖示...
剛巧找到這一頁教學,寫的蠻詳細的~

OECSPACE Cursor「滑鼠游標教學與下載」

節錄我所需用到程式部份

在IE瀏覽環境,W3C發佈網頁滑鼠游標的標準寫法說明:

<style type="text/css">
<!--
body {cursor:url("mything.cur"),url("mything.cur"),text;}
//-->
</style>
當無法處理游標名單的第一個游標,則會以第二個游標代替若無法處理任何定義的游標,最後便以一般游標text顯示


網頁游標其他標籤元素CSS,寫法為:

body {cursor:url("mything.cur"),text;} 整個網頁
table {cursor:url("mything.cur"),text;} 表格
input {cursor:url("mything.cur"),text;} 單行文字表單
a {cursor:url("mything.cur"),text;} 超連結


自由變更網頁游標

複製語法貼於<head></head>之間
<script type="text/javascript">
<!--
function changeCursor(theType)
{
document.all("myCursor").style.cursor = theType;
}
//-->
</script>
複製語法貼於body框框內
ID="myCursor"

複製語法貼於<body></body>之間
按下圖片改變滑鼠游標
<img border="0"
src="1.gif" onClick="changeCursor('cur_s1.ani')">
<img
border="0" src="2.gif" onClick="changeCursor('cur_s2.ani')">

2007年3月28日 星期三

追求財富人生的6大步驟 富足一生

【今周刊】第530期
追求財富人生的6大步驟 富足一生
謝春滿  2007-02-14

「富足一生」是許多人心中的夢想,要達到這個目標,其實並不困難。只要在人生不同階段,有方法、照步驟進行,找出適合自己的投資理財方法,你也可以享有富足人生。
20歲,積極投資自己,才能帶來財富。
30歲,存到第一桶金,才能用錢賺錢。
40歲,把握人生黃金10年,積極創造財富。
50歲,守住財富穩穩獲利。
富足第一步:儲蓄
  養成存錢及記帳習慣,小富自己來

「理財就像爬樓梯,先站穩第一步,才能再走第二步,第一步就是儲蓄。」國泰世華銀行財富管理經理張琇玲強調,理財成功的關鍵在於儲蓄,年輕人應該及早儲蓄,累積一定財富後,才能進行理財投資規畫。

「大富由天,小富自己來。」荷蘭銀行台北分行資深副總王蘊慈認為,一個人是否會大富,是由天決定,但小富卻可以靠自己從小錢開始累積。儲蓄的方法很多,可以採用強迫式的定期定額方式達到儲蓄目的。

身價好幾億元的智冠科技董事長王俊博分享他年輕時的儲蓄經驗。他在大學畢業後,一點金錢概念都沒有,當兵後,在鳳山步兵學校受訓半年,放假一天可以把整個月的軍餉都花光。
半年後調到金門,他第一次學會理財。當時一個月軍餉才一千三百元,由於住外島花費便宜,一個月下來,竟然存了一千元,一九七○年代的一千塊不算少。「我第一次感受到存錢有一種喜悅的感覺!」

富足第二步:訂財富目標
  想清楚自己要什麼,現在開始學投資

於是他養成每個月記帳習慣,一年四個月內存下一萬八千元,當時一般薪水階級月薪才三、五千塊。退伍後父母親看他存了這麼多錢,嚇了一跳。此後,他開始對存錢有概念,做事以後,每個月薪水進來他都會仔細計算開支,想辦法開源節流,存錢讓他內心有一種篤定的感覺,這個理財習慣對他後來創業有很大幫助。

不論是創業或是上班族,先學會把錢存下來,是未來致富的關鍵。

《智富一輩子》書中強調:「你一定要了解,投資是一輩子的事業,由於你一生中都離不開投資,所以愈早開始學習投資,成效愈好。要擬定一套以累積財富為目標的投資計畫,並執行你的投資計畫。」

台新金控信託投資事業處副總仲向榮建議想要富足的人,先設定目標,清楚知道自己的財富目標,例如出國念書、結婚、置產、買房子、子女教育或退休後要過什麼樣的生活等。目標確定後,才知道財要怎麼理。一開始就要做對,否則做了幾年後才發現金額不對,就來不及了。有了目標之後,接下來就是立即展開投資行動。

今年二十七歲的陸毅棋,從二十五歲就設定理財目標,他說:「我希望自己最終能夠得到財務上的自由,由我來控制金錢,而非受制於金錢,那才是真正的富足。」

他的金錢欲望並不高,因此設定未來退休後每月生活費是五萬元,由此推估,至少得有六百萬元,以一○%報酬率計算的話,一年會有六十萬元收入。

目前任職於住商房屋的陸毅棋,剛出社會之際,因消費沒有節制,欠下四、五十萬元卡債,為了躲避銀行催討,甚至連家都不敢回,每月的循環利息超過薪水,當時差點放棄一切,從此消失。後來在媽媽鼓勵下,進入業務性質收入較高的保險業。他進入保誠人壽一年後就還清債務。

富足第三步:良好紀律
  挑優質標的定期投資,嚴設停損停利

經過這次慘痛教訓,人生觀起了很大變化,他決定好好為未來打算,二年前開始利用投資型保單按月存款,少則一萬、多則二、三萬元,不過二年時間,就存了五十萬元,照這個速度,他相信四十幾歲就能達到富足境界了。

確立目標之後,再來就是有紀律的定期投資。「日本有一位農夫,他種下一棵竹子,連續灌溉七年,竹子都文風不動,但是在最後六個禮拜長了 三十公尺 。」摩根富林明資產管理副總張慈恩說了這個故事,告訴大家「紀律」的重要性。

張慈恩說:「投資之前,你要挑對一個好種子,之後每天澆水,這個澆水的動作就是『紀律』,你不能因為竹子還沒長出來就不澆水了,投資像農夫種竹子一樣,必須有紀律的定期投資,最後才會長出財富來。」

「有紀律的投資對累積財富有很大幫助。」中信金個人金融執行長尚瑞強說,投資熟悉的產業,這是所謂的紀律,也是穩健的作法。他以自身例子說明穩健的重要性。

富足第四步:資產配置
  分散投資標的,才能降低風險

尚瑞強在三十歲就賺進人生第一個一百萬元。當時股市上萬點,他買了某一支航運股,全部資金都押在這支股票上,一百七十幾塊錢買進,跌到一.五元時賣出,一百萬元剩下一千五百元,血本無歸,很多人都認為年輕可以多冒險,他卻持不同看法。他奉勸年輕人,投資不要冒太大風險,因為,賠掉好不容易存下來的錢,重新再來很辛苦。

得到這個教訓後,他調整投資策略,只投資自己熟悉的產業,就是金融股,因為身處這個產業,對這個產業非常了解,很清楚哪家銀行經營得好不好,長期下來,資產穩穩增加。此外,適當的停利停損也是重要應遵守的紀律,他建議可依個人對風險承受度,設定停損停利點。尤其是對不熟悉的產業一定要設停損點。以他個人為例,他曾經投資一檔基金,交由理專操作,停損點設在一○%,到達這個程度就出場。

股神華倫·巴菲特表示:「因為沒有人具備預測經濟趨勢的能力,對於股市漲跌也沒有人可以準確預測,因此,不了解自己該做什麼的投資人,只有運用廣泛分散的投資策略,才能得到報酬。」

富足第五步:定期檢視
  調整投資組合及策略,適時修正

ING投信執行副總劉益銘也認為,做好資產配置是分散風險的最佳利器,投資者在做好資產配置後,再做標的、買進時點的分散,這樣可以進一步降低風險。

做好資產配置之後,接下來就是定期檢視你的投資組合。荷蘭銀行台北分行資深副總王蘊慈表示,市場變動很快,投資之後要定期檢視,適時做修正,選擇風險一樣但報酬率較高的工具,勝算較高。

今年四十五歲做貿易出身的李淑蘭,四年前開始學習投資理財,把過去的積蓄拿來投資共同基金,四年來,她不斷吸收相關資訊,理專建議的投資標的,並非照單全收,她仔細研究,了解市場趨勢與產業發展後,才決定投資與否,並且定期檢視調整。

經過四年來的練習,她已能自行判斷投資策略,像前陣子石油價格大跌到每桶五十元時,她研判是低點,就進場買進。定期檢視,隨時修正調整投資組合,目前整體投資報酬率在二○%到三○%之間。

富足第六步:耐心長期持有
  時間是百萬富翁最好的朋友

美國暢銷書《成為百萬富翁的八個步驟》,書中描述成為百萬富翁的其中一個步驟,是買了股票長期持有。調查顯示:四分之三的百萬富翁(指美金百萬元)買股票至少持有五年以上。

第一銀行大安分行個人金融副理孫娟娟透露,她有一位客戶於十七年前買進富達歐洲基金,投資單筆三百萬元,十七年來歷經股市空頭與多頭,都沒有出場,獲利十五倍,資產從三百萬元變四千五百萬元,最近他陸續贖回該基金,可以享受優渥的退休生活。這個活生生的例子告訴我們,長期持有的威力驚人。 【今周刊】第530期
追求財富人生的6大步驟 富足一生
謝春滿  2007-02-14

「富足一生」是許多人心中的夢想,要達到這個目標,其實並不困難。只要在人生不同階段,有方法、照步驟進行,找出適合自己的投資理財方法,你也可以享有富足人生。
20歲,積極投資自己,才能帶來財富。
30歲,存到第一桶金,才能用錢賺錢。
40歲,把握人生黃金10年,積極創造財富。
50歲,守住財富穩穩獲利。
富足第一步:儲蓄
  養成存錢及記帳習慣,小富自己來

「理財就像爬樓梯,先站穩第一步,才能再走第二步,第一步就是儲蓄。」國泰世華銀行財富管理經理張琇玲強調,理財成功的關鍵在於儲蓄,年輕人應該及早儲蓄,累積一定財富後,才能進行理財投資規畫。

「大富由天,小富自己來。」荷蘭銀行台北分行資深副總王蘊慈認為,一個人是否會大富,是由天決定,但小富卻可以靠自己從小錢開始累積。儲蓄的方法很多,可以採用強迫式的定期定額方式達到儲蓄目的。

身價好幾億元的智冠科技董事長王俊博分享他年輕時的儲蓄經驗。他在大學畢業後,一點金錢概念都沒有,當兵後,在鳳山步兵學校受訓半年,放假一天可以把整個月的軍餉都花光。
半年後調到金門,他第一次學會理財。當時一個月軍餉才一千三百元,由於住外島花費便宜,一個月下來,竟然存了一千元,一九七○年代的一千塊不算少。「我第一次感受到存錢有一種喜悅的感覺!」

富足第二步:訂財富目標
  想清楚自己要什麼,現在開始學投資

於是他養成每個月記帳習慣,一年四個月內存下一萬八千元,當時一般薪水階級月薪才三、五千塊。退伍後父母親看他存了這麼多錢,嚇了一跳。此後,他開始對存錢有概念,做事以後,每個月薪水進來他都會仔細計算開支,想辦法開源節流,存錢讓他內心有一種篤定的感覺,這個理財習慣對他後來創業有很大幫助。

不論是創業或是上班族,先學會把錢存下來,是未來致富的關鍵。

《智富一輩子》書中強調:「你一定要了解,投資是一輩子的事業,由於你一生中都離不開投資,所以愈早開始學習投資,成效愈好。要擬定一套以累積財富為目標的投資計畫,並執行你的投資計畫。」

台新金控信託投資事業處副總仲向榮建議想要富足的人,先設定目標,清楚知道自己的財富目標,例如出國念書、結婚、置產、買房子、子女教育或退休後要過什麼樣的生活等。目標確定後,才知道財要怎麼理。一開始就要做對,否則做了幾年後才發現金額不對,就來不及了。有了目標之後,接下來就是立即展開投資行動。

今年二十七歲的陸毅棋,從二十五歲就設定理財目標,他說:「我希望自己最終能夠得到財務上的自由,由我來控制金錢,而非受制於金錢,那才是真正的富足。」

他的金錢欲望並不高,因此設定未來退休後每月生活費是五萬元,由此推估,至少得有六百萬元,以一○%報酬率計算的話,一年會有六十萬元收入。

目前任職於住商房屋的陸毅棋,剛出社會之際,因消費沒有節制,欠下四、五十萬元卡債,為了躲避銀行催討,甚至連家都不敢回,每月的循環利息超過薪水,當時差點放棄一切,從此消失。後來在媽媽鼓勵下,進入業務性質收入較高的保險業。他進入保誠人壽一年後就還清債務。

富足第三步:良好紀律
  挑優質標的定期投資,嚴設停損停利

經過這次慘痛教訓,人生觀起了很大變化,他決定好好為未來打算,二年前開始利用投資型保單按月存款,少則一萬、多則二、三萬元,不過二年時間,就存了五十萬元,照這個速度,他相信四十幾歲就能達到富足境界了。

確立目標之後,再來就是有紀律的定期投資。「日本有一位農夫,他種下一棵竹子,連續灌溉七年,竹子都文風不動,但是在最後六個禮拜長了 三十公尺 。」摩根富林明資產管理副總張慈恩說了這個故事,告訴大家「紀律」的重要性。

張慈恩說:「投資之前,你要挑對一個好種子,之後每天澆水,這個澆水的動作就是『紀律』,你不能因為竹子還沒長出來就不澆水了,投資像農夫種竹子一樣,必須有紀律的定期投資,最後才會長出財富來。」

「有紀律的投資對累積財富有很大幫助。」中信金個人金融執行長尚瑞強說,投資熟悉的產業,這是所謂的紀律,也是穩健的作法。他以自身例子說明穩健的重要性。

富足第四步:資產配置
  分散投資標的,才能降低風險

尚瑞強在三十歲就賺進人生第一個一百萬元。當時股市上萬點,他買了某一支航運股,全部資金都押在這支股票上,一百七十幾塊錢買進,跌到一.五元時賣出,一百萬元剩下一千五百元,血本無歸,很多人都認為年輕可以多冒險,他卻持不同看法。他奉勸年輕人,投資不要冒太大風險,因為,賠掉好不容易存下來的錢,重新再來很辛苦。

得到這個教訓後,他調整投資策略,只投資自己熟悉的產業,就是金融股,因為身處這個產業,對這個產業非常了解,很清楚哪家銀行經營得好不好,長期下來,資產穩穩增加。此外,適當的停利停損也是重要應遵守的紀律,他建議可依個人對風險承受度,設定停損停利點。尤其是對不熟悉的產業一定要設停損點。以他個人為例,他曾經投資一檔基金,交由理專操作,停損點設在一○%,到達這個程度就出場。

股神華倫·巴菲特表示:「因為沒有人具備預測經濟趨勢的能力,對於股市漲跌也沒有人可以準確預測,因此,不了解自己該做什麼的投資人,只有運用廣泛分散的投資策略,才能得到報酬。」

富足第五步:定期檢視
  調整投資組合及策略,適時修正

ING投信執行副總劉益銘也認為,做好資產配置是分散風險的最佳利器,投資者在做好資產配置後,再做標的、買進時點的分散,這樣可以進一步降低風險。

做好資產配置之後,接下來就是定期檢視你的投資組合。荷蘭銀行台北分行資深副總王蘊慈表示,市場變動很快,投資之後要定期檢視,適時做修正,選擇風險一樣但報酬率較高的工具,勝算較高。

今年四十五歲做貿易出身的李淑蘭,四年前開始學習投資理財,把過去的積蓄拿來投資共同基金,四年來,她不斷吸收相關資訊,理專建議的投資標的,並非照單全收,她仔細研究,了解市場趨勢與產業發展後,才決定投資與否,並且定期檢視調整。

經過四年來的練習,她已能自行判斷投資策略,像前陣子石油價格大跌到每桶五十元時,她研判是低點,就進場買進。定期檢視,隨時修正調整投資組合,目前整體投資報酬率在二○%到三○%之間。

富足第六步:耐心長期持有
  時間是百萬富翁最好的朋友

美國暢銷書《成為百萬富翁的八個步驟》,書中描述成為百萬富翁的其中一個步驟,是買了股票長期持有。調查顯示:四分之三的百萬富翁(指美金百萬元)買股票至少持有五年以上。

第一銀行大安分行個人金融副理孫娟娟透露,她有一位客戶於十七年前買進富達歐洲基金,投資單筆三百萬元,十七年來歷經股市空頭與多頭,都沒有出場,獲利十五倍,資產從三百萬元變四千五百萬元,最近他陸續贖回該基金,可以享受優渥的退休生活。這個活生生的例子告訴我們,長期持有的威力驚人。

2007年3月27日 星期二

Wii勸敗文~~~

一直研究很久,早在過年前就想買了~因為價格不漂亮跟遊戲實在有點少...
就沒買了~而且2月底我弟去買了台PS2回家...
現在就繼續等嚕~~(PS2也可以玩得很瘋...XD)
反正博優到現在也還沒有公司貨的相關消息~
再等等也好,到時遊戲也多~XD

轉載Tsung's BlogWII 勸敗文

WII 勸敗文

Wii 應該算是目前當紅的遊戲機, 但是某些人家裡的財務長就是不給買, 所以來寫一篇勸敗文給他們家的財務長參考參考.. :p

註: 此篇文章可能會讓荷包減少約 $15000, 要看前請做好心理準備~

先來個 Wii 簡介:(轉載自新聞)
  Wii,是任天堂公司繼紅白機(或稱 FC / Famicom), 超級任天堂(SFC / Super Family Computer),任天堂64(Nintendo 64)及「GameCube」後 , 即將推出的家用遊戲主機. 北美將於2006年11月19日發售, 日本於2006年12月2日發售, 澳洲於2006年12月7日發售, 歐洲於2006年12月8日發售.

  Wii的主要特色在於無線的控制器, 稱作「Wii Remote」或「Wii-mote」. 控制器可以作為手持式的指向裝置, 並可進行三度空間中的動作和旋轉偵測, 控制器中同時包含揚聲器(喇叭)和震動裝置以提供感應的回饋. 控制器同時也備有稱作「WiiConnect 24」的特色功能, 可以在消 耗極少量電力的情況下連至網際網路接受訊息或更新檔案(岩田社長在E3展中將其與小燈泡消耗的電力相比). 這些新概念在過去的家用電視遊戲機中都從未出現過.

還不懂 wii 是什麼的, 就看看下面連結(影片)...
Wii 宣傳影片1
Wii 宣傳影片2
Ayumi Hamasaki
playing wii
- 看濱崎步親身試玩 wii
Wii 開盒照
看完上面影片還沒有吸引力, 就要使用最終絕招了...

現在的人都會了健身/減肥的事在煩腦, 所以來篇新聞證實 WII 的功用, 這篇新聞裡面有包括影片(紀錄他們是怎麼運動的), 此篇寫說, 每天玩30分鐘, 就輕鬆瘦下來..(我就是這樣說服財務長的 :D)
親愛的Wii,瘦下來的感覺,真好!
Wii開始進入老年人市場 - wii能讓老一輩的也能輕鬆入手
如果這樣子還無法說服老婆, 就放棄吧~.. Orz...

買WII後, 要另外買的遊戲 + 搖桿(手把)(建議)

第一次接觸 + 手把(右手手把)
左手手把
Sport
然後來分享我在買前有另外做的功課, 遊戲機目前只有日文機可以買, 然後買遊戲怕貴的話, 可以考慮下面的地方.

哈拉版二手遊戲交換討論串(巴哈姆特)
二手wii ngc買賣版 - 很多二手遊戲要交換的(巴哈姆特)
wii玩家俱樂部 - 裡面有個遊戲交換區
wii 買片子的地方 - 聽說這邊買比較便宜, 但我沒去買過

更廉價的方法.. XD

wii 改機破解
Open Source 的 Wiip (wii 破解 open source)
Wii: 台灣首創Wii拆機教學( 拆機只要10分鐘)
Wii 其它相關

Wii 可以撥的影片格式
Wii Opera - 於 wii遊戲機中的商店免費下載安裝
wii 瘋狂兔子攻略
用 css 畫出 Wii Buttons
Wii 官方網站

我自己補的後記:
  話說過完年後因為博優的小動作-對媒體放出消息,他們拋出一個議題「Wii遊戲機擁有藍芽及無線傳輸(Wi-Fi)功能,要送NCC審驗通過才能上市銷售,但水貨有違法之虞」。讓Wii在新聞媒體炒翻天i,但截至目前為止,還是未見博優公告什麼有關上市的消息,只會一直放話說沒跟任何通路商合作...看來水貨還會橫行一陣子...

相關報導:
曾阿嬤嗆聲 Wii水貨會死得難看
電玩強人曾愛玉:跟著我 不會吃虧
打水貨 Wii 代理商弄巧成拙

希望真的像曾阿嬤講的....台灣區會有專屬服務...可以有繁體中文的介面...
可以有台灣的伺服器可以連...

要不然...那跟現在買的水貨日版的Wii有什麼不一樣呢?? 一直研究很久,早在過年前就想買了~因為價格不漂亮跟遊戲實在有點少...
就沒買了~而且2月底我弟去買了台PS2回家...
現在就繼續等嚕~~(PS2也可以玩得很瘋...XD)
反正博優到現在也還沒有公司貨的相關消息~
再等等也好,到時遊戲也多~XD

轉載Tsung's BlogWII 勸敗文

WII 勸敗文

Wii 應該算是目前當紅的遊戲機, 但是某些人家裡的財務長就是不給買, 所以來寫一篇勸敗文給他們家的財務長參考參考.. :p

註: 此篇文章可能會讓荷包減少約 $15000, 要看前請做好心理準備~

先來個 Wii 簡介:(轉載自新聞)
  Wii,是任天堂公司繼紅白機(或稱 FC / Famicom), 超級任天堂(SFC / Super Family Computer),任天堂64(Nintendo 64)及「GameCube」後 , 即將推出的家用遊戲主機. 北美將於2006年11月19日發售, 日本於2006年12月2日發售, 澳洲於2006年12月7日發售, 歐洲於2006年12月8日發售.

  Wii的主要特色在於無線的控制器, 稱作「Wii Remote」或「Wii-mote」. 控制器可以作為手持式的指向裝置, 並可進行三度空間中的動作和旋轉偵測, 控制器中同時包含揚聲器(喇叭)和震動裝置以提供感應的回饋. 控制器同時也備有稱作「WiiConnect 24」的特色功能, 可以在消 耗極少量電力的情況下連至網際網路接受訊息或更新檔案(岩田社長在E3展中將其與小燈泡消耗的電力相比). 這些新概念在過去的家用電視遊戲機中都從未出現過.

還不懂 wii 是什麼的, 就看看下面連結(影片)...
Wii 宣傳影片1
Wii 宣傳影片2
Ayumi Hamasaki
playing wii
- 看濱崎步親身試玩 wii
Wii 開盒照
看完上面影片還沒有吸引力, 就要使用最終絕招了...

現在的人都會了健身/減肥的事在煩腦, 所以來篇新聞證實 WII 的功用, 這篇新聞裡面有包括影片(紀錄他們是怎麼運動的), 此篇寫說, 每天玩30分鐘, 就輕鬆瘦下來..(我就是這樣說服財務長的 :D)
親愛的Wii,瘦下來的感覺,真好!
Wii開始進入老年人市場 - wii能讓老一輩的也能輕鬆入手
如果這樣子還無法說服老婆, 就放棄吧~.. Orz...

買WII後, 要另外買的遊戲 + 搖桿(手把)(建議)

第一次接觸 + 手把(右手手把)
左手手把
Sport
然後來分享我在買前有另外做的功課, 遊戲機目前只有日文機可以買, 然後買遊戲怕貴的話, 可以考慮下面的地方.

哈拉版二手遊戲交換討論串(巴哈姆特)
二手wii ngc買賣版 - 很多二手遊戲要交換的(巴哈姆特)
wii玩家俱樂部 - 裡面有個遊戲交換區
wii 買片子的地方 - 聽說這邊買比較便宜, 但我沒去買過

更廉價的方法.. XD

wii 改機破解
Open Source 的 Wiip (wii 破解 open source)
Wii: 台灣首創Wii拆機教學( 拆機只要10分鐘)
Wii 其它相關

Wii 可以撥的影片格式
Wii Opera - 於 wii遊戲機中的商店免費下載安裝
wii 瘋狂兔子攻略
用 css 畫出 Wii Buttons
Wii 官方網站

我自己補的後記:
  話說過完年後因為博優的小動作-對媒體放出消息,他們拋出一個議題「Wii遊戲機擁有藍芽及無線傳輸(Wi-Fi)功能,要送NCC審驗通過才能上市銷售,但水貨有違法之虞」。讓Wii在新聞媒體炒翻天i,但截至目前為止,還是未見博優公告什麼有關上市的消息,只會一直放話說沒跟任何通路商合作...看來水貨還會橫行一陣子...

相關報導:
曾阿嬤嗆聲 Wii水貨會死得難看
電玩強人曾愛玉:跟著我 不會吃虧
打水貨 Wii 代理商弄巧成拙

希望真的像曾阿嬤講的....台灣區會有專屬服務...可以有繁體中文的介面...
可以有台灣的伺服器可以連...

要不然...那跟現在買的水貨日版的Wii有什麼不一樣呢??

2007年3月26日 星期一

台中的貝果~~

最近忽然想吃貝果~~
於是就到鄉民最多的PTT上去找找~~
找到了下面這篇由hih@ptt.cc所發表的台中貝果一覽表~~
真是非常的詳細啊~~
我有稍微整理過...並不是原文轉載~~


一般Bagel有兩種吃法
  一種是單吃,另一種是夾成bagel三明治~
  有些店賣的比較道地,夠硬夠Q,但有些店賣的是改良的,相較之下就比較軟~

1. 公益路 101進口超市有賣Costco的bagel(己遷到向上市場附近)
 冷凍的,吃前烤箱預熱,bagel噴點水再烤
 一條75元6個(比Costco賣的貴一些些,算是跑路費吧)

2. 忠明南路61號 Finga's(歐式餐點的餐廳)
 有口味的貝果有三種,三個一袋裝,一袋$85,原味的$65
 噴點水,用微波爐微30秒(1400瓦的)

3. 崇德路二段298號Uncle Jimmy有賣進口冷凍的(硬Q型)

4.永豐棧麗緻酒店麵包坊-新光三越B2(也有賣bagel三明治)或東興路上飯店1F麵包部
 wenchimo:之前看板上說永豐棧麗緻麵包部有賣 我去問過她們說沒作了
 (網友於2007.3.7回覆)

5.馬可先生 (但吃起來不太像bagel,不夠硬Q,可以說是bagel狀的雜糧麵包,很香)

6.喜願行的bagel(http://naturallybread.yam.org.tw/sell-order/sell.htm)
 冷凍的,烤完蠻好吃的,台中有幾個點有代賣
 耕元屋 台中市南屯區 五權西路二段903號 04-23812118
 耕元屋 台中市南屯區 黎明路二段606巷43號1樓 04-22558188

7.麥當勞 -早餐時段 (覺得太軟)

8.逢甲碧根廣場易百拉咖啡-賣的是台北NY bagel的bagel
 (雖然沒有去吃過易百拉,但是吃過 NY bagel的,超好吃)

9.星巴克 (全天都有,bagel 或bagel三明治)

10.西雅圖咖啡(新光三越8F,bagel 或bagel三明治)

11. 東森咖啡(新光三越4F,bagel 或bagel三明治)

12. 麗禧咖啡-美術館新學友2F(bagel 或bagel三明治)

13. Couple Cafe大墩路777號(bagel 或bagel三明治)

14.7-11的起司貝果
 這裡有網友Juling寫的【7-11便利商店】起司貝果(奶素)
,寫得很活潑、可愛喔~

最近忽然想吃貝果~~
於是就到鄉民最多的PTT上去找找~~
找到了下面這篇由hih@ptt.cc所發表的台中貝果一覽表~~
真是非常的詳細啊~~
我有稍微整理過...並不是原文轉載~~


一般Bagel有兩種吃法
  一種是單吃,另一種是夾成bagel三明治~
  有些店賣的比較道地,夠硬夠Q,但有些店賣的是改良的,相較之下就比較軟~

1. 公益路 101進口超市有賣Costco的bagel(己遷到向上市場附近)
 冷凍的,吃前烤箱預熱,bagel噴點水再烤
 一條75元6個(比Costco賣的貴一些些,算是跑路費吧)

2. 忠明南路61號 Finga's(歐式餐點的餐廳)
 有口味的貝果有三種,三個一袋裝,一袋$85,原味的$65
 噴點水,用微波爐微30秒(1400瓦的)

3. 崇德路二段298號Uncle Jimmy有賣進口冷凍的(硬Q型)

4.永豐棧麗緻酒店麵包坊-新光三越B2(也有賣bagel三明治)或東興路上飯店1F麵包部
 wenchimo:之前看板上說永豐棧麗緻麵包部有賣 我去問過她們說沒作了
 (網友於2007.3.7回覆)

5.馬可先生 (但吃起來不太像bagel,不夠硬Q,可以說是bagel狀的雜糧麵包,很香)

6.喜願行的bagel(http://naturallybread.yam.org.tw/sell-order/sell.htm)
 冷凍的,烤完蠻好吃的,台中有幾個點有代賣
 耕元屋 台中市南屯區 五權西路二段903號 04-23812118
 耕元屋 台中市南屯區 黎明路二段606巷43號1樓 04-22558188

7.麥當勞 -早餐時段 (覺得太軟)

8.逢甲碧根廣場易百拉咖啡-賣的是台北NY bagel的bagel
 (雖然沒有去吃過易百拉,但是吃過 NY bagel的,超好吃)

9.星巴克 (全天都有,bagel 或bagel三明治)

10.西雅圖咖啡(新光三越8F,bagel 或bagel三明治)

11. 東森咖啡(新光三越4F,bagel 或bagel三明治)

12. 麗禧咖啡-美術館新學友2F(bagel 或bagel三明治)

13. Couple Cafe大墩路777號(bagel 或bagel三明治)

14.7-11的起司貝果
 這裡有網友Juling寫的【7-11便利商店】起司貝果(奶素)
,寫得很活潑、可愛喔~

2007年3月20日 星期二

PS2燒錄

PS2遊戲有分為CD版以及DVD的版本,所以小弟就分開介紹。

※推薦燒錄程式:Alcohol 120%

CD版:
  1.從網路下載PS2-CD的遊戲檔案
  2.解壓所出ISO檔 or MDF檔
  3.打開Alcohol 120%,選擇“映像檔燒錄精靈”
  4.在格式的地方選擇“Playstation 2”
  5.以8X燒錄 6.完成,試片...

DVD版:
  1.從網路下載PS2-DVD的遊戲檔案
  2.解壓所出ISO檔 or MDF檔
  3.打開Alcohol 120%,選擇“映像檔燒錄精靈”
  4.以最低倍速燒錄〈+R為2.4X,-R為2X〉
  5.完成,試片

PS2遊戲有分為CD版以及DVD的版本,所以小弟就分開介紹。

※推薦燒錄程式:Alcohol 120%

CD版:
  1.從網路下載PS2-CD的遊戲檔案
  2.解壓所出ISO檔 or MDF檔
  3.打開Alcohol 120%,選擇“映像檔燒錄精靈”
  4.在格式的地方選擇“Playstation 2”
  5.以8X燒錄 6.完成,試片...

DVD版:
  1.從網路下載PS2-DVD的遊戲檔案
  2.解壓所出ISO檔 or MDF檔
  3.打開Alcohol 120%,選擇“映像檔燒錄精靈”
  4.以最低倍速燒錄〈+R為2.4X,-R為2X〉
  5.完成,試片

AGLOCO上經濟學人雜誌了

Google造成了這個世界很大的改變~使用者的習慣改變,造就了Google及其他廠商....
但就如同文中所提到的,集眾人之力所造就出來的成績,卻只有少數人分享到其成果....
那我們就這最基層的使用者,卻沒享受到什麼.....

這樣的結果....讓AGLOCO誕生了...也讓商業評論家、市場觀察家已經開始正視AGLOCO這樣的商業模式

文章轉載出處:AGLOCO上經濟學人雜誌

全球最知名的新聞財經雜誌The Economist《經濟學人》在三月十號那一期的「Technology Quarterly」單元裡有一篇「 Working the crowd」,裡面報導了AGLOCO,該文中對AGLOCO的描述如下

Yet another example, established by a group of Stanford graduates, is
Agloco. “Advertisers, search providers and online retailers are paying billions
to reach you while you surf,” says its website. “How much of that money are you
getting? You deserve a piece of the action.” Like AttentionTrust, Agloco is
based on a browser plug-in that tracks users' online activity and then uses this
information to allow advertisers to target people with specific interests.
Agloco promises to return 90% of ad revenue, sales commissions and other income
to its users. In a further twist, those who recruit other users get a cut of the
revenue, too. Akshay Mavani of Agloco says the firm is on target to sign up 10m
users by July.

  那篇文章值得一看,並不是因為他有報到AGLOCO,而是因為他所要表達的一種思考。大家在不知不覺中向Google提供了自己的瀏覽行為及喜好,成就了今天的Google,但是Google及其他大廠回報給我們的遠遠不及我們這些個人資料的價值。這是一個很好的議題,如果各位有興趣看全文可以到這裡去看。

  我們再回過頭來看看AGLOCO,你知道這整件事情代表甚麼意義嗎?在我來說,這代表了這些所謂的商業評論家、市場觀察家已經開始正視AGLOCO這樣的商業模式,AGLOCO在這樣知名的雜誌上被報導出來,雖然不是專文論述,但勢必更加引起注意,掀起的討論會更多,當然加入的人也會在未來爆增。

於是,從現在起,AGLOCO不再是不入流的網賺。
於是,從現在起,AGLOCO是受專家學者肯定的新創事業。
於是,從現在起,我們在推廣AGLOCO時,終於可以抬頭挺胸,理直氣壯。 Google造成了這個世界很大的改變~使用者的習慣改變,造就了Google及其他廠商....
但就如同文中所提到的,集眾人之力所造就出來的成績,卻只有少數人分享到其成果....
那我們就這最基層的使用者,卻沒享受到什麼.....

這樣的結果....讓AGLOCO誕生了...也讓商業評論家、市場觀察家已經開始正視AGLOCO這樣的商業模式

文章轉載出處:AGLOCO上經濟學人雜誌

全球最知名的新聞財經雜誌The Economist《經濟學人》在三月十號那一期的「Technology Quarterly」單元裡有一篇「 Working the crowd」,裡面報導了AGLOCO,該文中對AGLOCO的描述如下

Yet another example, established by a group of Stanford graduates, is
Agloco. “Advertisers, search providers and online retailers are paying billions
to reach you while you surf,” says its website. “How much of that money are you
getting? You deserve a piece of the action.” Like AttentionTrust, Agloco is
based on a browser plug-in that tracks users' online activity and then uses this
information to allow advertisers to target people with specific interests.
Agloco promises to return 90% of ad revenue, sales commissions and other income
to its users. In a further twist, those who recruit other users get a cut of the
revenue, too. Akshay Mavani of Agloco says the firm is on target to sign up 10m
users by July.

  那篇文章值得一看,並不是因為他有報到AGLOCO,而是因為他所要表達的一種思考。大家在不知不覺中向Google提供了自己的瀏覽行為及喜好,成就了今天的Google,但是Google及其他大廠回報給我們的遠遠不及我們這些個人資料的價值。這是一個很好的議題,如果各位有興趣看全文可以到這裡去看。

  我們再回過頭來看看AGLOCO,你知道這整件事情代表甚麼意義嗎?在我來說,這代表了這些所謂的商業評論家、市場觀察家已經開始正視AGLOCO這樣的商業模式,AGLOCO在這樣知名的雜誌上被報導出來,雖然不是專文論述,但勢必更加引起注意,掀起的討論會更多,當然加入的人也會在未來爆增。

於是,從現在起,AGLOCO不再是不入流的網賺。
於是,從現在起,AGLOCO是受專家學者肯定的新創事業。
於是,從現在起,我們在推廣AGLOCO時,終於可以抬頭挺胸,理直氣壯。

AGLOCO的最佳推廣方式

我都沒有很認真的在推廣...
就像Robin說的,我也是拿來做記錄而以~~
順便做做看,也許那一天會有零用錢可以用...呵~~

文章轉載出處:Typed ROBIN ---AGLOCO的最佳推廣方式

  AGLOCO的最佳推廣方式絕對不是部落格,也不會是一個網站。真正的潛在下線都在你身邊,如果你連身邊的朋友都說服不了,那又如何能期待靠一些簡單的文字描述,而讓路過網站的遊客相信呢?所以我會建議各位直接和你的親友同學對話,一對一的把AGLOCO的理念說清楚,基本上,這是一個免費的會員系統,所以接受度不會太差,最好是能夠押著他(看著啦)做完註冊的動作。

  一般人對網路賺錢及有下線機制的系統的印象都不好,第一眼看到這種東西都會自動略過,我就是這樣,當初AGLOCO剛出來時,打出來的廣告都是「own the
internet」,這真是最糟的一句廣告詞,甚麼鬼嘛!我看了至少20次以上都沒有一點意願,最後實在是看到大家都在推,才好奇的進去給他瞭解一番。想想看,你的部落格如果是我剛剛說的那前20個,那你會有多嘔阿!所以我說AGLOCO的最佳推廣方式絕對不是部落格,用MSN或當面對談效果會更好。

  那你可能會問我說那我為什麼就用部落格在推?我寫這個部落格是要記錄我在網路賺錢這個領域的所有活動及心得,順便試一下神奇的SEO,這是主要的目的,而推廣AGLOCO只是其中的一個過程...唉呦~~人家是好心告訴你耶,不要戳我嘛...
我都沒有很認真的在推廣...
就像Robin說的,我也是拿來做記錄而以~~
順便做做看,也許那一天會有零用錢可以用...呵~~

文章轉載出處:Typed ROBIN ---AGLOCO的最佳推廣方式

  AGLOCO的最佳推廣方式絕對不是部落格,也不會是一個網站。真正的潛在下線都在你身邊,如果你連身邊的朋友都說服不了,那又如何能期待靠一些簡單的文字描述,而讓路過網站的遊客相信呢?所以我會建議各位直接和你的親友同學對話,一對一的把AGLOCO的理念說清楚,基本上,這是一個免費的會員系統,所以接受度不會太差,最好是能夠押著他(看著啦)做完註冊的動作。

  一般人對網路賺錢及有下線機制的系統的印象都不好,第一眼看到這種東西都會自動略過,我就是這樣,當初AGLOCO剛出來時,打出來的廣告都是「own the
internet」,這真是最糟的一句廣告詞,甚麼鬼嘛!我看了至少20次以上都沒有一點意願,最後實在是看到大家都在推,才好奇的進去給他瞭解一番。想想看,你的部落格如果是我剛剛說的那前20個,那你會有多嘔阿!所以我說AGLOCO的最佳推廣方式絕對不是部落格,用MSN或當面對談效果會更好。

  那你可能會問我說那我為什麼就用部落格在推?我寫這個部落格是要記錄我在網路賺錢這個領域的所有活動及心得,順便試一下神奇的SEO,這是主要的目的,而推廣AGLOCO只是其中的一個過程...唉呦~~人家是好心告訴你耶,不要戳我嘛...

你還在猶豫嗎?當遊戲真正開始的時候就有點兒晚了

文章轉載出處: Agloco中文—我的因特網

一個關於機會的故事:

–有個老師給每個學生們發了一張白紙
–讓學生畫出機會
–50個學生49個交了白卷
–1個同學畫了一個物體,前面是毛,後面光光的
–說這就是機會
–大家問,為什麼這是機會?
–這個同學回答說
–機會前面是毛,從你面前走過時,你可以一把抓住
–機會後面是光光的,機會走過後,抓就很難了

機會就是這樣,當他從你面前走過的時候你熟視無睹而後又後悔莫及。還是那句話:“當所有人都看到機會的時候已經沒有機會了”,那麼您有沒有把握機會呢?在Viewbar即將推出之時,我們把“成員計算器”是如何工作即您的總收入是如何計算的做一個簡單的介紹:





如圖所示,如果你有5個直接會員並且他們都有2個直接會員,按照Agloco的5級來計算你的收入應該是$198.75。那麼這個結果是怎樣算出來的呢?我們下面就把這個過程做一個分析:
  第一群體:5人;

  第二群體:10人;(上面的5人每人有2個直接推薦人,所以總計5×2=10人)

  第三群體:20人;(原理同上,總計10×2=20人)

  第四群體:40人;(原理同上,總計20×2=40人)

  第五群體:80人;(原理同上,總計40×2=80人)

  總 計:80+40+20+10+5=155人
如果這155個人平均每個月都能夠使用Viewbar5個小時,那麼每月群體總計時間就是155人×5小時/人=775小時。然後按照您可以根據比例增加額外獲得25%的原則,那麼您每月將增加775×25%=193.75小時,另外加上您自己的5小時,您每月的總計時間為:193.75+5=198.75小時。所以大家看到的“成員計算器”準確的說應該是“累計時間計算器”,正如您看到的這個圖片一樣。


在最後結果資訊的左側寫了這樣段提示語:“僅供參考,您的實際收入可能會與此示例有所出入,因為Viewbar每小時的費用和每月最高時間限制會定期更改。”不過就我們推論而言,大家看到的現在的總收入應該是一個比較低的預計結果,任何一家商業機構&組織在這個問題上都是相當謹慎的,因為一旦初期的預計過高而後再增加大家都樂意,如果是減少的話可能就會有些顧客不幹了。這就像你原來的工資是1000元/月,當你的老闆告訴你以後你的工資將會按800元/月的標準進行發放。你肯定會不高興,說不定還會辭職了。Agloco作為一個在這方面有過經驗的組織相信會對此變得更加慎重,當然,還有“誰能保證什麼呢?”
Viewbar將在3月份推出Beta版,參照群體建設成果來計算一下自己的能獲得多少收入吧!
實際上,從上面的計算結果我們再次反證了工作的核心內容:群體的擴展建設。加快自己的步伐,迎頭趕上吧。如果您初次接觸到Agloco,我們樂意和您一起推廣和建設屬於自己的Agloco群體。這裡是我們的中文資料匯總,還有視頻專區BBS等。你還在憂鬱嗎?當遊戲真正開始的時候就有點兒晚了!
現在加入Agloco文章轉載出處: Agloco中文—我的因特網

一個關於機會的故事:

–有個老師給每個學生們發了一張白紙
–讓學生畫出機會
–50個學生49個交了白卷
–1個同學畫了一個物體,前面是毛,後面光光的
–說這就是機會
–大家問,為什麼這是機會?
–這個同學回答說
–機會前面是毛,從你面前走過時,你可以一把抓住
–機會後面是光光的,機會走過後,抓就很難了

機會就是這樣,當他從你面前走過的時候你熟視無睹而後又後悔莫及。還是那句話:“當所有人都看到機會的時候已經沒有機會了”,那麼您有沒有把握機會呢?在Viewbar即將推出之時,我們把“成員計算器”是如何工作即您的總收入是如何計算的做一個簡單的介紹:





如圖所示,如果你有5個直接會員並且他們都有2個直接會員,按照Agloco的5級來計算你的收入應該是$198.75。那麼這個結果是怎樣算出來的呢?我們下面就把這個過程做一個分析:
  第一群體:5人;

  第二群體:10人;(上面的5人每人有2個直接推薦人,所以總計5×2=10人)

  第三群體:20人;(原理同上,總計10×2=20人)

  第四群體:40人;(原理同上,總計20×2=40人)

  第五群體:80人;(原理同上,總計40×2=80人)

  總 計:80+40+20+10+5=155人
如果這155個人平均每個月都能夠使用Viewbar5個小時,那麼每月群體總計時間就是155人×5小時/人=775小時。然後按照您可以根據比例增加額外獲得25%的原則,那麼您每月將增加775×25%=193.75小時,另外加上您自己的5小時,您每月的總計時間為:193.75+5=198.75小時。所以大家看到的“成員計算器”準確的說應該是“累計時間計算器”,正如您看到的這個圖片一樣。


在最後結果資訊的左側寫了這樣段提示語:“僅供參考,您的實際收入可能會與此示例有所出入,因為Viewbar每小時的費用和每月最高時間限制會定期更改。”不過就我們推論而言,大家看到的現在的總收入應該是一個比較低的預計結果,任何一家商業機構&組織在這個問題上都是相當謹慎的,因為一旦初期的預計過高而後再增加大家都樂意,如果是減少的話可能就會有些顧客不幹了。這就像你原來的工資是1000元/月,當你的老闆告訴你以後你的工資將會按800元/月的標準進行發放。你肯定會不高興,說不定還會辭職了。Agloco作為一個在這方面有過經驗的組織相信會對此變得更加慎重,當然,還有“誰能保證什麼呢?”
Viewbar將在3月份推出Beta版,參照群體建設成果來計算一下自己的能獲得多少收入吧!
實際上,從上面的計算結果我們再次反證了工作的核心內容:群體的擴展建設。加快自己的步伐,迎頭趕上吧。如果您初次接觸到Agloco,我們樂意和您一起推廣和建設屬於自己的Agloco群體。這裡是我們的中文資料匯總,還有視頻專區BBS等。你還在憂鬱嗎?當遊戲真正開始的時候就有點兒晚了!
現在加入Agloco

2007年3月19日 星期一

原來skype功能如此強大~~

本文全文轉錄自VoIP-News Editors on February 6, 2007
http://www.voip-news.com/feature/hacking-skype-020607/

你的Skype有多萬能呢?告訴你,我們的可以當播客(Podcasting),可以翻譯法語,還可以舉行15人電話會議,甚至可以當家教教微積分。
想要把你平淡的Skype電話變成多工的辦公室好幫手嗎? 讓我們教您25個駭秘訣狂嗑Skype。
對成千上萬的Skype使用者來說,Skype是網路電話(VoIP)解決方案的首選。如果你正對這樣一個新的網路電話工具有興趣,那麼告訴你,接下來你將更驚訝於能利用它做更多事。在這篇文章,我們提供了25個駭客級密技,教你如何把Skype用到淋漓盡致。

1.來電轉接
不管你的Skype帳戶是設在家裡或公司使用,事實上,當你不在電腦前你還是會漏接Skype電話。謝天謝地,有Skype來電轉接功能,你可以把電話轉接到另一個Skype帳戶、手機號碼或其他市內電話號碼。也就是說,儘管你的電腦當機,只要有任何來電打到你的Skype帳戶,這通電話仍可以被立即轉接到你設定的手機號碼、市內電話等,讓你不管在哪裡都不漏接Skype電話。有關來電轉接的設定,可以到[功能]選單下的[設定選項],設定選項中有[來電轉接與語音信箱],並勾選設定[當我不在時轉接來電]即可。


2.過濾聯絡人與封鎖不速之客
Skype用在工作或閒暇都是一個好工具,但是如果你不設定一些預防措施,有時候會導致一些網路安全的問題。例如Vishing這種網路釣魚犯罪手法就常利用像Skype等網路電話(VoIP)前端軟體,打電話給被害者並騙取他們提供重要的財務資料如信用卡號碼或金融密碼等。但其實謹慎一點在Skype上設定封鎖不認識的來電即可杜絕這樣的網路詐騙。設定封鎖名單可以到[功能]選項下的[設定選項],再到[隱私]選項下選擇你喜歡的隱私安全程度。針對個人的網路惡意打擾攻擊,你可以在隱私選項內最下面的[管理封鎖名單],設定防止被特定人物垃圾性打擾或防止惡意的網路詐欺。


3.DIY家庭小型保全監控系統
不管你是想在上班時間監看家裡的金魚在幹嘛,或者當你出遠門時想知道家裡是否遭宵小破窗而入,Skype都可當你的DIY家庭監控系統。從Skype的視訊會議作為切入點。你將需要兩組不同的Skype
ID,一台可以連上網路的家用電腦與一台WebCam網路攝影機。使用另一個帳號,和家裡的Skype帳號做視訊通訊,自動的啟動webcam網路攝影機。當你想要做確認的時候,可以使用第二組的Skype帳號去撥打第一組的Skype帳號,webcam就可以馬上開啟視訊。


4.獲得顧客支持
如何在網路上製造小小的商業機會?怎樣不用支付電話的成本,就能獲得客戶的支持?Skype功能中活潑的SkypeMe按鈕,可讓人點擊撥打Skype,就是運用在這個需求上。設計ㄧ個你自己的SkypeMe按鈕(需要搭配一組Skype帳號),把它放置在網頁、部落格、簽名檔、電子郵件,或是任何你想要它曝光的地方!當有人瀏覽你的網頁(或是讀取電子郵件內容時),SkypeMe的按鈕就能即時呈現你的Skype狀態在上線中、可接聽Skype電話、忙碌、或是離線。如果你在外頭但仍想收到電話,就讓Skype(前端程式)開著,並設定來電轉接。


5.獲得顧客支持
利用Bitwine
Skype的功能,你將可以提供任何一個人資訊消息,並且利用資訊的提供來增加你的所得收入。例如你是律師、機械工、或是ㄧ個很厲害的稅務分析師,人們將可以付錢給你來獲得資訊,Bitwine
Skype將使銷售資訊變得很容易。藉由Bitwine,你將可以建立你的鐘點收費,當有顧客找你商談他的問題時,你可以設定會談的收費標準,且Bitwine搭配了PayPal的付費機制收取附加的費用,Bitwine Extra


6.通話錄音
Skype的通話錄音中還有很多自由選的附加功能,包含了免費的Audacity通話錄音軟體。但是Audacity需手動開啟設定,由於你無法預先準備好什麼時候會需要針對電話來做錄音,這是Audacity的一個嚴重的手動限制。相較之下,有些號碼還會自動機械式的突然出現在Skype記錄器中。HotRecorder是可以認為是在Skype附加的通話錄音軟體之中最棒的!HotRecorder可以透過搜尋Meta版本,目錄收錄了一些音效,或是利用Google
Talk或是IM clients。後期的播客為了追求Howard Sterns,選擇了一些Emotisounds音效,例如笑聲、掌聲等等插入談話中。


7.強化語音信箱
如果你常常使用Skype電話,偶而也會有長途電話時,你可增加你的語音信箱方案在往後的Skype設定中。Pamela提供(自動的)通話答錄,在你離開的時候,一種機械式的語音答覆,會反覆播放。Skype語音信箱功能,和email都能傳送聲音的檔案。另外,Pamela將能讓你針對不同的連絡人來規劃區別招呼或語音信箱的功能,所以商用的和私人的電話將不會再同一個訊息當中。在這之中最棒的是,Pamela的語音自動辨識遙控,在你要去度假之前,如果你忘記修改任一個語音信箱的設定,你可以經由任一個地方的電腦連線來做設定。


8.新音樂讓你聽不完
如果你最近經常覺得為什麼別人的iPod裡總是有著比你更新的音樂可以聽,那麼也許現在正是你轉換方式搜尋新音樂的時候了。 Last.fm,這是一個利用Skype,提供一個簡單的討論區供你與網路上的同好分享你們所喜愛的音樂。利用此一外掛,你可以輕易地搜尋其他Skype及Last.fm的用戶們所收集、收聽的mp3,當你正在收聽你的音樂時,你所收聽的這首歌曲的相關資訊也正在顯示,以利其他使用者輕易的搜尋到這首歌。
只要安裝Last.fm
extra
,並註冊一個免費帳號,即可使用。需注意的是,若是Mac的使用者,則需安裝iScrobbler extra,才可以使用。


9.即時翻譯
如果你喜歡和遍佈世界各地的人們交換意見,即使偶爾遇到語言障礙時,你也可以因為將其引導到商業上或是在Skype中獲得樂趣。令人感激的是,使用附掛的Universal Chat
Translator
你就能跟任何一個人互通訊息,不論他用什麼語言講話。實際上,這個Universal
Translator的軟體能翻譯11種語言,和50多種口頭上的用語,只要將你要翻譯的原文輸入,你就可以轉成你想要看的字幕。


10.小型團隊共同研究的妙方
如果你常跑一些小生意,或是在一個團隊下做特別的企劃,共同討論是無法避免的!最好的方式就是,你需要自備ㄧ台桌上型電腦安裝上Skype附掛的Unyte,使用Skype可共同討論的聊天室。在你會議的通話上,Unyte允許你可以選擇應用的程式分享給你正再電話會議中的任何一個人。當你要改變的訊息出現在每ㄧ個人的訊息顯示上,每ㄧ個人都可以在同ㄧ時間中看到一樣的文件內容,所以這是不會混亂的。收費的價格取決於有多少人加入你的會議中,如果你想要試用開啟這個討論會議,你可以邀請兩個人來免費試用


11.小型團隊共同研究的妙方
如果覺得設置了unyte太麻煩,你可以使用一個比較簡單的解決辦法,重新設定TalkandWrite的功能。TalkandWrite會給你聲音和視訊會議系統以及同步的文件編輯處理。也就是說,不僅你做的改變會反映在對方的螢幕上,你也可以看到對方做的編輯變化。這種簡便Skype附加功能,能夠讓團隊在討論專題上花費更少的時間在討論的工作中。
動機只是第一步,您能想像這一步的來臨,把你跟電腦之間的聯接切割開來,Skype的無線話機將不會限制你的移動在一個範圍內。


12.藍芽與Skype
實現Skype無線化最簡單的步驟就是當你在打Skype電話時,你和電腦間的線可以消失掉。這就像是Skype無線話機的應用,給你有限距離中的行動自由。現在很多電腦都有支援藍芽功能了,使用藍芽耳機似乎不是難事。事實上,一個單一藍芽耳機就可以同時支援Skype電話和一般手機電話,所以如果你有手機用的藍芽耳機,在Skype行動化上其實就不用再另外添購其他設備。使用藍芽一個缺點是你仍會受限藍芽的本質,不能離開電腦太遠的區域才有效。但如果你單純的只是想要無線並且只要求有ㄧ點移動空間,那藍芽就是不錯的選擇了。


13.過濾聯絡人與封鎖不速之客
嘗試想像你可以從行動電話接聽或播打Skype電話,和全球的人用手機講電話但享受Skype最優惠的費率。謝天謝地,其實這天已經到了,只是讓人驚訝的是很少Skype使用者知道這樣的應用。Ego這間公司早在一年前就提供Skype行動電話的相關服務。它可以讓你知道現在誰在線上、用Skype接收和撥打電給聯絡人、使用Skype即時訊息等。如果你不喜歡同時帶一支Skype電話和一支手機,TalkPlus這間公司已經破解Skype
API並發展出ㄧ個功能像Skype前端工具的伺服主機,事實上,2006年11月TalkPlus這間公司曾經成功示範這樣的整合應用,用手機打給一個Skype測試帳號echo123,雖然後續發展不了了之,但這意味未來Skype電話和手機電話整合的時機指日可待。


14.把Skype間接地放到行動電話裡
如果說終極目標是要讓Skype和手機可以完全整合,現階段過渡期有一個較間接的做法可以實現。Phone Diverter
可以讓你的手機和家裡的電腦溝通,換句話說也就是間接實現了把Skype放到行動電話裡。原理上,就是讓你的手機打給你家的電腦,電腦會要求你輸入一組密碼,確認後,讓你可以用SkypeOut點數打電話給Skype裡的聯絡人。這個方式不盡完美,因為手機和Skype同時都要付費,所以只能說是比較間接但不完美的作法,如果你一定要用手機打Skype電話的話。


15.把Skype放到電視裡
想像一下,當電視裡的球賽正進入第四節勝負時分,你的Skype電話在這時卻響了起來,你是該接還是不接,誰知道電話那頭是不是非常重要的事情?謝天謝地,有了mcePhone你就不用起來接電話了,因為mcePhone會幫你把Skype來電丟到你的電視螢幕裡。在電視中,你可以看到你的Skype上線狀態(上線、離線等),帳戶餘額,朋友上線狀態以及是否有新留言。當有Skype來電時,一個小小的視窗會跳出來,告訴你現在誰打來找你,然後你可以利用遙控器決定你要不要接這電話。


16.來電鈴聲
AudioID功能簡單,可以讓你替每個不同的來電設定不同的鈴聲。也就是說,有人打電話來時,你的Skype電話鈴響不會再是一成不變的嘟嘟響聲,而是可以隨意讓你錄製清楚的訊息,例如“小凱打來了”之類的鈴響訊息,接下來就是你的決定,要馬上接還是不接囉!


17.愛情偵測機
Love Detector
是一個娛樂性超強的外掛程式,使用聲音分析技術偵測Skype電話那一端的人是否對你有愛的情愫,可以用在Skype交友服務或打給你暗戀的人,看看他是否也和你心心相印。在正式購買之前,先試用一下試試別人對你的真實感受。


18.讓棋盤遊戲更刺激
上班累了想要休息一下又不想讓老闆起疑?現在有多款西洋經典的棋盤遊戲可以放到Skype上玩。Backgammon, Bingo, Chess Checkers
這幾款遊戲就是舊酒新裝的應用,這些流傳已久的古老遊戲放在新的介面Skype上面玩,別有ㄧ番風味,還可以和Skype上的聯絡人直接下戰書挑戰一番。


19.KishKish 測謊器
當你在Skype上談生意時你想知道對方是不是誠信可靠,或者你想證實你的男朋友是不是騙子,你都可以使用Skype外掛程式KishKish測謊器。KishKish測謊器可以偵測Skype電話那頭的壓力程度,並且利用這些資料判斷他們是否在說謊。


20.動畫人物模擬你說話
雖然視訊電話可以幫助人們搭起更親近的橋樑,但是有時候在許多情況你寧可選擇不要讓對方看到你的樣子,例如當不是很了解對方來意時或者這個早上你看起來糟透了。與其在網路攝影機前空尷尬,不如使用CrazyTalk選個動畫角色代表你,並真實模擬你說話的唇型表達。這個有趣的外掛程式安裝非常簡單,而且讓你可以設定自己動畫角色的長相,一設定好、點一下就可以啟動這角色,由你的動畫分身模擬出面幫你開視訊會議,真實模擬你的說話脣語。


21.偽裝你的聲音
沒有什麼比偽裝聲音愚弄朋友更好玩的事了。不論你想模仿他們的老闆或者他們的女友,DoNaut
這軟體可以幫你變聲。這個簡易安裝的Skype外掛程式可以調整你的電話中的聲調。此外,你還可以使用DoNaut這軟體從你喜愛的音樂播放器如iTunes,
或Windows Media Player中抓音樂下來做為Skype來電的背景音樂。


22.“可以給我你的電話嗎?” … “恩, 不行”
我們都曾經遇過不想給某些人我們電話或Skype ID的情形,不管是遇到討厭的約會對象或是難纏的推銷員,但是有時候又很難拒絕。謝天謝地,NotMyNumber Directory 這個服務可以讓Skype使用者搪塞一個假號碼打發這些不速之客。這個外掛軟體的特色是可以提供給一個看似真實的電話號碼但保證打不通的空號給你。同理,當有人跟你要Skype電話時,Skype NotMyNumber
Tool
這軟體也可以幫你產生一組沒有用假號碼,讓你可以搪塞不速之客。


23.多重登入
假如Skype已經變成你們家庭的主要網路通訊工具,那想必你曾經遇過多個帳號要在同一台電腦登入的問題。一個快速解決的辦法就是設定多重登入multiple
logins
, 這樣每個家庭成員都可以隨心使用他們的Skype帳號了。到目前為止,這個技巧只適用於Windows
XP的使用者,未來請期待對其他OS版本的支援。


24.叫你起床電話
如果你將常出差,發現如果早上沒有人叫你起床會壞事,那你可以點下列這個連結this
hack tutorial
,在Windows XP下設定工作排程,讓Skype自動打電話到飯店叫你起床。


25.發展自己的駭客密技
沒有看到任何讓你覺得感興趣的密技?沒有看到你想要的特別功能?沒關係,Skype有開放API讓程式開發人員撰寫屬於你的附加程式,可以做成HTML,Java
,EXE檔或DLL檔等。如果你希望期盼有一些社群可以解決你開發時的瓶頸,Skype Developer Zone
blog
,會幫您的問題保密處理避免你的點子在完成前被剽竊。當你的應用程式開發完成,還可以發佈到Publication
Studio
讓您管理您的發布密技。
本文全文轉錄自VoIP-News Editors on February 6, 2007
http://www.voip-news.com/feature/hacking-skype-020607/

你的Skype有多萬能呢?告訴你,我們的可以當播客(Podcasting),可以翻譯法語,還可以舉行15人電話會議,甚至可以當家教教微積分。
想要把你平淡的Skype電話變成多工的辦公室好幫手嗎? 讓我們教您25個駭秘訣狂嗑Skype。
對成千上萬的Skype使用者來說,Skype是網路電話(VoIP)解決方案的首選。如果你正對這樣一個新的網路電話工具有興趣,那麼告訴你,接下來你將更驚訝於能利用它做更多事。在這篇文章,我們提供了25個駭客級密技,教你如何把Skype用到淋漓盡致。

1.來電轉接
不管你的Skype帳戶是設在家裡或公司使用,事實上,當你不在電腦前你還是會漏接Skype電話。謝天謝地,有Skype來電轉接功能,你可以把電話轉接到另一個Skype帳戶、手機號碼或其他市內電話號碼。也就是說,儘管你的電腦當機,只要有任何來電打到你的Skype帳戶,這通電話仍可以被立即轉接到你設定的手機號碼、市內電話等,讓你不管在哪裡都不漏接Skype電話。有關來電轉接的設定,可以到[功能]選單下的[設定選項],設定選項中有[來電轉接與語音信箱],並勾選設定[當我不在時轉接來電]即可。


2.過濾聯絡人與封鎖不速之客
Skype用在工作或閒暇都是一個好工具,但是如果你不設定一些預防措施,有時候會導致一些網路安全的問題。例如Vishing這種網路釣魚犯罪手法就常利用像Skype等網路電話(VoIP)前端軟體,打電話給被害者並騙取他們提供重要的財務資料如信用卡號碼或金融密碼等。但其實謹慎一點在Skype上設定封鎖不認識的來電即可杜絕這樣的網路詐騙。設定封鎖名單可以到[功能]選項下的[設定選項],再到[隱私]選項下選擇你喜歡的隱私安全程度。針對個人的網路惡意打擾攻擊,你可以在隱私選項內最下面的[管理封鎖名單],設定防止被特定人物垃圾性打擾或防止惡意的網路詐欺。


3.DIY家庭小型保全監控系統
不管你是想在上班時間監看家裡的金魚在幹嘛,或者當你出遠門時想知道家裡是否遭宵小破窗而入,Skype都可當你的DIY家庭監控系統。從Skype的視訊會議作為切入點。你將需要兩組不同的Skype
ID,一台可以連上網路的家用電腦與一台WebCam網路攝影機。使用另一個帳號,和家裡的Skype帳號做視訊通訊,自動的啟動webcam網路攝影機。當你想要做確認的時候,可以使用第二組的Skype帳號去撥打第一組的Skype帳號,webcam就可以馬上開啟視訊。


4.獲得顧客支持
如何在網路上製造小小的商業機會?怎樣不用支付電話的成本,就能獲得客戶的支持?Skype功能中活潑的SkypeMe按鈕,可讓人點擊撥打Skype,就是運用在這個需求上。設計ㄧ個你自己的SkypeMe按鈕(需要搭配一組Skype帳號),把它放置在網頁、部落格、簽名檔、電子郵件,或是任何你想要它曝光的地方!當有人瀏覽你的網頁(或是讀取電子郵件內容時),SkypeMe的按鈕就能即時呈現你的Skype狀態在上線中、可接聽Skype電話、忙碌、或是離線。如果你在外頭但仍想收到電話,就讓Skype(前端程式)開著,並設定來電轉接。


5.獲得顧客支持
利用Bitwine
Skype的功能,你將可以提供任何一個人資訊消息,並且利用資訊的提供來增加你的所得收入。例如你是律師、機械工、或是ㄧ個很厲害的稅務分析師,人們將可以付錢給你來獲得資訊,Bitwine
Skype將使銷售資訊變得很容易。藉由Bitwine,你將可以建立你的鐘點收費,當有顧客找你商談他的問題時,你可以設定會談的收費標準,且Bitwine搭配了PayPal的付費機制收取附加的費用,Bitwine Extra


6.通話錄音
Skype的通話錄音中還有很多自由選的附加功能,包含了免費的Audacity通話錄音軟體。但是Audacity需手動開啟設定,由於你無法預先準備好什麼時候會需要針對電話來做錄音,這是Audacity的一個嚴重的手動限制。相較之下,有些號碼還會自動機械式的突然出現在Skype記錄器中。HotRecorder是可以認為是在Skype附加的通話錄音軟體之中最棒的!HotRecorder可以透過搜尋Meta版本,目錄收錄了一些音效,或是利用Google
Talk或是IM clients。後期的播客為了追求Howard Sterns,選擇了一些Emotisounds音效,例如笑聲、掌聲等等插入談話中。


7.強化語音信箱
如果你常常使用Skype電話,偶而也會有長途電話時,你可增加你的語音信箱方案在往後的Skype設定中。Pamela提供(自動的)通話答錄,在你離開的時候,一種機械式的語音答覆,會反覆播放。Skype語音信箱功能,和email都能傳送聲音的檔案。另外,Pamela將能讓你針對不同的連絡人來規劃區別招呼或語音信箱的功能,所以商用的和私人的電話將不會再同一個訊息當中。在這之中最棒的是,Pamela的語音自動辨識遙控,在你要去度假之前,如果你忘記修改任一個語音信箱的設定,你可以經由任一個地方的電腦連線來做設定。


8.新音樂讓你聽不完
如果你最近經常覺得為什麼別人的iPod裡總是有著比你更新的音樂可以聽,那麼也許現在正是你轉換方式搜尋新音樂的時候了。 Last.fm,這是一個利用Skype,提供一個簡單的討論區供你與網路上的同好分享你們所喜愛的音樂。利用此一外掛,你可以輕易地搜尋其他Skype及Last.fm的用戶們所收集、收聽的mp3,當你正在收聽你的音樂時,你所收聽的這首歌曲的相關資訊也正在顯示,以利其他使用者輕易的搜尋到這首歌。
只要安裝Last.fm
extra
,並註冊一個免費帳號,即可使用。需注意的是,若是Mac的使用者,則需安裝iScrobbler extra,才可以使用。


9.即時翻譯
如果你喜歡和遍佈世界各地的人們交換意見,即使偶爾遇到語言障礙時,你也可以因為將其引導到商業上或是在Skype中獲得樂趣。令人感激的是,使用附掛的Universal Chat
Translator
你就能跟任何一個人互通訊息,不論他用什麼語言講話。實際上,這個Universal
Translator的軟體能翻譯11種語言,和50多種口頭上的用語,只要將你要翻譯的原文輸入,你就可以轉成你想要看的字幕。


10.小型團隊共同研究的妙方
如果你常跑一些小生意,或是在一個團隊下做特別的企劃,共同討論是無法避免的!最好的方式就是,你需要自備ㄧ台桌上型電腦安裝上Skype附掛的Unyte,使用Skype可共同討論的聊天室。在你會議的通話上,Unyte允許你可以選擇應用的程式分享給你正再電話會議中的任何一個人。當你要改變的訊息出現在每ㄧ個人的訊息顯示上,每ㄧ個人都可以在同ㄧ時間中看到一樣的文件內容,所以這是不會混亂的。收費的價格取決於有多少人加入你的會議中,如果你想要試用開啟這個討論會議,你可以邀請兩個人來免費試用


11.小型團隊共同研究的妙方
如果覺得設置了unyte太麻煩,你可以使用一個比較簡單的解決辦法,重新設定TalkandWrite的功能。TalkandWrite會給你聲音和視訊會議系統以及同步的文件編輯處理。也就是說,不僅你做的改變會反映在對方的螢幕上,你也可以看到對方做的編輯變化。這種簡便Skype附加功能,能夠讓團隊在討論專題上花費更少的時間在討論的工作中。
動機只是第一步,您能想像這一步的來臨,把你跟電腦之間的聯接切割開來,Skype的無線話機將不會限制你的移動在一個範圍內。


12.藍芽與Skype
實現Skype無線化最簡單的步驟就是當你在打Skype電話時,你和電腦間的線可以消失掉。這就像是Skype無線話機的應用,給你有限距離中的行動自由。現在很多電腦都有支援藍芽功能了,使用藍芽耳機似乎不是難事。事實上,一個單一藍芽耳機就可以同時支援Skype電話和一般手機電話,所以如果你有手機用的藍芽耳機,在Skype行動化上其實就不用再另外添購其他設備。使用藍芽一個缺點是你仍會受限藍芽的本質,不能離開電腦太遠的區域才有效。但如果你單純的只是想要無線並且只要求有ㄧ點移動空間,那藍芽就是不錯的選擇了。


13.過濾聯絡人與封鎖不速之客
嘗試想像你可以從行動電話接聽或播打Skype電話,和全球的人用手機講電話但享受Skype最優惠的費率。謝天謝地,其實這天已經到了,只是讓人驚訝的是很少Skype使用者知道這樣的應用。Ego這間公司早在一年前就提供Skype行動電話的相關服務。它可以讓你知道現在誰在線上、用Skype接收和撥打電給聯絡人、使用Skype即時訊息等。如果你不喜歡同時帶一支Skype電話和一支手機,TalkPlus這間公司已經破解Skype
API並發展出ㄧ個功能像Skype前端工具的伺服主機,事實上,2006年11月TalkPlus這間公司曾經成功示範這樣的整合應用,用手機打給一個Skype測試帳號echo123,雖然後續發展不了了之,但這意味未來Skype電話和手機電話整合的時機指日可待。


14.把Skype間接地放到行動電話裡
如果說終極目標是要讓Skype和手機可以完全整合,現階段過渡期有一個較間接的做法可以實現。Phone Diverter
可以讓你的手機和家裡的電腦溝通,換句話說也就是間接實現了把Skype放到行動電話裡。原理上,就是讓你的手機打給你家的電腦,電腦會要求你輸入一組密碼,確認後,讓你可以用SkypeOut點數打電話給Skype裡的聯絡人。這個方式不盡完美,因為手機和Skype同時都要付費,所以只能說是比較間接但不完美的作法,如果你一定要用手機打Skype電話的話。


15.把Skype放到電視裡
想像一下,當電視裡的球賽正進入第四節勝負時分,你的Skype電話在這時卻響了起來,你是該接還是不接,誰知道電話那頭是不是非常重要的事情?謝天謝地,有了mcePhone你就不用起來接電話了,因為mcePhone會幫你把Skype來電丟到你的電視螢幕裡。在電視中,你可以看到你的Skype上線狀態(上線、離線等),帳戶餘額,朋友上線狀態以及是否有新留言。當有Skype來電時,一個小小的視窗會跳出來,告訴你現在誰打來找你,然後你可以利用遙控器決定你要不要接這電話。


16.來電鈴聲
AudioID功能簡單,可以讓你替每個不同的來電設定不同的鈴聲。也就是說,有人打電話來時,你的Skype電話鈴響不會再是一成不變的嘟嘟響聲,而是可以隨意讓你錄製清楚的訊息,例如“小凱打來了”之類的鈴響訊息,接下來就是你的決定,要馬上接還是不接囉!


17.愛情偵測機
Love Detector
是一個娛樂性超強的外掛程式,使用聲音分析技術偵測Skype電話那一端的人是否對你有愛的情愫,可以用在Skype交友服務或打給你暗戀的人,看看他是否也和你心心相印。在正式購買之前,先試用一下試試別人對你的真實感受。


18.讓棋盤遊戲更刺激
上班累了想要休息一下又不想讓老闆起疑?現在有多款西洋經典的棋盤遊戲可以放到Skype上玩。Backgammon, Bingo, Chess Checkers
這幾款遊戲就是舊酒新裝的應用,這些流傳已久的古老遊戲放在新的介面Skype上面玩,別有ㄧ番風味,還可以和Skype上的聯絡人直接下戰書挑戰一番。


19.KishKish 測謊器
當你在Skype上談生意時你想知道對方是不是誠信可靠,或者你想證實你的男朋友是不是騙子,你都可以使用Skype外掛程式KishKish測謊器。KishKish測謊器可以偵測Skype電話那頭的壓力程度,並且利用這些資料判斷他們是否在說謊。


20.動畫人物模擬你說話
雖然視訊電話可以幫助人們搭起更親近的橋樑,但是有時候在許多情況你寧可選擇不要讓對方看到你的樣子,例如當不是很了解對方來意時或者這個早上你看起來糟透了。與其在網路攝影機前空尷尬,不如使用CrazyTalk選個動畫角色代表你,並真實模擬你說話的唇型表達。這個有趣的外掛程式安裝非常簡單,而且讓你可以設定自己動畫角色的長相,一設定好、點一下就可以啟動這角色,由你的動畫分身模擬出面幫你開視訊會議,真實模擬你的說話脣語。


21.偽裝你的聲音
沒有什麼比偽裝聲音愚弄朋友更好玩的事了。不論你想模仿他們的老闆或者他們的女友,DoNaut
這軟體可以幫你變聲。這個簡易安裝的Skype外掛程式可以調整你的電話中的聲調。此外,你還可以使用DoNaut這軟體從你喜愛的音樂播放器如iTunes,
或Windows Media Player中抓音樂下來做為Skype來電的背景音樂。


22.“可以給我你的電話嗎?” … “恩, 不行”
我們都曾經遇過不想給某些人我們電話或Skype ID的情形,不管是遇到討厭的約會對象或是難纏的推銷員,但是有時候又很難拒絕。謝天謝地,NotMyNumber Directory 這個服務可以讓Skype使用者搪塞一個假號碼打發這些不速之客。這個外掛軟體的特色是可以提供給一個看似真實的電話號碼但保證打不通的空號給你。同理,當有人跟你要Skype電話時,Skype NotMyNumber
Tool
這軟體也可以幫你產生一組沒有用假號碼,讓你可以搪塞不速之客。


23.多重登入
假如Skype已經變成你們家庭的主要網路通訊工具,那想必你曾經遇過多個帳號要在同一台電腦登入的問題。一個快速解決的辦法就是設定多重登入multiple
logins
, 這樣每個家庭成員都可以隨心使用他們的Skype帳號了。到目前為止,這個技巧只適用於Windows
XP的使用者,未來請期待對其他OS版本的支援。


24.叫你起床電話
如果你將常出差,發現如果早上沒有人叫你起床會壞事,那你可以點下列這個連結this
hack tutorial
,在Windows XP下設定工作排程,讓Skype自動打電話到飯店叫你起床。


25.發展自己的駭客密技
沒有看到任何讓你覺得感興趣的密技?沒有看到你想要的特別功能?沒關係,Skype有開放API讓程式開發人員撰寫屬於你的附加程式,可以做成HTML,Java
,EXE檔或DLL檔等。如果你希望期盼有一些社群可以解決你開發時的瓶頸,Skype Developer Zone
blog
,會幫您的問題保密處理避免你的點子在完成前被剽竊。當你的應用程式開發完成,還可以發佈到Publication
Studio
讓您管理您的發布密技。

2007年3月16日 星期五

錯誤的生活習慣....

夭壽~我每天都是這樣耶....
都把自己搞得很累,然後就上床睡覺了.....
但好像從來沒失眠過....不過,倒是真的常常覺得沒睡好...
嗯~下次睡前要好好放空一下自己..別讓大腦無時無刻都很興奮~


中廣新聞網
   看完電視馬上睡 品質不好 三成以上的人會失眠
更新日期:2007/03/15 16:00

  根據統計,台灣地區2-3成的成年人都有失眠問題,尤其女性失眠的比例又比男性高,台北市立聯合醫院中醫師表示,如果發現自己一週失眠三次以上,持續一個月,就應該要就醫,而許多錯誤的生活習慣,例如看完電視、上過電腦後馬上上床,容易引起睡眠品質不良,而過去大家認為睡前一杯紅酒助眠,不過如果睡前超過一個小時前飲酒,反而有礙睡眠。(林麗玉報導)

  台北市立聯合醫院中醫師卓雨青說,台灣地區每三成女性有失眠困擾,男性則是二成五,幾乎每三、四個人,就有一人有失眠困擾,比例相當高,尤其台灣地區的失眠問題更居亞太地區之冠,而失眠的高危險群,包括帶孩子的女性及工作壓力大的族群。而治療方式,醫師提醒,許多民眾習慣睡前看完電視、打完電腦馬上上床,這時候的腦波還處於興奮狀態,會影響睡眠品質,另外過去大家認為睡前一杯紅酒有助睡眠,醫師也提醒,如果飲酒超過一個小時,反而有礙睡眠。至於西醫治療失眠症,主要是以鎮靜作用的藥物治療,而中醫建議可以按摩穴道,包括按摩手腕上兩吋的內關穴、舒緩腸胃系統幫助入睡;或是按摩耳垂到髮際之間的安眠穴,也可以安定神經。另外建議,有失眠情況的患者,不要午睡、晚上不要做激烈運動,或是太晚進食、喝太多水或飲料,這都會影響睡眠品質。 夭壽~我每天都是這樣耶....
都把自己搞得很累,然後就上床睡覺了.....
但好像從來沒失眠過....不過,倒是真的常常覺得沒睡好...
嗯~下次睡前要好好放空一下自己..別讓大腦無時無刻都很興奮~


中廣新聞網
   看完電視馬上睡 品質不好 三成以上的人會失眠
更新日期:2007/03/15 16:00

  根據統計,台灣地區2-3成的成年人都有失眠問題,尤其女性失眠的比例又比男性高,台北市立聯合醫院中醫師表示,如果發現自己一週失眠三次以上,持續一個月,就應該要就醫,而許多錯誤的生活習慣,例如看完電視、上過電腦後馬上上床,容易引起睡眠品質不良,而過去大家認為睡前一杯紅酒助眠,不過如果睡前超過一個小時前飲酒,反而有礙睡眠。(林麗玉報導)

  台北市立聯合醫院中醫師卓雨青說,台灣地區每三成女性有失眠困擾,男性則是二成五,幾乎每三、四個人,就有一人有失眠困擾,比例相當高,尤其台灣地區的失眠問題更居亞太地區之冠,而失眠的高危險群,包括帶孩子的女性及工作壓力大的族群。而治療方式,醫師提醒,許多民眾習慣睡前看完電視、打完電腦馬上上床,這時候的腦波還處於興奮狀態,會影響睡眠品質,另外過去大家認為睡前一杯紅酒有助睡眠,醫師也提醒,如果飲酒超過一個小時,反而有礙睡眠。至於西醫治療失眠症,主要是以鎮靜作用的藥物治療,而中醫建議可以按摩穴道,包括按摩手腕上兩吋的內關穴、舒緩腸胃系統幫助入睡;或是按摩耳垂到髮際之間的安眠穴,也可以安定神經。另外建議,有失眠情況的患者,不要午睡、晚上不要做激烈運動,或是太晚進食、喝太多水或飲料,這都會影響睡眠品質。

2007年3月3日 星期六

股災....看來資產配置真的很重要...

年後第一天開盤....
中國打個噴嚏....全球股市就死掉一大半...

雖然一開始台灣股市因為休市而躲過一劫..
但3月一到..還是一樣補跌...唉~~

我的投資大概有90%都在高風險的海外基金..
這次的股災...真是讓我死傷慘重...

原本國泰世華銀行那邊的投資還有約6~8%的淨賺(大約是6000多塊~)
今天登入一看....全吐回去了.....真是夭壽...蒸發了6000塊!!!

另一邊JF的...更是不用說...死得更多.....
甚至變成負的了...唉~~

看來...我真的要好好的做好投資的風險控管及配置了.... 年後第一天開盤....
中國打個噴嚏....全球股市就死掉一大半...

雖然一開始台灣股市因為休市而躲過一劫..
但3月一到..還是一樣補跌...唉~~

我的投資大概有90%都在高風險的海外基金..
這次的股災...真是讓我死傷慘重...

原本國泰世華銀行那邊的投資還有約6~8%的淨賺(大約是6000多塊~)
今天登入一看....全吐回去了.....真是夭壽...蒸發了6000塊!!!

另一邊JF的...更是不用說...死得更多.....
甚至變成負的了...唉~~

看來...我真的要好好的做好投資的風險控管及配置了....

2007年2月15日 星期四

投資型保單 part2

前一篇簡單的說明了我自己的投資型保單目前的情況
接下來當然看看別人怎麼講嚕~~

網友Barney的網誌看到的文章,簡單的點出了投資型保單好壞及他個人的看法(紅字部份是他加上去的),而Barney所參考的原文則是在Coin-DJ討論區所發出的淺談投資型保單

如同文中所提到的
常有人把投資型保單的「投資」二個字過分放大,其實投資型保單是保險不是投資
在台灣,這類的情形時有所聞(包括我自己也遇到了~),導致很多消費糾紛產生,而這種情形,就好像日本當初引入這項產品時的情形一樣(希望台灣不要步上鄰國的後塵)
臨近的日本市場投資型保單的銷售數字至2000年為止僅佔年度總保費的0.4%,在投資型保單銷售上非常失敗,其中一個原因,就是銷售人員把投資型商品當成投資在行銷,把預期報酬率當成保證利率,結果日本在接近零利率的金融環境下,一開始吸引許多人購買,有人勝甚至運用投資套利行為拿房產抵押,支付低貸款利息去買『高穫利』的投資型保單。
結果投資失利導至保單失效、財產遭查封,引發保戶集體控告保險公司的案例,東京地方法院1997年判決確定,保險公司及業務員應負過失賠償責任6成(前一年判賠8成)。這不僅使得保險公司商譽受損、甚至倒閉,也使得投資型保單在日本變成『惡德商法』(惡質推銷)的代名詞,投資型保單銷售自此再日本一蹶不振,投資型保單的堀起在台灣並不久,日本的市場經驗,國內的行銷人員也要引以為戒。
國內投資型保單推出的目的,是在將保險資金運用的選擇權交給保戶,改變傳統型保險固定利率保證收益的模式,而以基金投資的高獲利,讓保戶少繳保費而有同樣保障,或是繳同樣保費而有更高保障,當然投資收益高低的風險也由保戶承擔。
那麼,到底誰適合投資型保單呢?

就我個人認為,只要是較年輕(要長期投資)、有經濟基礎(因為成本較高)、可以承受風險的,都適合買。但若是退休年長者,就比較適合傳統型保單。
因為在傳統型保單中,保險公司會給予保戶一個固定的利率,提供被保險人基本保障;而在投資型保單中,雖然有投資的收益,但是,卻不能保證投資永遠只漲不跌,因此,被保險人必須自行負擔風險。若想要在退休後穫得基本保障的人,較不適用投資型保單,因為此種保單得波動性大。而保障不足的被保險人,因為連基本的保障都不足夠,更遑論必要承擔風險。
總而言之,投資型保單是保險和投資合併一起,兩者的關係是習習相關的,而只要有投資,必定伴隨著風險,並非穩賺不賠的,消費者必須要清楚穫利與虧損都是投資的可能結果,所以想要購買投資型保險的消費者,最終還是應具有足夠承受風險的能力。

參考文章
1.淺談投資型保單
2.淺談投資型保單-Barney版 前一篇簡單的說明了我自己的投資型保單目前的情況
接下來當然看看別人怎麼講嚕~~

網友Barney的網誌看到的文章,簡單的點出了投資型保單好壞及他個人的看法(紅字部份是他加上去的),而Barney所參考的原文則是在Coin-DJ討論區所發出的淺談投資型保單

如同文中所提到的
常有人把投資型保單的「投資」二個字過分放大,其實投資型保單是保險不是投資
在台灣,這類的情形時有所聞(包括我自己也遇到了~),導致很多消費糾紛產生,而這種情形,就好像日本當初引入這項產品時的情形一樣(希望台灣不要步上鄰國的後塵)
臨近的日本市場投資型保單的銷售數字至2000年為止僅佔年度總保費的0.4%,在投資型保單銷售上非常失敗,其中一個原因,就是銷售人員把投資型商品當成投資在行銷,把預期報酬率當成保證利率,結果日本在接近零利率的金融環境下,一開始吸引許多人購買,有人勝甚至運用投資套利行為拿房產抵押,支付低貸款利息去買『高穫利』的投資型保單。
結果投資失利導至保單失效、財產遭查封,引發保戶集體控告保險公司的案例,東京地方法院1997年判決確定,保險公司及業務員應負過失賠償責任6成(前一年判賠8成)。這不僅使得保險公司商譽受損、甚至倒閉,也使得投資型保單在日本變成『惡德商法』(惡質推銷)的代名詞,投資型保單銷售自此再日本一蹶不振,投資型保單的堀起在台灣並不久,日本的市場經驗,國內的行銷人員也要引以為戒。
國內投資型保單推出的目的,是在將保險資金運用的選擇權交給保戶,改變傳統型保險固定利率保證收益的模式,而以基金投資的高獲利,讓保戶少繳保費而有同樣保障,或是繳同樣保費而有更高保障,當然投資收益高低的風險也由保戶承擔。
那麼,到底誰適合投資型保單呢?

就我個人認為,只要是較年輕(要長期投資)、有經濟基礎(因為成本較高)、可以承受風險的,都適合買。但若是退休年長者,就比較適合傳統型保單。
因為在傳統型保單中,保險公司會給予保戶一個固定的利率,提供被保險人基本保障;而在投資型保單中,雖然有投資的收益,但是,卻不能保證投資永遠只漲不跌,因此,被保險人必須自行負擔風險。若想要在退休後穫得基本保障的人,較不適用投資型保單,因為此種保單得波動性大。而保障不足的被保險人,因為連基本的保障都不足夠,更遑論必要承擔風險。
總而言之,投資型保單是保險和投資合併一起,兩者的關係是習習相關的,而只要有投資,必定伴隨著風險,並非穩賺不賠的,消費者必須要清楚穫利與虧損都是投資的可能結果,所以想要購買投資型保險的消費者,最終還是應具有足夠承受風險的能力。

參考文章
1.淺談投資型保單
2.淺談投資型保單-Barney版

投資型保單....我的如意算盤打錯了嗎?

約莫2004年12月,一位在保險業的同學,向我推薦了投資型保單,當時什麼也不懂,但聽了介紹後,覺得不錯就買了...

也許是看上從第八年起,每年回饋5%的誘因,就這樣衝動的買下去了!

我的規畫是這筆錢我想拿來當作養老金,再加上5%的回饋,只要繳到第27年,我前七年所付出的180%保費,就會全數回饋給我了,算一算,頂多就是用利息去買保障而以...所以就買了!!! (當時天真的以為只有那180%的費用~~)

但事實上,除了前七年每個月扣除的"保費費用",我還漏掉了1.保險成本(隨年齡增加而增加,如附圖)以及2.保單維持費用(每個月固定80元)
保險成本表

這樣的失誤,造成了直到現在,我所繳出去的錢,將近14萬,但保單價值卻只有46000左右,因為每個月還多扣了200塊!!!(我現年25,保額120萬)

當然,我還有120萬的身故保障金....但若單純投資效益,即便它的投資報酬率有將近15%...但若用我所繳出去的錢來計算投資報酬率...卻相當難看....

雖然我自己識趣的用扣除保費費用(也就是那所謂的180%)後的金額去計算,但仍有保險成本及保單維持費用在繼續支出~感覺上是同樣的保障,我繳了二次錢.....保費費用保險成本

算到這裡,己經讓我不太爽了...若我單純買"定期壽險",就只要付保險成本就好,根本不用去付那總額180%的保費費用,果真如各大討論區的先進們講的,保險跟投資最好分開

單純的投資很簡單,拿出去10000,拿回來11000,就是賺10%,那需要像這種捆在一起的商品,還要消費者自己算,拿出去10000,卻得先扣到大半金額(多半都是N年總共要扣掉130%~180%),剩下的才拿去投資,拿回來只有"一點點",難怪很多人都有爭議.....

現在想想,當初真的不應該買這鬼東西的...不過考慮到我目前沒有定期壽險,以及己經繳了二年,這二個因素加起來,最後還是決定繼續繳了~至少它每年5%的收益,我第八年開始就會先賺起來了~

約莫2004年12月,一位在保險業的同學,向我推薦了投資型保單,當時什麼也不懂,但聽了介紹後,覺得不錯就買了...

也許是看上從第八年起,每年回饋5%的誘因,就這樣衝動的買下去了!

我的規畫是這筆錢我想拿來當作養老金,再加上5%的回饋,只要繳到第27年,我前七年所付出的180%保費,就會全數回饋給我了,算一算,頂多就是用利息去買保障而以...所以就買了!!! (當時天真的以為只有那180%的費用~~)

但事實上,除了前七年每個月扣除的"保費費用",我還漏掉了1.保險成本(隨年齡增加而增加,如附圖)以及2.保單維持費用(每個月固定80元)
保險成本表

這樣的失誤,造成了直到現在,我所繳出去的錢,將近14萬,但保單價值卻只有46000左右,因為每個月還多扣了200塊!!!(我現年25,保額120萬)

當然,我還有120萬的身故保障金....但若單純投資效益,即便它的投資報酬率有將近15%...但若用我所繳出去的錢來計算投資報酬率...卻相當難看....

雖然我自己識趣的用扣除保費費用(也就是那所謂的180%)後的金額去計算,但仍有保險成本及保單維持費用在繼續支出~感覺上是同樣的保障,我繳了二次錢.....保費費用保險成本

算到這裡,己經讓我不太爽了...若我單純買"定期壽險",就只要付保險成本就好,根本不用去付那總額180%的保費費用,果真如各大討論區的先進們講的,保險跟投資最好分開

單純的投資很簡單,拿出去10000,拿回來11000,就是賺10%,那需要像這種捆在一起的商品,還要消費者自己算,拿出去10000,卻得先扣到大半金額(多半都是N年總共要扣掉130%~180%),剩下的才拿去投資,拿回來只有"一點點",難怪很多人都有爭議.....

現在想想,當初真的不應該買這鬼東西的...不過考慮到我目前沒有定期壽險,以及己經繳了二年,這二個因素加起來,最後還是決定繼續繳了~至少它每年5%的收益,我第八年開始就會先賺起來了~

2007年2月10日 星期六

REITs基金的績效看來很讚~~

早在2005年6月,知道寶來全球不動產證券化基金要成立時,當時就在想要投資REITs,只是沒錢~~

如今,2005、2006年過去了,REITs仍然火紅~可由境外不動產基金 人氣旺吸金功力了得 REITs基金接連募爆資金持續流入 全球不動產市場表現亮眼等文章看出端倪...

在上述文章中提到
目前相關境外基金已增加到七檔,其中投資歐洲有一檔,美國兩檔,四檔為全球型產品。
分別為

  • 投資歐洲地區的亨德森遠見泛歐地產股票基金
  • 投資美國地區的聯博美國不動產投資基金及摩根士丹利盧森堡美國房地產基金
  • 保德信全球不動產證券基金、景順天下地產證券基金、摩根富林明環球地產入息基金及新加坡大華全球房地產證券基金

國內部份,則有寶來全球不動產化基金、ING全球不動產證券化(REITs)基金、富邦全球不動產平衡基金、保誠亞太不動產化基金...等等


在國內,以寶來全球不動產化基金最受歡迎,成立一年多以來的漲幅達四成以上,額度也持續追加(2007/01/24發佈的新聞,寶來全球不動產證券化基金規模正式突破200億)。ING全球不動產化基金成立以來漲幅也超過四成,規模也持續成長。

而在海外的部份,以最成熟的北美市場來說,已是第七年全年績效勝過美股;歐洲國家也急起直追,陸續推動REITs相關法案,整體市場成長潛力佳,全球資金因而有湧入歐洲不動產市場的趨勢;亞洲的香港、新加坡分別受惠於利率與博弈產業推升,2006年表現不錯,日本在2005年下半年的漲勢之後,2006年以來持續維持整理,使全年績效僅與其他亞洲國家大致相同。

歐洲地區的亨德森遠見泛歐地產股票基金,一年以來報酬率仍接近六成,兩年以來報酬率超過一倍;而美國地區及其他全球型基金,一年來漲幅都有三、四成。

昨天,又看到境外基金生力軍報到--摩根富林明環球地產入息基金,2/12正式開放網站下單!的消息,這次我可要好好把握,準備移大約1/4的資金擺在這邊,好好賺它一筆。

早在2005年6月,知道寶來全球不動產證券化基金要成立時,當時就在想要投資REITs,只是沒錢~~

如今,2005、2006年過去了,REITs仍然火紅~可由境外不動產基金 人氣旺吸金功力了得 REITs基金接連募爆資金持續流入 全球不動產市場表現亮眼等文章看出端倪...

在上述文章中提到
目前相關境外基金已增加到七檔,其中投資歐洲有一檔,美國兩檔,四檔為全球型產品。
分別為

  • 投資歐洲地區的亨德森遠見泛歐地產股票基金
  • 投資美國地區的聯博美國不動產投資基金及摩根士丹利盧森堡美國房地產基金
  • 保德信全球不動產證券基金、景順天下地產證券基金、摩根富林明環球地產入息基金及新加坡大華全球房地產證券基金

國內部份,則有寶來全球不動產化基金、ING全球不動產證券化(REITs)基金、富邦全球不動產平衡基金、保誠亞太不動產化基金...等等


在國內,以寶來全球不動產化基金最受歡迎,成立一年多以來的漲幅達四成以上,額度也持續追加(2007/01/24發佈的新聞,寶來全球不動產證券化基金規模正式突破200億)。ING全球不動產化基金成立以來漲幅也超過四成,規模也持續成長。

而在海外的部份,以最成熟的北美市場來說,已是第七年全年績效勝過美股;歐洲國家也急起直追,陸續推動REITs相關法案,整體市場成長潛力佳,全球資金因而有湧入歐洲不動產市場的趨勢;亞洲的香港、新加坡分別受惠於利率與博弈產業推升,2006年表現不錯,日本在2005年下半年的漲勢之後,2006年以來持續維持整理,使全年績效僅與其他亞洲國家大致相同。

歐洲地區的亨德森遠見泛歐地產股票基金,一年以來報酬率仍接近六成,兩年以來報酬率超過一倍;而美國地區及其他全球型基金,一年來漲幅都有三、四成。

昨天,又看到境外基金生力軍報到--摩根富林明環球地產入息基金,2/12正式開放網站下單!的消息,這次我可要好好把握,準備移大約1/4的資金擺在這邊,好好賺它一筆。