[ software ] 10 十二月, 2010 10:14

Outlook PST檔損毀時可以使用微軟自帶的工具修復 

電子郵件信箱修復工具 (Scanpst.exe) 被設計來幫助修復個人資料夾 (.pst) 檔案相關聯的問題。電子郵件信箱修復工具會包含第一個 Microsoft Office 光碟片上。 

電子郵件信箱修復工具會自動安裝以及所有的英文語言 Microsoft Outlook 安裝選項,您的作業系統而定。

Microsoft Windows NT 和 Microsoft Windows 2000:
C:\Program Files\Common Files\System\Mapi\1033\NT
Microsoft Windows 95 和 Microsoft Windows 98:
C:\Program Files\Common Files\System\Mapi\1033\95
電子郵件信箱修復工具會自動安裝 Microsoft Outlook 2002 和 Microsoft Office Outlook 2003 的安裝過程。與這個工具的 [Microsoft Office 97] 版本不同的是 Microsoft Office 2000 不會將放電子郵件信箱修復工具功能表上。若要使用電子郵件信箱修復工具、 使用 Microsoft Windows 檔案總管來找出其中一個資料夾然後按兩下 Scanpst.exe 檔案。

Scanpst.exe 檔通常位於下列資料夾中的一個:
<磁碟機 >: \Program Files\Common Files\System\Mapi\1033\
<磁碟機 >: \Program Files\Common Files\System\MSMAPI\1033
Scanpst.exe 檔案為 Outlook 2007 通常位於下列資料夾:
<磁碟機 >: \Program Files\Microsoft Office\Office12
Scanpst.exe 檔案為 Outlook 2010 通常位於下列資料夾:
<磁碟機 > \Program Files\Microsoft Office\Office14

如果要執行 「 電子郵件信箱修復工具,請依照下列步驟執行:
按一下 [開始],] 然後指向 [尋找 或 搜尋,您的作業系統而定。
在 [搜尋的檔案或資料夾]] 方塊中,輸入 scanpst.exe
按兩下 Scanpst.exe 檔案開啟電子郵件信箱修復工具。
鍵入路徑和個人資料夾 (.pst) 檔案的檔案名稱,或按一下 [瀏覽] 來使用 Windows 檔案系統來找出檔案。
按一下 [開始]。

[ program ] 02 十二月, 2010 18:34

如何判斷API的功能涵蓋範圍 
文/王建興 (清華資工所博士班研究生) 2010-12-02  

API設計 第2回API過多或過少都會造成一些問題,然而關鍵可能在於如何畫分API與客戶端程式碼的界線

在前一回中,我們提到,一組API所提供的功能應該要恰到好處,若是提供的功能太少,那麼客戶端程式設計者需要自己做的事就多,那麼API的價值就變低。但同樣的,功能包山包海的API不見得是好事,因為這麼一來,雖然有可能提供更多的作用、更好的彈性,但是相對而言,複雜度也會提高,客戶端程式設計者在學習時要花更多時間才能理解、也要花更多時間才能上手。同時,愈複雜的API使用上愈容易犯錯。

如何考量該由API負責的事情
在我們的經驗中,我們都使用過一些其實十分強大的API,但是,有時花在學習、花在錯誤排除的時間,還多過於API能為我們省下的時間。我們一方面期待API涵蓋的功能最小化、一方面又期待API所提供的功能夠完整,這兩個目標當然是相互衝突的。而設計者的工作,便是在兩種情況間取得一個良好的平衡。

API設計者和客戶端程式設計者是分工合作的,但二者之間應該依照什麼樣的原則來分工,那些東西適合畫歸API、又有那些適合留給客戶端程式碼完成呢?

當你在設計一組API時,通常會設定一個應用的領域,進而設想客戶端程式設計者在這個應用領域中可能的應用情境。你可以想像,倘若缺少了這組API時,程式設計者必須自行寫下那些程式碼,才能完成你所設想的諸般應用情境。接著,你便可以針對這些應用情境進行分析,藉以分出API與客戶端程式碼的界線。

有幾個基本的畫分原則可以參考,你可以視分析程式碼所完成之工作:(1)低階高階與否(2)通用與專用與否(3)常用與罕用與否,來進行畫分的依據。

就像套用成語一樣方便,用更簡易的方式駕馭複雜的底層功能
你可以很輕易區分出,那些工作是低階、那些是高階。低階畫給API,高階則留給客戶端程式碼。API之所以存在的首要目的,便是將程式實作時繁瑣的低階細節予以抽離並包裝,成為抽象化、可重複使用的程式碼,使得基於此API的客戶端程式設計者,毋需在一次又一次的開發中,反覆地重新實作相同的程式碼。

若你觀察C的檔案處理程式庫,便會發現,它成功地界定程式設計者在處理檔案時,API和客戶端程式碼間的界線。

如果我們沒有一套檔案處理API,我們自己必須實作那些事呢?舉例來說,得自己想辦法記錄每個檔案的名稱、每個檔案的內容究竟位在那個磁頭、磁軌、磁區,然後當我們想讀取某個檔案時,才能藉以找到這個檔案的資料,究竟是位於那些磁區之上,然後應該依照怎樣的讀取順序,才能依序、或是隨機地讀出檔案資料。同樣的,寫入資料的情況也差不多。

當然,我還可以舉出更多繁瑣的低階細節,像是檔案讀取寫入時的緩衝機制,以提升檔案處理時的效率等等,但這並不是這邊打算討論的重點。

重點是,檔案處理程式庫的設計者決定了究竟那些細節應該由API這邊畫出一道明確的界線,使得這些細節被阻隔在應用程式設計者之外。你看到的像是fread()、fwrite(),只要透過它們,便可以輕易進行檔案的讀取及寫入。你可能還需要像是fseek()來幫助你設定要讀取檔案的位置。有了這樣的API,你再也不需要明白究竟檔案的處理實際上會涉及那些細節,當然,你更不需要自己實作這些細節。

