Time of Update: 2018-12-04
一直都是從Nginx網站下載原始碼進行編譯安裝,從手動模式進步到自動指令碼。但是如果要做多機器部署的話,這種玩法顯然不好,部署就不要扯進代碼編譯這件事情。因此今天試了一下Ubuntu內建的安裝包。執行apt-get install nginx後,自動安裝了nginx,並且啟動指令碼也建立好了。通過運行nginx -v 發現版本是1.2.1,還不錯。再運行nginx -V觀察載入的模組,找到了http_ssl模組--with-http_ssl_module一切不錯。完整的配置參數如下:
Time of Update: 2018-12-04
Git本地倉庫(本文不涉及遠程倉庫)的內部結構簡單如:這是一個appengine項目,剛從遠程倉庫中clone出來。這個目錄下,除了.git目錄外的都算作工作區。.git目錄下有很多東西,這裡只挑簡單的描述。1.objects目錄存放的是實際的檔案,當git add命令執行的時候,檔案已經被存到了objects目錄下。.git/objects目錄下的對象都有一個40位的id,前兩位作為目錄名,後38位作為檔案名稱.git/objects$ ls00 06 0c 12 18 1f 26
Time of Update: 2018-12-04
locale中文翻譯成場所,地點。因為不同的地區的人的語言文化不一樣。因此定義了一些環境變數來表達不同地區的差異。用linux命令man locale可以看到幾個環境變數的介紹,下表簡要說明:LC_CTYPECharacter classification and case conversion語言符號及其分類LC_COLLATECollation order比較和排序習慣LC_TIMEDate and time formats時間日期格式LC_NUMERIC Non-monetary
Time of Update: 2018-12-04
我的工作生活重度依賴Gmail和Emacs,它們的結合,讓我欣喜萬分。通過Emacs Gnus收發Gmail之後,我不用翻牆了,因為IMAP不是HTTP,沒有被牆。我能很愜意的在Emacs中收發,檢索Gmail郵件。如何配置的細節請參考一篇非常重要的文章:http://www.mostlymaths.net/2010/12/emacs-30-day-challenge-using-gnus-to.html現在看一下我的設定檔.gnus.el(setq user-full-name
Time of Update: 2018-12-04
有了Email收發,還需要通訊錄記錄連絡人資訊。我在Gnus裡結合了BBDB的功能。原文參見:http://www.mostlymaths.net/2010/12/emacs-30-day-challenge-glimpse-of-bbdb.html1.下載BBDB外掛程式:http://bbdb.sourceforge.net/bbdb-2.35.tar.gz解壓到/opt/emacs_plugins/bbdb-2.35目錄。2.在.gnus.el檔案中加入引用BBDB(add-to-list
Time of Update: 2018-12-04
安裝和配置安裝emacs必須的muse-el: apt-get install muse-el發布pdf檔案所需依賴muse發布pdf的時候需要安裝幾個必須的檔案apt-get install latex-cjk-allapt-get install texlive-latex-recommendedapt-get install texlive-latex-extra在~/.emacs中配置如下:;;muse(require 'muse-mode) ; load authoring
Time of Update: 2018-12-04
首先安裝emacs的輔助外掛程式:sudo apt-get install emacs-goodies-el然後進入Emacs:Emacs 最新版本已經內建各種主題,只要敲入命令:color-theme-select 就會看到一大堆主題,選擇一個Emacs就會切換過去。,當選中了自己喜歡的,記住名稱,然後像我這樣填入~/.emacs檔案中。以後就自動載入了。 預設推薦一個主題,添加到~/.emacs檔案中(require 'color-theme)(color-theme-initialize)
Time of Update: 2018-12-04
如何編譯安裝請參考我的另一篇部落格:http://blog.csdn.net/sheismylife/article/details/6744394如何直接使用Ubuntu預設的Nginx版本,請參考:http://blog.csdn.net/sheismylife/article/details/8140591但是預設在Ubuntu13.04下安裝得到的Nginx版本居然是1.2.x,太低了。下面描述如何擷取最新的安裝包:1.添加keywget
Time of Update: 2018-12-04
下面是我的啟動指令碼,注意,每次都是用gerrit2使用者執行程式,而不是root使用者。GERRIT2_SITE_PATH=/home/gerrit2/review_sitecase "$1" instart)echo "starting gerrit2 from $GERRIT2_SITE_PATH"sudo -u gerrit2 $GERRIT2_SITE_PATH/bin/gerrit.sh start;;restart)echo "restarting gerrit2 from
Time of Update: 2018-12-04
一直使用Gerrit2的預設OpenID認證方式,結果有一天無法登入。查看日誌後發現是公司的網路UDP 123連接埠沒有開啟, Gerrit
Time of Update: 2018-12-04
如果改動了working area和staging area的檔案,需要儲存起來,然後忽略這些改動,回到最後一次提交的狀態。可以使用git stash.假定項目中有一個檔案t,先用git rm t 從刪除之,這時候working area中該檔案消失了。然後執行git stash命令,再看working area中,該檔案又回來了。這時候調用git stash list命令,看到:git stash liststash@{0}: WIP on master: 1c47165 change
Time of Update: 2018-12-04
剛裝完1.0.3兩天,1.0.4發布了,乘項目還沒有開始,趕快升級。升級過程1.設定環境變數:RAILS_ENV=productionexport RAILS_ENV2. 擷取最新代碼:cd redmine-2.3/plugins/redmine_backlogsgit fetch --tags origingit tag3. checkout到最新的tag v1.0.4git checkout v1.0.44. 回到redmine-2.3目錄,運行安裝命令:bundle exec rake
Time of Update: 2018-12-04
不帶說明的輕量級裡程碑不推薦使用。帶簽名的太麻煩,不搞。這裡介紹帶說明的裡程碑建立和管理。先提交一下:git commit --allow-empty -m "commit before adding test tag"[master bcab410] commit before adding test tag建立裡程碑:git tag -m' add test tag1' testTag1testTag1 前面也可以用-a 參數,比如:git tag -a 0.1.0 -m 'm1 for
Time of Update: 2018-12-04
隱喻描述軟體項目,代碼大全2介紹了這種方法。這個方法不知道起源何處,不過的確在我們軟體工程師的生活中處處可見。難以預測的研髮型項目我一個朋友就跟我說過,他的老闆太急了,好的軟體就像種莊稼一樣,要耐心的等它長出來,需要時間,需要呵護。他是個總是挑戰自己不熟悉領域的人,總是試圖完全自己做而不依賴於其他開源軟體的研發人才。所以他的情況比較特別。看上去是每次做一點的種莊稼的隱喻,其實也包含了不少
Time of Update: 2018-12-04
reset命令讓我們可以在曆史版本中切換。每次commit都會有一個commit id。比如看看我的倉庫的日誌:chenshu@sloop2:~/work/189/appengine$ git logcommit f9fae00840b97ca9ab4e782c9581fb6cb35b0ff4Author: shuchen <csfreebird@esri.com>Date: Tue Sep 18 13:15:11 2012 +0800 update
Time of Update: 2018-12-04
Lisp解析器如何處理list?如果這個list前面有單引號,就會直接將該list返回(不包含單引號);如果沒有單引號,則會將這個list的第一個元素作為函數名去尋找,如果找到,則調用該函數,如果找不到則返回錯誤訊息。一般按照從左至右的順序一個一個處理list中的元素如果list內部有嵌套,解析器總是從最裡層的那個開始處理。如何求值?求值的結果總是返回一個值,如果求值錯誤,也會返回錯誤資訊內部list的值被求出後,用於替換該list所在的位置,作為一個元素如果對一個數字求值,將得到數字本身如果對
Time of Update: 2018-12-04
給變數賦值set(set arg1 arg2) 這種文法將arg2設定為arg1的值比如: (set ‘flowers '(rose violet daisy buttercup))這是建立了一個symbol flowers,將(rose violet daisy buttercup) list 賦值給了flowers的value域。稍後,可以直接使用flowers,就像用變數一樣,實際上是使用的它的value域存放的list,比如:(print flowers)也將輸出(rose
Time of Update: 2018-12-04
很多時候,我們需要初始化資料庫的設定,比如建立索引,特別是多台MongoDB伺服器要配置的時候,或者是需要將初始化存檔的時候。通過下面的命令,可以執行一個js檔案:./mongo IP/DBName init.jsinit.js檔案內容可以這麼寫:db.dropDatabase(); //刪除資料庫達到清空資料的目的db.message.ensureIndex({display_id:1});
Time of Update: 2018-12-04
前面的文章描述了如何搭建一個Gerrit server和基本的使用。本文描述Gerrit的管理。文檔Gerrit伺服器啟動後,網站上有一個Documentation連結。點擊後會看到四個選項:index,searching,uploading和access
Time of Update: 2018-12-04
在我的前面介紹中描述了Release和Sprint以及Story的關係。參考:Scrum管理中的幾個會議與我們的實踐簡單來說就是一個Release可以包括幾個Sprint,一個Sprint包含幾個Story. 當然一個Story可以跨越多個Sprint或者Release。不過版本呢?在實踐中我們需要用git tag對代碼進行版本戳記,確保master branch中的所有tag都表示為一個版本。比如從0.1.0, 0.2.0