主機板規格比較

參考維基百科,擷取我需要的部分

http://zh.wikipedia.org/wiki/%E4%B8%BB%E6%A9%9F%E6%9D%BF%E8%A6%8F%E6%A0%BC%E6%AF%94%E8%BC%83

 

規格 尺寸 (mm)
WTX 356×425
AT 350×305
Baby-AT 330×216
BTX 325×266
ATX 305×244
EATX 305×330
LPX 330×229
NLX 254×228
microATX 244×244
DTX 244×203
FlexATX 229×191
Mini-DTX 203×170
EBX 203×146
microATX 171×171
Mini-ITX 170×170
EPIC 165×115
ESM 149×71
Nano-ITX 120×120
COM Express 125×95
ESMexpress 125×95
ETX / XTX 114×95
Pico-ITX 100×72
PC/104 96×90
mobile-ITX 75×45
Ultra ATX ?×244

資料庫的ACID

記得好像某個考試有考ACID,參考維基百科

http://zh.wikipedia.org/wiki/ACID

 

ACID,是指資料庫管理系統DBMS)在寫入/異動資料的過程中,為保證交易(transaction)是正確可靠的,所必須具備的四個特性:原子性(atomicity,或稱不可分割性)、一致性(consistency)、隔離性(isolation,又稱獨立性)、持久性(durability)。

主要有四大特性

  • 原子性:一個事務(transaction)中的所有操作,要麼全部完成,要麼全部不完成,不會結束在中間某個環節。事務在執行過程中發生錯誤,會被回滾(Rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。
  • 一致性:在事務開始之前和事務結束以後,資料庫的完整性沒有被破壞。這表示寫入的資料必須完全符合所有的預設規則,這包含資料的精確度、串聯性以及後續資料庫可以自發性地完成預定的工作。
  • 隔離性:當兩個或者多個事務並發訪問(此處訪問指查詢和修改的操作)資料庫的同一數據時所表現出的相互關係。事務隔離分為不同級別,包括讀未提交(Read uncommitted)、讀提交(read committed)、可重複讀(repeatable read)和串列化(Serializable)。
  • 持久性:在事務完成以後,該事務對資料庫所作的更改便持久地保存在資料庫之中,並且是完全的。

CDATA 區段 – XML 標準

XML 對於許多人都不陌生,但還是有些地方大家不知道該如何使用,例如現在所要介紹的 CDATA 區段。

在某些時候內容中含有 HTML 標籤或者是一些特殊字元﹙如﹕<、>、&﹚,當這些字元出現在內容裡,通常都會出現 XML 分析錯誤的情況,這時候就必須將這些字元作些轉換的工作(如︰< / &lt;、> / &gt;、& / &amp;)。

其實並不需要如此,CDATA 區段提供了一種通知剖析器的方法,說明 CDATA 區段所包含的字元沒有標記。

當 XML 剖析器遇到開頭的『<![CDATA[』,會將接下來的內容報告成字元,而不會嘗試將其解譯成項目或實體標籤。字元參考不能在 CDATA 區段內運作。當它遇到結尾的『]]>』時,剖析器會停止報告並回到正常的剖析,這也能使用在 HTML 文件中。使用方法為︰

  1. <![CDATA[這裡面內容包含了 <font size=”3″>HTML 標籤</font>,以前一些特殊字元 & 所以要使用 CDATA 區段包起來]]>

以下面商品資料文件 PDI0120080331195202.xml 為範例,其中 PDI01DOC.DocContent.Item.ProductUrl 為商品頁面的網址,內容包含了 & 字元;PDI01DOC.DocContent.Item.ProductDesc 為商品說明,內容包含了大量 HTML 標籤。所以這兩個內容我們都用使用了 CDATA 區段包起來,如此 XML 剖析器就能正常剖析了。

無法使用samba分享時,檢查相關設定

1.testparm 檢查smb.conf有沒有什麼地方打錯
2.下達指令 smbclient -L localhost  確定有分享出來
3.#ll /{your share} directory U,G,O權限有沒有設好,chmod 777
4.iptables -L -n 檢查default policy 有沒有被阻檔
5.selinux…不熟就先disabled吧
取消selinux的方法
修改 selinux
step1.
vim /etc/sysconfig/selinux
step2.
將 SELINUX=enforcing

改成SELINUX=disabled

step3.

重開機

Linux上處理硬碟壞軌

養動物園或是管理伺服器的人,難免都會碰到一些硬碟故障的問題。這篇文章略為整理一些在 Linux 上處理壞軌硬體的一些軟體知識與技巧。針對讀者為中等程度以上的使用者,文中僅僅提供參考資料,不說明實際操作或指令明細,請自行參考相關文件。作者以最大善意盡力提供參考資訊,但文中如有疏漏或錯誤造成資料遺失,作者不負任何責任。

文中說明均以 Linux Extended file system 為主,操作平臺是 Debian GNU/Linux. 所提及工具授權均為 FLOSS 。假設錯誤硬碟為 /dev/sdb,所有指令需要以 root 執行。

章節結構

  • 錯誤類型。
  • 壞軌測試。
  • 預先偵測。
  • 備份與資料回復。
  • 排除壞軌磁區。
  • 送修與資料清除。

錯誤類型

這裡討論的硬碟資料損毀,不外乎物理性傷害,摔落、靜電、停電、過熱、原件老化等等。這些傷害會造成邏輯性 (logical error) 上或物理 (physical error) 性的錯誤。

所謂的邏輯性錯誤,就是硬碟離線時,暫存資料來不及寫入,導致資料錯誤異常。所幸大部分的檔案系統都會有一個檔案系統狀態 (Filesystem state) 的值,若是最後使用未順利完成卸載 (umount),下次掛載時就會提示要求作 fsck 檢查。如果是日誌式檔案系統如 ext3/ext4,則會試著回復未完成的操作。這種錯誤偶爾會破壞檔案,fsck/e2fsck 可能會將錯誤檔案移到 lost+found 目錄下,造成困擾,但問題不大。

物理性錯誤指的是硬體磁盤受到損壞,該段磁區無法讀取,也就是壞軌。肯定導致資料遺失,最常見的是系統吐出 I/O Error,無法讀取該檔案。實際的症狀是讀取變慢、聽到 Spin-up 時的卡卡聲(Clicking sound),甚至是系統當機等問題。

當壞軌開始產生時,通常代表硬碟壽命將至,得趕快開始更換健康新硬碟。這篇文章主要討論的是壞軌這種物理性錯誤的處理辦法。

壞軌測試

最基本的測試方法是利用 badblocks (8) 來檢測硬碟是否存在壞軌,這個指令不分檔案系統。若是含有重要資料的硬碟,應該先作預設的非破壞性唯讀測試 (non-destructive read-only test),以避免寫入測試時異常,造成磁碟重置離線。

badblocks -vs /dev/sdb

上述只要一發現壞軌,請第一時間拔下備份吧。若是可承受資料損失,可以使用 “-n” 的非破壞性寫入式測試。這基本上會嘗試寫入資料,再三確認硬碟運作正常。

badblocks -nvs /dev/sdb

預先偵測

不過 badblocks 需要在離線時才能執行。很多時候,伺服器是無法忍受長時間的離線檢查的,必須要能夠線上檢測硬碟健康狀況才行。目前市面所有 ATA 硬碟都已經支援S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology),S.M.A.R.T.  基本上提供一個界面讓管理者可以查詢幾個重要的參數

