2010年12月17日 星期五

Window7使用其他身分執行程式

將滑鼠指向要執行的程式, 先按住 shift 鍵後, 再按滑鼠右鍵, 就會出現該功能選項(以不同使用者身分執行)
記得要執行該程式的使用者先設定好密碼

使用 php winbinder 寫一個計算檔案的 MD5 碼

< ?php
include "winbinder.php";
define("IDC_STATUSWIN", 101);
define("IDC_TEXTWIN", 102);
define("ID_OPEN" , 201);
define("ID_CLOSE", 202);
function process_main($window, $id)
{
switch($id) {
case ID_OPEN:
$filename = wb_sys_dlg_open($window, "Choose a file", array(array("All files", "*.*")) );
if(file_exists($filename) )
{
$sn="S/N: ".md5_file($filename);
wb_set_text(wb_get_control($window,IDC_TEXTWIN) , $filename);
wb_set_text(wb_get_control($window,IDC_STATUSWIN), $sn );
}
break;
case IDCLOSE : // IDCLOSE is predefined
case ID_CLOSE: wb_destroy_window($window); break;
}
}
$mainwin = wb_create_window(null, AppWindow,"PHP " . PHP_VERSION, WBC_CENTER, WBC_CENTER,500,100);
wb_create_control($mainwin, Menu,
array(iconv('big5','utf-8',"檔案-&File"),
array(ID_OPEN ,iconv('big5','utf-8',"開啟-&Open") , NULL, "" ,"Ctrl+O"), null,
array(ID_CLOSE,iconv('big5','utf-8',"關閉-&Close"), NULL, "" ,"Ctrl+X")
)
);
wb_create_control($mainwin, Label ,"Choose a file" ,1, 10, 290, 80, IDC_TEXTWIN);
wb_create_control($mainwin, StatusBar,"MD5:" ,0, 0, 0, 0, IDC_STATUSWIN);
wb_set_handler($mainwin, "process_main");
wb_main_loop();
?>

2010年12月13日 星期一

Windows7 建立一個隱藏目錄防君子不防小人

1. 開啟 dos 視窗, 先建立一個目錄: secrete..\
mkdir secrete..\
2. 將要隱藏的檔案放到目錄 secrete..\
3. 同一資料夾下再建立一個相同名稱的目錄
mkdir secrete
4. 然後將 secrete 隱藏起來
attrib +h secrete

則 secrete..\ 目錄下的東西, 在 windows7 會以為是 secrete 內的東西, 因而消失不見了

5. 除非用 dos 視窗將 secrete 目錄刪除, windows7 才可以看到 secrete..\ 下的內容
神奇吧!

WindowsXP 應該也可以!

2010年11月7日 星期日

使用 phpExcel 讀取 excel 檔

phpExcel 網址:http://phpexcel.codeplex.com/
底下原始碼, 假設將 phpExcel 放在 httpd 所設定的 $DocumentRoot/phpExcel 下面
另外,tag <> 內的空格須自行刪除,加空格目的是避免此 blog 會當成tag 來解釋, 而影響 php 原始碼的閱讀性,

< ?php
require_once './phpExcel/Classes/PHPExcel.php';
require_once './phpEXCEL/Classes/PHPExcel/IOFactory.php';
header("Content-Type: text/html; charset=big5");
$file="sample.xls";
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($file);
$objWorksheet = $objPHPExcel->getActiveSheet();
echo '< table border="1">';
foreach ( $objWorksheet->getRowIterator() as $row )
{
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
echo '< tr>';
foreach ($cellIterator as $cell)
{
echo '< td>';
echo iconv('utf-8','big5', $cell->getValue() . ' ');
echo '< /td>';
}
echo '< /tr>';
}
echo '< /table>';
?>

2010年10月23日 星期六

twbbs.org 網域 + hinet 轉址

