Linux系統(tǒng)中很多東西都是以腳本代碼、配置文件的形式存在,使用Linux系統(tǒng)時,需經(jīng)常對這些文件進(jìn)行編輯。很顯然,如果沒有文本編輯器,江湖之路寸步難行。
我的選擇是Vim。Vim是Linux系統(tǒng)上的最著名的文本/代碼編輯器,也是早年的Vi編輯器的加強(qiáng)版,被譽(yù)為文本/代碼編輯器之中最為優(yōu)秀經(jīng)典的上古神器。 它之所以會獲得如此美譽(yù),我想主要有以下原因:1.它古老而神秘,學(xué)習(xí)曲線陡峭,難以駕馭,但是一旦學(xué)會則受益匪淺。如今被看作是高手、Geek們專用的編輯器。所以盡管 Vim 已經(jīng)是古董級的軟件,但還是有無數(shù)新人迎著困難去學(xué)習(xí)使用。 2.輕便,無需多言,當(dāng)僅僅只需要對某一文本文件(比如腳本代碼、配置文件)進(jìn)行簡單的編輯的時候,所使用的工具當(dāng)然是越輕便越好。Vim同時也是閱讀文本文件的利器。 3.經(jīng)典巧妙的編輯方式及強(qiáng)大的功能。它全程使用鍵盤操作,用戶必須記住一堆快捷鍵、按鍵組合以及各種命令才能開始使用,一旦使用熟練則編輯效率遠(yuǎn)超其余編輯器,而且具有各種插件、語法高亮、代碼補(bǔ)全、配色方案等極其豐富的資源以及靈活的配置;
我主要在以下情況下使用Vim: 1.用來修改服務(wù)器系統(tǒng)的配置文件; 很多時候, Linux 作為服務(wù)器是不會開啟圖形界面的,當(dāng)需要遠(yuǎn)程操作時,只能利用 SSH “命令字符式”的 Shell 界面對其進(jìn)行操作,這種情況下,Vim自然是首選。 2.用來閱讀內(nèi)核源代碼和系統(tǒng)的腳本; 理由同上。 3.用來寫簡單的程序,一般都是單文件的程序,或多文件但是只有少數(shù)幾個文件的項目,比如學(xué)習(xí)一門編程語言的時候做練習(xí)題,喜歡看到文件夾內(nèi)干干凈凈,不喜歡一大堆類似.project的文件; 4.裝B,花花綠綠的全文本字符界面,很酷。
不適合Vim使用的場景: 1.大的編程項目,大的項目還是最好使用IDE,如果要遠(yuǎn)程連接沒有圖形界面的服務(wù)器寫大項目,最好還是在服務(wù)器上建立代碼倉庫;理由:VIM沒有好的項目管理功能,VIM的自動補(bǔ)全只建立在文本匹配上,沒有程序語言的語義分析功能。 2.對內(nèi)容的輸入要求不高,但是經(jīng)常需要設(shè)置顯示格式,且每個動作之間本身就有很多的停頓的工作,用其他GUI編輯器(如LibreOffice Writer)效率反而比VIM高。
有人說,Vim是“成也插件、敗也插件”。Vim靈活的配置和豐富的插件極大地增強(qiáng)了它的功能,但是也極大地增加了我們管理Vim的難度。首先,在使用Vim之前,必須經(jīng)過適當(dāng)?shù)呐渲?,而Vim的配置又極其繁瑣。所以網(wǎng)上有很多諸如“萬能配置”、“最強(qiáng)配置”的文章,這些都可以參考。但是這些文章中有些存在很多錯誤,甚至前后內(nèi)容重復(fù)、沖突,而且這些文章是“授人以魚,而不是授人以漁”,它們給出的配置雖然可以照抄,但是經(jīng)常會讓人不明所以。 Vim的插件豐富,在網(wǎng)上不乏使用各種插件將Vim配置成強(qiáng)大IDE的文章,但是Vim的插件管理非常困難,因為每安裝一個插件,都需要將該插件的文件分別放到Vim安裝路徑下的plugin、autoload、syntax、doc等目錄下。好在是Vundle橫空出世,它不僅解決了Vim插件在文件系 統(tǒng)中分散的問題,同時能夠自動搜索和下載插件。
安裝和配置Vim
使用Vim之前當(dāng)然需要先安裝,不過在Ubuntu中這都不算個事,一條 sudo aptitude install命令就可以搞定。由于Vundle搜索和下載插件需要git,所以需要同時安裝vim、gvim和git,如下:
sudo aptitude install vim sudo aptitude install gvim sudo aptitude install git
然后,在用戶的主目錄中建立 .vim 目錄,在 .vim 目錄中建立 bundle 目錄,以后Vundle自動下載的插件都保存在這里。然后,進(jìn)入 Bundle 目錄,使用 git clone 命令下載vundle。
下面開始展示我的配置文件(主目錄下的 .vimrc 文件)。我的配置不同于網(wǎng)上流傳的“萬能配置”、“最強(qiáng)配置”。我的配置是能夠達(dá)到我想要的效果的 “最簡單配置”。下圖是第1到17行,這里配置了Vundle,使用Vundle來管理插件。在網(wǎng)上的一些配置中,常把Vundle的配置放到配置文件的最后,這是不對的。Vundle的配置必須放到最前面。(如果不用Vundle,用Pathogen插件也一樣要把配置放到最前面。)這是因為,只有 Vundle插件運(yùn)行以后,Vim才會到 ~/.vim/bundle 目錄下加載其它的插件,如果Vundle沒有先運(yùn)行,Vim當(dāng)然找不到下載的插件了。
第18到44行,如下圖,這是在GVim中截的圖,順便展示一下GVim的效果:
第45到68行:
第69到86行:
從截圖中可以看出,我的配置文件很簡潔,并且將各種設(shè)置初略地分了類,并進(jìn)行了簡單的注釋。該配置文件只對Vim進(jìn)行最基本的設(shè)置,不包含任何鍵盤映射,也不包含任何腳本代碼。我把Vim和GVim使用了不同的配色方案,Vim使用經(jīng)典的desert,而GVim則是網(wǎng)上被眾多人推崇的solarized,而且該配色方案是使用Vundle自動下載的。
使用Vundle管理插件
Vundle可以自動下載和安裝插件,只需要在“My Bundles Here”注釋后面使用 Bundle 命令把所需要的插件列出來,每個插件一行,然后運(yùn)行 :BundleInstall 命令即可。Vundle支持 github.com 和Vim的官網(wǎng) vim.org 。前面的配置文件中,solarized配色方案就是Vundle從 github.com 上下載的插 件。下面,看看怎么從 vim.org 下載一個模擬黑客帝國的插件。如下圖,在 .vimrc 中增加一行配置:
保存該配置文件,并重新啟動Vim后,使用 :BundleInstall 命令,可以看到自動下載和安裝插件:
輸入 :Matrix 命令,可以看到如下效果:
當(dāng)然,該插件純屬娛樂。娛樂過后還是刪除掉比較好。要刪除一個插件,首先要從配置文件中將 Bundle 'matrix.vim--Yang' 這一行刪掉或注釋掉,如下圖:
然后保存配置文件,重新啟動Vim,運(yùn)行 :BundleClean 命令,如下圖,刪除一個插件后的效果:
怎么學(xué)習(xí)使用Vim
使用Vim之前必須得先做點功課,否則根本玩不轉(zhuǎn),Vim只會滴滴滴亂響,讓人一頭霧水。好在Vim有一個非常棒的幫助系統(tǒng),通過該幫助系統(tǒng), 可以非常方便地學(xué)習(xí)Vim。比如前面展示的配置文件,我并沒有做過多的解釋,因為如果想了解某條設(shè)置的作用,只需要 :help 一下即可。下面以 guioptions 設(shè)置為例,來了解該幫助系統(tǒng)的用法。從我的截圖中可以看到,我的GVim是去掉了工具欄、狀態(tài)欄、菜單、滾動條的,只保留了編輯界面,要達(dá)到該效果,需要使用 set guioptions=... 來設(shè)置。要想對 guioptions 有更深入的了解,可以使用 :help guioptions 命令,如下圖:
彈出的幫助文檔:
如果想對Vim進(jìn)行系統(tǒng)的學(xué)習(xí),可以使用不帶參數(shù)的 :help 命令,如下圖:
Vim的命令非常多,幾乎鍵盤上的每一個按鍵都有特定的用途,學(xué)習(xí)Vim的時候一定要做筆記哦。下面,我給大家分享一個Vim的鍵盤布局圖:
?。ㄔ搱D片非常大,可以保存下來觀看,或者在新的窗口中打開觀看。)
VIM的使用技巧,看這里http://vim.wikia.com/wiki/Vim_Tips_Wiki
使用Vim閱讀Linux內(nèi)核源代碼
實戰(zhàn)演示如何使用Vim閱讀Linux內(nèi)核源代碼。工欲善其事、必先利其器,所以在開始工作前需要先安裝合適的插件。我前面講到了使用 Vundle可以自動管理插件,但是沒有講到Vim中究竟有哪些插件可用??梢缘絍im的官網(wǎng)看看哪些插件的下載率比較靠前。地址這里:http://www.vim.org/scripts/script_search_results.php?order_by=downloads
上圖是排名前15名的插件的截圖。如果只是閱讀源代碼的話,我覺得taglist.vim和The NERD tree這兩個插件就夠了,The NERD tree是瀏覽目錄樹的利器,taglist.vim是瀏覽代碼的利器,可以非常方便地顯示源代碼中定義的各種類型、變量、函數(shù)等信息,也可以非常方便地在各個符號之間跳轉(zhuǎn)。taglist.vim必須配合tags文件使用,Linux的內(nèi)核源代碼是C語言的,可以使用 ctags 命令生成tags文件。如果是想把Vim打造成強(qiáng)勁的IDE,還需要別的功能,比如自動補(bǔ)全、自動生成代碼塊、自動注釋、自動Make、自動運(yùn)行/調(diào)試等,以后需要用到相關(guān)功能的時候我再介紹相應(yīng)的插件。在這里,只是Read Only,我覺得taglist.vim和The-NERD-tree足以。
首先,使用前文《玩轉(zhuǎn)Linux系統(tǒng)的方法論》中介紹的方法,找到Linux的內(nèi)核源代碼,并安裝:
然后找出它們都在文件系統(tǒng)的什么地方:
taglist.vim需要tags文件的支持,而tags文件需要使用tags命令生成,所以需要安裝exuberant-ctags,如下圖:
再然后,為Vim安裝插件。從下面的圖中可以看出,除了taglist.vim和The-NERD-tree,我還安裝了a.vim,該插件可以方便地實現(xiàn)在.c文件和.h文件之間跳轉(zhuǎn)。當(dāng)插件名稱中含有空格的時候,以“-”代替,如The NERD tree插件,在配置文件中需寫成“The-NERD-tree”。配置插件如下圖:
安裝插件如下圖:
再然后,進(jìn)入Linux內(nèi)核源代碼包的安裝目錄,解壓Linux內(nèi)核源代碼,并生成tags文件,如下圖:(這兩個步驟都需要有點耐心,因為解壓和生成tags這兩個操作都很花時間。)
閱讀代碼前,需要告訴Vim使用哪一個tags文件,在這里,就是剛剛使用 ctags 生成的文件,可以通過 :set tags=/usr/src/linux-source-3.13.0/tags 來設(shè)置。為了方便起見,我把該設(shè)置放到了 .vimrc配置文件中,如下圖:
最后,啟動Vim,找到相應(yīng)的代碼進(jìn)行瀏覽。如果編輯的是一個目錄的話(如下面的 :e . 命令,表示編輯當(dāng)前目錄),會自動跳出The-NERD-tree的界面,在目錄之間導(dǎo)航非常方便,如下圖:
這里以Linux內(nèi)核中紅黑樹的實現(xiàn)為例。使用The-NERD-tree定位到 lib 目錄下的 rbtree.c 文件,按Enter鍵即可打開代碼。輸入 :TlistToggle 命令可以打開Taglist窗口,如下圖:
在源文件中瀏覽時,使用Ctrl+]快捷鍵,可以非常方便地在符號的使用和定義之間跳轉(zhuǎn)。上面的截圖是將控制臺全屏后的效果,是不是很拉風(fēng)?
再看看在GVim中閱讀內(nèi)核代碼的效果:
上圖是將GVim窗口最大化后的效果,Solarized的深色主題和Ubuntu自己的紫色主題之間似乎不是很和諧,所以我在系統(tǒng)設(shè)置中將Ubuntu左側(cè)的launcher隱藏了。Ubuntu不僅可以隱藏左側(cè)的launcher,而且Gvim的菜單和系統(tǒng)的狀態(tài)欄合并到了一起,增加了工作區(qū)域,閱讀代碼那是非常舒服的。
關(guān)于The NERD tree和taglist.vim這兩個插件,如果想知道關(guān)于它們的更高級的用法的話,可以使用 :help NERD_tree.txt 和 :help taglist.txt 命令查看它們自己的幫助文檔,如下兩圖:
以上截圖全是圖形界面下的效果。如果在全字符界面下會是什么樣子的呢?
在CentOS 5.10的全字符界面下截圖。如果是默認(rèn)的80×25的字符界面,工作區(qū)域就太小了,經(jīng)常不能完整顯示一整行代碼。所以我開啟了Framebuffer, 在1024×768的分辨率下工作。下圖的配色方案為desert,background=dark的效果:
還是很漂亮的,不是嗎?這也是我曾經(jīng)最喜歡的工作環(huán)境。可是現(xiàn)在已經(jīng)很難再找到1024×768的4:3的顯示器了。對于現(xiàn)在的高清寬屏顯示器,點距太小,屏幕太大,眼睛就會很吃力。
下圖是使用solarized配色方案,background=dark時的效果:
對比度比desert要更強(qiáng)烈一些,也還過得去。
如果在solarized配色方案中設(shè)置background=light,則根本沒法看:
由此可見,solarized是一個專為GUI設(shè)計的配色方案。同一個配色方案,在圖形界面下和在字符界面下,其效果是不同的。
除了經(jīng)典的desert,還有一個經(jīng)典的配色方案,那就是evening,效果見下圖:
加入CTO俱樂部,與14000名+實名制、中高級技術(shù)管理者做朋友。 【官網(wǎng)申請】【上傳名片快捷加入】
CTO俱樂部 會員權(quán)益:技術(shù)交流、餐敘、個人主頁、CTO周刊、折扣優(yōu)惠、大會門票、人才招聘、每月贈書等 。
運(yùn)營和管理團(tuán)隊時,怎樣實現(xiàn)合理跟蹤工作內(nèi)容、實現(xiàn)良好協(xié)作流程至關(guān)重要。對于小團(tuán)隊來說,該如何選擇適合自己的團(tuán)隊管理協(xié)助工具?Redmine、Trello、JIRA等,類似的團(tuán)隊管理工具不少,都可實現(xiàn)團(tuán)隊事務(wù) 跟蹤、高效協(xié)作并快速處理任務(wù)開展討論等基本功能。本期討論圍繞團(tuán)隊管理工具展開,聊聊你所用過的管理工具。
工欲善其事,必先利其器
幸或不幸,從中華文化傳統(tǒng)看來,軟件開發(fā)都落在“工”這個領(lǐng)域;而從近代學(xué)科分類來看, 軟件開發(fā)也屬于“工程”這個領(lǐng)域(所謂的軟件工程學(xué)科)。無論傳統(tǒng)文化的經(jīng)驗說法“工 欲善其事,必先利其器”,還是從現(xiàn)代軟件工程學(xué)的理論,都強(qiáng)調(diào)工具在軟件開發(fā)中的重要 作用。同時,軟件項目涉及的技術(shù)越來越廣泛,需要多個開發(fā)人員同時參與。如同建筑學(xué)一 樣,軟件產(chǎn)品將美學(xué)、人文等要求提到了和功能性要求同等重要的地位,讓軟件開發(fā)不再只 是程序員的事情,而需多個工種協(xié)作來完成。
因此,對于一個軟件團(tuán)隊,當(dāng)從一個人參與變為多人協(xié)作,由一個工種變?yōu)槎喾脚浜希瑘F(tuán)隊 管理協(xié)作的“器”就變得可能比開發(fā)工具的“器”更重要了。基于此,我們軟件部門在工作 時,都在不斷嘗試不同的工具。分享一下其中的部分工具使用經(jīng)驗,供大家參考。
需求和文檔 管理類
Trello是一個輕量級的團(tuán)隊協(xié)作工作,形式靈活,操作比較簡便。其使用類似于在一個白板(Board)上把團(tuán)隊所要做的事情都列為ToDo、Doing、Done等列表形式來進(jìn)行典型的PDCA式 管理,并可對某一任務(wù)多人進(jìn)行跟帖式討論。當(dāng)然這些列表都可以自定義,所以也可以用 Trello來做任何類似于便簽式的管理。我們部分隊員就用它來做備忘錄,利用其做權(quán)限控制, 在團(tuán)隊間分享比如服務(wù)器IP、登錄賬號信息等。
項目和時間管理類
這兩個是使用較多的項目管理工具。Microsoft Project更多地用于項目經(jīng)理進(jìn)行任務(wù)拆分 (WBS),并在計算資源(包括人力)的分配和計算上功能更全,提供項目管理的視角更全; Redmine則適合在開發(fā)工作開始后整個團(tuán)隊自行進(jìn)行任務(wù)進(jìn)度管理和時間跟蹤。
當(dāng)開發(fā)人員面臨同時處在多個項目或項目管理人員有很多雜事時,時間往往會被碎片化。對 碎片化的時間,如果沒有一個良好的時間跟蹤管理工具,往往容易導(dǎo)致效率低下。同時,如 果開發(fā)人員遇到一個困難點花費(fèi)過多精力而負(fù)責(zé)人不能及時掌握并給予幫助,也會影響項目 進(jìn)度。Teamcola這個由國內(nèi)團(tuán)隊開發(fā)的時間管理工具,能較好地解決時間問題,而其管理粒 度為半小時,也不會過多增加管理成本。我們還定義了一個“雜項”事件(在半小時后做了 很多事情)。如果你有很多雜項,那么要不就是你是老板,要不就是你的時間管理有問題。
質(zhì)量管理和事務(wù)/Bug管理類
Redmine因其問題的字段齊全且可自定義字段,并可利用插件從csv文件中導(dǎo)入導(dǎo)出,同時 其Web訪問特性也很適合開發(fā)給用戶提交問題,所以是使用較多的Bug追蹤系統(tǒng)。當(dāng)然其完 全免費(fèi),也是一個重要考慮因素。
Git作為一個分布式代碼管理工具,當(dāng)我們經(jīng)常在家寫代碼,而公司的代碼服務(wù)器被配置為局 域網(wǎng)訪問,Git以其支持離線代碼管理的功能逐漸替代SVN成為團(tuán)隊的代碼管理工具。當(dāng)然眾 多開源項目從SoureForge搬家到GitHub,也是開發(fā)團(tuán)隊必須掌握Git這個代碼控制的一個重要 理由。另外,GitLab本身自帶簡單的問題跟蹤以及Wiki系統(tǒng),在小型項目可替代Redmine。
工為器所累
大家也看出來了,工具太多了!在我們的團(tuán)隊使用過程中,也發(fā)現(xiàn)了這個問題,有隊員表示 “每天處理事情的系統(tǒng)越來越多了”、“找個合體的吧”。工具太多,使用不當(dāng),工具的使用成 本可能大于其提升的效率。最大的問題是工具間太獨(dú)立,不具有單點登錄功能。想想開始工 作前,要在N個工具中輸入可能不同的賬戶名和密碼,就是一件頭疼的事。因此,目前這些工 具需要接入第三方且統(tǒng)一的用戶系統(tǒng)的功能。
器為工所用
不想為“器”所累,在實際工作中根據(jù)不同的 項目特性,推薦采用不同的工具和工作方式,取“器”之神而不在其形。 比如對小型移動App的開發(fā),功能需求單一,開發(fā)周期不長,維護(hù)周期也較短,采用Excel來 做WBS拆分和管理以及Bug跟蹤已經(jīng)足夠。另外,在需求溝通和Bug跟蹤時,往往需要用戶參與,而讓用戶去學(xué)習(xí)諸如Trello、Redmine顯然行不通。這時,我們會直接選用QQ來進(jìn)行需 求溝通。通常,我們會建立一個群(對長期的項目)或者一個討論組(對于短期項目),把相關(guān) 的人員都加入其中。QQ的即時信息、語音、截屏、文件傳送甚至遠(yuǎn)程桌面等功能,讓其在我 們的開發(fā)過程中成為一個重要的協(xié)調(diào)工具。
作者簡介:熊兵 摩博科技CTO
本文來自:《程序員》電子刊2014年第4期
The most popular front-end framework for developing responsive, mobile first projects on the web.
Updated 8 hours ago
Updated 4 days ago
Updated 6 hours ago
Updated 4 days ago
Updated 9 hours ago
Updated 6 hours ago
Updated 15 hours ago
Updated 18 days ago
Updated an hour ago
Updated 25 days ago
Rank | Language | # Repositories Created |
---|---|---|
1 | JavaScript | 264131 |
2 | Ruby | 218812 |
3 | Java | 157618 |
4 | PHP | 114384 |
5 | Python | 95002 |
2011年是云計算風(fēng)起云涌的一年,云計算在國內(nèi)開始走下云端,落地應(yīng)用。它會最終促使全球資源集中化,各種資源通過各種技術(shù)按照市場的規(guī)則被歸類集中起來,從而使得資源的利用效達(dá)到最大化。
云計算會引起人們思維方式發(fā)生很大的改變,讓我們學(xué)著從整體的角度來應(yīng)對各種問題,用均衡的思想去處理整個系統(tǒng)里局部之間的關(guān)系。它對現(xiàn)有的軟硬件廠商帶來全新的創(chuàng)業(yè)和創(chuàng)新機(jī)會,要想抓住云計算,就需要把產(chǎn)品功能不斷完善,去抓住云計算的機(jī)會。
云計算涉及的分布式、虛擬化和自動化管理等技術(shù)均不是新技術(shù),硬件方面也是大家所熟知的產(chǎn)品??梢哉f,云計算并不是技術(shù)的創(chuàng)新,而是讓老技術(shù)通過重新組合發(fā)揮出更大的商業(yè)價值,是一種商業(yè)模式的創(chuàng)新。它的市場規(guī)模巨大。以后軟件慢慢地將會以服務(wù)的形式來提供,服務(wù)將通過互聯(lián)網(wǎng)來實現(xiàn)。軟件是服務(wù)的載體,服務(wù)是軟件的表現(xiàn)形式,軟件和服務(wù)之間的邊界會慢慢變得模糊。云計算的興起使得傳統(tǒng)的軟件外包將發(fā)生變化,外包的重心將從流程轉(zhuǎn)向軟件服務(wù)。
云計算不僅影響著計算機(jī)技術(shù)的發(fā)展,還對IT專業(yè)人士的就業(yè)產(chǎn)生了重大影響。云計算會創(chuàng)造一些新的就業(yè)崗位,即便是所有的后臺管理和維護(hù)工作都交給了云供應(yīng)商,企業(yè)也需要對基礎(chǔ)設(shè)施建設(shè)有比較深刻的掌握和理解。云計算催生了對這方面人才需求的同時,作為IT技術(shù)人如何在這股大潮中脫穎而出? 如果想要在云計算開辟的新環(huán)境下獲得成功,技術(shù)人員需要多才多藝,而且精通各種技術(shù)。并且需要與其他非技術(shù)部門共事,需要每一個人都能身兼數(shù)職。
我們需要多學(xué)習(xí)分布式理論和工程實踐以及學(xué)習(xí)安全方面的知識和法規(guī),編寫軟件慢慢向服務(wù)轉(zhuǎn)變,能解決大規(guī)模并行計算、數(shù)據(jù)分布存儲、數(shù)據(jù)實時備份、應(yīng)用高度集成以及安全可靠和個性化應(yīng)用等問題。能將公司的內(nèi)部基礎(chǔ)實施和外部基礎(chǔ)設(shè)施相銜接的混合技術(shù)是很受青睞的。
在之前的PC時代和互聯(lián)網(wǎng)時代,人們都有一些顧慮,覺得智能化新技術(shù)的到來和采用將會導(dǎo)致就業(yè)人數(shù)急劇減少。
但實際上,無論是PC還是互聯(lián)網(wǎng)這樣新技術(shù)的到來,其實都對就業(yè)有極大的促進(jìn)作用,其中最明顯的例子,莫過于電子商務(wù)。雖然現(xiàn)在的電子商務(wù)對實際線下的消費(fèi)有所影響,但它本身所需的一整套產(chǎn)業(yè)鏈,從網(wǎng)站展示到支付和物流等都需要大量的從業(yè)人員,而且電子商務(wù)這種新模式也引起更多的消費(fèi)。而且以美國為例,現(xiàn)階段IT方面的就業(yè)情況和很多傳統(tǒng)行業(yè)相比,應(yīng)該光明很多。
首先,在我看來,新的技術(shù)將有力地促進(jìn)就業(yè):
其一,由于云計算技術(shù)到來,使得很多過去認(rèn)為很艱難的事情成為可能,比如海量數(shù)據(jù)分析、物聯(lián)網(wǎng)和移動互聯(lián)網(wǎng)等,而這些新的發(fā)展將會導(dǎo)致更多專業(yè)人士得到工作;
其二,新的大型云計算中心建設(shè)和云計算相關(guān)產(chǎn)業(yè)鏈將會產(chǎn)生越來越多新的職位,也需要更多的專業(yè)人士投入其中。
其次,我認(rèn)識云計算能使職業(yè)發(fā)展更專業(yè)化,也主要有下面這兩點:
其一,由于公有云的越來越常見,將會減少那些在低效率的企業(yè)內(nèi)部數(shù)據(jù)中心工作的系統(tǒng)管理人員,而在那些高效率的大型云計算中心則會增加一些系統(tǒng)管理員,而且這些系統(tǒng)管理員將會在大型云計算中心這樣的大舞臺得到更大的發(fā)揮和培養(yǎng),以及長期經(jīng)驗的積累;
其二,由于云計算將會提供諸如PaaS這樣高效率的開發(fā)模式,將使得很多企業(yè)的內(nèi)部IT人員將會慢慢地將更多關(guān)注力從技術(shù)轉(zhuǎn)向業(yè)務(wù)。這不僅能幫助這些IT人員得到更好的職業(yè)發(fā)展,而且將幫助企業(yè)的業(yè)務(wù)更好地與IT服務(wù)之間進(jìn)行嫁接。
最后,我想和大家說,不要懼怕新浪潮的到來。因為新浪潮并不使你過去的經(jīng)驗一文不值,而是去適應(yīng)這股新的浪潮,學(xué)習(xí)一些新的東西,并且在平時的實踐中進(jìn)行不斷的積累,從而形成自己的核心競爭力,比如,對技術(shù)或者業(yè)務(wù)深刻的理解,也可以是人脈等。
一、一個目標(biāo)
一艘沒有航行目標(biāo)的船,任何方向的風(fēng)都是逆風(fēng)
1、你為什么是窮人,第一點就是你沒有立下成為富人的目標(biāo)
2、你的人生核心目標(biāo)是什么?
杰出人士與平庸之輩的根本差別并不是天賦、機(jī)遇,而在于有無目標(biāo)。
3、起跑領(lǐng)先一步,人生領(lǐng)先一大步:成功從選定目標(biāo)開始
4、賈金斯式的人永遠(yuǎn)不會成功
為什么大多數(shù)人沒有成功?真正能完成自己計劃的人只有5%,大多數(shù)人不是將自己的目標(biāo)舍棄,就是淪為缺乏行動的空想
5、如果你想在35歲以前成功,你一定在25至30歲之間確立好你的人生目標(biāo)
6、每日、每月、每年都要問自己:我是否達(dá)到了自己定下的目標(biāo)
二、兩個成功基點
站好位置,調(diào)正心態(tài),努力沖刺,35歲以前成功
(一)人生定位
1、人怕入錯行:你的核心競爭力是什么?
2、成功者找方法,失敗者找借口
3、從三百六十行中選擇你的最愛
人人都可以創(chuàng)業(yè),但卻不是人人都能創(chuàng)業(yè)成功
4、尋找自己的黃金寶地
(二)永恒的真理:心態(tài)決定命運(yùn),35歲以前的心態(tài)決定你一生的命運(yùn)
1、不滿現(xiàn)狀的人才能成為富翁
2、敢于夢想,勇于夢想,這個世界永遠(yuǎn)屬于追夢的人
3、 35歲以前不要怕,35歲以后不要悔
4、出身貧民,并非一輩子是貧民,只要你永遠(yuǎn)保持那顆進(jìn)取的心。中國成功人士大多來自小地方
5、做一個積極的思維者
6、不要敗給悲觀的自己
有的人比你富有一千倍,他們也會比你聰明一千倍么?不會,他們只是年輕時心氣比你高一千倍。
人生的好多次失敗,最后并不是敗給別人,而是敗給了悲觀的自己。
7、成功者不過是爬起來比倒下去多一次
8、寧可去碰壁,也不要在家里面壁
克服你的失敗、消極的心態(tài)
(1)找個地方喝點酒
(2)找個迪廳跳跳舞
(3)找?guī)团笥奄┵┥?/span>
(4)積極行動起來
三:三大技巧
1、管理時間:你的時間在哪里,你的成就就在哪里。
把一小時看成60分鐘的人,比看作一小時的人多60倍
2、你不理財,財不理你
3、自我管理,游刃有余
(1)創(chuàng)業(yè)不怕本小,腦子一定要好
(2)可以開家特色店
(3)做別人不愿做的生意
四:四項安身立命的理念
35歲以前一定要形成個人風(fēng)格
1、做人優(yōu)于做事
做事失敗可以重來,做人失敗卻不能重來
(1)做人要講義氣
(2)永不氣餒
2、豁達(dá)的男人有財運(yùn),豁達(dá)的女人有幫夫運(yùn)
35歲以前搞定婚姻生活
3、忠誠的原則:35歲以前你還沒有建立起忠誠美譽(yù),這一缺點將要困擾你的一生
4、把小事做細(xì),但不要耍小聰明
中國人想做大事的人太多,而愿把小事做完美的人太少
五:五分運(yùn)氣
比爾·蓋茨說:人生是不公平的,習(xí)慣去接受它吧
1、人生的確有很多運(yùn)氣的成人:謀事在人,成事在天:中國的古訓(xùn)說明各占一半
2、機(jī)會時常意外地降臨,但屬于那些決不放棄的人
3、抓住人生的每一次機(jī)會
機(jī)會就像一只小鳥,如果你不抓住,它就會飛得無影無蹤
4、智者早一步,愚者晚一步
六:六項要求
1、智慧
(1)別人可你以拿走你的一切,但拿不走你的智慧
(2)巧妙運(yùn)用自己的智慧
(3)智者與愚者的區(qū)別
2、勇氣
(1)勇氣的力量有時會讓你成為“超人”
(2)敢于放棄,敢于“舍得”
3、培養(yǎng)自己的“領(lǐng)導(dǎo)才能、領(lǐng)袖氣質(zhì)”
(1)激情感染別人
(2)“三·七法則”實現(xiàn)領(lǐng)袖氣質(zhì)
(3)拍板決斷能力
(4)人格魅力
4、創(chuàng)造性:不要做循規(guī)蹈矩的人
25-35歲是人生最有創(chuàng)造性的階段,很多成功人士也都產(chǎn)生在這一階段
5、明智
(1)知道自己的長處、短處,定向聚焦
(2)盡量在自己的熟悉的領(lǐng)域努力
6、持之以恒的行動力:在你選定行業(yè)堅持十年,你一定會成為大贏家
七:七分學(xué)習(xí)
1、知識改變命運(yùn)
2、35歲以前學(xué)會你行業(yè)中必要的一切知識
a)每天淘汰你自己
b)在商言商
3、太相信的書人,只能成為打工仔
4、思考、實踐、再思考、再實踐
八.八分交際
朋友多了路好走
1、智商很重要,情商更重要:35歲以前建立起人際關(guān)系網(wǎng)
2、人脈即財脈:如何搞好人際關(guān)系
3、交友有原則
4、善于溝通:35歲以前要鍛煉出自己的演講才能
九:九分習(xí)慣
習(xí)慣的力量是驚人的,35歲以前養(yǎng)成的習(xí)慣決定著你的成功的大小
1、積極思維的好習(xí)慣
2、養(yǎng)成高效工作的好習(xí)慣
(1)辦公室
(2)生活可以不拘小節(jié),但要把工作做細(xì)
(3)學(xué)習(xí)聆聽,不打斷別人說話
3、養(yǎng)成鍛煉身體的好習(xí)慣
4、廣泛愛好的好習(xí)慣
5、快速行動的好習(xí)慣
十:十分自信
1、自信是成功的精神支柱
2、自信方能贏得別人的信任
3、把自信建立在創(chuàng)造價值的基礎(chǔ)上
4、如何建立自信
(1)為自己確立目標(biāo)
(2)發(fā)揮自己的長處
(3)做事要有計劃
(4)做事不拖拉
(5)輕易不要放棄
(6)學(xué)會自我激勵
(7)不要讓自己成為別人
十一: 11個需要避開的成功陷阱
1、只有功勞,沒有苦勞
2、不要“懷才不遇“,而要尋找機(jī)遇
3、不要想發(fā)橫財
4、不要為錢而工作,而讓錢為你工作
5、盲目跟風(fēng),人云亦云,人做我也做
6、小富即安,不思進(jìn)取,知足常樂
7、承認(rèn)錯誤而非掩飾錯誤
8、腳踏實地而非想入非非
9、野心太大而不是信心十足
10、反復(fù)跳槽不可取
11、眼高手低
12、不擇手段
十二:十二分努力
沒有人能隨隨便便成功
1、小不是成功,大不是成功,由小變大才是成功
2、中國社會進(jìn)入微利時代:巧干+敢干+實干=成功
3、努力嘗試就有成功的可能
4、做任何事情,盡最大努力
5、把事情當(dāng)成事業(yè)來做
6、我看打工者
7、祝你早日掘到第一桶金
http://yueguc.iteye.com/blog/806730
google對于所有的類和API,分為開放式和不開放式兩種。所謂的開放式就是javadoc所包含的,并不是java中有public和private,而是跟javadoc有關(guān)系,代碼沒有關(guān)系。
在開放式的類中增加了一個變量,而又沒隱藏,導(dǎo)致和原API的doc不一致造成的就會有錯。
通過提示,有2個方法可以解決 該問題:
1、將新增加的變量或方法加上"@hide" 的注釋,注意一點,加"@hide" 不是簡簡單單的/*@hide */就行了,標(biāo)準(zhǔn)的javadoc要這樣 /** */ 而且對于 format 變量 應(yīng)該加上 { },也就是/**{@hide}*/
2、如果想在生成的doc中增加該變量或方法的話,必須輸入:
make update-api
這樣的話,系統(tǒng) 自動 將新增加的API添加到current.xml中了。
五秒鐘什么概念!讓你瞬間打開世界上任何地點的主機(jī)的遠(yuǎn)程桌面。如果你用過VNC、teamview、微軟RDP(遠(yuǎn)程桌面)、logmein、QQ遠(yuǎn)程協(xié)助等等,你就知道五秒鐘意味著什么了,而且還是基于穿透內(nèi)網(wǎng)主機(jī)的遠(yuǎn)程桌面,對于圖度Talk來說哪些神馬遠(yuǎn)程桌面軟件都是浮云。廢話少說,先說下圖度Talk是啥東東….
圖度Talk是一個基于圖度在線工作管理系統(tǒng)上使用的一款I(lǐng)M聊天工具,遠(yuǎn)程協(xié)助采用了還未發(fā)布的向日葵3.0的急速遠(yuǎn)程桌面協(xié)議(www.sunlogin.com),通過遠(yuǎn)程協(xié)助幫助遠(yuǎn)端同事、朋友解決PC使用中所遇到的各類問題。
下載—圖度talk五秒鐘版(1.0正式版)地址http://www.tudu.com/tudutalk_1.0final.exe,各位千萬注意了,這個要配套圖度系統(tǒng)使用的,所有的賬戶都是由你自主建立的,完全你說了算。開通圖度系統(tǒng)可以到www.tudu.com申請開通,現(xiàn)在開通除了可以拿到一個很好的三級域名yourname.tudu.com域名,還將獲得18個用戶的圖度商業(yè)版的永久免費(fèi)使用權(quán)。
說了白說,無圖無真相,上圖。
安裝:沒什么好說,針對現(xiàn)在免費(fèi)軟件安裝包的特點,最大的優(yōu)點是純潔無暇,安裝過程中沒有任何地方忽悠你裝垃圾插件。這個logo采用四色,包含了三原色,代表了溝通和融合,比較貼切協(xié)同IM的定位。 內(nèi)容來自Linuxren.net
主界面:市面上大部分能找到的功能基本都有,換膚、透明層、簽名、自定義頭像、天氣預(yù)報等,幾個亮點支持多國語言(簡、繁、英)、顯示列表可以定義直板排列(gtalk樣式,我喜歡)或分組排列(QQ樣式),由于是協(xié)同工作用IM,可以自定義登錄頁面logo、查看組織構(gòu)架和相關(guān)的聯(lián)系人各類信息等。界面風(fēng)格你喜歡不喜歡,俺說了不算,俺的評價就是簡單實用而不失個性,布局結(jié)構(gòu)方面有自己獨(dú)特的地方,不會直接讓你聯(lián)想到某一款I(lǐng)M軟件。 內(nèi)容來自Linuxren.net
聊天窗口:聊天界面很簡單,沒有廣告,也沒有什么亂七八糟的東西,還集成了屏幕截圖和閃屏功能。采用了比較獨(dú)特的黏貼和堆疊技術(shù)(用過gtalk的人應(yīng)該了解),讓你有一種蓋樓的沖動,人足夠多的情況下可以自動蓋出n棟大樓,俺的分辨率高可以一次蓋出35層的樓,通過樓房跟人聊天很醒目快捷。另外每天讀下簽名也是我工作中的一大快樂。
聊天和遠(yuǎn)程協(xié)助:遠(yuǎn)程協(xié)助想必搞IT的兄弟都用過某軟件集成的遠(yuǎn)程協(xié)助,其中的辛酸俺就不多說了。我只能說圖度Talk的遠(yuǎn)程協(xié)助絕對不一般,強(qiáng)大的工具欄支持鍵盤快捷、色彩調(diào)整、分辨率調(diào)整、遠(yuǎn)程白板、粘貼板同步等功能。完全支持內(nèi)網(wǎng)穿透,打開遠(yuǎn)程的屏幕的速度兩個字—秒殺街邊的各類遠(yuǎn)程桌面軟件,圖度Talk首個嵌入了向日葵遠(yuǎn)控3.0遠(yuǎn)程桌面加速技術(shù)(要知道3.0還沒有發(fā)布呢)。
圖度Talk 1.0正式版更新說明:
1. 開啟遠(yuǎn)程協(xié)助按鈕; 內(nèi)容來自Linuxren.net
2. 支持向日葵3.0版急速遠(yuǎn)程桌面協(xié)議;
3. 支持64位windows系統(tǒng)虛擬顯卡驅(qū)動; copyright Linuxren.net
4. 支持自定義分組和聯(lián)系人拖拉;
5. 支持超長簽名名片顯示;
下載—圖度talk五秒鐘版(1.0正式版)地址http://www.tudu.com/tudutalk_1.0final.exe,各位千萬注意了,這個要配套圖度系統(tǒng)使用的,所有的賬戶都是由你自主建立的,你說了算。開通圖度系統(tǒng)可以到www.tudu.com申請開通,現(xiàn)在開通除了可以拿到一個很好的三級域名yourname.tudu.com域名,還將獲得18個用戶的圖度商業(yè)版的永久免費(fèi)使用權(quán)。
新聞來源:未知
PMD是一款采用BSD協(xié)議發(fā)布的Java程序代碼檢查工具。該工具可以做到檢查Java代碼中是否含有未使用的變量、是否含有空的抓取塊、是否含有不必要的對象等。該軟件功能強(qiáng)大,掃描效率高,是Java程序員debug的好幫手。
它可以為您檢查Java代碼中存在的如下問題:
1、隱藏的bug,例如空的try catch,switch
2、未調(diào)用的代碼,例如沒有使用的局部變量、參數(shù)和私有方法
3、未優(yōu)化的代碼,例如String的不正確使用
4、過于復(fù)雜的表達(dá)式,沒有必要的表達(dá)式循環(huán),判斷
5、重復(fù)代碼
PMD支持的編輯器包括:
JDeveloper、Eclipse、JEdit、JBuilder、BlueJ、CodeGuide、NetBeans/Sun Java Studio Enterprise/Creator、IntelliJ IDEA、TextPad、Maven、Ant,、Gel、JCreator和Emacs。
此次版本的主要變化:
1、修復(fù)了已有規(guī)則的一些bug
2、修改了 CPD 算法
3、JSP/JSF 解析器支持 Unicode
4、可處理 標(biāo)簽;
5、AST HtmlScript 節(jié)點包含內(nèi)容,支持 Ecmascript 等等
在 使用Ubuntu之前,相信很多人都有過使用Windows系統(tǒng)的經(jīng)歷。如果你備份過Windows系統(tǒng),那么你一定記憶猶新:首先需要找到一個備份工 具(通常都是私有軟件),然后重啟電腦進(jìn)入備份工具提供的軟件環(huán)境,在這里備份或者恢復(fù)Windows系統(tǒng)。Norton Ghost是備份Windows系統(tǒng)時經(jīng)常使用的備份工具。
在備份Windows系統(tǒng)的時候你可能想過,我能不能把整個C盤都放到一個ZIP文件里去呢。這在Windows下是不可能的,因為在Windows中有很多文件在它們運(yùn)行時是不允許拷貝或覆蓋的,因此你需要專門的備份工具對Windows系統(tǒng)進(jìn)行特殊處理。
和 備份Windows系統(tǒng)不同,如果你要備份Ubuntu系統(tǒng)(或者其它任何Linux系統(tǒng)),你不再需要像Ghost這類備份工具。事實上,Ghost 這類備份工具對于Linux文件系統(tǒng)的支持很糟糕,例如一些Ghost版本只能完善地支持Ext2文件系統(tǒng),如果你用它來備份Ext3文件系統(tǒng),你可能會 丟失一些寶貴的數(shù)據(jù)。
1. 備份系統(tǒng)
我該如何備份我的Ubuntu系統(tǒng)呢?很簡單,就像你備份或壓縮其它東西一樣,使用TAR。和Windows不同,Linux不會限制root訪問任何東西,你可以把分區(qū)上的所有東西都扔到一個TAR文件里去!
首先成為root用戶:
$ sudo su
然后進(jìn)入文件系統(tǒng)的根目錄(當(dāng)然,如果你不想備份整個文件系統(tǒng),你也可以進(jìn)入你想要備份的目錄,包括遠(yuǎn)程目錄或者移動硬盤上的目錄):
# cd /
下面是我用來備份系統(tǒng)的完整命令:
# tar cvpzf backup.tgz –exclude=/proc –exclude=/lost+found –exclude=/backup.tgz –exclude=/mnt –exclude=/sys /
讓我們來簡單看一下這個命令:
“tar”當(dāng)然就是我們備份系統(tǒng)所使用的程序了。
“cvpfz”是tar的選項,意思是“創(chuàng)建檔案文件”、“保持權(quán)限”(保留所有東西原來的權(quán)限)、“使用gzip來減小文件尺寸”。
“backup.gz”是我們將要得到的檔案文件的文件名。
“/”是我們要備份的目錄,在這里是整個文件系統(tǒng)。
在 檔案文件名“backup.gz”和要備份的目錄名“/”之間給出了備份時必須排除在外的目錄。有些目錄是無用的,例如“/proc”、“/lost+ found”、“/sys”。當(dāng)然,“backup.gz”這個檔案文件本身必須排除在外,否則你可能會得到一些超出常理的結(jié)果。如果不把“/mnt”排 除在外,那么掛載在“/mnt”上的其它分區(qū)也會被備份。另外需要確認(rèn)一下“/media”上沒有掛載任何東西(例如光盤、移動硬盤),如果有掛載東西, 必須把“/media”也排除在外。
有人可能會建議你把“/dev”目錄排除在外,但是我認(rèn)為這樣做很不妥,具體原因這里就不討論了。
執(zhí)行備份命令之前請再確認(rèn)一下你所鍵入的命令是不是你想要的。執(zhí)行備份命令可能需要一段不短的時間。
備份完成后,在文件系統(tǒng)的根目錄將生成一個名為“backup.tgz”的文件,它的尺寸有可能非常大?,F(xiàn)在你可以把它燒錄到DVD上或者放到你認(rèn)為安全的地方去。
在備份命令結(jié)束時你可能會看到這樣一個提示:’tar: Error exit delayed from previous errors’,多數(shù)情況下你可以忽略它。
你還可以用Bzip2來壓縮文件,Bzip2比gzip的壓縮率高,但是速度慢一些。如果壓縮率對你來說很重要,那么你應(yīng)該使用Bzip2,用“j”代替命令中的“z”,并且給檔案文件一個正確的擴(kuò)展名“bz2”。完整的命令如下:
# tar cvpjf backup.tar.bz2 –exclude=/proc –exclude=/lost+found –exclude=/backup.tar.bz2 –exclude=/mnt –exclude=/sys /
2. 恢復(fù)系統(tǒng)
在進(jìn)行恢復(fù)系統(tǒng)的操作時一定要小心!如果你不清楚自己在做什么,那么你有可能把重要的數(shù)據(jù)弄丟,請務(wù)必小心!
接著上面的例子。切換到root用戶,并把文件“backup.tgz”拷貝到分區(qū)的根目錄下。
在 Linux中有一件很美妙的事情,就是你可以在一個運(yùn)行的系統(tǒng)中恢復(fù)系統(tǒng),而不需要用boot-cd來專門引導(dǎo)。當(dāng)然,如果你的系統(tǒng)已經(jīng)掛掉不能啟動了, 你可以用Live CD來啟動,效果是一樣的。你還可以用一個命令把Linux系統(tǒng)中的所有文件干掉,當(dāng)然在這里我不打算給出這個命令!
使用下面的命令來恢復(fù)系統(tǒng):
# tar xvpfz backup.tgz -C /
如果你的檔案文件是使用Bzip2壓縮的,應(yīng)該用:
# tar xvpfj backup.tar.bz2 -C /
注意:上面的命令會用檔案文件中的文件覆蓋分區(qū)上的所有文件。
執(zhí)行恢復(fù)命令之前請再確認(rèn)一下你所鍵入的命令是不是你想要的,執(zhí)行恢復(fù)命令可能需要一段不短的時間。
恢復(fù)命令結(jié)束時,你的工作還沒完成,別忘了重新創(chuàng)建那些在備份時被排除在外的目錄:
# mkdir proc
# mkdir lost+found
# mkdir mnt
# mkdir sys
等等
當(dāng)你重啟電腦,你會發(fā)現(xiàn)一切東西恢復(fù)到你創(chuàng)建備份時的樣子了!
世界上沒有絕對安全的系統(tǒng)。如果想獲得絕對安全的系統(tǒng),只有不連接網(wǎng)絡(luò),不讓管理員之外的人使用,刷卡管制人員進(jìn)出,使用監(jiān)視器監(jiān)視錄像,甚至于不 要開機(jī)。但是這是完全不切實際的,我們僅能寄望盡量讓系統(tǒng)能在承擔(dān)低風(fēng)險的情況下工作,因為任何操作系統(tǒng)都不可能毫無漏洞。那么怎樣才能讓系統(tǒng)承擔(dān)最低的 風(fēng)險呢?回答因該是在保障系統(tǒng)盡量安全的基礎(chǔ)上,做好各個系統(tǒng)上的數(shù)據(jù)備份工作。一旦系統(tǒng)遭受到毀滅性的打擊,可將平時做好的備份數(shù)據(jù)及時恢復(fù),這樣才能 使被破壞的系統(tǒng)迅速恢復(fù)正常,以避免不必要的損失。
下面針對Linux操作系統(tǒng)上的數(shù)據(jù)備份方法發(fā)表一下自己的看法。
數(shù)據(jù)備份種類
總的來說,在Linux操作系統(tǒng)中將備份分為兩類:系統(tǒng)備份,實現(xiàn)對操作系統(tǒng)和應(yīng)用程序的備份;用戶備份,實現(xiàn)對用戶文件的備份。在下面我們會看到,系統(tǒng)備份和用戶備份是不同的。
系統(tǒng)備份
系統(tǒng)備份就是對操作系統(tǒng)和應(yīng)用程序的備份,進(jìn)行系統(tǒng)備份的原因是盡量在系統(tǒng)崩潰以后能快速簡單完全地恢復(fù)系統(tǒng)的運(yùn)行。進(jìn)行備份的最有效方法是僅僅備份那些對于系統(tǒng)崩潰后恢復(fù)所必需的數(shù)據(jù)。
Linux系統(tǒng)中很多重要的文件位于/etc目錄之下,如:
/etc/group : 組用戶信息;
/etc/passwd : 包含所有的用戶信息,如密碼,登錄shell等;
/etc/fstab : 配置系統(tǒng)有哪些文件系統(tǒng);
/etc/inittab : 配置init在不同運(yùn)行級別下分別如何啟動系統(tǒng);
/etc/hosts : 域名解析的配置信息;
/etc/inetd.conf : 進(jìn)程控制信息;
/etc/printcap:配置如何與打印機(jī)通信;
/etc/XF86Config:包含XFree86的初始配置;
上面這些重要的配置文件都需要定期的做備份。
不 同的系統(tǒng)可能有很多重要配置文件,可以看到/etc目錄下的配置文件非常重要。當(dāng)然,某些程序使用了其他目錄下的一些文件,但是Linux的基本配置文件 絕大多數(shù)都位于/etc目錄下。很多人曾經(jīng)花費(fèi)了好長時間才正確的配置了XF86Config文件,想到如果重新再做一遍,就很費(fèi)時費(fèi)力。再舉個例子, /etc目錄下的passwd文件,如果誤操作,將此文件更改,或刪除了,則整個系統(tǒng)用戶無法正常登錄,如果定期或及時的對其備份,遇到上面的情況后,就 可以非常快速的恢復(fù)。
如果修改了某個程序所使用的配置文件,一般不能將其搬移到其它的地方,因為程序通常在固定的地方尋找配置文件。因此記錄對系統(tǒng)所做的修改也非常重要,無論所做的修改如何小,當(dāng)系統(tǒng)崩潰時才能輕松的恢復(fù)系統(tǒng)。
用戶備份
用戶備份不同于系統(tǒng)備份,因為用戶的數(shù)據(jù)變動更加頻繁一些。當(dāng)備份用戶數(shù)據(jù)時,只是為用戶提供一個虛擬的安全網(wǎng)絡(luò)空間,合理的放置最近用戶數(shù)據(jù)文件的備份,當(dāng)出現(xiàn)任何問題,例如,誤刪除某些文件或者硬盤發(fā)生故障時,用戶可以恢復(fù)自己的數(shù)據(jù)。
用戶備份應(yīng)該比系統(tǒng)備份更加頻繁,也許每天都需要進(jìn)行備份,或使用cron程序自動定期運(yùn)行某個程序的方法來備份數(shù)據(jù)。
數(shù)據(jù)備份策略
不 管系統(tǒng)多么可靠,總會發(fā)生一些意想不到的事情,致使系統(tǒng)數(shù)據(jù)丟失。因此使用備份來保護(hù)數(shù)據(jù)不丟失是一種非常重要的手段,尤其在系統(tǒng)數(shù)據(jù)非常重要的時候。經(jīng) 常進(jìn)行數(shù)據(jù)備份能夠減少偶然破壞造成的損失,保證系統(tǒng)能夠從錯誤中恢復(fù)正常運(yùn)行。備份不應(yīng)該成為一個長時間痛苦的事情,但它是作為系統(tǒng)管理必不可少的工 作,在著手之前進(jìn)行詳細(xì)的考慮和計劃是應(yīng)該的。
在進(jìn)行備份之前,首先要選擇合適的備份策略,這將決定何時需要備份,以及出現(xiàn)故障時進(jìn)行恢復(fù)的方式。通常使用的備份方式有三種:
完全備份: 每隔一定時間就對系統(tǒng)進(jìn)行一次全面的備份,這樣在備份間隔期間出現(xiàn)數(shù)據(jù)丟失等問題,可以使用上一次的備份數(shù)據(jù)恢復(fù)到前次備份時數(shù)據(jù)狀況。這是最基本的備份 方式,但是每次都需要備份所有的數(shù)據(jù),并且每次備份的工作量也很大,需要大量的備份介質(zhì),因此這種備份不能進(jìn)行的太頻繁,只能每隔一段較長時間才進(jìn)行一次 完整的備份。但是這樣一旦發(fā)生數(shù)據(jù)丟失,只能恢復(fù)到上次備份的數(shù)據(jù),這期間內(nèi)更新的數(shù)據(jù)就有可能丟失。
增量備份: 首先進(jìn)行一次完全備份,然后每隔一個較短時間進(jìn)行一次備份,但僅僅備份在這個期間更改的內(nèi)容。當(dāng)經(jīng)過一個較長的時間后再重新進(jìn)行一次完全備份,開始前面的 循環(huán)過程。由于只有每個備份周期進(jìn)行一次完全備份,其他只進(jìn)行更新數(shù)據(jù)的備份,因此工作量小,可以進(jìn)行頻繁的備份。例如以一個月為一個周期,一個月進(jìn)行一 次完全備份,每天晚上0點進(jìn)行這一天改變的數(shù)據(jù)備份。這樣一旦發(fā)生數(shù)據(jù)丟失,首先恢復(fù)到前一個完全備份,然后按日期一個一個恢復(fù)每天的備份,就能恢復(fù)到前 一天的情況。這種備份方法比較經(jīng)濟(jì)。
累計備份:這種備份方法與增量備份相似,首先每月進(jìn)行一次完全備 份,然后每天進(jìn)行一次更新數(shù)據(jù)的備份。但不同在于,增量備份是備份該天更改的數(shù)據(jù),而累計備份是備份從上次進(jìn)行完全備份后更改的全部數(shù)據(jù)文件。一旦發(fā)生數(shù) 據(jù)丟失,可以使用前一個完全備份恢復(fù)到前一個月的狀態(tài),再使用前一個累計備份恢復(fù)到前一天的情況。這樣做的缺點是每次做累計備份工作的任務(wù)比增量備份的工 作量要大,但好處在于,增量備份每天都備份,因此要保存數(shù)據(jù)備份數(shù)量太多,而累計備份則不然,只需保存一個完全備份和一個累計備份就可以恢復(fù)故障以前的狀 態(tài)。另外在進(jìn)行恢復(fù)工作時,增量備份要順序進(jìn)行多次備份的恢復(fù),而累計備份只需兩次恢復(fù),因此它的恢復(fù)工作相對簡單。
增量備份和累計備份 都能以比較經(jīng)濟(jì)的方式對系統(tǒng)進(jìn)行備份,在這些不同的策略之間進(jìn)行選擇不但與系統(tǒng)數(shù)據(jù)更新的方式相關(guān),也依賴于管理員的習(xí)慣。通常在系統(tǒng)數(shù)據(jù)更新不是太頻繁 的話,可以選用更新備份的方式。但是如果系統(tǒng)數(shù)據(jù)更新太快,使每個備份周期后的幾次累計備份的數(shù)據(jù)量相當(dāng)大。這時候可以考慮增量備份或混用累計備份和增量 備份的方式,或者縮短備份周期。
數(shù)據(jù)備份命令
在Linux系統(tǒng)中常用的備份命令通常有下面幾種:
1.使用tar命令
Linux的實用程序tar最初是為了制作磁帶存檔而設(shè)計的(把文件和目錄復(fù)制到磁帶中,然后從存檔中提取或恢復(fù)文件),而現(xiàn)在的應(yīng)用中可以把它用于任何設(shè)備,它是數(shù)據(jù)備份中最常用的命令之一。
下面具體介紹tar命令的使用方法:
(1)格式:tar 參數(shù) ......
(2)參數(shù):
c: 創(chuàng)建備份(Create)
v: 表示回顯模式(Verbose),將產(chǎn)生一系列備份的文件列表
f: 指定使用的備份文件,它后面的參數(shù)為輸出的備份文件名
x: 展開備份文件
t: 顯示備份文件的內(nèi)容
T: 后面跟隨一個文件參數(shù),指定從這個文件中讀取要備份的各個文件的路徑。如果不使用T參數(shù),那么就需要一個參數(shù),指明進(jìn)行備份文件和目錄的路徑
Z: 使用壓縮方式創(chuàng)建和解開備份文件,這是GNU的新版tar的功能,需要同時安裝gzip。
例如:
$ tar cvf backup.tar /etc
上 面的命令將/etc下的所有文件打包成tar存檔文件backup.tar。tar的第一個參數(shù)“cvf”,是tar的命令參數(shù),“c”告訴tar創(chuàng)建一 個存檔文件;“v”選項迫使tar采用冗長模式,即在存檔時打印每個文件名;“f”選項告訴tar下一個參數(shù)backup.tar是創(chuàng)建的存檔文件名。
下面一行的命令將tar文件backup.tar解開并放到當(dāng)前工作目錄下。必須說明的是這樣做是有危險的,因為在從tar文件中解開文件時,舊文件將被覆蓋。
$ tar xvf backup.tar
在解開tar文件之前,知道在何處打開文件是非常重要的。例如,假設(shè)存檔以下文件:/etc/hosts,/etc/group和/etc/passwd。如果用下述命令:
$ tar cvf backup.tar /etc/hosts /etc/group /etc/passwd
目錄/etc會被加到每個文件名前。為了將文件展開到正確位置,需要用下述命令:
$ cd /
$ tar xvf backup.tar
這是因為文件從存檔文件中抽取出路徑名,如果用下述命令存檔文件:
$ cd /etc
$ tar cvf hosts group passwd
這樣目錄名就不存在存檔文件中,因此需要在展開文件之前用“cd /etc”命令進(jìn)入目錄etc。由此可見,tar文件的創(chuàng)建方式與在何處展開有很大關(guān)系。
命令:
$ tar tvf backup.tar
在解開tar文件之前顯示tar文件的索引,用這種方式可以看到存檔文件中與文件名有關(guān)的目錄名,從而在正確位置上展開存檔文件。
2.gzip和compress 命令
與MS-DOS的存檔程序不同, tar在存檔過程中并不壓縮文件。因此,如果存儲兩個1MB的文件,那么tar文件大小為2MB,gzip命令用來壓縮文件(被壓縮的文件并不需要是tar格式)。
例如:
$ gzip -9 backup.tar
壓縮backup.tar文件,產(chǎn)生的文件為backup.tar.gz,開關(guān)“-9”告訴gzip用最高的壓縮比。gunzip命令用來解開一個gzip壓縮的文件,用“gzip -d”也可以達(dá)到同樣效果。
例如:
$ gunzip backup.tar.gz
$ gzip -d backup.tar.gz
3. 聯(lián)合使用
介紹了這些命令之后,我們來嘗試組合使用這些命令。為了壓縮存儲一組文件,可以用下述命令:
$ tar cvf backup.tar /etc
$ gzip -9 backup.tar
結(jié)果是形成文件backup.tar.gz。展開該文件時,用相反的命令:
$ gunzip backup.tar.gz
$ tar xvf backup.tar
tar命令還包括“z”選擇項,它會自動采用gzip壓縮算法來聯(lián)機(jī)壓縮/解壓文件。例如,下列命令:
$ tar cvfz backup.tar.gz /etc
上面一行的命令等價于:
$ tar cvf backup.tar /etc
$ gzip backup.tar
而命令:
$ tar xvfz backup.tar.Z
可以用來代替下述命令:
$ uncompress backup.tar.Z
$ tar xvf backup.tar
案例實驗
案例:使用tar進(jìn)行備份。
選定了備份方式之后,可以使用tar、cpio、dump等備份工具軟件將數(shù)據(jù)備份到磁帶上。對于一般的備份,使用tar就足夠了。tar能夠創(chuàng)建備份文檔,能夠備份到磁帶上或者產(chǎn)生一個文件,如:
$ tar cvf root.tar /root
將/root目錄下的所有文檔備份到root.tar文件中,root.tar為指定輸出的備份文件,/roo t指出要做備份的目錄。如果要備份到磁帶上,將輸出的備份文件指定為磁帶設(shè)備文件即可:
$ tar cvf /dev/rmt/0h /root
如果設(shè)置了環(huán)境變量TAPE,則可以不使用選項“f”指定輸出磁帶設(shè)備名字:
$ TAPE=/dev/rmt/0h; export TAPE
$ tar cv /root
要進(jìn)行增量備份,必須找出哪些文件在這個期間進(jìn)行更新。這個任務(wù)可以由命令find來完成,例如查找過去七天更改的文件,并使用tar的“-T”參數(shù)制定進(jìn)行備份的文件,命令如下:
$ find / -mtime -7 -print > /tmp/filelist
$ tar -c -T /tmp/filelist -f /dev/rmt/0h
由 于要使用find來找出需要備份的文件列表,那么就需要利用文件的修改時間進(jìn)行查詢,需要使用“-mtime” 參數(shù)。另一個更有用的參數(shù)是“-newer”,可以查找出所有比某個文件更新的文件,由于備份是周期進(jìn)行的,因此可以在完全備份之后生成一個標(biāo)記文件,那 么所有比這個文件新的文件都需要進(jìn)行更新備份。
$ find / -newer full_back_tag_file -print > /tmp /filelist
進(jìn) 行數(shù)據(jù)備份需要定期執(zhí)行,不能完全依賴于管理員手工進(jìn)行備份。備份也應(yīng)該選擇在系統(tǒng)比較空閑時進(jìn)行,以免影響系統(tǒng)的正常處理任務(wù)。通常可以選擇半夜 0:00點之后進(jìn)行備份,這樣更不能將這個任務(wù)由管理員手工完成了。但Linux提供了定時服務(wù)cron程序,能夠在確定的時間中執(zhí)行一系列任務(wù),因此數(shù) 據(jù)備份必須和cron合作來完成,或者使用/etc下的daily,weekly,monthly文件做定時備份的操作。
昨天一同學(xué)問我,如何快速的學(xué)習(xí)Android應(yīng)用程序開發(fā)? 之前的一位同事也問過我,我也只是大概的說說看哪些資料。為避免更多的人問我,所以有必要寫寫。
1. 開發(fā)環(huán)境搭建。自行Google。英文好的,看官方網(wǎng) http://developer.android.com/ 訪問不了的,可以訪問它的鏡像 http://androidappdocs.appspot.com/index.html
2. 在模擬器上運(yùn)行 ApiDemos,全部點一遍,看看Android都提供了些什么界面效果,心里有個印象。最好把ApiDemos的代碼,看它個兩三遍。我到過深圳南山 書城,看了好幾本國內(nèi)出的Android書籍,一本書都沒翻多久,就看完了,沒啥看頭,因為大部分內(nèi)容ApiDemos都有了呀。
3. Java的學(xué)習(xí)。
Android應(yīng)用程序是用Java寫的,像我這樣從C/C++陣營過來的,開始真的很抵觸?!禩hinking in Java》 ??? No! 沒時間玩這東西,當(dāng)做參考書還行,不懂就翻翻。寶島臺灣的林信良老師寫的《Java學(xué)習(xí)筆記》,還不錯。
http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/JavaGossip.htm
http://caterpillar.onlyfun.net/Gossip/JavaGossip-V2/JavaGossip2.htm
大約花一個禮拜的晚上時間學(xué)習(xí),基本夠用。
4. 學(xué)習(xí)資料
(1) 網(wǎng)站
官網(wǎng) developer.android.com,英文差的同學(xué),也要硬著頭皮看,在網(wǎng)上搜來搜去,其實大部分東西都是從這拷貝過去的,從而浪費(fèi)了大把的時間。國內(nèi)的android論壇,好像就javaeye文章質(zhì)量高一點,其他的不知道。我一直上國外的 http://www.anddev.org/ 它有兩個版面 Novice Tutorials和Code Snippets for Android,有教程,可以下載代碼編譯運(yùn)行,初學(xué)者最喜歡這樣的了。不像一些網(wǎng)站,下載代碼還要扣積分等其他7788的,一看就沒什么好感。
(2) 書籍
就只推薦三本,其他的沒看過,不好評論。
Mark L. Murphy: 《The Busy Coder’s Guide to Android Development》
Chris Haseman:《Android Essentials》
高煥堂:《Android 應(yīng)用框架原理與程式設(shè)計36 技》
初學(xué)者最好不要第一本書就看高的書,因為一些東西他講起來莫名其妙,搞復(fù)雜了,一看developer.android.com英文原版的資料,噢!英文描述這么簡單啊。
(3) Blogs
請參看 http://wiki.andmob.org/blogs
(4) 閱讀代碼
除了上面所說的ApiDemos的代碼,還有SDK下提供的Samples目錄下其他示例代碼,還有Google公司提供的Demo代碼,它們在:
http://code.google.com/p/apps-for-android/
———–
2010/6/11 補(bǔ)充內(nèi)容:今天在網(wǎng)上找chrome代碼閱讀,看到Venus神廟的 Android學(xué)習(xí)入門http://www.cnblogs.com/duguguiyu/archive/2010/01/23/1654559.html
感覺不錯,也推薦給大家,Venus神廟寫作水平不錯,比我好N倍。
Android網(wǎng)絡(luò)應(yīng)用開發(fā)
反復(fù)研究了 Android Market,總結(jié)一下,之前發(fā)在新浪微博上,但不夠詳細(xì),主要是提高用戶體驗。
1.網(wǎng)絡(luò)異常處理,重試機(jī)制。
上wifi常常網(wǎng)絡(luò)斷開,那就看運(yùn)用程序是否健壯??梢杂肁ndroid 提供的 frameworks/base/core/java/android/net/NetworkConnectivityListener.java 監(jiān)控網(wǎng)絡(luò)變化,然后做相應(yīng)的處理。
2.Cache
這個是必須的。比如手機(jī)QQ的頭像,不可能每一次登錄,重新把頭像下載一遍??梢允莾?nèi)存cache,也可以寫入SD卡。
3. 本地數(shù)據(jù)與服務(wù)器同步機(jī)制
4.請求異步處理機(jī)制
給一個app打分,打分后,馬上回到之前的界面,而不是一直在等是否把數(shù)據(jù)發(fā)送到了服務(wù)器再響應(yīng)。
5. push消息通知
有軟件可以更新,在狀態(tài)欄提示。新浪微博在右上方顯示有新數(shù)據(jù)。
6.lazyload
延時加載,比如圖標(biāo),頭像,分頁。
7.數(shù)據(jù)交換格式:對象序列化/protobuf/json/xml。
8. 設(shè)計模式:MVC,chain。