透過讀取這些參數,管理者能夠預先警覺硬碟錯誤。根據 Google 的調查十萬顆硬碟後的研究報告 (Failure Trends in a Large Disk Drive Population),S.M.A.R.T. 的數值的確反應硬碟錯誤率 – 六十天內,出現 S.M.A.R.T. 掃描錯誤的硬碟是其他硬碟的 39 倍高。

在 Linux 上,可以使用 smartmontools 中的 smartctl (8) 來查詢硬碟的 S.M.A.R.T. 狀態。指令如下

smartctl --attributes /dev/sdb

根據 Google 的研究以及 Bad block HOWTO for smartmontools 指出,與硬碟失效關係最高的數值是 Reallocated Sectors Count/Reallocations event count, Current Pending Sector Count, Uncorrectable Sector Count。這幾組數據代表硬碟發現該磁區已經損毀,它會重新從備用磁區分配一位置取代該損壞磁區,或磁區已發現問題尚未替換或無法替換。這通常可以視為磁區損耗 (surface wear) 的狀況。當你發現這些值不為 0 時,就該開始準備備份資料並作壞軌檢查了。

除了使用 smartctl 手動檢測外,也可以設定 smarted,讓系統自動觀測 S.M.A.R.T. 狀態,有錯誤會顯示於桌面訊息或發送郵件。smartd 的設定可以參考 檢測硬碟狀態 – smartmontools 一文。S.M.A.R.T. 也支援 Self-Test,可以讓硬碟作效能與功能檢查,詳情請見 smartctl (8).