1. 申請免費網域可到 twbbs.org 註冊一個帳號, 一個帳號可申請多組網域(例如 your_domain,則所申請的網域將會是 your_domain.twbbs.org)
來去 twbbs 網站申請一個帳號及網域吧: http://twbbs.org/
(A) 使用者登錄 twbbs.org 後, 按 "設定‧修改 網域"
(B) 挑選所要設定的 your_domain 網域處, 按 "設定" 紐,
(C) 接著再按 "設定DNS" 項,
(D) 將 FQDN 欄位的 your_doamin.twbbs.org, 挑選型態為 A 的 record, 將位址(ip)以 203.66.87.5 直接填入, 按 "新增一筆資料"
完成設定

2. Hinet 用戶可到 Hinet 轉址服務網頁申請一個帳號,
(例如帳號為 your_web,則所申請的網址將會是 http://your_web.myweb.hinet.net)
來去 hinet 網站申請一個帳號及網頁吧: http://www.myweb.hinet.net
(A) 登錄帳號後, 點選 "網站資料修改"
(B) 將 "網域名稱" 欄位內填入在步驟 1 所填的 ip 位址所對應的網域名稱
(例如 your_doamin.twbbs.org )
(C) 等待 dns 完成資料交換, 開啟 dos 視窗,
ping your_doamin.twbbs.org
如果 domain name 已經對應成功, 203.66.87.5 會回應, 則代表已完成設定

3. 開始瀏覽 your_domain.twbbs.org, 開啓瀏覽器填入網址:
http://your_domain.twbbs.org
便會轉址到 http://your_web.myweb.hinet.net
另外原來在 hinet 的 your_web 網頁,並不受影響,仍可以用網址
http://your_web.myweb.hinet.net 直接瀏覽

註: Hinet 的轉址僅限定 http 轉址, 其它如 mail 等並不適用

2010年10月10日 星期日

nginx config 內容小解

漂浮線 ~ 用來指示隨後的 regular expression 大小寫不介意
漂浮線加星號 ~* 用來指示隨後的 regular expression 須區分大小寫

2010年10月8日 星期五

另一好用的 Web server: nginx

下載 nginx web server
http://nginx.org/en/download.html
設定檔: nginx.conf 放在 nginx/conf
docroot 一般設定在 nginx/html
讓 php-cgi 可支援, 修改 nginx.conf,加入以下內容:

location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

如果要支援 drupal,修改 nginx.conf,加入以下內容:


location /drupal {
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.+)$ /drupal/index.php?q=$1 last;
}
}

如果要支援 wordpress , 修改 nginx.conf
location /wordpress {
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.+)$ /wordpress/index.php?q=$1 last;
}
}
如果要使用 sqlite 資料庫, 則到 wordpress 官網下載 pdo_sqlite plugin, 並將此plugin 模組放入 wp-content 目錄下, 另外需修改 wp-config.php, 加入以下的程式碼:
define('DB_TYPE','sqlite');


Drupal 7 才開始有支援 php data object (PDO) 的 slite 資料庫 (pdo_sqlite),
但我用起來不是很穩, 看起來 drupal7 與 nginx 相容性友有待驗證
須修改 php.ini 的 extension 設定值, 將以下的 extension enable:
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mysql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll

將 nginx 檔案全部放入 c:\nginx
將 php 檔案全部放入 c:\nginx\php

啟動 nginx
start c:\nginx\nginx.exe

命令 php-cgi listen port 9000
start c:\nginx\php\php-cgi.exe -b 127.0.0.1:9000 -c c:\nginx\php\php.ini

2010年10月3日 星期日

安裝 Ubuntu 到 SD 卡上