你可以想像,倘若這些檔案處理最低階的部份,都需要應用程式設計者自行實作的話,這樣子的軟體開發世界究竟有多可怕。但有了這些API函式後,事情簡化到很高的程度。

這些低階的細節,都是每個應用程式設計者在處理檔案時都會面臨的,所以由API以下的層次加以包裝起來之後,應用程式設計者,自然可以省去大量的時間。事實上,API的責任在於定義界線,就檔案處理的這個例子來說,有更多工作並不是應用程式庫完成的。

除了省去客戶端程式設計者的開發時間之外,你可以看到將低階細節隱藏起來的另一個威力所在,便是為客戶端程式設計者提供一個更高階、更簡潔、更直觀、更接近應用領域的程式設計模型。

因此,客戶端程式設計者在撰寫程式時,心裡想的像是:「我現在要從某個檔案讀取1024個位元組的動作」,而不是,「我要找出某個檔案究竟位在那些磁區上,然後我要讀取的檔案位置究竟位在那個磁區中,在讀取之前,我得先看看程式裡的緩衝區裡是否有想讀取的資料,有的話,就直接從緩衝區裡讀取,反之,則移動硬碟的讀寫頭到指定的磁區上,然後讀取1024個位元組」。

立足於API之上的高階程式設計,有點像是運用成語一樣,可以讓寫作的人,表達出同樣的意思,但更精要、有時甚至還更為傳神。我們從高階低階的角度來畫分API和客戶端程式碼之間的分工責任時,除了思考能為客戶端程式設計者省去多少重複的工作之外,更值得思考:客戶端在運用API時,程式碼所呈現出來的面貌究竟會是如何。

如果透過你所設計的API,所編寫出來的程式碼,變得更加的直覺、更容易讀懂,那麼代表你的設計是成功的。反之,你就需要檢討為何自己所設計的API,反而讓客戶端程式設計者所寫下的程式碼變得不直覺、甚至可讀性降低。

用八十/二十法則來考量,通用的部份交給API來處理
除了高階、低階這個畫分的原則之外,通用與專用則是第二個原則。何謂「通用」?通用就是指在你所設定的應用領域中,客戶端程式設計者廣泛都會需要用到的。相反的,所謂的專用,便是在這個應用領域中,僅有少數特定需求的客戶端程式設計者才會需要用到。

「廣泛」、「少數」,都是不那麼精確的詞,這意謂著,當你依據這個標準在進行判斷時,必須針對各種條件來拿捏其中的分寸。

正如前面提到的,我們會希望在最小化API的前提下,盡可能地滿足最多客戶端程式設計者。特定的需求會被最小化的前提給過濾掉。這邊或許可以基於八十/二十法則來做決定,用20%的功能,來滿足80%的應用需求。

我在這裡建議的第三個原則是,將常用的部份畫歸到API,將罕用的留給客戶端程式碼。同樣的,這也是因為最小化API的前提之下必須要有的取捨。

有一些API的設計者,固然考量到在所設定的應用領域中,需要被滿足的常用需求,但他們的企圖心太大,他們還把那些冷門、根本不太會有客戶端程式設計者需求的功能,也都納入API的範圍之內。為了幾乎不太會被用到的功能,而讓API變大、變複雜,事實上,是十分不划算的一件事。

如果不將那些罕用的功能放到API裡,即使在少數的情況下,客戶端程式設計者會需要使用,因為情況終究是少數,所以,那時再讓客戶端程式設計者自行實作即可。

API的設計者還是必須從顧及全貌的立場出發來考量自己的設計。在「常用」及「罕用」的取捨上,一樣可以利用八十/二十法則來做為衡量的標準。

決定API的範圍和內容,是開發人員設計API時很關鍵的一件事,在本文中提供了幾種方式供你參考。在下一回中,我們會進一步討論和API設計有關的其他議題。 

[ program ] 02 十二月, 2010 18:26

為什麼要關注API的開發? 
文/王建興 (清華資工所博士班研究生) 2010-11-25

API設計 第1回應用程式介面(API)的設計議題是我們時常會接觸到的,而在這一次,讓我們來探討一下和API設計有關的一些事情

所有的程式人,對於API這個名詞肯定不陌生,這甚至是我們在討生活的過程中,總是時常掛在嘴上的一個名詞。

所謂的API,即為應用程式介面(Application Programming Interface),通常是作業系統或是程式庫,為了便利應用程式的撰寫,而提供的一組程式碼。其目的在於隱藏底層實作的細節,透過簡化、抽象、又一致的介面,讓應用程式的撰寫者,並不需要明白底層確切的實作方式,也不需要花費時間重新開發這些共通的輪子,而能更專注在自己所欲開發的應用程式之上。

在我們之中,或許有許多人的工作,便是使用現成的API來完成應用程式的開發,但是,或許還有些人的部份或全部工作,反而是開發特定的API,提供給其他的應用程式開發者來使用。

對後續的程式開發影響很廣泛,好壞很重要
和API設計者相對的角色,可以說是API使用時的客戶,雖然他們也是程式設計者,但對API設計者而言,他們仍然是站在客戶端,就好比應用程式的使用者一樣的地位。所以,通常會把他們稱為「客戶端程式設計者(client programmer)」,而他們立足於API之上所寫下的程式碼(也就是呼叫API的應用程式程式碼),則會被稱為「客戶端程式碼(client code)」。

身為API設計者,其目標當然是設計出好的API。好的API帶你上天堂,壞的API讓你住套房。因為一套API被設計出來,通常都會有許多客戶端程式設計者基於這套API來開發他們的應用程式,倘若在API設計中有一個缺陷,那麼這一個缺陷就會「傳染」到所有該API的客戶端程式設計者所開發的應用程式中,接著便會影響到所有應用程式的使用者。

因此,API的設計良善與否,影響層面往往十分廣泛。而且受到重視及眾多程式設計者採用的API,其生命期更是十分久長,即使API會演化,通常也會保持往下相容,所以,舊的API問題,倘若出在介面上,那麼演化時仍會從前一代繼續帶往下一代。