備份與資料回復

在發現壞軌之際,應該第一優先備份資料。如果還能夠掛起檔案系統,則趕緊利用rsynctar 等工具備份檔案。或者利用 dd 將整顆硬碟資料或分割區存檔,未來置換到新硬碟上

dd if=/dev/sdb of=sdb.img

若要確保資料正確複製,可使用 dcfldd 來複製,它會邊複製邊作 hash 確保資料複製正確。不過由於壞軌處常常無法讀取,這會造成 dd 執行失敗。此時可以改用dd_rescue, 它可以略過無法讀取的部分,儘可能複製其他健康的資料。

不過天有不測風雲,人有旦夕禍福。萬一資料損壞的區域不是資料區域,而是存放重要的系統資訊,那就需要額外的處置。建議無論任何時候,都不要在壞硬碟上直接操作,永遠先備份,再於備份碟上進行處理。以下略談三種情境的可用工具

排除壞軌區域

通常如果你的硬碟還在保固範圍,一般原廠均會更換健康的硬碟給你。但如果硬碟已經超過保固,壞軌硬碟仍堪用,可以用來存一些低度重要的資料。

對於這些壞軌,可以用 sector slipping 或叫做 defect mapping 的機制來跳過不用。基本上分成兩種形式,一是透過硬碟控制器或是透過檔案系統的 bad block table 來記錄。

傳統的 (1990 年代中期以前的硬碟)是可以進行低階格式化 (Low-Level Formatting) 的,透過原廠的指令來重新定義物理儲存格式、重新定義 CHS、若是硬碟中有壞軌,可以在低階格式化時避開不用。

由於低階格式化常因為操作錯誤而損壞 (bricked) 硬碟,新款硬碟已經不提供使用者透過指令作低階格式化的工具。取而代之的是透過 hard-drive defect management 功能,以 Hard drive defects table – P & G Lists 來記錄 Bad Sector Mapping。所謂 Primary defect list 是代表出廠時已經產生缺陷的磁區列表,而 Grown defect list 則是使用中產生缺陷的磁區列表。

當硬碟發現壞軌時,便會自動將該磁區列入 G-List 中,並從備用的磁區中替換。因此現在已經沒有所謂低階格式化,目前所謂低階格式化大多指的是 Zero-filled,對磁區填入空值,強迫硬碟重新分配損壞磁區,這也是前述 S.M.A.R.T. 所謂 Reallocated Sectors。

所以你可以做的事情是對壞軌區域寫入空值,迫使它重置。你可以直接透過一開始的 badblocks 所產生之數值直接覆寫錯誤區塊,範例請見 Bad block HOWTO for smartmontools

上述 HOWTO 中詳述了,怎麼計算 e2fsck 吐出來數值,人工計算有點麻煩。以下介紹如何處理利用工具自動處理。

不保留資料

如果確認整顆硬碟資料都不需要保留,可以直接下達一下 dd 指令,重寫整顆硬碟。

dd if=/dev/zero of=/dev/sdb

或者在格式化時下達 -c -c 參數,讓 mkfs.ext3 順便檢查壞軌。

mkfs.ext3 -c -c /dev/sdb1

保留資料

如果硬碟已有資料,並想保留此資料,可以用 badblocks 檢查,並生成 badblocks list,再將 badblocks 吐出的列表,餵給 e2fsck -l.。但是必須確認執行 badblocks 時,指派了正確的 block size,可用 dumpe2fs -h 確認 block size.然後指示給 badblocks。

上述操作有點複雜,比較保險的做法是直接讓 e2fsck 用 badblocks 去作壞軌檢查,指令如下

e2fsck -k -c  -c /dev/sdb1

如此 e2fsck 會將壞軌寫入檔案系統列表中,可以用下述指令查詢目前壞軌列表

dumpe2fs -b /dev/sdb1

其他做法

本節前述可用低階格式化重置硬碟磁區分配,但是新款硬碟已少提供工具程式給終端使用者。有些工具透過反組譯硬碟韌體的方式取得 vendor specific ATA commands。另外,像是 Seagate 等品牌,則在硬碟上留有 TTLserial communication 的界面,於是你可以透過終端機連上硬碟韌體,以 Diagnostic Commands 進行一些偵錯以及重新格式化的動作。

送修與資料清除