1. 先安裝 boot loader , 我習慣用 grub, grub 也是 ubuntu 內建的 boot loader
2. 將 SD 分割好, 我習慣將 partition 1 設成 FAT, 將 partition 2 設成 linux, 務必確認 SD 卡所在的磁碟機, 一般來說, 開機碟是 hd0, 第二個是 hd1, 我的 SD 卡是在 hd1, 可以利用 grub 內建指令搜尋檔案所在位置
先使用 Ubuntu Linux 開機:
再取得 Ubuntu 的 root 控制權
\UbuntuLinux>sudo su
使用 fdisk 分割 SD 卡, 例如 sdb1(FAT 06), sdb2(Linux 83)
\UbuntuLinux>fdisk /dev/sdb
....
參考命令: n, a, t, l, m
....
\UbuntuLiux>cd /mnt
將 partition 2 格式化成 Linux
\UbuntuLinux\mnt>mke2fs /dev/sdb2
建立 grub 所需資料夾:
\UbuntuLinux\mnt>mkdir sdb
\UbuntuLinux\mnt>mount /dev/sdb2 sdb
\UbuntuLinux\mnt>mkdir sdb/boot
\UbuntuLinux\mnt>mkdir sdb/boot/grub
將 grub 所需的檔案存入 /mnt/sdb/boot/grub 內: stage1, stage2, stage1_5..., menu.lst
\UbuntuLinux\mnt>cp ... /mnt/sdb/boot/grub
修改 /boot/grub/ment.lst 內容
\UbuntuLinux\mnt>vi sd/boot/grub/menu.lst
將Ubuntu 的 iso 檔(例如 Ubuntu10.04.iso ) 放在 partition 1 (hd0,0) 的 capser 目錄下,
Ubuntu 10 的 linux kernel 名稱叫作 vmlinuz, ramdisk 名稱叫作 initrd.lz, 一般來說,都放在 cdrom 的 casper 目錄內, 可以將他複製到 SD 卡上的 partition 1 (FAT) 內,只要在 menu.lst 明確設定好 kenrel 及 ininrd 所在位置即可
...
default=0
timeout=2
root (hd0,0)
kernel /casper/vmlinuz boot=casper iso-scan/filename=/casper/ubunt10.04.iso ro splash locale=zh_TW.UTF-8
initrd /casper/initrd.lz
...

卸載 SD 卡, 並執行 grub 安裝 boot loader
\UbuntuLinux\mnt>umount sdb
\UbuntuLinux\mnt>grub
在 grub 內設定好 root device, 以便讓它去找尋 stage1, stage2, stage1_5, menu.lst 所在磁碟
\grub>root (hd1,1)
並確認 root device 所在磁碟: 例如將 id 存入在 /mnt/sdb/boot/grub/id , 則執行以下命令:
\grub>find /boot/grub/id
安裝 grub 到 SD 卡 MBR
\grub>setup (hd1)
\grub>quit
重新開機並設定 BIOS 讓 SD 卡可以啟動開機

2010年9月29日 星期三

使用 php 讓 browser 自動使用 utf-8 編碼 

< ?php
header("Content-type:text/html;charset=utf-8");
? >

免費又好用的工具程式

好用的看圖軟體及編修工具: http://www.xnview.com/en/download.html

好用的文字檔編輯工具: http://notepad-plus-plus.org/download

好用的數學軟體: http://freemat.sourceforge.net/
另一款數學軟體: http://www.gnu.org/software/octave/download.html

好用的 HTML 編輯軟體: http://kompozer.net/

好用的 ftp 軟體: http://filezilla-project.org/

好用的 sshd http://www.freesshd.com/?ctt=download

好用的 ssh client: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

好用的虛擬電腦: http://www.virtualbox.org/wiki/Downloads

好用的解壓縮軟體 http://www.7-zip.org/

好用的加密軟體 http://www.truecrypt.org/downloads

好用的遠端遙控軟體: http://www.realvnc.com/products/download.html

好用的燒錄軟體http://www.imgburn.com/index.php?act=download

好用轉 PDF 工具: http://sourceforge.net/projects/pdfcreator/

好用的 p2p 軟體: http://www.utorrent.com/

2010年9月26日 星期日

Windows sshd

1. 下載
free SSH Server: http://www.freesshd.com/
free SSH Client: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
2. 安裝 freesshd, 設定:
Users TAB: 增加 user, 設定密碼, 使用 Password stored as SHA1 hash,並勾選 Shell, SFTP, Tunnling
Tunneling TAB: 勾選 Allow local port forward, 並勾選 Allow remote forwarding
其他使用內定值即可
3. 安裝 putty
設定 SSH/Tunnels,
增加 Source port (將使用 127.0.0.1:SorcePort 來存取), 要連線的 host 及 port: DestinationIP:DestinationPort
4. 開啟防火牆設定,令其可通過防火牆