有一個故事是這樣子的,B語言的發明者,也是C語言的共同發明者、同時還是Unix的建立者Ken Thompson,他在設計Unix的檔案系統API(Unix稱為系統呼叫,system call)時,把開檔函式傳入參數值的一個常數定義名稱拼錯了,這個常數定義名稱也就是O_CREAT,所有C程式設計者對這個定義名稱都不陌生,但不知道你有沒有懷疑過,它是原作者拼錯字下的產物呢?Ken Thompson一直想把O_CREAT糾正成為正確的O_CREATE,但因為已經被列在POSIX中的規範,所以,根本就沒有機會,全世界所有的人只能繼續將錯就錯。

在這個例子中,設計者所犯下的錯誤雖然只是拼錯一個字,無礙於整體的運作,也不會造成什麼傷害,頂多只是看起來礙眼(對Ken Thompson來說,可能是刺眼),但是,這說明了,倘若在API介面中犯下其他型式的錯誤,想要修正這個錯誤的代價可能就十分的沉重。

那麼,你接著自然會問,一組好的API應該具有什麼特質呢?

如何辨識優良的API
一組好的API最重要的特質,便是要能滿足客戶端程式設計者的需求。就這一點而言,就和好的應用程式相同,並無二致。API的基本條件是包裝實作的細節,降低客戶端程式碼編寫時的複雜度。當你在設計你的API時,你必須分析對客戶端程式設計者而言,究竟那些實作的細節、以及複雜性,是他們所不願意碰觸的,是他們所不願意花費時間去重新撰寫的,進而歸納出,那些操作是應該被包裝成更高階、更抽象的介面,藉以隱藏這些實作細節及複雜性,對客戶端程式設計者提供撰寫程式時的便利。

有些API設計者所設計出來的API,提供的功能太少,這使得客戶端程式設計者即使有了API,但仍然許多動作得憑藉著自己的力量去完成,API的存在意義便減少許多。也有些API的設計缺乏彈性,只考慮到一些特定的應用情境(通常這是因為API的設計者只考慮到自己或少數人,而沒有考慮到API對象的共通需求),這麼一來,客戶端程式設計者仍然無法得到API應該帶來的好處。

但相反的,也有一些API設計的太有彈性,不僅客戶端程式設計者需要用到的,都能透過它來達成,連根本不需要用到的,它也都能提供。這乍看之下是件好事,但此類的API因為太過於通用,通常複雜度也就跟著提高,對客戶端程式設計者而言,一來不容易上手,二來運用難度也高、同時容易出錯。

通用性超過實際需求的API,一樣會造成客戶端程式設計者的困擾。API提供的功能太少、或太多,缺乏彈性或太有彈性,都不適宜,API的設計者需要拿捏出其中平衡點,讓你設計的API恰如其份,而這也是學問所在。

再來,好的API設計應該要夠直覺,也就是說,對客戶端程式設計者而言,不需要花費額外的心思才能理解,也不需要花費額外的力氣才能參透運用API的深層奧妙,它的設計對程式設計者來說,應該像是天生就如此理所當然的那樣。好的API並不會在介面上做高深的賣弄,和客戶端程式設計者之間相接觸的介面,應該是愈平實、愈容易理解、愈符合客戶端程式設計者自然的預期愈好。

當然,我並不是在說API設計不需要文件輔助說明,但是,好的API設計,的確可以在不倚賴太多文件說明的情況下,就能讓客戶端程式設計者自在的運用,而且不會發生誤解的情況。這便是因為這樣的API設計結果足夠直覺。

為了讓API更直覺,採用一致且容易正確套用與延伸的命名方式
所有的程式碼設計其實都應該要夠直覺,只是API設計更需要!要怎麼達到這個「夠直覺」的境界?最重要的第一步當然是命名。無論函式名稱(若是物件導向程式語言,那麼就是類別名稱、資料成員名稱、成員函式名稱)或是傳入函式的參數名稱,都能為客戶端程式者提供足夠的隱喻及暗示。

只要是適當的命名方式都可以為客戶端程式者帶來直覺,但重點是——要有一致性。具備一致性的東西,能夠讓客戶端程式者很容易舉一反三。

例如,在Java的群集器(collection)API中,將元素加到群集器中,一律都用「add」這個名稱,移除則一律採用「remove」這個名稱。一旦涉及傳入另一個群集器的操作,則都會使用「all」來表示,例如將另一個群集器中的元素加入某個群集器中的動作是「addAll」,而將另一個群集器中的元素自某個群集器中移除的動作則是「removeAll」。判斷某個元素是否在群集器中,是用「contains」,很自然而然的,你會推論,判斷某個群集器中的所有元素是否皆在另一個群集器中,它是使用「containsAll」這個名稱。

這便是命名的重要性,同時也是一致性帶來的好處,即使我們不知道,也可以根據這個一致的規則,「推論」出究竟應該是什麼。
當然,一致性不僅僅只反映在命名上,所有設計原則都應該要有一致性。從Java群集器API的設計,你就能大概體會到,一個直覺的API設計,對客戶端程式設計者來說,在理解上能夠起多大的作用。

[ Linux ] 17 十一月, 2010 19:03

例子1:[Perl]向syslog寫入自定義日誌(Sys::Syslog)

#!/usr/bin/perl

use Sys::Syslog qw(:DEFAULT setlogsock);

#若要使用setlogsock則需use Sys::Syslog qw(:DEFAULT setlogsock);

print $$;

my $message="test_message";

#通過internet域套接字或通過本地UNIX域套接字連接SYSLOGD,$socktype : inet(default) unix

$socktype="unix";

setlogsock($socktype);

#$identity,$options,$facility:服務器標識符,一組選項消息類型

#$options: cons,ndelay,nowait,pid : 若發送到syslogd失敗則直接寫到控制台,不等待立刻傳輸,包括PID,不等待被傳輸就返回

$identity="root";

@options=('cons','pid');

