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