2010年9月25日 星期六

安裝 phpBB (電子布告欄)討論區

到官方網站下載
1. phpBB 主程式及中文語系相關檔案: http://www.phpbb.com/downloads/olympus.php
2. language pack 共有 3 個檔案需要下載: http://www.phpbb.com/languages/
Language, subsilver2, proSilver 等 3 個壓縮檔
3. 參考竹貓星簡易安裝法: http://phpbb-tw.net/phpbb/viewtopic.php?f=116&t=50303
4. 將上述檔案解壓縮放到 Web server 適當目錄底下: ./phpBB3
5. 執行 mysql client, 產生新資料庫, 並將資料庫權限設好管理員帳號及密碼
6. 利用瀏覽器訪問 http://.../phpBB3/install/index.php
7. 將 資料庫名稱, 管理員帳號, 管理員密碼, 輸入
8. 移除 ./phpBB3/install 目錄
9. 完成
10.開始管理版面

Apache2 一些資訊

啟用 Directory 時, 其內部選項是會被其子目錄所繼承的, 但後續的相同的 directive 可以改寫,蓋掉前面之敘述

(A) 策略 1: 先嚴格禁止,在慢慢開放,
在根目錄先用 AllowOverride None, 其底下目錄, 接下來如沒有特別指定,則預設是關閉 Override:

AllowOverride None
Order deny,all
deny from allow


(A) 策略 2: 先全部開放, 再一一禁止
在根目錄先用 AllowOverride All, 其底下目錄, 接下來如沒有特別指定,則預設是開啟 Override:

AllowOverride All
Order allow,deny
allow from all



... : path 使用絕對路徑
只作用在此目錄內, path 欄可以使用 Regex 語法, 包含 ~ 符號, regular expression 使用 "" 括起來
例:

Options Indexes FollowSymLinks

AllowOverride --> 只存在於

Ubuntu 的 Appach 設定會 include /etc/apache2/sites-enabled/000-default
在此他會將 DocumnentRoot,AllowOverride 重新改寫,


Options: ALL, ExecCGI , FollowSymLinks, Includes, IncludesNOEXEC, Indexes, Multiviews, SymLinksIfOwnerMatch
FollowSymLinks : Apache2 是否會遵循 Symbolic link
Indexes : 要不要顯示目錄裡的內容

2010年9月23日 星期四

Ubuntu Linux 啟用 apache2 的 mod_rewrite

Apache2 啟用 mod_rewrite module
a2enmod rewrite

DMSguestbook 啟用

Wordpress 的 DMSguestbook plugins 在 Ubuntu Linux Server 上無法運作原因:
驗證碼的 PNG 圖像無法產生 --> 需安裝 php5-gd
apt-get update
apt-get install php5-gd

2010年9月22日 星期三

安裝 Wordpress

1. 下載 Wordpress
英文版: http://wordpress.org/
正體中文版: http://www.wordpress.com.tw/
2. 安裝 WAMP server: http://www.wampserver.com/en/
或 phpnow: http://phpnow.org/
3. 設定Mysql,新增一個資料庫給wordpress使用並產生wordpress的管理者,例如資料庫=wp3,管理者=admin, 密碼=123456
create database wp3;
grant all on wp3.* to 'admin'@'localhost' identified by '123456'
4. 將wordpress解壓縮,並將所有檔案放入Apache server的 www 根目錄內
5. 使用 Borwser 瀏覽 Apache server 上 wordpress 所在之根目錄, 並將(A)資料庫名稱,(B)使用者名稱,(C)密碼,分別填入設定檔內.

HTML 自動轉址

HTML 在 head TAG 內加入以下代碼自動轉址:
<
meta http-equiv="refresh" content="1;url=http://prowaterprovfing.com.tw"
/>
其中 1 代表 1 秒後自動轉址,url 就是即將要轉移的目的地網址