#$facility 定義了消息類型如下:

#       auth            用戶認証
#       authpriv        有特權的用戶認証
#       cron            cron守護進程
#       daemon          各種系統守護進程
#       ftp             ftp守護進程
#       kern            內核消息
#       local0-local7   保留用于本地用法
#       lpr             打印机
#       mail            郵件
#       news            新聞
#       syslog          內部syslog
#       uucp            uucp系統
#       user            各種用戶程序來的消息

$facility="local0";

openlog($identity,\@options,$facility);

#syslog 優先級:  emerg alert crit err warning notice info debug

syslog('err',$message);

[ Computer ] 19 十月, 2010 16:42

常常會出現不知道那張SAS卡使用那個晶片, 是否Linux已經內建晶片的Driver, 網路上有找到相關的資訊. 整理如下.

Intel
型號:IOP348
常見類型:RAID HBA
結構:RoC, Hardware RAID
RAID 5 Support:Yes, Pure Hardware
RAID 6 Support:Yes, Pure Hardware
IOP Support:Yes, @667/800/1200MHz, XScale, Dual Core
HDD類型支持:SAS, SATA
HDD速率支持:3Gbps
64-bit LBA Support:Yes
Port Number:8
Wide Port Support:Yes, 4 narrow links/per wide port
Bus Support:PCIe Gen1 lane x8; *IOP348允許Host Bus面向PCI-X,但是到目前為止沒看過這樣奇怪的實務設計
External Cache Memory Support:Yes, DDR2-400/533, ECC
Write Cache Support:Write Through, Write Back
BBU Support:Yes
採用廠商:Adaptec, Areca, Promise, HighPoint
採用產品:
Adaptec RAID 2045/2405/2805/5405/5445/5085/5805/51245/51645/52445/5405Z/5445Z/5805Z
Adaptec MaxIQ 2405Q/5805Q/5805ZQ
Areca ARC-1212/1222/1680-i/1680LP/1680x/1680ix-8/1680ix-12/1680ix-16/1680ix-24/1680P
Promise SuperTrak EX4650/8650/8654/8658/16650
HighPoint RocketRAID 4310/4311/4320/4321/4322, RocketRAID 4460(PCIe Gen2 lane x8)
軟體支援:
CentOS 5

型號:IOP333
常見類型:IOP on RAID HBA
結構:IOP, Hardware RAID
RAID 5 Support:Yes, Pure Hardware
RAID 6 Support:Yes, Pure Hardware
IOP Support:Yes, @500/667/800MHz, XScale
HDD類型支持:N/A
HDD速率支持:N/A
64-bit LBA Support:N/A
Port Number:0
Wide Port Support:N/A
Bus Support:PCIe Gen1 lane x8, PCI-X
External Cache Memory Support:Yes, DDR-333, DDR2-400, optional ECC
Write Cache Support:Write Through, Write Back
BBU Support:Yes
採用廠商:Adaptec, Areca, Promise, HighPoint,
採用產品:
Adaptec RAID 4805SAS/3405/3805/31205/31605
//簡單描述

型號:ICH10R
常見類型:ROMB
結構:Hardware-Assisted Software RAID
RAID 5 Support:Yes, by CPU, low performance
RAID 6 Support:N/A
IOP Support:N/A
HDD類型支持:SATA, eSATA
HDD速率支持:3Gbps
64-bit LBA Support:N/A, 我不太清楚..=_="
Port Number:6
Wide Port Support:N/A
Bus Support:N/A
External Cache Memory Support:Yes, using System Memory
Write Cache Support:Write Through, Write Back
BBU Support:N/A
採用廠商:Motherboard Manufacturers
採用產品:N/A
//簡單描述

-------------------------------------------------------------------------------------------------------------
Marvell
型號:88RC9580
常見類型:RAID HBA
結構:RoC, Hardware RAID
RAID 5 Support:Yes, Pure Hardware
RAID 6 Support:Yes, Pure Hardware
IOP Support:Yes, @800MHz
HDD類型支持:SAS, SATA
HDD速率支持:3Gbps, 6Gbps
64-bit LBA Support:Yes
Port Number:8
Wide Port Support:Yes
Bus Support:PCIe Gen2 lane x8
External Cache Memory Support:Yes, DDR2-800, ECC
Write Cache Support:Write Through, Write Back
BBU Support:Yes
採用廠商:Areca
採用產品:Areca ARC-1880i/1880x, ARC-1880-ixl-12/16/24

型號:88SE9485
常見類型:SAS HBA
結構:IOC
RAID 5 Support:N/A
RAID 6 Support:N/A
IOP Support:N/A
HDD類型支持:SAS, SATA
HDD速率支持:3Gbps, 6Gbps
64-bit LBA Support:Yes
Port Number:8
Wide Port Support:Yes
Bus Support:PCIe Gen2 lane x8
External Cache Memory Support:N/A
Write Cache Support:N/A
BBU Support:N/A
採用廠商:HighPoint
採用產品:
HighPoint RocketRAID 2710/2720/2721/2722, 2760(PCIe Gen2 lane x16; special Switch architecture)
這是一顆IOC,在HighPoint的產品採用Software RAID方式,也就是Hybrid Model – Hardware-Assisted Software RAID。在韌體上寫入RAID Option ROM,以提供RAID功能,Write Cache政策支持Write-Back,利用System Memory借一塊空間來當Cache。
//簡單描述

型號:88SE9480
常見類型:RAID HBA
結構:目前無法確定
RAID 5 Support:Yes, 無法確定是不是Pure Hardware
RAID 6 Support:N/A
IOP Support:目前無法確定
HDD類型支持:SAS, SATA
HDD速率支持:3Gbps, 6Gbps
64-bit LBA Support:Yes
Port Number:8
Wide Port Support:Yes
Bus Support:PCIe Gen2 lane x8
External Cache Memory Support:Yes, using System Memory
Write Cache Support:Write Through, Write Back
BBU Support:N/A
採用廠商:不清楚=.=""
採用產品:不清楚=.=""
//簡單描述