爲了避免陳冠希裸照事件發生,送修前最好確保資料已經完全刪除。

就如前述所說,若只是進行快速格式化,硬碟資料也可能被回復。事實上,根據Peter Gutmann 的在 90 年代的研究,他可以用磁力顯微鏡取得複寫過三十五次以上的磁區資料。而美國 National Institute of Standards and Technology 的研究 “Guidelines for Media Sanitization” 或 Craig Wright, Dave Kleiman, Shyaam Sundhar R.S. 的論文Overwriting Hard Drive Data: The Great Wiping Controversy 指出,新型硬碟只需要複寫一次即可。

爲了達到資料保密措施,各國軍方也因此設定有不同的資料清除 。總之,無論你的資料是否重要,在 Linux 上,建議使用這兩種 wipescrub 指令之一來抹除資料,這兩種工具支援上述的各國標準。你也可下載使用 DBAN 製作開機片來清除硬碟資料。

References

[轉]計算機的根號解

來源:http://4rdp.blogspot.tw/2008/04/blog-post_9406.html

可能有人會好奇,計算機如何求得開根號數值,這裡提供個人所知的兩種方法。

方法一:長除式演算法,可直接筆算求平方根值。

運用 (a + b)2– (2a + b) b = a2,初值 a = 0,反覆求 a 的後一位數值 b 。

例 Square(152.276)

  1  2. 3  4
 ------------   列式時以小數點為基準,兩位兩位一組。
/ 1 52.27 60    (2a + b) b
  1           = (2 x 0 + 1) x 1 , a = 0
 ------------
    52
    44        = (2 x 10 + 2) x 2 , a = 10
 ------------
     8 27
     7 29     = (2 x 120 + 3) x 3 , a = 120
 ------------
       98 60
       98 56  = (2 x 1230 + 4) x 4 , a = 1230
 ------------
           6


方法二:以牛頓迭代法計算求解

X = A1/N,將 A 開 N 次方根,

Xn+1 = [(N-1)X+ A/XnN-1]/N ,(N>0)

N = 2 時 ,A>1,1<Xn<A
Xn+1 = [Xn + A/Xn]/2 ,(挑選適當的 Xn 初值可以快速收斂,只要計算兩三次就可得到正確數值)

其原理為,

X = [X + A/X]/2
2X = X + A/X
2X2 = X2 + A
X2 = A
X = A1/2

方法二是我從 Engineering Formulas 這本書學到的,此書為 Reiner Gieck, Kurt Gieck 合著 McGraw-Hill 出版 ISBN 9780070234550,它是我在公司文管中心發現的寶藏。

市售的計算機,開平方根通常利用二進制的長除法計算,任意次方計算會以對數或是利用牛頓迭代法求解。

在網際網路尚未發達前,這類工具書對工程師是非常重要的,尤其需要常常查工程或數學公式很有用。

[轉]讓win7更新完不自動重新開機

來源:http://pcuser.pixnet.net/blog/category/1585482

想要解決Windows的bug及漏洞,一定要勤於線上更新系統檔案,但是有時更新之後會要求你一定要重新開機,更新後的系統元件才會生效。雖然可以延後重新開機對話盒的跳出時間,但是有時明明就正在工作無法關機,偏偏一段時間就要提醒你重開機一次,真的很煩!其實在Windows 7中,可以完全關閉Windows Update以後需要重新開機的窘境,讓你一路順暢地把該做的工作做完,再從容的重新啟動電腦喔~~

步驟1

按下【開始】功能表以後,在底下的搜尋欄位中輸入「gpedit.msc」,經過一段時間搜尋後,點擊上方的「gpedit」執行。

 

步驟2

開啟「本機群組原則編輯器」視窗以後,展開「電腦設定」→「系統管理範本」→「Windows元件」,在右窗格中用滑鼠雙擊「Windows Update」。

 

步驟3

接著在右窗格中找到「有使用者登入時不自動重新開機以完成排定的自動更新安裝」後,在上面按一下滑鼠右鍵,跳出選單以後選擇【編輯】

 

步驟4

跳出視窗以後,預設是「尚未設定」,改選擇「已啟用」按下〔確定〕即可。

 

步驟5

確定狀態變更為「啟用」,就可以關閉這個視窗,然後再去試試更新。

 

步驟6

更新完畢後原先會看到「立即重新啟動電腦」字樣就沒有囉,直接就是順利安裝完畢。從此可以利用工作時間順便更新,也不用擔心還要等待重新開機才能繼續工作。