若使用 php 則加入以下代碼:
header('Location: http://prowaterprovfing.com.tw');

2010年7月22日 星期四

不使用防毒軟體的 Windows 作業系統規劃

買了 Acer Aspire 1410, 上面搭載了 Windows 7, 還不錯用, 只是它預先裝了一堆我不喜歡的軟體和防毒軟體, 索性將它全部移除,系統現在順多了,為了避免上網中毒,於是便規劃了一下:建立 4 個帳戶, 2 個一般用戶及 2 個系統管理員帳戶,除非安裝軟體要使用系統管理員登入外, 其餘時間用一般帳戶登入即可,各別建立2個是作為備份用,萬一有其中一個帳號中毒了,用另一個系統管理員將其帳戶刪除,再重新建立一個新帳號就可,如此也不需要防毒軟體了,省的它拖慢系統速度.

改變 Virtualbox 的映像檔的 uuid

VirtualBox 3.2.6 出新版了, 網路上抓的 WindowsXP sp3 整合版, 終於可以灌進去了玩看看了.
若直接複製映像檔(.vdi) 後, 想再創建一個虛擬機器, 開啟這個複製的映像檔將會產生錯誤,可利用工具程式vboxmanage 更改其 uuid 即可重複使用了:
C:\Program Files\Oracle\VirtualBox\vboxmanage internalcommands setvdiuuid NewImage.vdi
另外, 虛擬機器的設定, 在'主機板(M)'頁籤'有一選項'啟用 IO APIC', 最好不要勾選, 應為它會造成作業系統變慢

EWF 系統取得/安裝/使用

EWF 系統取得/安裝/使用
號稱 WindowsXP 下免費的影子軟體( ewf.sys , ewfmgr.exe , ewfntldr, EWFreg.reg )
好處:讓 WindowsXP 成為唯讀作業系統, 所有寫入動作, 會自動轉至 DRAM 所模擬的檔案系統上, 可避免不當系統破壞或病毒感染

(A) 取得檔案
1. 到 http://www.thevod.org/applications/ewfadmin/ewffiles.rar 下載檔案
2. 使用解壓縮軟體 7-zip 解 rar, 可以到 http://downloads.sourceforge.net/sevenzip/7zip465.exe 下載檔案
3. 安裝 7-zip 後將上述 ewffiles.rar 解壓縮
4. 內含 4 個重要系統檔案(ewf.sys, ewfmgr.ee, ewfntldr, EWFreg.reg )及 1 個英文說明檔( Instructions.txt)

(B) 安裝方式
0. 將根( \ )目錄下的 ntldr 改個名稱,或將它備份起來後刪除.
1. 複製 ewfntldr 到根目錄下( \ ), 並將它改名為 ntldr
2. 複製 ewf.sys 到系統目錄( \windows\system32\drivers )內
3. 複製 ewfmgr.exe 到系統目錄( \windows\system32\ )內
4. 啟動註冊工具程式 regedit.exe, 並找到機碼 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root後,
按滑鼠右鍵選擇 "使用權限", 讓 Everyone 擁有 '完全控制' 之權限(也就是說將此選項勾選)
5. 將 EWFreg.reg 內容稍作必要之修改,以反映開機磁碟(ArcName), 之後存檔, 並雙擊滑鼠將此機碼資訊登錄到 windowsXP 內
6. EWF 系統安裝完成,重新開機

(C) 系統管理
1. ewfmgr c: -enable
下一次啟動時, 開啟 ewf 保護
2. ewfmgr c: -commitanddisable -live
馬上將現有改變反映到磁碟 c:, 並在下一次啟動時, 停止 ewf 保護

2010年5月16日 星期日

父親病危