型號:88SE9128
常見類型:RAID HBA, ROMB
結構:RoC, unknown clock, Hardware RAID
RAID 5 Support:Yes, Pure Hardware, only with Port Multiplier
RAID 6 Support:N/A
IOP Support:Yes, Sheeva
HDD類型支持:SATA, eSATA
HDD速率支持:3Gbps, 6Gbps
64-bit LBA Support:Yes
Port Number:2
Wide Port Support:N/A
Bus Support:PCIe Gen2 lane x1
External Cache Memory Support:Yes, using System Memory
Write Cache Support:Write Through, Write Back
BBU Support:N/A
採用廠商:HighPoint, Motherboard Manufacturers
採用產品:
HighPoint RocketRAID 620/622, 640/644(2 chips; PLX bridge)
//簡單描述

-------------------------------------------------------------------------------------------------------------
LSI/3ware
型號:LSI2108
常見類型:RAID HBA, ROMB
結構:RoC, Hardware RAID
RAID 5 Support:Yes, Pure Hardware
RAID 6 Support:Yes, Pure Hardware
IOP Support:Yes, @800MHz, PPC440
HDD類型支持:SAS, SATA
HDD速率支持:3Gbps, 6Gbps
64-bit LBA Support:Yes
Port Number:8
Wide Port Support:Yes, 4 narrow links/per wide port
Bus Support:PCIe Gen2 lane x8
External Cache Memory Support:Yes, DDR2-800, ECC
Write Cache Support:Write Through, Write Back
BBU Support:Yes
採用廠商:LSI, Intel, DELL
採用產品:
LSI MegaRAID SAS 9260-4i/8i/16i, MegaRAID SAS 9261-8i, MegaRAID SAS 9280-8e/4i4e/16i4e/24i4e
3ware SAS 9750-4i/8i/16i4e/24i4e
DELL H700/H800
Intel RS2BL080/RS2BL040/RS2PI008/RS2MB044
軟體支援:
CentOS 5.4up


型號:LSI2008
常見類型:RAID HBA, ROMB
結構:RoC, Hardware RAID
RAID 5 Support:Yes, Pure Hardware
RAID 6 Support:N/A
IOP Support:Yes, @533MHz, PPC440
HDD類型支持:SAS, SATA
HDD速率支持:3Gbps, 6Gbps
64-bit LBA Support:Yes
Port Number:8
Wide Port Support:Yes, 4 narrow links/per wide port
Bus Support:PCIe Gen2 lane x8
External Cache Memory Support:No
Write Cache Support:Write Through
BBU Support:No
採用廠商:LSI, Intel, DELL
採用產品:
LSI SAS 9200-8e/16e, SAS 9211-4i/8i, MegaRAID SAS 9240-4i/8i
DELL H200
Intel RS2WC080/RS2WC040
軟體支援:
CentOS 5.4 up


型號:LSI1078
常見類型:RAID HBA, ROMB
結構:RoC, Hardware RAID
RAID 5 Support:Yes, Pure Hardware
RAID 6 Support:Yes, Pure Hardware
IOP Support:Yes, @500MHz, PPC440
HDD類型支持:SAS, SATA
HDD速率支持:3Gbps
64-bit LBA Support:Yes
Port Number:8
Wide Port Support:Yes, 4 narrow links/per wide port
Bus Support:PCIe Gen1 lane x8
External Cache Memory Support:Yes, DDR2-667, ECC
Write Cache Support:Write Through, Write Back
BBU Support:Yes
採用廠商:LSI, Intel, DELL
採用產品:
LSI MegaRAID SAS 8880EM2/8888ELP/8708EM2/8708ELP/8704EM2/8704ELP
DELL PERC 6/i, PERC 6/E, CERC 6/I
Intel SRCSASJV/SRCSATAWB/SRCSASRB/SRCSASLS4I/SRCSASBB8I/SROMBSASMR


型號:LSI1068/E
常見類型:RAID HBA, ROMB
結構:RoC, Hardware RAID
RAID 5 Support:Yes, Pure Hardware
RAID 6 Support:N/A
IOP Support:Yes, @225MHz, ARM966
HDD類型支持:SAS, SATA
HDD速率支持:3Gbps
64-bit LBA Support:Yes
Port Number:8
Wide Port Support:Yes, 4 narrow links/per wide port
Bus Support:PCIe Gen1 lane x8, PCI-X
External Cache Memory Support:No
Write Cache Support:Write Through
BBU Support:No
採用廠商:LSI, Intel
採用產品:
LSI
DELL
Intel
//簡單描述

型號:LSI1064/E
常見類型:RAID HBA, ROMB
結構:RoC, Hardware RAID
RAID 5 Support:N/A
RAID 6 Support:N/A
IOP Support:Yes, @225MHz, ARM966
HDD類型支持:SAS, SATA
HDD速率支持:3Gbps
64-bit LBA Support:N/A
Port Number:4
Wide Port Support:No
Bus Support:PCIe Gen1 lane x8, PCI-X
External Cache Memory Support:No
Write Cache Support:Write Through
BBU Support:No
採用廠商:LSI, Intel
採用產品:
LSI SAS 3041X-R/3041E-R
Intel SASWT4I/AXX4SASMOD
//簡單描述

型號:9690SA
常見類型:RAID HBA
結構:8th-generation StorSwitch, Hardware RAID
RAID 5 Support:Yes, Pure Hardware
RAID 6 Support:Yes, Pure Hardware
IOP Support:Yes, AMCC PPC405CR(@266MHz) and G133 RAID Engine, 32 pooled DMA channels
HDD類型支持:SAS, SATA
HDD速率支持:3Gbps
64-bit LBA Support:Yes
Port Number:4/8
Wide Port Support:Yes
Bus Support:PCIe Gen1 lane x8
External Cache Memory Support:Yes, DDR2-533, ECC
Write Cache Support:Write Through, Write Back
BBU Support:Yes
採用廠商:LSI/3ware
採用產品:
LSI/3ware 9690SA-8E/4I4E/4I/8I

 


