版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
星際譯王-自由軟件介紹星際譯王-自由軟件介紹1內(nèi)容1.個(gè)人簡(jiǎn)介2.星際譯王軟件介紹3.技術(shù)介紹4.開(kāi)發(fā)歷史5.我開(kāi)發(fā)的一些其他軟件6.其他興趣愛(ài)好7.提問(wèn)和交流內(nèi)容1.個(gè)人簡(jiǎn)介2本人簡(jiǎn)介胡正,83年出生,湖南岳陽(yáng)人。2006年從四川大學(xué)畢業(yè)。在大學(xué)里開(kāi)發(fā)了星際譯王等軟件。曾獲中國(guó)開(kāi)源軟件競(jìng)賽金獎(jiǎng)。對(duì)哲學(xué)和佛法很愛(ài)好,寫(xiě)了一些非正式的書(shū)。目前在紅帽Linux公司工作。本人簡(jiǎn)介胡正,83年出生,湖南岳陽(yáng)人。3星際譯王簡(jiǎn)介星際譯王是一個(gè)跨平臺(tái)(能在Linux下和Windows下運(yùn)行)的國(guó)際化的詞典軟件,使用C++語(yǔ)言開(kāi)發(fā),并使用了GTK2庫(kù)作為圖形界面,開(kāi)放源代碼,并遵循GPLv3協(xié)議。星際譯王簡(jiǎn)介星際譯王是一個(gè)跨平臺(tái)(能在Linux下和Wind4功能星際譯王功能強(qiáng)大,除基本的即輸即查功能外,還有通配符匹配,模糊查詢,全文檢索,正則表達(dá)式匹配,屏幕取詞等功能。星際譯王3.0版新加了插件系統(tǒng),網(wǎng)絡(luò)詞典等功能,已經(jīng)漸趨完善。功能星際譯王功能強(qiáng)大,除基本的即輸即查功能外,還有通配符匹配5運(yùn)行主界面運(yùn)行主界面6取詞窗口取詞窗口7詞典管理在詞典管理對(duì)話框中,你可以屏蔽掉不需要的詞典,你也可以設(shè)置詞典查詢的順序。詞典管理在詞典管理對(duì)話框中,你可以屏蔽掉不需要的詞典,你也可8首選項(xiàng)在首選項(xiàng)窗口里可以進(jìn)行各種配置。首選項(xiàng)在首選項(xiàng)窗口里可以進(jìn)行各種配置。9插件管理插件管理10圖形化網(wǎng)狀詞典插件圖形化網(wǎng)狀詞典插件11全文翻譯全文翻譯12網(wǎng)絡(luò)詞典功能網(wǎng)絡(luò)詞典功能13Windows移植版本W(wǎng)indows移植版本14包含金山詞霸詞典金山詞霸的所有版本的所有詞典都可以轉(zhuǎn)換后在星際譯王中使用。包含金山詞霸詞典金山詞霸的所有版本的所有詞典都可以轉(zhuǎn)換后在星15使用所有Babylon詞典星際譯王也開(kāi)發(fā)了Babylon詞庫(kù)轉(zhuǎn)換程序。使用所有Babylon詞典星際譯王也開(kāi)發(fā)了Babylon詞庫(kù)16項(xiàng)目主頁(yè)項(xiàng)目主頁(yè)17詞典下載頁(yè)面目前星際譯王已經(jīng)有兩千多個(gè)詞典下載,包含各種語(yǔ)言和類(lèi)型。詞典下載頁(yè)面目前星際譯王已經(jīng)有兩千多個(gè)詞典下載,包含各種語(yǔ)言18安裝星際譯王安裝十分方便,在Linux下提供了RPM包,在Windows下有向?qū)降陌惭b程序。安裝星際譯王安裝十分方便,在Linux下提供了RPM包,在W19MacOSX蘋(píng)果移植MacOSX蘋(píng)果移植20NokiaN800移植NokiaN800移植21GPE手機(jī)移植版本GPE手機(jī)移植版本22星際譯王在線詞典網(wǎng)站星際譯王在線詞典網(wǎng)站23Ajax界面網(wǎng)頁(yè)Ajax界面網(wǎng)頁(yè)24跨平臺(tái)目前星際譯王能在Linux,FreeBSD,Solaris,Windows等平臺(tái)上運(yùn)行。MacOSX蘋(píng)果移植版也已經(jīng)推出。星際譯王還有專(zhuān)門(mén)的命令行版本,叫做sdcv??缙脚_(tái)目前星際譯王能在Linux,FreeBSD,Sol25國(guó)際化由于有UTF-8支持,星際譯王能支持各種語(yǔ)言。如德語(yǔ),法語(yǔ),俄語(yǔ),日語(yǔ),阿拉伯語(yǔ)等。星際譯王還收集了廣泛的詞典數(shù)據(jù),包含了各種各樣的語(yǔ)言。因此星際譯王在國(guó)外也有很多的用戶。目前是在Linux系統(tǒng)下最流行的詞典軟件。國(guó)際化由于有UTF-8支持,星際譯王能支持各種語(yǔ)言。如德語(yǔ),26高效率星際譯王自己設(shè)計(jì)了詞典文件格式,訪問(wèn)效率極高,支持?jǐn)?shù)據(jù)壓縮,擴(kuò)展性也很好,并使用了稀疏索引技術(shù),使用時(shí)的內(nèi)存消耗很少。高效率星際譯王自己設(shè)計(jì)了詞典文件格式,訪問(wèn)效率極高,支持?jǐn)?shù)據(jù)27廣受歡迎星際譯王得到了廣大用戶的歡迎,目前下載量已達(dá)到400萬(wàn)以上,每天下載量在8千左右。項(xiàng)目主頁(yè)的每日獨(dú)立IP訪問(wèn)在幾萬(wàn)以上。在SourceF的全球自由軟件排名目前是八十名左右的位置。廣受歡迎星際譯王得到了廣大用戶的歡迎,目前下載量已達(dá)到40028開(kāi)發(fā)歷史星際譯王在2003年開(kāi)始開(kāi)發(fā),現(xiàn)在已經(jīng)比較完善,現(xiàn)有代碼8萬(wàn)行左右,其中主程序2萬(wàn)行,詞典引擎庫(kù)3萬(wàn)行,插件1萬(wàn)行,工具1萬(wàn)多行,目前還在不斷維護(hù)中。主要工作是由我做的,來(lái)自俄羅斯的Evgeniy也曾做了不少貢獻(xiàn)。有非常多的用戶和愛(ài)好者也進(jìn)行了參與。項(xiàng)目主頁(yè)是:開(kāi)發(fā)歷史星際譯王在2003年開(kāi)始開(kāi)發(fā),現(xiàn)在已經(jīng)比較完善,現(xiàn)有29獲獎(jiǎng)2004年獲得第一屆中國(guó)開(kāi)源軟件競(jìng)賽金獎(jiǎng)。2005在香港舉行的“金企鵝杯”兩岸四地開(kāi)源軟件大賽中獲得杰出創(chuàng)意獎(jiǎng)。代表分別來(lái)自港澳臺(tái)和大陸。第一屆中日韓開(kāi)源軟件競(jìng)賽中作為中方四名代表之一進(jìn)行參賽,和其他國(guó)家的選手進(jìn)行了友好交流。獲獎(jiǎng)2004年獲得第一屆中國(guó)開(kāi)源軟件競(jìng)賽金獎(jiǎng)。30商業(yè)回報(bào)畢業(yè)工作半年后,在2007年一月以一個(gè)六位數(shù)將在線詞典網(wǎng)站和軟件所有權(quán)賣(mài)給了一家翻譯公司。商業(yè)交易后軟件繼續(xù)保持開(kāi)源,我們?nèi)匀灰黄鸷献鞑⒅铝τ诟倪M(jìn)和維護(hù)星際譯王的發(fā)展。商業(yè)回報(bào)畢業(yè)工作半年后,在2007年一月以一個(gè)六位數(shù)將在線詞31開(kāi)發(fā)開(kāi)源項(xiàng)目對(duì)畢業(yè)后找工作的幫助由于有很強(qiáng)的項(xiàng)目實(shí)踐經(jīng)歷,培養(yǎng)了實(shí)力,所以找工作比較簡(jiǎn)單。畢業(yè)后到北京飛漫嵌入式Linux公司工作是發(fā)了封郵件就定好了。去紅帽面試時(shí)說(shuō)到開(kāi)發(fā)過(guò)星際譯王,大家知道了我是誰(shuí),所以過(guò)程也很順利。目前工作還是比較輕松自由,之前一段時(shí)間就是在工作時(shí)開(kāi)發(fā)StarDict-3.0版。因?yàn)槭情_(kāi)源軟件公司,所以支持我們的開(kāi)源項(xiàng)目。開(kāi)發(fā)開(kāi)源項(xiàng)目對(duì)畢業(yè)后找工作的幫助由于有很強(qiáng)的項(xiàng)目實(shí)踐經(jīng)歷,培32目前的主要問(wèn)題缺少其他開(kāi)發(fā)者的參與和貢獻(xiàn)。目前我自己的個(gè)人精力已經(jīng)轉(zhuǎn)變到一些其他的事情上了,所以難以繼續(xù)做很多開(kāi)發(fā)。希望能有高水平的開(kāi)發(fā)者參與進(jìn)來(lái),維護(hù)和發(fā)展星際譯王的后續(xù)版本。缺少技術(shù)支持人員。目前在StarDict論壇里發(fā)帖提問(wèn)題的人很多,發(fā)信到郵件列表的人也比較多,但一直只有我一個(gè)人回復(fù)。平時(shí)回復(fù)郵件占了我很多精力,希望也有人能參與進(jìn)來(lái)。目前的主要問(wèn)題缺少其他開(kāi)發(fā)者的參與和貢獻(xiàn)。目前我自己的個(gè)人精33星際譯王的一些技術(shù)細(xì)節(jié)1.詞典文件格式2.查詢引擎3.dictzip技術(shù)4.屏幕取詞技術(shù)5.網(wǎng)絡(luò)詞典6.插件系統(tǒng)星際譯王的一些技術(shù)細(xì)節(jié)1.詞典文件格式34詳細(xì)詞典格式文檔星際譯王的詞典格式是公開(kāi)的,這意味著,其它軟件可以自由讀取星際譯王的詞典文件。由于StarDict詞典文件格式設(shè)計(jì)簡(jiǎn)單而清晰合理,所以很多其它軟件也在采用這種格式作為他們的詞典數(shù)據(jù),比如Macos下的mdict,手機(jī)上的NDS等等。詳細(xì)文檔包含在了軟件源碼包里。這是一個(gè)500多行的英文文檔。因?yàn)檐浖话愣加袊?guó)際化的要求,而且也會(huì)有其他國(guó)家的開(kāi)發(fā)人員參與,所以用英文寫(xiě)文檔和注釋是一個(gè)好習(xí)慣,也能鍛煉自己。詳細(xì)詞典格式文檔星際譯王的詞典格式是公開(kāi)的,這意味著,其它軟35詞典文件組成一個(gè)最基本的詞典分為.ifo,.idx,.dict三個(gè)文件。還可以有.syn同義語(yǔ)信息文件,.idx.oft索引緩存文件(加快啟動(dòng)速度),.clt單詞排序方法文件等,另外也可以有圖片資源等目錄文件。.idx文件可以用gzip壓縮。.dict文件可以用dictzip技術(shù)壓縮,生成.dict.dz文件。詞典文件組成一個(gè)最基本的詞典分為.ifo,.idx,.d36ifo文件內(nèi)容Ifo文件包含詞典的基本信息。是一個(gè)純文本文件。ifo文件內(nèi)容Ifo文件包含詞典的基本信息。是一個(gè)純文本文件37idx文件格式Idx文件格式也很簡(jiǎn)單。就是一個(gè)UTF-8編碼的單詞,加上\0字符結(jié)尾,然后兩個(gè)32位數(shù)字,一個(gè)表示解釋數(shù)據(jù)塊在.dict文件里的偏移,另一個(gè)表示解釋數(shù)據(jù)塊的大小。接著就是第二個(gè)單詞,依次重復(fù)。所有這些單詞,按一定的排序規(guī)則來(lái)存儲(chǔ)。比如利用類(lèi)似strcasecmp的函數(shù)。idx文件格式Idx文件格式也很簡(jiǎn)單。就是一個(gè)UTF-8編碼38dict文件格式dict文件是純粹的數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊的開(kāi)始偏移地址和大小記錄在idx文件里了。由于idx文件里已經(jīng)有了數(shù)據(jù)長(zhǎng)度信息,所以字符串可以不要結(jié)尾的\0字符。數(shù)據(jù)塊的類(lèi)型由.ifo文件里的sametypesequence標(biāo)識(shí)決定的??梢允羌兾谋?,也可以是html,pango,xdxf,xml,音標(biāo),wiki標(biāo)記等等,正因?yàn)槿绱?,StarDict可以兼容各種其他詞典的數(shù)據(jù)類(lèi)型,只要開(kāi)發(fā)相應(yīng)的數(shù)據(jù)解析插件就行了。dict文件格式dict文件是純粹的數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊的開(kāi)始39查詢?cè)鞸tarDict通過(guò)讀取ifo文件,獲取了詞典的基本信息。然后加載處理.idx單詞索引文件,在內(nèi)存里創(chuàng)建一個(gè)元素為32位數(shù)字的數(shù)組,數(shù)組大小就是單詞的數(shù)量。每個(gè)數(shù)組成員的值就是對(duì)應(yīng)單詞在idx文件里的起始偏移。比如,第一個(gè)單詞的偏移肯定就是0,假設(shè)第一個(gè)單詞為apple的話,那么它的單詞長(zhǎng)度是5,加上結(jié)尾的\0占1字節(jié),后面緊跟的解釋數(shù)據(jù)偏移和大小兩個(gè)32位數(shù)字占8字節(jié),總共就是14字節(jié),所以第二個(gè)單詞在idx文件里的起始偏移肯定就是6+8=14字節(jié),因此數(shù)組的第二個(gè)元素的值就是14。后面的單詞偏移值都以此類(lèi)推。由于記錄了每個(gè)單詞在idx文件里的偏移值,這樣訪問(wèn)第99個(gè)單詞時(shí)只需讀取數(shù)組里的第99個(gè)數(shù)字和第100個(gè)數(shù)字的值,第99個(gè)數(shù)字的值就是第99個(gè)單詞的偏移,第100個(gè)數(shù)字的值減去第99個(gè)數(shù)字的值就是第99個(gè)單詞的大小。這樣要訪問(wèn)第任意個(gè)單詞,都可以非???,只要相應(yīng)的fseek和fread就行了。查詢?cè)鞸tarDict通過(guò)讀取ifo文件,獲取了詞典的基本40折半查找在能迅速訪問(wèn)第任意個(gè)序號(hào)的單詞后,加上單詞已經(jīng)事先排好了序,就可以用折半查找算法來(lái)查找對(duì)應(yīng)的詞了。比如查找apple這個(gè)詞,同時(shí)詞典里有1000個(gè)詞,我們先取出第500個(gè)詞,假設(shè)是banana,通過(guò)strcasecmp比較,我們肯定a開(kāi)頭的是在b開(kāi)頭的單詞的前面,所以我們繼續(xù)讀取第250個(gè)單詞,再進(jìn)行比較,又確定是再讀取比較第125個(gè)單詞還是第375個(gè)單詞。這樣范圍慢慢縮小,最后找到了apple這個(gè)單詞的位置,(如果未找到,就可以返回顯示未找到了)比如是第85個(gè)單詞,我們就同時(shí)取到idx文件里apple字符串后面的兩個(gè)數(shù)字,有了偏移和大小,再訪問(wèn).dict文件里的數(shù)據(jù)塊,這樣就把解釋也讀出來(lái)了,然后再通過(guò)解析,就可以把意思顯示到軟件界面上來(lái)了。實(shí)際中的星際譯王是使用的稀疏索引折半查找算法,這樣稍微復(fù)雜些,但需要的索引數(shù)字的數(shù)組大小可以只要原來(lái)的1/32,這樣就達(dá)到節(jié)省內(nèi)存的目的。這個(gè)數(shù)組的內(nèi)容還可以保存為.idx.oft文件,下次直接mmap加載到內(nèi)存中,以加快詞典加載速度。折半查找在能迅速訪問(wèn)第任意個(gè)序號(hào)的單詞后,加上單詞已經(jīng)事先排41代碼查看這段稀疏索引折半查找的代碼只有80行,相對(duì)于總共的80000行代碼,只占千分之一,可見(jiàn)一個(gè)軟件雖然原理簡(jiǎn)單,但要做到好用,往往要涉及到其它的各方各面的細(xì)節(jié),然后整體架構(gòu)就會(huì)比較復(fù)雜了。這也就是Unix的KISS原則,Keepitsimple,stupid的意義所在了。因?yàn)閺?fù)雜只有構(gòu)建在簡(jiǎn)單上,才能掌控其復(fù)雜性。代碼查看這段稀疏索引折半查找的代碼只有80行,相對(duì)于總共的842dictzip詞典壓縮技術(shù)對(duì)詞典的文本解釋數(shù)據(jù)進(jìn)行壓縮是很常見(jiàn)的需要,但一般的壓縮方法只能從頭到尾進(jìn)行順序解壓,而詞典需要快速訪問(wèn)某一特定偏移和大小的數(shù)據(jù),因此dictd軟件項(xiàng)目設(shè)計(jì)了基于gzip的壓縮技術(shù),在gzip文件里的附加信息塊里保留各個(gè)壓縮分塊的偏移信息,以達(dá)到前面的目的。同時(shí)解壓卻可以仍然使用gunzip工具,保持了兼容性,從而很方便。由于dictd也是使用GPL協(xié)議的自由軟件,所以星際譯王可以自由地修改和采用她的代碼,只要繼續(xù)保持開(kāi)放就行了。這樣自由軟件之間進(jìn)行技術(shù)共享就很大地方便了開(kāi)發(fā)者,大大減少了工作量,不必重復(fù)開(kāi)發(fā),重復(fù)發(fā)明輪子。dictzip詞典壓縮技術(shù)對(duì)詞典的文本解釋數(shù)據(jù)進(jìn)行壓縮是很常43屏幕取詞技術(shù)星際譯王在Linux下使用的是選中區(qū)取詞,利用的是x-window的機(jī)制。用戶只需雙擊選中單詞就行了。星際譯王的windows版本也實(shí)現(xiàn)了金山詞霸那樣的屏幕取詞功能。這個(gè)功能以前一直是一個(gè)不公開(kāi)的難點(diǎn)技術(shù)。后來(lái)有人告訴我有個(gè)俄國(guó)的開(kāi)源軟件實(shí)現(xiàn)了這個(gè)技術(shù),通過(guò)閱讀它的delphi源碼,我編寫(xiě)了c語(yǔ)言的dll代碼,同時(shí)閱讀了一些相關(guān)技術(shù)文檔,對(duì)它進(jìn)行了改進(jìn),使其成為獨(dú)立的模塊,從而攻克也公開(kāi)了這個(gè)技術(shù)?,F(xiàn)在任何感興趣的人都可以閱讀和使用這些代碼了。屏幕取詞技術(shù)星際譯王在Linux下使用的是選中區(qū)取詞,利用的44網(wǎng)絡(luò)詞典星際譯王的在線詞典網(wǎng)站目前由stardictd詞典服務(wù)端,stardict-client客戶端和php代碼三部分組成。StarDict軟件也可以直接連接到stardictd端口來(lái)查詢單詞和進(jìn)行用戶設(shè)置等。一般的詞典網(wǎng)站是利用數(shù)據(jù)庫(kù)來(lái)提供查詢,但開(kāi)發(fā)專(zhuān)門(mén)的詞典數(shù)據(jù)服務(wù)端能更高效,查詢機(jī)制也可以更專(zhuān)業(yè)。目前stardictd在加載30G的詞典數(shù)據(jù)后也只需16M的內(nèi)存,而且運(yùn)行非常穩(wěn)定快速。網(wǎng)絡(luò)詞典星際譯王的在線詞典網(wǎng)站目前由stardictd詞典服45插件系統(tǒng)在軟件里增加插件系統(tǒng)能大大提高軟件的擴(kuò)展性和靈活性,使代碼更加模塊化,降低復(fù)雜性。一些不在核心但可以獨(dú)立的功能可以開(kāi)發(fā)為插件,這樣用戶可以選擇是否加載對(duì)應(yīng)插件來(lái)取舍這些功能。插件系統(tǒng)就是一個(gè)加載,管理,調(diào)用插件的復(fù)雜類(lèi),并設(shè)計(jì)了各種插件類(lèi)型和對(duì)應(yīng)的調(diào)用接口。在軟件里的合適位置再進(jìn)行調(diào)用。插件系統(tǒng)在軟件里增加插件系統(tǒng)能大大提高軟件的擴(kuò)展性和靈活性,46星際譯王的源碼星際譯王的源碼還是開(kāi)發(fā)得比較仔細(xì)嚴(yán)密,代碼質(zhì)量比較高,一直以來(lái)很少有bug。對(duì)于感興趣的同學(xué),可以下載研究閱讀一下其代碼,肯定會(huì)有不少收獲。因?yàn)檐浖乃性O(shè)計(jì)思想,技術(shù)精華等等都全部包含在源碼里了。星際譯王的源碼星際譯王的源碼還是開(kāi)發(fā)得比較仔細(xì)嚴(yán)密,代碼質(zhì)量47開(kāi)發(fā)歷史和經(jīng)歷星際譯王的源碼包里有一個(gè)ChangeLog文件,里面記錄了每個(gè)版本的修改歷程。開(kāi)發(fā)歷史和經(jīng)歷星際譯王的源碼包里有一個(gè)ChangeLog文件48大學(xué)時(shí)的開(kāi)發(fā)經(jīng)歷2003年3月,大二下學(xué)期,開(kāi)始星際譯王項(xiàng)目。大三上學(xué)期完善了StarDict,推出2.4.2版,星際譯王成為了一個(gè)完整的詞典軟件。然后休息了一年半,大四畢業(yè)時(shí)推出了2.4.5版。因?yàn)閷W(xué)分不夠,延期一年畢業(yè),因此多讀了一年,在上課之余主要開(kāi)發(fā)StarDict,每三個(gè)月出一個(gè)版本,2.4.6,2.4.7,最后畢業(yè)時(shí)推出了2.4.8版,一年里基本上就只做了這一件事,但為軟件的成熟打下了基礎(chǔ)。星際譯王作為一個(gè)本地的詞典軟件已經(jīng)很有競(jìng)爭(zhēng)力了。大學(xué)時(shí)的開(kāi)發(fā)經(jīng)歷2003年3月,大二下學(xué)期,開(kāi)始星際譯王項(xiàng)目49工作后的開(kāi)發(fā)在飛漫公司時(shí)利用業(yè)余時(shí)間開(kāi)發(fā)出了在線詞典網(wǎng)站和詞典服務(wù)端。到紅帽公司后,花半年時(shí)間開(kāi)發(fā)出了3.0.0版。主要是加了插件系統(tǒng)和網(wǎng)絡(luò)詞典,以及大量的修改和完善。之后又過(guò)了三個(gè)月,推出3.0.1版。這個(gè)版本加了語(yǔ)音朗讀,WordNet圖形化詞典等功能,以及bug修復(fù)等。工作后的開(kāi)發(fā)在飛漫公司時(shí)利用業(yè)余時(shí)間開(kāi)發(fā)出了在線詞典網(wǎng)站和詞50開(kāi)發(fā)軟件項(xiàng)目的工作量軟件的開(kāi)發(fā)需要耗費(fèi)非常多的時(shí)間和精力,因此一個(gè)簡(jiǎn)單的詞典軟件也需要近五年的時(shí)間,還好開(kāi)發(fā)好后可以全球幾百萬(wàn)人使用,這樣效益就可以體現(xiàn)出來(lái)了。8萬(wàn)行代碼,用A4的紙打印出來(lái),就是一千多頁(yè),這是非常厚的一本書(shū)了。而且是一行行寫(xiě)出來(lái)的,還得保證整體的嚴(yán)密統(tǒng)一,要求沒(méi)有任何邏輯錯(cuò)誤等等,不然就是Bug??梢?jiàn)其中要包含的心力是非常多的。收集的兩千多個(gè)詞典,也是一個(gè)個(gè)加起來(lái)的。一直不斷積累才可以達(dá)到這個(gè)數(shù)量,維護(hù)整理也是要花去很多時(shí)間。經(jīng)常要編寫(xiě)專(zhuān)門(mén)的轉(zhuǎn)換工具。這幾年回復(fù)處理的相關(guān)郵件有五六千封,平均每天都有好些封。3.0.1發(fā)布后,平時(shí)一打開(kāi)郵箱就是二十幾封新郵件待處理。付出就是回報(bào)!這個(gè)世界沒(méi)有不勞而獲,也沒(méi)有勞而無(wú)獲。其中有很多樂(lè)趣,也很有意義。經(jīng)歷了就不會(huì)覺(jué)得難,所以其實(shí)也不算什么:)開(kāi)發(fā)軟件項(xiàng)目的工作量軟件的開(kāi)發(fā)需要耗費(fèi)非常多的時(shí)間和精力,因51參與自由軟件能認(rèn)識(shí)很多朋友你會(huì)與很多國(guó)外的不認(rèn)識(shí)的朋友一起做事情和交流,增進(jìn)了大家的友誼,也擴(kuò)大了見(jiàn)識(shí)面。你會(huì)認(rèn)識(shí)很多大學(xué)里的Linux愛(ài)好者,因?yàn)長(zhǎng)inux崇尚的開(kāi)源共享和自由精神,大家都是很友善很好的人,相處會(huì)很愉快??梢赃M(jìn)入國(guó)內(nèi)的一些Linux圈子和參加聚會(huì)活動(dòng),讓生活更加豐富多彩。參與自由軟件能認(rèn)識(shí)很多朋友你會(huì)與很多國(guó)外的不認(rèn)識(shí)的朋友一起做52開(kāi)發(fā)的其他軟件reciteword-0.8.4,一個(gè)界面漂亮,功能強(qiáng)大的跨平臺(tái)的背單詞軟件。開(kāi)發(fā)的其他軟件reciteword-0.8.4,一個(gè)界面漂亮53開(kāi)發(fā)歷史和起因大一時(shí)為了背四級(jí)單詞,經(jīng)常要用一個(gè)叫《輕輕松松背單詞2》的軟件,可每次要背單詞都要重新啟動(dòng)進(jìn)windows實(shí)在是麻煩,而且對(duì)《輕輕松松背單詞2》的一些地方也不滿意,于是我就自己編了個(gè)軟件用,模仿了其主要功能,而且使用了她的圖片作為皮膚。前后花了一年時(shí)間?,F(xiàn)在已經(jīng)只維護(hù)了,但一直可用。前一陣推出了0.8.4維護(hù)版。覺(jué)得開(kāi)發(fā)背單詞,詞典這樣的軟件的一個(gè)好處就是一二十年后仍然會(huì)有人要使用,需求會(huì)很持久。這也是我做項(xiàng)目的一個(gè)主要考慮方面。開(kāi)發(fā)歷史和起因大一時(shí)為了背四級(jí)單詞,經(jīng)常要用一個(gè)叫《輕輕松松54選書(shū)選書(shū)55單詞初記-分組單詞初記-分組56單詞初記-瀏覽單詞初記-瀏覽57單詞初記-測(cè)試單詞初記-測(cè)試58強(qiáng)化復(fù)習(xí)-選組強(qiáng)化復(fù)習(xí)-選組59強(qiáng)化復(fù)習(xí)-測(cè)試強(qiáng)化復(fù)習(xí)-測(cè)試60強(qiáng)化復(fù)習(xí)-單詞再現(xiàn)強(qiáng)化復(fù)習(xí)-單詞再現(xiàn)61單詞打靶單詞打靶62打字神功打字神功63小詞典小詞典64另一套皮膚另一套皮膚65大二時(shí)日夜開(kāi)發(fā)ReciteWord那時(shí)經(jīng)常連續(xù)開(kāi)發(fā)兩三個(gè)月,有段時(shí)間每天凌晨三四點(diǎn)才睡,并因此得了闌尾炎,從此才學(xué)會(huì)再也不熬夜了,保持過(guò)有規(guī)律的生活!大二時(shí)日夜開(kāi)發(fā)ReciteWord那時(shí)經(jīng)常連續(xù)開(kāi)發(fā)兩三個(gè)月,66MyicqMyicq是一個(gè)類(lèi)似QQ的即時(shí)通訊軟件,張勇開(kāi)發(fā)了服務(wù)端和windows客戶端,我加入了這個(gè)項(xiàng)目,就先編了個(gè)gaim的插件,這樣就可以在linux下上myicq了.不過(guò)后來(lái)這個(gè)項(xiàng)目沒(méi)有發(fā)展成功,畢竟跟QQ,MSN競(jìng)爭(zhēng)還是很難。MyicqMyicq是一個(gè)類(lèi)似QQ的即時(shí)通訊軟件,張勇開(kāi)發(fā)了67友情強(qiáng)檔forlinux,一個(gè)記錄個(gè)人信息的軟件。高中時(shí)編的。我也是高中時(shí)接觸的Linux.友情強(qiáng)檔forlinux,一個(gè)記錄個(gè)人信息的軟件。高中時(shí)68BBS彩票系統(tǒng)BBS彩票系統(tǒng)69地圖瀏覽軟件地圖瀏覽軟件70手寫(xiě)輸入筆畫(huà)數(shù)據(jù)庫(kù)編輯軟件這個(gè)是用python編的。手寫(xiě)輸入筆畫(huà)數(shù)據(jù)庫(kù)編輯軟件這個(gè)是用python編的。71教學(xué)教學(xué)講解課件72如何訪問(wèn)我的主頁(yè)Baidu或者Google我的名字(胡正)就行了,第一個(gè)就是。歡迎大家留言!如何訪問(wèn)我的主頁(yè)Baidu或者Google我的名字(胡正)就73我的兩項(xiàng)技能:寫(xiě)書(shū)和寫(xiě)軟件大學(xué)時(shí)一直保持寫(xiě)隨筆。因?yàn)橛龅揭恍┥钪械闹卮髥?wèn)題,開(kāi)始研究哲學(xué),并因此寫(xiě)了很多思考筆記?,F(xiàn)在還是在繼續(xù)寫(xiě)一些文章。一般一兩個(gè)月一篇。最近幾個(gè)月在學(xué)佛,因?yàn)閷?shí)證了一些東西,所以對(duì)佛法很有信心,收獲很大。我的兩項(xiàng)技能:寫(xiě)書(shū)和寫(xiě)軟件大學(xué)時(shí)一直保持寫(xiě)隨筆。74以前寫(xiě)的幾本書(shū)籍《我的世界之源代碼》這本還好。《大學(xué)隨筆》GeniusPhilosophy.pdfJan-20042.6MTheUtmostTruth.pdfApr-2004765kSchizophreniaNotes.pdfDec-20061.2M我比較喜歡探索新奇未知的東西,所以很可能會(huì)因此很痛苦,但實(shí)際上是以苦為樂(lè):)以前寫(xiě)的幾本書(shū)籍《我的世界之源代碼》這本還好。75第六本書(shū)目前寫(xiě)的算第六本了,還是有點(diǎn)亂。主要是講佛法?,F(xiàn)在看來(lái),覺(jué)得寫(xiě)的這些書(shū)都還不是很好,寫(xiě)得自己滿意還是比較費(fèi)功夫。覺(jué)得“行勝于言”更重要。以前的書(shū)寫(xiě)得都不是很正統(tǒng),算記錄生活和歷程。有興趣的可以在我的主頁(yè)上讀到。第六本書(shū)目前寫(xiě)的算第六本了,還是有點(diǎn)亂。主要是講佛法。76目前的生活有時(shí)很好,有時(shí)很虛弱。因?yàn)楸容^累,待處理的事情很多。生生滅滅的事情見(jiàn)得比較多,所以對(duì)佛法會(huì)很感興趣,因?yàn)樗梢越忉屛矣龅降脑S多問(wèn)題。比如以前花了很多精力和愛(ài)好開(kāi)發(fā)的軟件,幾年以后就都沒(méi)有用了。這些都不是永恒的?,F(xiàn)在是努力行菩薩道,就是自利利他,有(合理)求必應(yīng)。修大乘佛法:)已經(jīng)決定辭職休息半年,讀書(shū)、完成那些自己想做的事情和到各地游歷,遍訪高山名寺。目前的生活有時(shí)很好,有時(shí)很虛弱。因?yàn)楸容^累,待處理的事情很多77書(shū)中有意思的話Jessica:對(duì)于道理沒(méi)有好感。Hu:你不愿速知一切法嗎?我對(duì)你的要求跟對(duì)豬的要求一樣:吃好,睡好,別思考。最好什么也不用做,以慢慢達(dá)到什么也做不了的地步。這樣以后淘汰你們才方便?。海?---這句話也太絕了啊要花錢(qián)就要賺錢(qián),這個(gè)道理一般人都明白,但要用軟件就要編軟件的道理,大多數(shù)人都不知道,他/她們認(rèn)為軟件只要拿來(lái)用就行了。只花錢(qián)會(huì)造成自身的貧窮,而只用軟件已經(jīng)造成了他/她們的無(wú)知,他/她們卻還不知道。為什么一定要讓他們知道呢?沒(méi)有他們的貧窮哪來(lái)我們的巨大財(cái)富,沒(méi)有他們的無(wú)知哪來(lái)我們的壟斷統(tǒng)治。富有的微軟如是說(shuō),并且因此宣揚(yáng)只使用軟件,只調(diào)用API的愚民政策。東瀛第一劍客,Ruby語(yǔ)言的作者,松本行弘:)我和他也有過(guò)交往,呵呵。至于開(kāi)源界的中原第一高手,目前還在深山里修煉和成長(zhǎng)哈。大家加油積累!:)?書(shū)中有意思的話Jessica:對(duì)于道理沒(méi)有好感。78精神上的富有Beopenandmystic.Beniceandcomplex.大清國(guó)當(dāng)時(shí)何其強(qiáng)盛,閉關(guān)鎖國(guó)則成落后挨打。微軟帝國(guó)當(dāng)年何其更新強(qiáng)大,閉源壟斷則趨塵封消亡。我對(duì)技術(shù)沒(méi)興趣,而是對(duì)開(kāi)源精神有興趣:)Linuxisforpeoplewhowanttoknowwhyitworks.Macisforpeoplewhodon'twanttoknowwhyitworks.DOSisforpeoplewhowanttoknowwhyitdoesnotwork.Windowsisforpeoplewhodon'twanttoknowwhyitdoesnotwork.我真是富有啊,寫(xiě)了這么多文字:)就是還不夠精練,算是積累素材吧。慢慢來(lái),終于有天會(huì)一鳴驚人的:_)?精神上的富有Beopenandmystic.Ben79平靜的思想,平靜的行動(dòng)得道的人話很少。我的金錢(qián)觀。我的金錢(qián)觀很簡(jiǎn)單,就是浪費(fèi)和缺乏是一,也就是說(shuō),不浪費(fèi)就不會(huì)缺乏,浪費(fèi)了就必然得到缺乏的果報(bào),即使是億萬(wàn)富翁也是一樣。比如你現(xiàn)在浪費(fèi)了一杯水,以后就會(huì)有口渴的時(shí)候。那怎樣判斷什么是浪費(fèi)呢?我的說(shuō)法是不用判斷,如果一件事你覺(jué)得不是浪費(fèi)而實(shí)際上是浪費(fèi),那么當(dāng)對(duì)應(yīng)的缺乏來(lái)臨時(shí),你也不會(huì)覺(jué)得是缺乏,既然不覺(jué)得是缺乏,那也就很好了。簡(jiǎn)單的道理,就像反作用力等于作用力一樣。是否能夠遵循就看你的修為了。讓你喜歡的人都對(duì)你很好,這是一門(mén)必須學(xué)會(huì)的藝術(shù)。有人問(wèn)我怎樣得到大量的沙子,我告訴她去挖金子,這樣你就會(huì)得到大量的沙子。我為什么不直接告訴你去挖沙子呢?這也是我不告訴你去直接追求快樂(lè)的原因。如何面對(duì)這些高材生確實(shí)是一個(gè)問(wèn)題。如果幾十年后我超越了所有這些人,那一定是因?yàn)閮牲c(diǎn),了解奉獻(xiàn)的秘密和掌握了更強(qiáng)大的思想。這就是我的道路。平靜的思想,平靜的行動(dòng)得道的人話很少。80第六本書(shū)第一章開(kāi)悟第二章初獲六神通、證辟支佛果第三章金剛菩薩法門(mén)第四章無(wú)上成佛路第六本書(shū)第一章開(kāi)悟81Thankyou!
謝謝!最后是提問(wèn)與交流。Thankyou!
謝謝!最后是提問(wèn)與交流。82星際譯王-自由軟件介紹星際譯王-自由軟件介紹83內(nèi)容1.個(gè)人簡(jiǎn)介2.星際譯王軟件介紹3.技術(shù)介紹4.開(kāi)發(fā)歷史5.我開(kāi)發(fā)的一些其他軟件6.其他興趣愛(ài)好7.提問(wèn)和交流內(nèi)容1.個(gè)人簡(jiǎn)介84本人簡(jiǎn)介胡正,83年出生,湖南岳陽(yáng)人。2006年從四川大學(xué)畢業(yè)。在大學(xué)里開(kāi)發(fā)了星際譯王等軟件。曾獲中國(guó)開(kāi)源軟件競(jìng)賽金獎(jiǎng)。對(duì)哲學(xué)和佛法很愛(ài)好,寫(xiě)了一些非正式的書(shū)。目前在紅帽Linux公司工作。本人簡(jiǎn)介胡正,83年出生,湖南岳陽(yáng)人。85星際譯王簡(jiǎn)介星際譯王是一個(gè)跨平臺(tái)(能在Linux下和Windows下運(yùn)行)的國(guó)際化的詞典軟件,使用C++語(yǔ)言開(kāi)發(fā),并使用了GTK2庫(kù)作為圖形界面,開(kāi)放源代碼,并遵循GPLv3協(xié)議。星際譯王簡(jiǎn)介星際譯王是一個(gè)跨平臺(tái)(能在Linux下和Wind86功能星際譯王功能強(qiáng)大,除基本的即輸即查功能外,還有通配符匹配,模糊查詢,全文檢索,正則表達(dá)式匹配,屏幕取詞等功能。星際譯王3.0版新加了插件系統(tǒng),網(wǎng)絡(luò)詞典等功能,已經(jīng)漸趨完善。功能星際譯王功能強(qiáng)大,除基本的即輸即查功能外,還有通配符匹配87運(yùn)行主界面運(yùn)行主界面88取詞窗口取詞窗口89詞典管理在詞典管理對(duì)話框中,你可以屏蔽掉不需要的詞典,你也可以設(shè)置詞典查詢的順序。詞典管理在詞典管理對(duì)話框中,你可以屏蔽掉不需要的詞典,你也可90首選項(xiàng)在首選項(xiàng)窗口里可以進(jìn)行各種配置。首選項(xiàng)在首選項(xiàng)窗口里可以進(jìn)行各種配置。91插件管理插件管理92圖形化網(wǎng)狀詞典插件圖形化網(wǎng)狀詞典插件93全文翻譯全文翻譯94網(wǎng)絡(luò)詞典功能網(wǎng)絡(luò)詞典功能95Windows移植版本W(wǎng)indows移植版本96包含金山詞霸詞典金山詞霸的所有版本的所有詞典都可以轉(zhuǎn)換后在星際譯王中使用。包含金山詞霸詞典金山詞霸的所有版本的所有詞典都可以轉(zhuǎn)換后在星97使用所有Babylon詞典星際譯王也開(kāi)發(fā)了Babylon詞庫(kù)轉(zhuǎn)換程序。使用所有Babylon詞典星際譯王也開(kāi)發(fā)了Babylon詞庫(kù)98項(xiàng)目主頁(yè)項(xiàng)目主頁(yè)99詞典下載頁(yè)面目前星際譯王已經(jīng)有兩千多個(gè)詞典下載,包含各種語(yǔ)言和類(lèi)型。詞典下載頁(yè)面目前星際譯王已經(jīng)有兩千多個(gè)詞典下載,包含各種語(yǔ)言100安裝星際譯王安裝十分方便,在Linux下提供了RPM包,在Windows下有向?qū)降陌惭b程序。安裝星際譯王安裝十分方便,在Linux下提供了RPM包,在W101MacOSX蘋(píng)果移植MacOSX蘋(píng)果移植102NokiaN800移植NokiaN800移植103GPE手機(jī)移植版本GPE手機(jī)移植版本104星際譯王在線詞典網(wǎng)站星際譯王在線詞典網(wǎng)站105Ajax界面網(wǎng)頁(yè)Ajax界面網(wǎng)頁(yè)106跨平臺(tái)目前星際譯王能在Linux,FreeBSD,Solaris,Windows等平臺(tái)上運(yùn)行。MacOSX蘋(píng)果移植版也已經(jīng)推出。星際譯王還有專(zhuān)門(mén)的命令行版本,叫做sdcv??缙脚_(tái)目前星際譯王能在Linux,FreeBSD,Sol107國(guó)際化由于有UTF-8支持,星際譯王能支持各種語(yǔ)言。如德語(yǔ),法語(yǔ),俄語(yǔ),日語(yǔ),阿拉伯語(yǔ)等。星際譯王還收集了廣泛的詞典數(shù)據(jù),包含了各種各樣的語(yǔ)言。因此星際譯王在國(guó)外也有很多的用戶。目前是在Linux系統(tǒng)下最流行的詞典軟件。國(guó)際化由于有UTF-8支持,星際譯王能支持各種語(yǔ)言。如德語(yǔ),108高效率星際譯王自己設(shè)計(jì)了詞典文件格式,訪問(wèn)效率極高,支持?jǐn)?shù)據(jù)壓縮,擴(kuò)展性也很好,并使用了稀疏索引技術(shù),使用時(shí)的內(nèi)存消耗很少。高效率星際譯王自己設(shè)計(jì)了詞典文件格式,訪問(wèn)效率極高,支持?jǐn)?shù)據(jù)109廣受歡迎星際譯王得到了廣大用戶的歡迎,目前下載量已達(dá)到400萬(wàn)以上,每天下載量在8千左右。項(xiàng)目主頁(yè)的每日獨(dú)立IP訪問(wèn)在幾萬(wàn)以上。在SourceF的全球自由軟件排名目前是八十名左右的位置。廣受歡迎星際譯王得到了廣大用戶的歡迎,目前下載量已達(dá)到400110開(kāi)發(fā)歷史星際譯王在2003年開(kāi)始開(kāi)發(fā),現(xiàn)在已經(jīng)比較完善,現(xiàn)有代碼8萬(wàn)行左右,其中主程序2萬(wàn)行,詞典引擎庫(kù)3萬(wàn)行,插件1萬(wàn)行,工具1萬(wàn)多行,目前還在不斷維護(hù)中。主要工作是由我做的,來(lái)自俄羅斯的Evgeniy也曾做了不少貢獻(xiàn)。有非常多的用戶和愛(ài)好者也進(jìn)行了參與。項(xiàng)目主頁(yè)是:開(kāi)發(fā)歷史星際譯王在2003年開(kāi)始開(kāi)發(fā),現(xiàn)在已經(jīng)比較完善,現(xiàn)有111獲獎(jiǎng)2004年獲得第一屆中國(guó)開(kāi)源軟件競(jìng)賽金獎(jiǎng)。2005在香港舉行的“金企鵝杯”兩岸四地開(kāi)源軟件大賽中獲得杰出創(chuàng)意獎(jiǎng)。代表分別來(lái)自港澳臺(tái)和大陸。第一屆中日韓開(kāi)源軟件競(jìng)賽中作為中方四名代表之一進(jìn)行參賽,和其他國(guó)家的選手進(jìn)行了友好交流。獲獎(jiǎng)2004年獲得第一屆中國(guó)開(kāi)源軟件競(jìng)賽金獎(jiǎng)。112商業(yè)回報(bào)畢業(yè)工作半年后,在2007年一月以一個(gè)六位數(shù)將在線詞典網(wǎng)站和軟件所有權(quán)賣(mài)給了一家翻譯公司。商業(yè)交易后軟件繼續(xù)保持開(kāi)源,我們?nèi)匀灰黄鸷献鞑⒅铝τ诟倪M(jìn)和維護(hù)星際譯王的發(fā)展。商業(yè)回報(bào)畢業(yè)工作半年后,在2007年一月以一個(gè)六位數(shù)將在線詞113開(kāi)發(fā)開(kāi)源項(xiàng)目對(duì)畢業(yè)后找工作的幫助由于有很強(qiáng)的項(xiàng)目實(shí)踐經(jīng)歷,培養(yǎng)了實(shí)力,所以找工作比較簡(jiǎn)單。畢業(yè)后到北京飛漫嵌入式Linux公司工作是發(fā)了封郵件就定好了。去紅帽面試時(shí)說(shuō)到開(kāi)發(fā)過(guò)星際譯王,大家知道了我是誰(shuí),所以過(guò)程也很順利。目前工作還是比較輕松自由,之前一段時(shí)間就是在工作時(shí)開(kāi)發(fā)StarDict-3.0版。因?yàn)槭情_(kāi)源軟件公司,所以支持我們的開(kāi)源項(xiàng)目。開(kāi)發(fā)開(kāi)源項(xiàng)目對(duì)畢業(yè)后找工作的幫助由于有很強(qiáng)的項(xiàng)目實(shí)踐經(jīng)歷,培114目前的主要問(wèn)題缺少其他開(kāi)發(fā)者的參與和貢獻(xiàn)。目前我自己的個(gè)人精力已經(jīng)轉(zhuǎn)變到一些其他的事情上了,所以難以繼續(xù)做很多開(kāi)發(fā)。希望能有高水平的開(kāi)發(fā)者參與進(jìn)來(lái),維護(hù)和發(fā)展星際譯王的后續(xù)版本。缺少技術(shù)支持人員。目前在StarDict論壇里發(fā)帖提問(wèn)題的人很多,發(fā)信到郵件列表的人也比較多,但一直只有我一個(gè)人回復(fù)。平時(shí)回復(fù)郵件占了我很多精力,希望也有人能參與進(jìn)來(lái)。目前的主要問(wèn)題缺少其他開(kāi)發(fā)者的參與和貢獻(xiàn)。目前我自己的個(gè)人精115星際譯王的一些技術(shù)細(xì)節(jié)1.詞典文件格式2.查詢引擎3.dictzip技術(shù)4.屏幕取詞技術(shù)5.網(wǎng)絡(luò)詞典6.插件系統(tǒng)星際譯王的一些技術(shù)細(xì)節(jié)1.詞典文件格式116詳細(xì)詞典格式文檔星際譯王的詞典格式是公開(kāi)的,這意味著,其它軟件可以自由讀取星際譯王的詞典文件。由于StarDict詞典文件格式設(shè)計(jì)簡(jiǎn)單而清晰合理,所以很多其它軟件也在采用這種格式作為他們的詞典數(shù)據(jù),比如Macos下的mdict,手機(jī)上的NDS等等。詳細(xì)文檔包含在了軟件源碼包里。這是一個(gè)500多行的英文文檔。因?yàn)檐浖话愣加袊?guó)際化的要求,而且也會(huì)有其他國(guó)家的開(kāi)發(fā)人員參與,所以用英文寫(xiě)文檔和注釋是一個(gè)好習(xí)慣,也能鍛煉自己。詳細(xì)詞典格式文檔星際譯王的詞典格式是公開(kāi)的,這意味著,其它軟117詞典文件組成一個(gè)最基本的詞典分為.ifo,.idx,.dict三個(gè)文件。還可以有.syn同義語(yǔ)信息文件,.idx.oft索引緩存文件(加快啟動(dòng)速度),.clt單詞排序方法文件等,另外也可以有圖片資源等目錄文件。.idx文件可以用gzip壓縮。.dict文件可以用dictzip技術(shù)壓縮,生成.dict.dz文件。詞典文件組成一個(gè)最基本的詞典分為.ifo,.idx,.d118ifo文件內(nèi)容Ifo文件包含詞典的基本信息。是一個(gè)純文本文件。ifo文件內(nèi)容Ifo文件包含詞典的基本信息。是一個(gè)純文本文件119idx文件格式Idx文件格式也很簡(jiǎn)單。就是一個(gè)UTF-8編碼的單詞,加上\0字符結(jié)尾,然后兩個(gè)32位數(shù)字,一個(gè)表示解釋數(shù)據(jù)塊在.dict文件里的偏移,另一個(gè)表示解釋數(shù)據(jù)塊的大小。接著就是第二個(gè)單詞,依次重復(fù)。所有這些單詞,按一定的排序規(guī)則來(lái)存儲(chǔ)。比如利用類(lèi)似strcasecmp的函數(shù)。idx文件格式Idx文件格式也很簡(jiǎn)單。就是一個(gè)UTF-8編碼120dict文件格式dict文件是純粹的數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊的開(kāi)始偏移地址和大小記錄在idx文件里了。由于idx文件里已經(jīng)有了數(shù)據(jù)長(zhǎng)度信息,所以字符串可以不要結(jié)尾的\0字符。數(shù)據(jù)塊的類(lèi)型由.ifo文件里的sametypesequence標(biāo)識(shí)決定的。可以是純文本,也可以是html,pango,xdxf,xml,音標(biāo),wiki標(biāo)記等等,正因?yàn)槿绱耍琒tarDict可以兼容各種其他詞典的數(shù)據(jù)類(lèi)型,只要開(kāi)發(fā)相應(yīng)的數(shù)據(jù)解析插件就行了。dict文件格式dict文件是純粹的數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊的開(kāi)始121查詢?cè)鞸tarDict通過(guò)讀取ifo文件,獲取了詞典的基本信息。然后加載處理.idx單詞索引文件,在內(nèi)存里創(chuàng)建一個(gè)元素為32位數(shù)字的數(shù)組,數(shù)組大小就是單詞的數(shù)量。每個(gè)數(shù)組成員的值就是對(duì)應(yīng)單詞在idx文件里的起始偏移。比如,第一個(gè)單詞的偏移肯定就是0,假設(shè)第一個(gè)單詞為apple的話,那么它的單詞長(zhǎng)度是5,加上結(jié)尾的\0占1字節(jié),后面緊跟的解釋數(shù)據(jù)偏移和大小兩個(gè)32位數(shù)字占8字節(jié),總共就是14字節(jié),所以第二個(gè)單詞在idx文件里的起始偏移肯定就是6+8=14字節(jié),因此數(shù)組的第二個(gè)元素的值就是14。后面的單詞偏移值都以此類(lèi)推。由于記錄了每個(gè)單詞在idx文件里的偏移值,這樣訪問(wèn)第99個(gè)單詞時(shí)只需讀取數(shù)組里的第99個(gè)數(shù)字和第100個(gè)數(shù)字的值,第99個(gè)數(shù)字的值就是第99個(gè)單詞的偏移,第100個(gè)數(shù)字的值減去第99個(gè)數(shù)字的值就是第99個(gè)單詞的大小。這樣要訪問(wèn)第任意個(gè)單詞,都可以非???,只要相應(yīng)的fseek和fread就行了。查詢?cè)鞸tarDict通過(guò)讀取ifo文件,獲取了詞典的基本122折半查找在能迅速訪問(wèn)第任意個(gè)序號(hào)的單詞后,加上單詞已經(jīng)事先排好了序,就可以用折半查找算法來(lái)查找對(duì)應(yīng)的詞了。比如查找apple這個(gè)詞,同時(shí)詞典里有1000個(gè)詞,我們先取出第500個(gè)詞,假設(shè)是banana,通過(guò)strcasecmp比較,我們肯定a開(kāi)頭的是在b開(kāi)頭的單詞的前面,所以我們繼續(xù)讀取第250個(gè)單詞,再進(jìn)行比較,又確定是再讀取比較第125個(gè)單詞還是第375個(gè)單詞。這樣范圍慢慢縮小,最后找到了apple這個(gè)單詞的位置,(如果未找到,就可以返回顯示未找到了)比如是第85個(gè)單詞,我們就同時(shí)取到idx文件里apple字符串后面的兩個(gè)數(shù)字,有了偏移和大小,再訪問(wèn).dict文件里的數(shù)據(jù)塊,這樣就把解釋也讀出來(lái)了,然后再通過(guò)解析,就可以把意思顯示到軟件界面上來(lái)了。實(shí)際中的星際譯王是使用的稀疏索引折半查找算法,這樣稍微復(fù)雜些,但需要的索引數(shù)字的數(shù)組大小可以只要原來(lái)的1/32,這樣就達(dá)到節(jié)省內(nèi)存的目的。這個(gè)數(shù)組的內(nèi)容還可以保存為.idx.oft文件,下次直接mmap加載到內(nèi)存中,以加快詞典加載速度。折半查找在能迅速訪問(wèn)第任意個(gè)序號(hào)的單詞后,加上單詞已經(jīng)事先排123代碼查看這段稀疏索引折半查找的代碼只有80行,相對(duì)于總共的80000行代碼,只占千分之一,可見(jiàn)一個(gè)軟件雖然原理簡(jiǎn)單,但要做到好用,往往要涉及到其它的各方各面的細(xì)節(jié),然后整體架構(gòu)就會(huì)比較復(fù)雜了。這也就是Unix的KISS原則,Keepitsimple,stupid的意義所在了。因?yàn)閺?fù)雜只有構(gòu)建在簡(jiǎn)單上,才能掌控其復(fù)雜性。代碼查看這段稀疏索引折半查找的代碼只有80行,相對(duì)于總共的8124dictzip詞典壓縮技術(shù)對(duì)詞典的文本解釋數(shù)據(jù)進(jìn)行壓縮是很常見(jiàn)的需要,但一般的壓縮方法只能從頭到尾進(jìn)行順序解壓,而詞典需要快速訪問(wèn)某一特定偏移和大小的數(shù)據(jù),因此dictd軟件項(xiàng)目設(shè)計(jì)了基于gzip的壓縮技術(shù),在gzip文件里的附加信息塊里保留各個(gè)壓縮分塊的偏移信息,以達(dá)到前面的目的。同時(shí)解壓卻可以仍然使用gunzip工具,保持了兼容性,從而很方便。由于dictd也是使用GPL協(xié)議的自由軟件,所以星際譯王可以自由地修改和采用她的代碼,只要繼續(xù)保持開(kāi)放就行了。這樣自由軟件之間進(jìn)行技術(shù)共享就很大地方便了開(kāi)發(fā)者,大大減少了工作量,不必重復(fù)開(kāi)發(fā),重復(fù)發(fā)明輪子。dictzip詞典壓縮技術(shù)對(duì)詞典的文本解釋數(shù)據(jù)進(jìn)行壓縮是很常125屏幕取詞技術(shù)星際譯王在Linux下使用的是選中區(qū)取詞,利用的是x-window的機(jī)制。用戶只需雙擊選中單詞就行了。星際譯王的windows版本也實(shí)現(xiàn)了金山詞霸那樣的屏幕取詞功能。這個(gè)功能以前一直是一個(gè)不公開(kāi)的難點(diǎn)技術(shù)。后來(lái)有人告訴我有個(gè)俄國(guó)的開(kāi)源軟件實(shí)現(xiàn)了這個(gè)技術(shù),通過(guò)閱讀它的delphi源碼,我編寫(xiě)了c語(yǔ)言的dll代碼,同時(shí)閱讀了一些相關(guān)技術(shù)文檔,對(duì)它進(jìn)行了改進(jìn),使其成為獨(dú)立的模塊,從而攻克也公開(kāi)了這個(gè)技術(shù)?,F(xiàn)在任何感興趣的人都可以閱讀和使用這些代碼了。屏幕取詞技術(shù)星際譯王在Linux下使用的是選中區(qū)取詞,利用的126網(wǎng)絡(luò)詞典星際譯王的在線詞典網(wǎng)站目前由stardictd詞典服務(wù)端,stardict-client客戶端和php代碼三部分組成。StarDict軟件也可以直接連接到stardictd端口來(lái)查詢單詞和進(jìn)行用戶設(shè)置等。一般的詞典網(wǎng)站是利用數(shù)據(jù)庫(kù)來(lái)提供查詢,但開(kāi)發(fā)專(zhuān)門(mén)的詞典數(shù)據(jù)服務(wù)端能更高效,查詢機(jī)制也可以更專(zhuān)業(yè)。目前stardictd在加載30G的詞典數(shù)據(jù)后也只需16M的內(nèi)存,而且運(yùn)行非常穩(wěn)定快速。網(wǎng)絡(luò)詞典星際譯王的在線詞典網(wǎng)站目前由stardictd詞典服127插件系統(tǒng)在軟件里增加插件系統(tǒng)能大大提高軟件的擴(kuò)展性和靈活性,使代碼更加模塊化,降低復(fù)雜性。一些不在核心但可以獨(dú)立的功能可以開(kāi)發(fā)為插件,這樣用戶可以選擇是否加載對(duì)應(yīng)插件來(lái)取舍這些功能。插件系統(tǒng)就是一個(gè)加載,管理,調(diào)用插件的復(fù)雜類(lèi),并設(shè)計(jì)了各種插件類(lèi)型和對(duì)應(yīng)的調(diào)用接口。在軟件里的合適位置再進(jìn)行調(diào)用。插件系統(tǒng)在軟件里增加插件系統(tǒng)能大大提高軟件的擴(kuò)展性和靈活性,128星際譯王的源碼星際譯王的源碼還是開(kāi)發(fā)得比較仔細(xì)嚴(yán)密,代碼質(zhì)量比較高,一直以來(lái)很少有bug。對(duì)于感興趣的同學(xué),可以下載研究閱讀一下其代碼,肯定會(huì)有不少收獲。因?yàn)檐浖乃性O(shè)計(jì)思想,技術(shù)精華等等都全部包含在源碼里了。星際譯王的源碼星際譯王的源碼還是開(kāi)發(fā)得比較仔細(xì)嚴(yán)密,代碼質(zhì)量129開(kāi)發(fā)歷史和經(jīng)歷星際譯王的源碼包里有一個(gè)ChangeLog文件,里面記錄了每個(gè)版本的修改歷程。開(kāi)發(fā)歷史和經(jīng)歷星際譯王的源碼包里有一個(gè)ChangeLog文件130大學(xué)時(shí)的開(kāi)發(fā)經(jīng)歷2003年3月,大二下學(xué)期,開(kāi)始星際譯王項(xiàng)目。大三上學(xué)期完善了StarDict,推出2.4.2版,星際譯王成為了一個(gè)完整的詞典軟件。然后休息了一年半,大四畢業(yè)時(shí)推出了2.4.5版。因?yàn)閷W(xué)分不夠,延期一年畢業(yè),因此多讀了一年,在上課之余主要開(kāi)發(fā)StarDict,每三個(gè)月出一個(gè)版本,2.4.6,2.4.7,最后畢業(yè)時(shí)推出了2.4.8版,一年里基本上就只做了這一件事,但為軟件的成熟打下了基礎(chǔ)。星際譯王作為一個(gè)本地的詞典軟件已經(jīng)很有競(jìng)爭(zhēng)力了。大學(xué)時(shí)的開(kāi)發(fā)經(jīng)歷2003年3月,大二下學(xué)期,開(kāi)始星際譯王項(xiàng)目131工作后的開(kāi)發(fā)在飛漫公司時(shí)利用業(yè)余時(shí)間開(kāi)發(fā)出了在線詞典網(wǎng)站和詞典服務(wù)端。到紅帽公司后,花半年時(shí)間開(kāi)發(fā)出了3.0.0版。主要是加了插件系統(tǒng)和網(wǎng)絡(luò)詞典,以及大量的修改和完善。之后又過(guò)了三個(gè)月,推出3.0.1版。這個(gè)版本加了語(yǔ)音朗讀,WordNet圖形化詞典等功能,以及bug修復(fù)等。工作后的開(kāi)發(fā)在飛漫公司時(shí)利用業(yè)余時(shí)間開(kāi)發(fā)出了在線詞典網(wǎng)站和詞132開(kāi)發(fā)軟件項(xiàng)目的工作量軟件的開(kāi)發(fā)需要耗費(fèi)非常多的時(shí)間和精力,因此一個(gè)簡(jiǎn)單的詞典軟件也需要近五年的時(shí)間,還好開(kāi)發(fā)好后可以全球幾百萬(wàn)人使用,這樣效益就可以體現(xiàn)出來(lái)了。8萬(wàn)行代碼,用A4的紙打印出來(lái),就是一千多頁(yè),這是非常厚的一本書(shū)了。而且是一行行寫(xiě)出來(lái)的,還得保證整體的嚴(yán)密統(tǒng)一,要求沒(méi)有任何邏輯錯(cuò)誤等等,不然就是Bug??梢?jiàn)其中要包含的心力是非常多的。收集的兩千多個(gè)詞典,也是一個(gè)個(gè)加起來(lái)的。一直不斷積累才可以達(dá)到這個(gè)數(shù)量,維護(hù)整理也是要花去很多時(shí)間。經(jīng)常要編寫(xiě)專(zhuān)門(mén)的轉(zhuǎn)換工具。這幾年回復(fù)處理的相關(guān)郵件有五六千封,平均每天都有好些封。3.0.1發(fā)布后,平時(shí)一打開(kāi)郵箱就是二十幾封新郵件待處理。付出就是回報(bào)!這個(gè)世界沒(méi)有不勞而獲,也沒(méi)有勞而無(wú)獲。其中有很多樂(lè)趣,也很有意義。經(jīng)歷了就不會(huì)覺(jué)得難,所以其實(shí)也不算什么:)開(kāi)發(fā)軟件項(xiàng)目的工作量軟件的開(kāi)發(fā)需要耗費(fèi)非常多的時(shí)間和精力,因133參與自由軟件能認(rèn)識(shí)很多朋友你會(huì)與很多國(guó)外的不認(rèn)識(shí)的朋友一起做事情和交流,增進(jìn)了大家的友誼,也擴(kuò)大了見(jiàn)識(shí)面。你會(huì)認(rèn)識(shí)很多大學(xué)里的Linux愛(ài)好者,因?yàn)長(zhǎng)inux崇尚的開(kāi)源共享和自由精神,大家都是很友善很好的人,相處會(huì)很愉快。可以進(jìn)入國(guó)內(nèi)的一些Linux圈子和參加聚會(huì)活動(dòng),讓生活更加豐富多彩。參與自由軟件能認(rèn)識(shí)很多朋友你會(huì)與很多國(guó)外的不認(rèn)識(shí)的朋友一起做134開(kāi)發(fā)的其他軟件reciteword-0.8.4,一個(gè)界面漂亮,功能強(qiáng)大的跨平臺(tái)的背單詞軟件。開(kāi)發(fā)的其他軟件reciteword-0.8.4,一個(gè)界面漂亮135開(kāi)發(fā)歷史和起因大一時(shí)為了背四級(jí)單詞,經(jīng)常要用一個(gè)叫《輕輕松松背單詞2》的軟件,可每次要背單詞都要重新啟動(dòng)進(jìn)windows實(shí)在是麻煩,而且對(duì)《輕輕松松背單詞2》的一些地方也不滿意,于是我就自己編了個(gè)軟件用,模仿了其主要功能,而且使用了她的圖片作為皮膚。前后花了一年時(shí)間?,F(xiàn)在已經(jīng)只維護(hù)了,但一直可用。前一陣推出了0.8.4維護(hù)版。覺(jué)得開(kāi)發(fā)背單詞,詞典這樣的軟件的一個(gè)好處就是一二十年后仍然會(huì)有人要使用,需求會(huì)很持久。這也是我做項(xiàng)目的一個(gè)主要考慮方面。開(kāi)發(fā)歷史和起因大一時(shí)為了背四級(jí)單詞,經(jīng)常要用一個(gè)叫《輕輕松松136選書(shū)選書(shū)137單詞初記-分組單詞初記-分組138單詞初記-瀏覽單詞初記-瀏覽139單詞初記-測(cè)試單詞初記-測(cè)試140強(qiáng)化復(fù)習(xí)-選組強(qiáng)化復(fù)習(xí)-選組141強(qiáng)化復(fù)習(xí)-測(cè)試強(qiáng)化復(fù)習(xí)-測(cè)試142強(qiáng)化復(fù)習(xí)-單詞再現(xiàn)強(qiáng)化復(fù)習(xí)-單詞再現(xiàn)143單詞打靶單詞打靶144打字神功打字神功145小詞典小詞典146另一套皮膚另一套皮膚147大二時(shí)日夜開(kāi)發(fā)ReciteWord那時(shí)經(jīng)常連續(xù)開(kāi)發(fā)兩三個(gè)月,有段時(shí)間每天凌晨三四點(diǎn)才睡,并因此得了闌尾炎,從此才學(xué)會(huì)再也不熬夜了,保持過(guò)有規(guī)律的生活!大二時(shí)日夜開(kāi)發(fā)ReciteWord那時(shí)經(jīng)常連續(xù)開(kāi)發(fā)兩三個(gè)月,148MyicqMyicq是一個(gè)類(lèi)似QQ的即時(shí)通訊軟件,張勇開(kāi)發(fā)了服務(wù)端和windows客戶端,我加入了這個(gè)項(xiàng)目,就先編了個(gè)gaim的插件,這樣就可以在linux下上myicq了.不過(guò)后來(lái)這個(gè)項(xiàng)目沒(méi)有發(fā)展成功,畢竟跟QQ,MSN競(jìng)爭(zhēng)還是很難。MyicqMyicq是一個(gè)類(lèi)似QQ的即時(shí)通訊軟件,張勇開(kāi)發(fā)了149友情強(qiáng)檔forlinux,一個(gè)記錄個(gè)人信息的軟件。高中時(shí)編的。我也是高中時(shí)接觸的Linux.友情強(qiáng)檔forlinux,一個(gè)記錄個(gè)人信息的軟件。高中時(shí)150BBS彩票系統(tǒng)BBS彩票系統(tǒng)151地圖瀏覽軟件地圖瀏覽軟件152手寫(xiě)輸入筆畫(huà)數(shù)據(jù)庫(kù)編輯軟件這個(gè)是用python編的。手寫(xiě)輸入筆畫(huà)數(shù)據(jù)庫(kù)編輯軟件這個(gè)是用python編的。153教學(xué)教學(xué)講解課件154如何訪問(wèn)我的主頁(yè)Baidu或者Google我的名字(胡正)就行了,第一個(gè)就是。歡迎大家留言!如何訪問(wèn)我的主頁(yè)Baidu或者Google我的名字(胡正)就155我的兩項(xiàng)技能:寫(xiě)書(shū)和寫(xiě)軟件大學(xué)時(shí)一直保持寫(xiě)隨筆。因?yàn)橛龅揭恍┥钪械闹卮髥?wèn)題,開(kāi)始研究哲學(xué),并因此寫(xiě)了很多思考筆記?,F(xiàn)在還是在繼續(xù)寫(xiě)一些文章。一般一兩個(gè)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度攝影師與攝影棚運(yùn)營(yíng)方居間合同2篇
- 二零二五版社區(qū)配送訂餐服務(wù)合同范本與社區(qū)管理協(xié)議3篇
- 二零二五年度酒店地毯綠色生產(chǎn)與環(huán)保認(rèn)證合同3篇
- 二零二五年新能源充電樁建設(shè)運(yùn)營(yíng)合同樣本3篇
- 二零二五版高端住宅項(xiàng)目全程代理銷(xiāo)售合同3篇
- 二零二五版基因合成與生物技術(shù)知識(shí)產(chǎn)權(quán)轉(zhuǎn)讓合同3篇
- 二零二五版10月大型設(shè)備運(yùn)輸委托合同2篇
- 二零二五版廣西事業(yè)單位聘用示范性合同模板12篇
- 2025年度出口貨物環(huán)保認(rèn)證服務(wù)合同3篇
- 二零二五年度膩?zhàn)硬牧蠂?guó)際貿(mào)易代理合同2篇
- 山東省濰坊市2024-2025學(xué)年高三上學(xué)期期末 地理試題(無(wú)答案)
- 勞動(dòng)法培訓(xùn)課件
- 2024年建筑施工安全工作計(jì)劃(3篇)
- 2024屆九省聯(lián)考英語(yǔ)試題(含答案解析、MP3及錄音稿)
- 倉(cāng)庫(kù)消防知識(shí)安全培訓(xùn)
- 從事專(zhuān)業(yè)與所學(xué)專(zhuān)業(yè)不一致專(zhuān)業(yè)技術(shù)人員申報(bào)職稱崗位任職合格證明附件6
- 我國(guó)房屋建筑模板技術(shù)的研究綜述
- 人教版小學(xué)三年級(jí)上冊(cè)數(shù)學(xué)豎式筆算練習(xí)題
- 航天科工集團(tuán)在線測(cè)評(píng)題
- 山東省濰坊新2025屆高三語(yǔ)文第一學(xué)期期末經(jīng)典試題含解析
- 醫(yī)院三基考核試題(康復(fù)理療科)
評(píng)論
0/150
提交評(píng)論