5/13 晚上接到老哥的電話, 說父親住院了,接著老妹也CALL 了一通電話,說爸情況並不樂觀.我真後悔沒馬上趕回家.
5/14 一早到公司請了假,就趕到高醫去探望,看到父親插了鼻胃管,鼻頭酸了一下,眼淚濕潤了我雙眼,眼前一片模糊,趕緊拿了手帕,拭去眼淚,聽老媽在父親耳朵旁哽咽的說,兒子來看你了,你知道嗎?老爸點點頭,似乎已無法言語,也沒氣力爬起身子,看著老爸乾裂的嘴唇,似乎不吃不喝有一陣子了,想起老妹昨天說父親什麼都不吃,似乎已經絕望,不再想對抗病魔,不一會,大阿姨攜著表嫂一起來,還沒到病房門,眼眶便已泛紅,我和哥再也忍不住,對著窗戶向著外頭啜泣.走到老爸病床前,阿姨輕輕叫著老爸的暱名,眼淚不時流出,不捨的神情,任誰看了都不忍.接著主治醫師來了,要我和母親到外面聽述病情,告訴我們現在父親的病情,說現在父親肝已逐漸失去功能,或稱肝衰竭,造成體內無法排毒,體內阿摩尼亞可能會衝到腦部,造成肝昏迷,因此會有無意識的現象發生,目前只能用高營養物質灌食,看能否促進肝細胞再生,但除非奇蹟,否則要恢復,只能換肝一途.還記得過年前父親的身體檢查報告出來,肝癌,老爸就召開家庭會議,大致說肝癌的嚴重性和未來會面對的事實,要我們做好心理準備,也再三叮嚀不要做換肝手術,也不要強行急救,因為他看到他老朋友多數患癌的朋友,往生時都相當痛苦,只知當時空氣瀰漫一股哀傷的氣氛,無人發言,接著妹婿提了建議,既然做了報告,也驗出結果,何不做一些防範措施,父親看是接受了,開始做肝栓塞,作化療,似乎這些都沒發揮作用,上禮拜老爸常說身體不適,說話已沒氣力,也不像以前那麼有活力,可以到外面散步,應該就是徵兆,在普通病房的護士告訴我們,可以請看護,幫忙照顧父親的衛生清理,對餵食也比較有經驗,也可替病人拍拍背,可讓父親活動一下筋骨,讓專業人負責照料,可省下很多氣力,12 小時收費 1000元, 是公定價,到護理站申請就可,否則以普通病房的護士照料,一般都無法全程勝任,或等加護病房的安排,到時才會有較好的醫療照顧,便雇了2 員看護分別一晚一日的班,這樣應可大大減輕母親照護的負擔,晚上老哥留守.我便載著母親回家休息
5/15 跟老哥換班,老哥說昨晚父親不時爬起,躺下,他整晚都沒睡,看護也累得 4 點鐘的時候便打呼睡著了,8 點換了一位新看護,下午,醫院通知加護病房已經空出來,要我們準備轉到加護病房,進加護病房有一堆措施要遵守:
探病只有兩個時段早上 11:30~12:00, 及下午 5:00~5:30, 親屬可在旁邊休息室隨時等候緊急通知,並且要簽署一些文件:自費同意書,病危處理同意書,在加護病房內之照料同意書,均須經家屬簽字同意,晚上換我留守,老哥便載著母親回家休息,一晚其實無所事,躺在床椅並不會很舒服,但也還過得去,只是醫院內冷氣到了半夜會冷了點,還好有帶夾克,可稍微取暖
5/16 小阿姨和姑姑嫂嫂及老爸老媽的一些朋友來探望,每個見到我爸這樣瘦的身軀,莫不眼眶泛紅.跟老媽說老爸現已經進加護病房照料,晚上回家睡就好,只是老媽與老爸鶼鰈情深,希望有親人可以陪伴父親,執意要留在醫院,明日我和老哥要上班了,也沒再勸母親,現只能祈求保佑我老爸真的有奇蹟發生,畢竟老爸一生奉獻,不應這麼年輕就回老家和奶奶相聚的,大嫂 8 月要臨盆,孫子就要出生了,這樣的奢求,為何不讓它實現呢?

2010年5月12日 星期三

好用的 TeraTerm