型號:9650SE
常見類型:RAID HBA
結構:8th-generation StorSwitch, Hardware RAID
RAID 5 Support:Yes, Pure Hardware
RAID 6 Support:Yes, Pure Hardware
IOP Support:Yes, AMCC PPC405CR(@266MHz) and dedicated G133 RAID Engine, 32 pooled DMA channels
HDD類型支持:SATA
HDD速率支持:3Gbps
64-bit LBA Support:Yes
Port Number:2/4/8/12/16/24
Wide Port Support:Yes
Bus Support:PCIe Gen1 lane x1/4/8
External Cache Memory Support:Yes, DDR2-533, ECC
Write Cache Support:Write Through, Write Back
BBU Support:Yes, but 9650SE-2LP is not supported!
採用廠商:LSI/3ware
採用產品:
LSI/3ware 9650SE-2LP/4LPML/8LPML/12ML/16ML/24M8


-------------------------------------------------------------------------------------------------------------
PMC Sierra
型號:PM8011 maxSAS SRC 8x6G
常見類型:RAID HBA
結構:RoC, Hardware RAID
RAID 5 Support:Yes, Pure Hardware
RAID 6 Support:Yes, Pure Hardware
IOP Support:Yes, @600MHz, MIPS, Multi-Threading
HDD類型支持:SAS, SATA
HDD速率支持:3Gbps, 6Gbps
64-bit LBA Support:Yes
Port Number:8
Wide Port Support:Yes, 4 narrow links/per wide port
Bus Support:PCIe Gen2 lane x8
External Cache Memory Support:Yes, DDR2-533 to 800MHz, ECC
Write Cache Support:Write Through, Write Back
BBU Support:Yes
採用廠商:HP
採用產品:
HP P410/411/212
//簡單描述

原始網站: 連結

[ Linux ] 27 九月, 2010 16:12

很多人不太會設定htaccess, 這邊有一個簡單的範例
.htpasswd可以用htpasswd這個工具程式產生.
.htgroup是一個文字檔的GroupFile

#設定帳號密碼驗證
AuthName "different"
AuthType Basic
AuthUserFile /var/www/.htpasswd
AuthGroupFile /var/www/.htgroup
require group different
Order deny,allow
#設定IP驗證
deny from all
allow from 59.120.100.100/255.255.255.240
Allow from 168.95.1.1
#允許只要通過IP或帳號密碼其中一個驗證就可以
satisfy any

 

[ Linux ] 27 九月, 2010 15:44

很多人會問我怎麼擋掉大陸來的訪問, 因為很多是機器人或是攻擊, 其實用htaccess來設定IP過濾不難, 難的是我們得到的IP準確度夠不夠, 會不會造成誤擋的情形? 在網路上找到這樣的網站, 他已經幫我們搜集好IP並且可以產生htaccess檔. 

Internet的IP地址和AS號碼分配是分級進行的。ICANN (The Internet Corporation for Assigned Names and Numbers),負責全球Internet上的IP地址進行編號分配的机构(原來是由IANA負責)。 根据ICANN的規定,ICANN將部分IP地址分配給地區級的Internet注冊机构 (Regional Internet Registry),然后由這些RIR負責該地區的登記注冊服務。現在,全球一共有5個RIR:ARIN,RIPE,APNIC,LACNIC,AfriNIC. ARIN主要負責北美地區業務,RIPE主要負責歐洲地區業務,LACNIC主要負責拉丁美洲美洲業務,AfriNIC負責非洲地區業務,亞太地區國家的IP地址和AS號碼分配由APNIC管理。 

理論上想要IP的資料可以向這些單位要,不過就算他有提供,我想大家還是會嫌麻煩, 這時候我們請出了「BLOCK COUNTRY」這個網站。 透過「blockcountry」線上工具網站產生的htaccess語法來替自己封鎖想要封鎖的IP網段國家。 

網站名稱:Block A Country
網站網址http://www.blockcountry.com

第1步 來到Block country 網站首頁,首先你會看到一個框框,框框中有許多國家,請您挑選要封鎖的國家,可以複選,選擇完成後請點擊下方的﹝Block Now!﹞。

第2步 接著畫面會秀處一長串的程式碼,請將此程式碼複製起來!

第3步 這時,請建立一個名為「htaccess.txt」純文字檔案,將剛剛網頁上產生的程式碼貼到純文字檔案中,然後儲存。

程式碼之中,以下這串網址您可以自由更改,可以更改你要導向的頁面,你可以保持預設不去做變動或者是改成你要導向的網頁網址。

http://blockcountry.com/blocked.php

第4步 接著請上傳剛剛設定好的htaccess.txt檔案,然後將檔案上傳到網站根目錄,也就是放在「public_html」目錄下,接著將檔案名稱改成「.htaccess」,這樣就完成設定封鎖該國家的訪客囉!

如果網站上已經有.htaccess檔案

若您發現您網站上已經有.htaccess檔案,那請下載目前的.htaccess檔案,開啟後以不破壞原本程式結構下,將封鎖某國IP的語法加在原本的語法下方,儲存檔案後然後上傳就可以囉!

以上內容大部份是網上的專家分享,我只有做一些整理跟修改,其實最根本的方法是請ISP在Router上面幫你處理,不過想當然而,除非你錢付得夠多,或是最後自己管路由,不然就先不要想到這個方法吧。

[ php ] 25 九月, 2010 20:25

phpMyFAQ是一個支援多國語言, 完全是資料庫導向的FAQ系統. 其支援多種資料庫,並且提供有WYSIWYG編輯器的內容管理系統, 有影像管理,彈性化的群組與使用者管理,新聞系統,使用者追蹤,語言模組,樣板, 支援PDF,備份系統,動態資料夾,並且易於安裝, 從2003年到現在持續有新版本, 目前已經到2.6版

