2012年11月30日 星期五

ebook(calibre 一: 設定其安裝目錄及database 的位置

二:設定手持閱讀裝置
三:主畫面
image
按鈕列:
image
各種的主要功能鍵
查找電子書:
A.搜尋器
搜尋列位在按鈕列的正下方,而過濾器則被放在主介面的最左邊位置上。
搜尋列可讓使用者搜索任何書籍的元數據。您可以把字串拋進去撈資料,也可以透過 title:xxx 或 author:yyy 搜索特定的元數據欄位,甚至使用 and、or、not 這類指令進行邏輯查找。
image
B.過濾器
過濾器的運作方式和搜尋列相似,只不過您不需要打字。取而代之,點擊某個作者、出版商、格式或自訂標籤,過濾器就會自動將搜索參數拋進搜尋列中。您可以用 Ctrl 或 Shift 鍵,同時指定多個值進行搜尋。
image
image

書籍選擇與書籍資料:
image
正中央的大檢視器會顯示出您目前搜到的書籍(如果您沒有進行搜尋,那就是全部的書籍)。您可以在上方欄位點擊,讓書籍依特定欄位進行排序,以便翻找。此外,要是覺得上方的欄位排序不合己意,又或是太多太亂,也可去【偏好設定】→【加入您自己的欄】項目中進行修改。
image
書籍詳細資料
image
書籍詳細資料窗格預設會顯示很多東西。那包括書籍的封面、作者、格式、路徑與註解等等。
要顯示哪些資料,或是改變資料顯示順序,可以在【偏好設定】→【外觀與感覺】→【書籍詳細資料】中進行修改。
image
底部狀態列:
image

匯入與匯出電子書

Calibre 是一款電子書管理軟體。想使用它,第一個步驟當然是得匯入一些電子書啦。
不過請稍等一下,在實際匯入之前,強烈建議各位前往【偏好設定】→【將書籍儲存至磁碟】看看。
將非英語字元轉為英語同義字】這項,請斟酌看看要不要取消打勾。若希望中文書的檔名使用中文字,在匯入之前就就得將這個勾勾取消,否則檔名就會轉為拼音。當然如果不在意這個,放著不管也沒關係啦
image
匯入
要將電子書匯入 Calibre 中,最簡單的方式就是直接將電書檔案拖放到 Calibre 介面上,Calibre 會自動分析電子書的元數據,進度條跑完後就算匯入成功。您也可以一次拖入多本電子書,Calibre 會將所有的電子書都正確匯入。
若是有一堆電子書檔案被散亂地放在不同的子資料夾中,拖曳不方便,則可以改用【加入書籍v】→【從目錄加入書籍……】的按鈕,一次性匯入指定目錄與子目錄下的所有書籍。
若打算匯入的電子書在書庫中已經存在,而使用者又重複匯入,Calibre 預設會跳出警告視窗,問您要不要強行加入它,若選「加入」,則會讓它成為「一本書名重複的新書」-若您對這樣的預設行為不滿,想要用新書更新舊書,又或是不詢問直接行動,則可以去【偏好設定】→【加入書籍】中進行調整。
image
image

儲存至磁碟
書籍被塞進書庫之後,若想把檔案重新取出來,可以使用【儲存至磁碟】這個按鈕。
  1. 首先選擇要匯出的書籍。
  2. 按下【儲存至磁碟】。
  3. 選擇儲存位置。
這樣操作後,指定的書籍就會以目錄的形式出現在您所指定的儲存位置上。目錄中會包含該書所有格式的檔案及元數據資料。
(若使用【儲存至磁碟】按鈕,也能選擇只匯出特定格式的檔案。)
如果一次選擇了多本書,也可以進行大量匯出
image
輸出時其,所對應的資料夾名稱及其內容
與手持閱讀器互動
除了「匯出成檔案」後,交給使用者手動處理之外,Calibre 也能直接將電書轉到手持設備上。
總之,先讓手持設備與電腦連線(舉例:插上 usb),接著不用進行任何操作。如果 Calibre 能識別該閱讀器,主畫面左下角就會出現您目前的設備名稱(參考圖9)。
您可以選擇想要傳送的書籍,然後按下【傳送到裝置】按鈕。倘若某本書已經傳送過了,在主畫面中會被打勾標示。
手持裝置中現有的書,您可以按【裝置】按鈕進入取得列表。若想將裝置中的書匯入書庫,也可以選擇書本後按右鍵叫出選單,進行匯入操作。

 

 

在電腦上瀏覽電子書

一般來說,電子書是專為了手持式閱讀器而設計的,但若真想在自己的電腦上閱讀電子書,Calibre 也能做到
image
ebook-viewer 還支援使用者樣式表-要是對畫面排版不滿意,只要會一些 CSS 碼,就能將書籍格式輕易重排成自己滿意的樣子

替電子書轉換格式


Calibre 最引人注目的特色,恐怕是在各種電子書格式間進行轉檔了。您可以把一本 txt 轉成 epub,或是把 pdf 改造成 mobi,讓書在各種閱讀器中都能被順利讀取!
做法如下:
  1. 選擇書庫中已有的電子書。
  2. 點擊【轉換書籍】按鈕。
  3. 選擇輸入格式與輸出格式。並進行各種細部設定後,按下確定按鈕。

image
image
首先您必須選擇您希望產生的書籍格式(在右上角)。此外如果有必要,您也必須決定書籍的輸入格式(在左上角)。
指定輸入格式等同於規定轉換使用的資料來源,比方說 txt 中不會有隱式超連結,也不會預先儲存目錄結構。原始資料中沒有的東西,Calibre 也很難知道該如何產生它。此外,不同格式的轉檔效果也略有差異,如果您有多個原始格式,可以多嘗試用不同的來源轉檔看看,看哪個最終效果最好。
當然若您的書只有一種格式,就沒得選了。
視窗左側的標籤能讓使用者切換分頁,每個分頁都有大量可供人設定的東西。
元數據
指定書籍的作者、封面、書名等訊息。Calibre 會盡其所能地幫您將這些元數據給事先填好,然而若有什麼欄位不滿意,也可以手動修改、刪除與追加。
外觀感覺
對電子書的顯示參數進行效調。包括設定字型大小、編碼、行高、左右對齊、CSS 等。
啟發式處理
指定讓 Calibre 在轉換時進行某些「猜測」工作。這往往是用在輸入格式的語義表述並不明確,但又想要轉出特定效果的時候。這些功能並不可靠,預設都是停用的,請斟酌使用它們。
頁面設定
只要選擇想要使用的閱讀設備就可以了。
結構偵測
用額外條件來進行章節切分。
目錄頁
設定書籍目錄的產生方式。
搜尋 & 取代
在建立書籍的過程中,自動化地刪改、替換某些文字。
XXX 輸入與 YYY 輸出
用某些格式輸入輸出時,Calibre 會提供一些特別的項目給使用者調整。這些格式特有的選項一律會被獨立出來,放在這邊。
image

網路功能

將新聞製作成電子書
Calibre 可以利用新聞網站的 RSS 製作電子書
image
一旦使用者按下面板上的【取回新聞】按鈕,就會跳出圖 13 的選擇框,接著請選出您要的新聞,Calibre 會對該網站提供的新聞進行下載,並全自動地將新聞包裝成電子書,而且還會把今日新聞自動上傳到當前連結的閱讀器中

遠端分享
不見得是分享給別人,分享給自己的手持設備也沒問題!
書庫伺服器
Calibre 可將您的書庫放到網路上,透過網頁介面供人從遠端取用。當然如果您不願意(或受限於法律,不能)與旁人分享您的書庫,您也可以加上密碼
image
設定方式很簡單:請點【偏好設定】→【透過網路分享】→【啟動伺服器】……這樣就行了。
比較重要的設定還有:
  1. 如果希望 Calibre 能夠自動啟動伺服器的話,請把「當 calibre 啟動時自動執行伺服器」給打勾。
  2. 看您想不想要設定帳號密碼,也在這邊設定。
  3. 請注意預設的連接埠是 8080,您必須要在網址列上明確指定連結埠如 http://127.0.0.1:8080 這樣,才能正確存取它。
image
透過電子郵件分享書籍
自建伺服器雖然豪華,不過必須要有固定 IP 與不關機的家庭伺服器才能真正拿來用。不過別擔心,喜歡節能減碳的窮人如我,也可以用電子郵件分享書籍到手持設備中
image
reference :

Calibre-萬用的電子書管理軟體

http://www.openfoundry.org/en/foss-programs/8754-calibre-
















































2012年11月22日 星期四

ICARUS VERILOG的使用

因為,我的modesim 都無法使用。
故我改由使用icrus verilog做為編譯+Gtkwave(波形)
而其軟体的使用上有一定的順序。
一、準備程式及testbench file
simple.v
  1: module simple(A, B,CIN,COUT,SUM);
  2: 
  3:    input   A,B,CIN;
  4:    output  COUT,SUM;
  5:    parameter delay=100;
  6:   
  7:    assign #delay {COUT,SUM}=A+B+CIN;
  8: 
  9: endmodule

simple_tb.v
  1: module simple_tb;
  2: 
  3:    reg   A,B,CIN;
  4: 
  5:    wire  COUT,SUM;
  6: 
  7:    initial
  8:      begin
  9:         $dumpfile("simple.vcd");
 10:         $dumpvars(0, s);
 11:         $monitor("A = %b, B = %b CIN = %b | COUT = %b SUM = %b ", A, B,CIN,COUT,SUM);
 12:         #50 A = 1'b0; B=1'b0;CIN=1'b0;
 13:         #50 A = 1'b0; B=1'b1;CIN=1'b0;
 14:         #50 A = 1'b1; B=1'b0;CIN=1'b0;
 15:         #50 A = 1'b1; B=1'b1;CIN=1'b0;
 16:         #50 A = 1'b0; B=1'b0;CIN=1'b1;
 17:         #50 A = 1'b0; B=1'b1;CIN=1'b1;
 18:         #50 A = 1'b1; B=1'b0;CIN=1'b1;
 19:         #50 A = 1'b1; B=1'b1;CIN=1'b1;
 20:         #50 $finish;
 21:      end
 22: 
 23:    simple #(30) s(A, B,CIN,COUT,SUM);
 24: 
 25: endmodule

 
二、
確定安裝好iverilog compiler及gtkwave(見參考)
image
image
三、
在生成*.vcd file時,需要經過三個步驟。並印出其所產生的template file
A. iverilog simple.v simple_tb.v -o tb.vvp
image
B. vvp tb.vvp (執行內容testbench內容)
image
image
simple.vcd是經由執行testbench內容所生成的。
C. gtkwave simple.vcd&
image
image
參考:
ICARUS VERILOG的使用
http://www.cnblogs.com/zhuangzhuang1988/archive/2012/03/30/2425052.html

Windows平台下使用開放軟件寫verilog


http://www.wretch.cc/blog/henry0714/11669422

Icarus Verilog軟體安裝及使用

http://140.116.72.67/logic/Icarus_Verilog.pdf
讀VCD的好用軟體 - GTKWave

http://www.ptt.cc/bbs/Electronics/M.1251620125.A.3D1.html

[教學] Windows平台下使用開放軟件寫verilog


http://www.wretch.cc/blog/henry0714/11669422

icarus verilog

https://sites.google.com/site/verilog710/xiang-guan-gong-ju/icarus-verilog

Iverilog + Gtkwave + Notepad++的verilog環境

http://darkblack01.blogspot.tw/2012/10/iverilog-gtkwave-notepadverilog.html





















2012年10月13日 星期六

日本頂尖工程師的生存筆記

第一章-工程師是馬拉松接力賽的跑者
產生"技術感"才交棒:
工程師該思考的重點在於:要像馬拉松賽一樣,是靠接力完成的,但若單單只是接收前一棒努力所獲得的"技術成果及竅門等客觀料"是不行的,因那頂多只能算是"業務交接"而已。而工程師應追求的"只有負責的當事人才了解的技術感及前瞻力"及工程師的熱忱(希望把前輩的努力由後輩接手)
"了解成本重要性":
產品的最終目標為:
  1. 生產高"機能"
  2. 生產高"性能"
  3. 用低"成本"生產商品及技術
對所有工程師來講,真正重要的就是"成本"。不要只是消極認為是"降低成本只是為了銷售成功與提高利潤"
,而是意識到成本是"對技術的優劣及完成度"而言不可或缺的要素。
透過自己案排達成"成本目標"
產品或技術的普及,除了個人喜好的設計外,可由 機能、性能、可靠度及成本 間的平衡,而在技術開發時它的要上如何做妥協及妥協的程度?其所要維持的特色上可與市面上類似產品做區別?
第二章 成為成功的V字型工程師
    1. 負責的業務明確-人數不足時,沒有可替代時,故常要必須解決困難局面。因此權責明確
    2. 公司的目的及目標簡單明確-
    3. 容易實際感受到每日的工作成效所帶動的公司業績
    4. 組織單純,關係人也少-因為目的明確,所以易於整合
    5. 容易在整個公司中定位自己的角色及意義
工程師的工作就是"求出有修件方程式"的解:
以調和的觀點去解方程,而非透過個別最佳化達成全体最佳化
成為V字型的工程師:
身為程師的"深度"及"廣度",V字的縱向,代表著工程師所負責的業務的專業性深度;橫向則代表其所擔任業務的技術領域,以其它領域的相關知識。因除了技術的複雜度提高,所以需其更深度來處理。外還要增加經濟面、企畫面及事業營運面等都是必備的要素。像是經營管理及成本計算之外還有工資及稅制了解,因為產品從研究、開發到實体化的各階段,如果工程師對於成本沒有強烈的認知,也沒有重新認識本身所負責的業務 並設立方向,就無法製造出具高競力的產品。
第三章 突破難關的"工程師思考法"(優先思考->假定優先順序==>假設性思考)
以"優先思考法"及"假設性思考":
以優先思考法,依"重要的順序"進行。在工程師恩考某事,或蒐集、解釋實驗資料及情報時,"優先思考法"及"假設性思考法"就是非常好的思考方式。
其優先思考法就是先設計事情的優先順序,再從重要性高的開始思考的方式。而事情的決定,是要以客觀方法來決定。其客觀方法,如在進行預備實驗時,先掌握大概的原因,再從結果設設優先優先順序 ,然後進一步進行更詳細的實驗來探討根本原因。但如果無法以客觀 ,就必須運用以前的經驗及資料來。"假定的優先順序",並以設定內容進行更詳細的檢討。"其優先順序決定,可使其思考密度提高"
在"假定的優先順序"中,其經實驗後其結果,若這個結果符合實驗之初的資料,則代表實驗成功(確認實驗);反之
則,實驗結果不符合時,則先要去檢視實驗過程是否完全正常進行。及其條件,並重複進行相同實驗(再現實驗)。
而經若干再現實驗後,可視此為"一般現象",因此就算是實驗結果不如預期也要認為此結果是潛荿著未知原因所造成的。
在在優先思考(或假定順序)後,若其實驗結果不如預期時,要找出原因及理由時,其工程師的"假設性思考"就扮演重要角色,其方法就是將其原因及結果之間的脈絡,將學術知識、過去經驗及所有可得到的資料及觀察力及直覺。設定好"所有想到的脈絡=假設"。並以其假設進行各類實驗,來求證其假設的正確性(再現性及精準度)
堅守"原則"的輪流:
[不易流行]-不易是超越新舊古今不變的東西;流行則是根據[不易]的原則而創新的變化。
科技本質-不易是技術上基本、原理一面,基本技術及共通技術;流行則是不變變化以顯現科技的新面向也就是先端科技及應用技術。
第4章 成為優秀工程師的學習法
該如何學習守業技能以外的技術;
身為一名工程師,就算法沒有直接觸某一技術領域,也必須要對這些領域上最新技術的動向與內容,有一定程度的關。因為你永不知道,這些新技術到底何時會對自己的技術領域帶來什麼樣的影響。同時也須時時追求新知以更新自己現有的技術,對將來的發展也要有長遠的見解,而其非自己領域的最新技術要如何接觸及學習?
  1. 對報上的技術資訊;一定要親自向專業人員進行詳細查證與確認。了解對方的看法;其次,靠自己消化資訊,加以思考,並以"自己的方法預期該技術的前景"。這麼一來,當你下次再接觸時,見解也隨之不同了。 (訓練自己的預測某技術的末來發展)
  2. 資訊的確認關乎"人脈的建立"           找業界的專業報紙,並利用"電話"詢問,來建立彼此的人脈上。而"確認資訊",並不是單單要吸收資訊而已,而為了深耕資料來源。
  3. 閱讀雜認"只需要確認標題即可"
用來幫助我們了解專業外的領域"最近有什麼新科技受到矚目"。因此只需了解其標題即可。而書藉方面則,因對科技原理及系統上的理解的幫助,故需選擇"來源"
  1. 多多利用學術會議、專題研討、演講及座談會
參加目的,與其是為了"獲取知識",更重要的是期望能"提升動機",以激勵自己在職業上表現。及提交"與會報告書"(整理出時間、場合、標題、演講者姓名、參加者人數、主旨、要點、疑問及感想"並積極發問。
  1. 人脈將支持你的工程師生涯
蒐集最新科技資訊是沒有捷徑(報紙及雜誌),然而最重要的確認資訊的正確性。而使各技術領域的專業人士成為你的人脈。
其它章節
人脈將成就工程師、幫助工程師:
首先,從建立公司內的人脈開始。人脈無關職位,不論職位高低,與相關各部門的關鍵人物建立關係是很重的。透過這些人脈,不只是技術層面,連同原料價格、成本、市場、供需狀況及其它公司消息都能獲取。
並借此獲得更高一層的觀點。透過人脈的建立能使自己從新的觀點來審視自己的業務,從高一層來為自己的業務在全部流程中找到定位,看到其未來性。
而建立這些人脈最好的方法,就是當你需要相關的資訊時,親自到別的部門去請教那位最主要的關鍵人物,這才是最有用的。並且自己公司內部人員,比較不會吝於傳授其它部門的人。
所以"一有機會一定要虛心求教"的能度去建立人脈是很重要的。並且要回報(尤其在你熟知、負責業務上)建立"彼此人脈"。
公司以外的人脈:
以跟自己從事相同工作的其它公司或大學、研究機構的人士。以此獲得目前負責業務相關的最新資訊,以及其它公司內部的不同作法。並因這些人跟平日談話對象不同,往往能使自己察覺自己過去是如何看待事情的。
成為"主動出擊"的提案工程師:
別去找辦不到的厘由,拿出辦得到的提案:
不論發生什麼意外,耗費唇舌地說明"辦不到的理由"都是沒意義的。是故,反而要自問:"為了能夠辦到,現在什麼事是非做不可的呢?"
因此提案時,不止提出一個方案,而是要有多個,並且比較各優缺點。針對"自己覺得那一個最好的"提出理由,給上司提示,再詢問上司的意見及想法。
工程師也要"報告""聯絡""討論":
報告,1是從結論閞始,2是從"壞消息"開始。:
報告第一個要注意的是"先從結論開始說起"若想藉由報告希望上司採取某一行動時,應該先明確說出內容,需要上司協助判斷或是需上司同意,還是需要提供其他的替代方案?說明清楚後,再就獲致結論的經肻或自己的意見、想法對策一一報告。
第二點是"壞消息早點說",壞消息要快點處理。也可早點把重擔交給上司,一起思考對策才能減少壓力。
聯絡。對象是上司。有各種不同情況。
討論;
事先記下要討論的內容,才進行充分的溝通。以免討論內容和自己設想完全不同的方向進行。
"報聯討"基本上是要消滅"這點小事不說也知道吧"、"就算不說也沒什麼吧"的想法。重複也沒關係,或可能已知道也要,防萬一下去聯絡。
日本頂尖工程師的生存筆記
ISBN : 978-986-85240-7-1

2012年10月10日 星期三

電路學-矩陣運算

因為,為了去準備各類的就職考試及國營考試。
開始,去複習電路學部份。
其中,有一項是需要去解反距陣。
其中,可以用MS excel來做,故做一次筆記。
image
A.使用其excel 函數,MINVERSE及MMULT
MINVERSE:

描述

傳回儲存於某陣列中之矩陣的反矩陣。

語法

MINVERSE(array)

MINVERSE 函數語法具有下列引數 (引數:將資訊提供給動作、事件、方法、屬性、函數或程序的值。)

  • Array  必要。這是列數與欄數均相等的數

image

MMULT:

描述


傳回兩陣列相乘之乘積。相乘後的陣列與 array1 具有相同的列數,與 array2 具有相同的欄數。

語法

MMULT(array1, array2)

MMULT 函數語法具有下列引數 (引數:將資訊提供給動作、事件、方法、屬性、函數或程序的值。)

  • Array1, array2  必要。這是您要相乘的兩個陣列。

image

B.對矩陣操作

如若要求某一nxn的反矩陣時,必須先在空的nxn儲存格中選取nxn個

再輸入(F2)其excel function並指定其運算範圍。

image

C.執行運算

按下Ctrl+Shift+Enter









--------------------------------------------------------------

1.其柯契霍夫(電壓,電流)定律時,其方程式;

[f11 f12 ....f1n-1    ] [v1]        [g11 g12 ....f1p]  [u1]

[f21 f22      f2n-1    ] [v2]     = [g21 g22  ...f2p]  [u2] 

...                                           ......

[fn-11 ......fn-1 n-1] [fn-1]    [gn-11 .....gn-1p] [up]

               F                v,i           G                        u

F.v(t) =G.u(t),其中F為n-1 X n-1的方陣,G為n-1 x p的距陣,u(t)是由個獨立電源{u1,u2,...up}所組成的行向量



2.當反矩陣F-1存在時,可由其矩陣運算求其 v= F-1. G

3.利用 v與u,將欲求得的物理量(電壓及電流)表為

y=[c1...cn-1] [v1]   + [d1,....dn-1] [u1]

                     [v2]                          [u2]

                     ...                             

                    [vn-1]                       [un-1]

使用節點(KCL)或網目分析法時,依其電源分類成 ;

A.電源為獨立電壓(流)源

B.電源有獨立及 非獨立 電壓(流)源

C.在節點分析中,電路有電壓源;網目分析中,電路有電流源存在



2012年9月24日 星期一

SVN

檔案庫(Repository)
版控系統中需要有一個存放檔案的地方,這個地方稱為 Repository ,在 Repository 中存放了整個專案的所有版本,Repository 在不同的版控系統中有不同的儲存方式(如檔案、資料庫),Repository 是整個版控最重要的地方,所有使用者都需要從 Repository 取得或更新檔案,因此選擇一個穩定安全的機器來存放 Repository 是必須的,Subversion 可以支援使用http://、https://、file:///、svn://、svn+ssh:// 多種通訊協定。
工作區(WorkSpace)
前文提到檔案庫中存放了所有的版本,但使用的實務上不可能需要全部的版本,因此我們會從檔案庫中取得需要的版本(通常是最新版)複製到自己的硬碟中,而這些存放於本機硬碟的檔案可稱為本機副本(Local copy)存放的地方稱為 Workspace 。
取得檔案(Checkout)
開始一份工作的時候,工作區並不會有任何檔案,這時候就要選擇檔案庫中需要的專案來執行 Checkout ,版控軟體會從檔案庫中複製指定的版本(通常是選擇最新版)到你的工作區形成本機複本,這個本機複本與檔案庫的目錄結構是一樣的,用一個專案的角度來看只有第一次需要使用 Checkout
送交檔案(Commit)
當你在工作複本中完成了你的工作(比如寫好一個功能),就需要將你的變動 Commit 到檔案庫中,在 Subversion 中沒有 Commit 之前的異動其他成員都不會知道。(往後文章會提出適當的 Commit 時機)
更新檔案(Update)
在多人使用的環境下,整個檔案庫的檔案是會同時被多人修改的, Subversion 並不會即時抓取這些異動,必須等到您使用了 Update 功能,版控軟體才會將檔案庫和你的差異更新至你的本機複本中,在 Subversion 中預設會檢查使用者在送交檔案之前該檔案有沒有被異動,如果有異動會強迫使用者先執行 Update 。
分支(Branch)
利用分支的功能可以有效隔離主線,當開發程式時想重構、測試寫法、開發新功能,這些可能不會那麼快處理完畢,而且可能會造成現有功能影響的動作都應該在分支下執行,執行完畢確認後再合併主線就可以大幅降低在開發時期對主線的影響,往後對於分支還會再提,現階段只需要記住分支內你隨便玩都不會干擾別人。
合併(Merge)
當兩個使用者修改了同一份檔案,在 Subversion 中是採取「樂觀鎖定」的作法,也就是並不會限制一份檔案只有一個使用者才可以修改,而是在更新檔案的時候才去檢查衝突,假設 工程師 A 異動了檔案中的 1~3 行,而工程師 B 使用者異動了檔案中的 5~10行,工程師 A 先行送交檔案,接者工程師 B 要送交的時候系統會發現版本不同而要求先執行更新檔案,檔案更新的過程中會偵測到兩個版本的異動並無衝突而自動合併(Merge)異動。
衝突(Conflict)
基於以上案例如果工程師  B 異動了 3~10 行,這時候因為同時異動到了第 3 行所以版控軟體無法自動合併,就會發出 Conflict 警告,需要使用者自行解決衝突。(請注意發生衝突後越早解決對系統影響越小)
因為衝突和合併的文字敘述感覺不是那麼容易理解,所以 demo 做了兩張圖來解釋,看圖就應該很清楚了

1.

免費SVN 空間PojectLocker &TortoiesSVN 烏龜SVN使用

http://www.projectlocker.com/
image
在See Plans & Pricing中,來進行註冊及申請
2.選擇註冊資料
image
3.確定資料
image
4.填寫資料(帳號,為email
image
5.最後確認
image

使用tortoisesvn

6.下載software& setup
http://tortoisesvn.net/downloads.html
7.checkout(在某一目錄下
image
8.其檔案庫(Repository) 位置
image
image
 
Subversion visually explained in 30 sec - svn tutorial
http://coding-time.blogspot.tw/2008/04/subversion-visually-explained-in-30sec.html




















2012年9月10日 星期一

字串

定義
string是由零個或多個字符(字母)的有限序列組成。
p.s:其string與list相似,但string是用在字串上。
  1: ADT 串(string)
  2: Data
  3:  串中元素由一個字待組成,相鄰元素具有前、後的關係。
  4: operation
  5:  StrAssign(T,*chars):生成一個其值等於字符串常量chars的串T
  6:  StrCopy(T,S):串S存在,並複制到T中
  7:  ClearString(s):串存在,將串清空
  8:  StringEmpty(s):若串S為空,回傳true.
  9:  StrLength(S):返回串S的元素個數
 10:  StrCompare(S,T):若S>T,回傳>0;S=T回傳0;S<T回傳<0
 11:  Concat(T,S1,S2):串T為S1,S2組成.
 12:  SubString(sub,S,pos,len):串S存在,1<pos<strlength(s).
 13: 且0<len<strlength(s)-+1.回傳S的第pos個字符長度為len的字串.
 14:  Index(s,t,pos):串S,T存在,T是非空字串,1<pos<strlength(s).
 15: 若串S存在和串T有相同的字串,則返回它在串S中第pos個字符之後
 16: 第一次出現的位置,否則傳回0
 17:  Replace(S,T,V):串S,T 及V存在,T為非字串,用V替換串S中出現的所有與T相同字串.
 18: StrInsert(S,pos,T):串S和T存在,1<pos<strlength(s)+1
 19: 在串S的第pos個字符之前插入串T
 20:  StrDelete(s,pos,len):串S存在,1<pos<strlength(s)=len+1,從S中刪除
 21: 第pos後的len字元
 22: 
 23: endADT

2012年9月5日 星期三

程式設計專家手冊(the practice of programming) 筆記1

第一章 風格
主要的議題有: 描述性的名稱、表示式的清晰、直觀的控制流程(control follow)、程式碼和註解的可讀性以及一玫性和利用慣用法。
良好的風格應該是一種習慣。如困你從一開始撰寫程式時就考慮到風格問題,而且花時間去修改,那麼就可以培出良好的習慣。一但出習慣,就能在下意識的狀庇下處理許多細節,即使程式碼是在壓力下趕出的。

第二章 演算法與資料結構
   選擇演算法時,可先評估各種可能的演算法和資料結構。及其輸入的資料量大小及性質(成長否?)來排除會因資料大小而需改變的演算法。
若許可應先採用芋種函式庫及語言本身的功能,若無法逹成時,則先以最簡單方法處理。並加以測試是否可符合要求(不合時再修改)
   而其資料結構種類(串列、樹等),對於特定的環境下對效能的影響很大。其各種類資料結構都有基本的操作(建立、新增及刪除等)

而每個操作都有一個預期的運算時間,它表示著對於資料型庇對於特別應用的合適程度。如陣列的存取為O(1)常數時間存取,但其新增刪除則需O(N)。
以此來做為問題的演算法及資料結構的選取。