TeraTerm 是一個終端機模擬程式,可以支援 Telnet, ssh, 也可完全取代 MS 的 Hyper Terminal, 網址是
http://ttssh2.sourceforge.jp/
其中最強大的功能是它獨特的 script language,可批次處理執行 command line 命令, 比起 MS 內建 telnet.exe 無法使用 script 批次處理. 簡直太方便了, 在 Linux 下, telnet 要執行批次處理, 使用 script 方式下命令, 須搭配 Expect 來用才容易, 但 MS Windows 下, 除非使用 cscript 來寫(但 csript 寫起來可不容易, 且控制不易,常常會有執行時間差的因素造成錯亂,或因為失焦,而無法控制) , 否則就沒有方便的套裝軟體可用, 除非安裝 GNU Cygwin, 並且安裝套件Expect, 讓他模擬成 Linux 環境就可使用, 但 Cygwin 安裝起來還蠻龐大的,對不熟 Linux 操作環境的人而言,其實是一大負擔.
Teraterm 4.65 安裝起來只要勾選 Teraterm 就好, 其他可以取消不安裝, 當執行 TeraTerm 時, 他會找尋其目錄底下的 TERATERM.ini 初始化內部參數, 內定會 POPUP 開啟一個新連線視窗, 還挺煩人的, 可修改 TERATERM.ini 的內容將他移除: 找尋 HostDialogOnStartup=on, 將它改成 HostDialogOnStartup=off 就可. 要執行其 script language, 在功能列 Control 的 Macros 子功能上開啟檔案就可讓它批次執行,其內建 script language 可在其功能列 Help 中找到(當然前提是安裝時要選擇'安裝手冊'那一個選項)詳細的文件, 底下我寫了一個 telnet 的 script,另外在 script 內的字串參數應使用單引號將兩邊括住, 整個 script 圍繞在 wait 及 sendln 兩個命令上, 可說非常容易理解與使用
;=========================================
; Sample macro for Tera Term Telnet login
; login to a server

timeout = 10
connect '192.168.0.1:23 /nossh'

;Wait a prompt message to login
wait 'login:'
; Send username
sendln 'user'

;Wait for a keyword to enter password
wait 'Password:'
; Send password
sendln '1234'

; OK I am login
sendln 'clear'
; Wait for timeout
; waitevent 1
mpause 3000
sendln 'exit'
;=========================================

2010年5月10日 星期一

使用自然人憑證