可以先閱讀原廠網站的安裝
http://www.phpmyfaq.de/documentation.2.6.en.php 

安裝方式如下

  1. 下載最新版的phpMyFAQ 2.6.8
    http://www.phpmyfaq.de/getfaq.php?number=2.6.8&ext=.tar.gz
  2. 在web主機的根目錄解壓縮, 或是在PC端解壓縮再上傳上去, 預設目錄是phpmyfaq-2.6.8
  3. 預先建立下面的資料夾與檔案, 權限要是777
    ■config/ 原本就有這個資料夾, 先將資料夾設為777, 到時候會自動產生database.php在裡面 
    ■the directory attachments/
    ■the directory data/
    ■the directory images/
  4. 執行install/setup.php
    這個程式會檢查是否有上面的資料夾, 權限是否為777,所以我們應該要先建立起來,如果沒有的話他會提示你要建立
  5. 輸入資料庫的帳號密碼與名稱, 還有基本的設定, 記得資料庫建立時要是utf8_unicode_ci的校對, 如果是用latin1的話到時候會發現所有中文字都會變成亂碼. 在這裡把default language設成chinese tranditional
    phpmyfaq_install_1
  6. 點選click安裝後就, 系統就完成了.
  7. 這個版本的phpmyfaq有一個程式有編碼的問題, 因為預設的語言檔已經是UTF-8了, 網頁也都是跑UTF-8,不需要再解碼成latin, 請打開inc\Linkverifier.php的第897行, 將
    return ($cron ? '' : utf8_decode($output));
    改成
    return ($cron ? '' : $output);
    直接將內容輸出即可.
  8. 後續如果有一些翻譯或是設定的問題再參考官網自行修正.
  9. 修正畫面可以從template的tpl下手.
[ MySQL ] 27 八月, 2010 17:59

剛好有人問我這個問題

1.先停掉mysql

# /etc/init.d/mysql stop


2.以–skip-grant-table& 的參數啟動mysql

/usr/bin/mysqld_safe --skip-grant-table&


3. 更改root 密碼

# mysql mysql
mysql> UPDATE user SET password=password('123456') WHERE user='root';
mysql> exit


4.停掉mysql再重跑

# /etc/init.d/mysql stop
# /etc/init.d/mysql start
# mysql -u root -p

5.更改密碼只要使用mysq -u root -p , 然後執行step3的指令即可.

[ life ] 18 六月, 2010 14:25

最近出國時剛好遇到現金帶不夠的糗事, 臨時去提款機提款, 回來後才想要把跨國提款與刷卡的手續費做一個比較.

信用卡消費跨國刷卡 
一般來說,大家比較熟悉的信用卡通常為VISA及MasterCard這兩個國際組織的信用卡,假如持有以上兩個國際組織的信用卡在國外刷卡,其現金流的流程大致上如下: 
1. 在國外刷卡產生消費   
2. 依VISA/Master國際組織所列之結匯日大盤匯率換算為新台幣    
3. 依VISA/Master所訂立之手續費及發卡銀行設定之手續費計算刷卡手續費用    
4. 收取信用卡帳款

舉個例來說,假設你在美國旅遊時,使用VISA信用卡消費了100美元,則到了結匯日時,信用卡公司那邊會將這筆消費以結匯日當天的大盤匯率換算為新台幣(假設匯率為一美元=30元新台幣),然後再乘上VISA/Master所訂立的手續費(目前VISA為1%、Master為1.1%)及發卡銀行的手續費(每家銀行不太一樣,這邊以1.05%)之後,就是您帳單上面的金額,這上面的這個例子來說,也就是美金換算成新台幣之後的3000元乘上VISA的手續費加上發卡銀行的手續費(1%+1.05%)2.05%,台灣的信用卡公司會直接把這個手續費2.05%列出,不會另外拆成VISA跟銀行收的,也就是在帳單上面會出現3062(3000+61.5元手續費)的金額。

第一銀行白金商旅卡
跨國刷卡手續費:1.55%  次月現金回饋:1.5% -->實際跨國刷口手續費:0.05%
年費:1200(第一年需收年費,隔年刷滿12萬免收年費)

台新銀行白金商務卡
跨國刷卡手續費:0%
年費:4500(第一年需收年費,隔年刷滿40萬免年費或換香港來回機票)

台新銀行2010/12/31前有推出1%現金回饋,只要上網登錄就可以,所以算起來會是2.05%-1%=1.05%
http://www.taishinbank.com.tw/event/attend/CreditCardEvent.htm

台北富邦商務白金、合作金庫、彰化銀行、台灣企銀、永豐:1.55%
台北富邦、中信、台新、國泰世華、聯邦:2.05%
花旗、匯豐、渣打:2.2%

金融卡提款
而如果想要有金融卡跨國提款的功能,這時候又需要有哪些條件呢?要確認您的金融卡是否可以在國外提款,通常是確認您的金融卡上面有沒有Cirrus或Plus這兩個符號,如果有這兩個符號就代表您金融卡的發卡銀行可以提供跨國提款的功能,這時候只要您到銀行櫃台申請要啟用跨國提款的功能(一定要開啟才能在國外提款,通常預設是關閉的),之後到了國外,只要可以在ATM上面看到相對應的Cirrus及Plus符號,就代表您可以在該ATM上面做跨國提款的動作,此時的密碼則為您當初設定的磁條密碼。記住,磁條在國外還是比較常見的。(P.S. 如果是Cirrus符號的金融卡找不到相對應的ATM的話,您如果有看到MasterCard的符號也可以嘗試看看) 
就跨國提款而言,需要負擔哪些相關的手續費呢?一般來說,跨國提款的現金流就比較簡單一些了,其大致上流程如下: 
1. 在國外提款成功   
2. 依領取金額及當時匯率換算為新台幣    
3. 依所換算回新台幣後的金額再加上銀行規定手續費扣款