到戶政事務所辦理自然人憑證, 本人攜帶身分證即可, 工本費 275 元,
準備 Email 帳號, 想好帳戶密碼(用於解鎖 PIN), 預設 PIN碼是自己國曆生日共 6 碼
可上內政部憑證管理中心網站(http://moica.nat.gov.tw)去修改 PIN 碼

1. 使用 Windows 7 安裝讀卡機 card reader (Ez100PU)驅動程式,
讓它上網自動安裝就可,並且將自然憑證插入讀卡機內
2. 內政部憑證管理中心中文版:
http://moica.nat.gov.tw/html/index.htm
3. 點選 "憑證作業" 頁簽
4. 再點選左邊 "檢視憑證IC卡資訊", 如可正確顯示自己憑證內容,
則代表已正確安裝
5. 如無法顯示, 或有任何錯誤發生, IE 8 須加信任網站
工具 -> 網際網路選項 -> 安全性-> 信任的網站 -> 網站
輸入 http://moica.nat.gov.tw 後, 按新增鈕
並取消最下方 "此區域內的所有網站需要伺服器驗證(https:)(S)" 的勾選後,
按關閉鈕,最後按確定鈕.
6. 此時應該可正確運行才對
7. 報稅程式下載: http://tax.nat.gov.tw/download.html
8. 如使用 opera 瀏覽器, 會無法瀏覽, 還是乖乖使用 IE 較不會有問題!

2010年4月1日 星期四

5 分鐘學會使用 freemat

變數的定義, 等式左邊叫變數, 右邊叫做運算式, 直接在 console 下輸入下列運算式定義, 並將答案存入變數a中,例如:
a=1+2
產生
a=
3
如果在運算式後面加上分號 (;), 將不會顯示出答案 (例如: a=1+2;)
數學運算 運算符號
加 +
減 -
乘 *
除 /
n次方(例如 2^7 = 2 的7次方) ^
數學記號 10 的 n次方(例如 1.23e-3 = 1.23 * 10的 -3次方) e
矩陣轉置(將矩陣行列對調) ‘
已經定義過的變數可以用於運算式中或公式中, 例如:輸入下列命令
b=2*a;
b
產生
b=
6
常用內建(已經定義過)變數:
i = sqrt(-1) = 虛數 i
j = sqrt(-1) = 虛數 i
pi = 3.1416 = 圓周率
例如: 輸入下列運算式:
y=2*(pi+4*j)
產生
y=
6.2832+8.000i
一些常用的數學函數:
abs 絕對值, 複數的絕對值
angle 複數的角度
cos 餘旋涵數
sin 正旋涵數
exp 指數
log10 基底為10的對數
log 自然對數 ln

矩陣定義:
v=[1 3 5 7];
會產生 1x4 矩陣, 內含 1, 3, 5, 7 等 4 個元素, 也可另外再增加元素
v(5)=8;
之前定義過的矩陣變數,可以放入運算式中, 或加以合併, 例如:
b=[v a]; % 矩陣合併
c=b(2:5); % 部分矩陣

另外可以使用用冒號(:)來產生等差級數, 例如:
t= 0: .1: 10;
產生 0, 0.1 , 0.2 , 0.3 … 10
如果只用一個冒號來產生等差級數,則內定級距=1, 例如:
K=0:10
產生 0, 1 , 2 , 3 … 10
使用分號來分割列與列,以便產生多維矩陣,例如
M=[1 2 4;3 6 8];
將產生 2x3 的矩陣, 第一列是 [1 2 4], 第二列是 [3 6 8]
一些內定特殊矩陣:
[] : 空矩陣
zero(n,m) : n * m 的 0 矩陣
ones(n,m): n * m 的 1 矩陣
eye(n) : n *n 的 單位矩陣
直接取用矩陣內元素, 例如第1列,第2行放入 5
M(1,2)=5;

freemat 的變數, 大小寫是有分的, 因此 a 與 A將被視為不同變數, 如果前置字元加上符號 %, 則其後的文字將被視為註解,而不允以解讀,例如
% 這是註解
在 freemat 中可用 helpwin 來查詢用法,語法, 例如
helpwin sin
盡可能用陣列方式來產生變數,而不要以迴圈方式(for-loop, while-loop)產生,例如:
k=1:10;
x=cos(k);
比起
for k=1:10,
x(k)=cos(k);
end
要來的有效率

矩陣相加
a=[1 2 3] ; b=[4 5 6] ; c=a+b
產生
c=
5 7 9
矩陣相乘
a=[1 2 3] ; b=[4 5 6] ; d=a * b’
產生
d=
32

但如果要做兩個矩陣一對一的元素相乘應使用 .* 運算符號, 例如
c= a .* b
產生
c=
4 10 18
同理, 如果要做兩個矩陣一對一的元素相除應使用 ./ 運算符號

條件式流程控制
If a<=2
b=1;
else
b=2;
end

一些固定的程序, 可以寫在一個.m檔案內, 附檔名為m(例如 test1.m),就好比如一個 script(巨集macro)一樣, 也可定義寫成 function, 將變數輸入及回傳結果, 例如:
function z=yplusx (x,y)
z=x+y;
如果需要在流程中要求使用者輸入(敲進)按鍵,可以呼叫:
input(‘Prompt Message, press enter to finished’)
來提醒使用者,

呼叫 plot 可以將矩陣直接繪圖, 例如:取樣頻率 8000Hz, 共8000 點, 繪出一個頻率為 1000Hz的 sin 的波形, 時間長度等於 1秒鐘:
fs=8000 ; n=[1:fs] ; f=1000 ; t=n/fs ; x=sin(2*pi*f*t) ; plot(x);
呼叫 wavplay(x,fs) 可以將上述波形直接從喇叭輸出,產生 1000Hz 的音頻