舉個例來說,假設你在美國旅遊時,使用金融卡跨國提款100美元(假設匯率為一美元=30元新台幣), 銀行訂出的手續費為100元,另按提款金額1.55%計收國際網路費,你所需要支付的費用為3147元(3000+100手續費+46.5國際網路費)

永豐銀行:NTD 100+0%
土地銀行 : 75手續費+0%,最高提領20k,當日提領累計最高限額為新台幣12萬元.
玉山銀行:NTD 70+1.1%
第一銀行:NTD 75+1%
彰化銀行、台灣企銀:NTD 75+1.55%
聯邦銀行:NTD 70+1.55%
兆豐銀行、合作金庫、台灣銀行:NTD 70+1.55%
台北富邦:NTD 100+1.55%
華南銀行::NTD 75+1.55%
台新銀行、中信銀行:NTD 70+2.05%  

所以從這個案例中我們可以計算出一個平衡點,超過台幣20100元時,兩邊的費用會是一樣的,手續費為412元,也就是低於20100元台幣(670美金)用刷卡的

算法如下: 假設我們要求平衡點金額X,匯率為Y(30),跨國提款與刷卡的利差為Z 0.05% (2.05%-1.55%=0.5%),提款的手續費為R(100)

X*Y*Z=R

X*30*0.5%=100 =>  X*15%=100 => 15X=10000 => X=670 美金

所以出國前可以算一下喔

[ Android ] 16 六月, 2010 01:58

在升級到android 2.2之前, 想看flash影片的簡單軟體

這是Android SkyFire 2.0 版瀏覽器在Motorola Milestone運作的示範影片。SkyFire 可以直接在YouTube、優酷、土豆網等等視頻網站直接觀看影片,Milestone內置的瀏覽器暫時做不到此功能。
下載地址 : http://get.skyfire.com/m/android/
http://hiapk.com/bbs/thread-204228-1-1.html

我有測試過, milestone安裝完後確實可以看flash影片, 我是用android 2.1 的milestone看的. 安裝完會有簡單的英文圖片說明怎麼看影片.

[ Android ] 16 六月, 2010 01:08

Motorola Milestone升級至Firmware 2.1後發生鬧鐘不準時響鬧的問題,之前有人分享使用Load Monitor的方法去解決,原理是令手機不能進入睡眠模式。但使用此軟件後電池的備用量確實是減少了很多,怨聲載道! 另一方法是關閉時鐘自動更新 (Settings -> Date & Time -> Automatic [Untick] ),但有部份用家仍然未能用此方法成功解決問題。

最近有網友分享使用另一種方法去解決,此方法除了解決鬧鐘不準時問題,還可以解決Youtube不能連接及MultiMedia Station不能使用的問題,可謂一石二鳥!

方法如下 :

進入 Settings -> application -> manage application -> filter -> all ->


1) MultiMedia Station不能使用的話請尋找 multimedia station
2) 鬧鐘失靈的話請尋找 alarm clock
3) 如果有時不能連接 Youtube,請尋找 Youtube

選擇後按一按 clear data 就完成操作

另外也有人實際測過, 如果這樣做還無法解決, 可以update到最新的中文版韌體, 問題即可解決.

[ Windows ] 02 六月, 2010 17:05

使用DVD真的是很慢, 所以如何改用更快的媒體安裝, 我們就想到了USB隨身碟

從Windows Vista開始,就已經支援從隨身碟來安裝作業系統,用隨身碟安裝,時間可以再縮短30%到50%以上(依隨身碟速度而定)。
以下的做法支援Windows Vista / 7 / 2008

而Windows 7當然也支援用隨身碟安裝,而且步驟很簡單:
1.準備一支4GB容量以上的隨身碟(因為Windows 7安裝檔約2.5GB大小)
2.將隨身碟格式化為NTFS(建議用NTFS,FAT32在開機時可能會認不出來)
3.將光碟片裡的內容全部複製到隨身碟。記得打開系統隱藏檔選項,才能將資料完整複製過去
4.進入CMD模式
5.輸入以下指令,x為隨身碟代號

x:\boot\bootsect.exe /nt60 x:

這樣就完成了.

如果覺得這樣麻煩,微軟有提供工具, 請準備好ISO檔案與USB隨身碟就可以了
http://store.microsoft.com/Help/ISO-Tool

另外有一個免費的工具也可以 a bootable usb
http://www.askvg.com/a-bootable-usb-utility-to-create-bootable-usb-drive-to-install-windows-vista-server-2008-and-7/

 

[ Linux ] 01 六月, 2010 17:29

我們常會發生下面的情況, 在Linux/Unix編好了一個shell檔或是做了一個conf檔, 然後下載到Windows PC下, 最後再上傳到另外一台Linux的主機, 這時候會發現, shell檔會出現下面錯誤

 bash: ./xxx : bad interpreter:No such file or directory

這其實是因為我們FTP下載下來以後, 文字檔就自動被轉換成DOS模式了, 所以如果我們想要上傳到Linux主機上, 就必需要在windows內用notepad plus轉換成unix格式, 或是傳上linux主機後再執行dos2unix來轉換檔案.

在linux下也可用下面的方法
vi filename
然後用命令
:set ff?
可以看到dos或unix的字樣. 如果的确是dos格式的, 那麼你可以用set ff=unix把它強制為unix格式的, 然后存盤退出. 再運行一遍看.

不過不管那個方法, 都很麻煩, 要再做一次轉換, 下面提供一個一勞永逸的方法: 強制讓FTP用二進位來傳檔

在filezilla裡面的編輯->設定-> 然後在傳輸裡面的檔案類別, 預設的傳輸模式請由"自動"改為"二進位檔案",  這樣子的設定會將所有的檔案當成二進位檔, 所以不會做任何格式的轉換.  反正現在的文字編輯器如editplus 或notepad plus都可以做unix與dos的格式轉換與判斷. 所以, 設完這個後, 再也不用再辛苦的做轉換檔案格式的動作了.

 

[ Windows ] 21 五月, 2010 19:17

MSDN下載的windows storage 2008預設已經建好密碼 

default password is “wSS2008!