Time of Update: 2018-12-06
sublime 使用起來很方便,可擴充性也很強,可以安裝不同的package來適應不同的需求。介紹一下一個外掛程式Sublime Package Control, 通過Sublime Package Control可以很方便地安裝其他package,安裝方法有兩種:(1)通過sublime的console來安裝 開啟view菜單中開啟console,執行以下命令: import urllib2,os; pf='Package Control.sublime-package';
Time of Update: 2018-12-06
在google group中看到有人說起haskell的新用法,也就是採用haskell來寫web,查了一下,原來說的是SNAP,A Haskell web framework,看了一下SNAP公布的一些benchmark結果,感覺還不錯,不管是在普通的pong測試還是在file測試上都屬於比較領先的位置。看來要瞭解一下這些函數式程式設計語言了。下面是出自SNAP的benchmark(1)pong benchmark(2)file benchmark Haskell
Time of Update: 2018-12-06
訪問Git時使用Git協議是最高效的,雖然也存在一些缺陷,主要是沒有存取權限的控制,但在可信環境下對速度和效率有較高要求時直接採用git協議還是可以考慮的在採用Git協議搭建Public Repository時需要注意的事項有:(1)安裝git-daemon,並確保git-daemon所使用的連接埠(9418)允許accept,這個可以在iptables中配置(2)建立一個bare repository,可以通過clone來實現,例如$ git clone --bare ~/proj proj.
Time of Update: 2018-12-06
使用git的時候,通常的用法是 cd 到 repository目錄下進行相關的操作,比如說有這麼一個repository, D:\pygit2(通過 git clone https://github.com/libgit2/pygit2.git)通常的做法是 cd D:\pygit2,然後再執行git的相關指令,比如 git status, git log 等等,這種情況下,git命令預設的是
Time of Update: 2018-12-06
在使用webpy時發現的web.application reload的陷阱,暫時記錄下來,以便自己和他人蔘考。現象是這樣的: 在設定檔中定義urls:urls = (# front page "/", "app.controllers.base.index","/index/", "app.controllers.base.index",
Time of Update: 2018-12-06
常見的一個問題就是如何向PySide/PyQt的slot中傳遞額外的參數。slot的機理就是將signal和slot建立關聯,signal的參數能夠傳遞到slot中,但額外的參數(使用者自訂的)並不能直接傳遞進去。但現實中傳遞使用者自訂的參數還是很有意義的,這樣一來使用者就可以定義一個slot來處理多個signals,只是通過參數來區分即可。如果實現呢?一個簡單的方法就是藉助於lambda,下面是一個簡單的例子:self.configInqAct =
Time of Update: 2018-12-06
本想將google code上的一個項目clone下來看看源碼的,但很不幸的是google code這幾天也被牆了,做點開源也這麼費勁,真的很無語。無奈之下只能通過代理進行git clone了,簡述一下操作步驟,希望能對他人有用。(1)建立一目錄weed-fs(2)進入weed-fs後執行 git init(3)git config http.proxy http://127.0.0.1:8087 注意將http://127.0.0.1:8087替換成實際的Proxy
Time of Update: 2018-12-06
pylons初探之開發環境搭建在眾多的web framework中,pylons可以說是一個後起之秀,綜合了之前各個架構的優點,所形成的一個非常靈活的架構,其模組化程度非常高,各個模組之間的耦合性較低,使用者可以根據需要進行組裝。如何安裝pylons?對於pylons開發人員來說,有三個主要的工具:1. Virtual Python environment2. easy_install program3. python package index可能很多開發人員對於virtual python
Time of Update: 2018-12-06
對ubuntu 12.04自訂launcher的方法做一記錄,希望能對有需要的朋友有所協助以sublime text 2的launcher定義為例(1) 添加簡介命令來啟動sublime sudo ln -s /opt/softwares/Sublime_Text2/sublime_text /usr/bin/sublime(2)在Unity建立一個launcher sudo sublime
Time of Update: 2018-12-06
repoze.what.plugins.quickstart調用流程解析在使用repoze.what.plugins的時候曾碰到這樣的情況:使用者A已經登入,此時使用者在使用者A沒有關閉瀏覽器的情況下(即session沒有失效)再次登入,顯示登入成功,但登入的使用者還是A而不是B,究其原因,應該是cookie中的使用者A的資訊沒有刪除。怎樣才能不顯式調用logout
Time of Update: 2018-12-06
(1)Sphinx http://sphinxsearch.com/(2)Elasticsearch http://www.elasticsearch.org/(3)Xapian http://xapian.org/在實際中使用過Sphinx,感覺還是很不錯的,建立索引速度挺高,查詢文法豐富,而且使用起來很簡單。Sphinx依託於MySql 或者
Time of Update: 2018-12-06
使用git的時候難免會用到remote tracking,下面簡要記錄一下在使用git remote時的一些技巧(1)add $git remote add origin https://github.com/ask/celery.git 註:暫以celery的git作為樣本,celery是一個挺不錯的Distributed Task Queue,有很多值得學習的地方,在此也順便推廣一下celery(2) show remote $git remote show
Time of Update: 2018-12-06
通過源碼可以發現,tornado中也是大量使用了python中的logging模組來處理日誌操作。但tornado在處理日誌的時候,特別是tornado.options.parse_command_line()時將根日誌的層級設定為info,這點需要特別注意!如果在tornado.options.parse_command_line()之前程式對logging的記錄層級進行了設定,則很有可能會被tornado進行改寫,這點需要特別注意。通過下面的代碼可以很容易就能看出tornado對跟logge
Time of Update: 2018-12-06
在使用scrapy做爬蟲的時候碰到一個問題,耗了挺長時間都沒有解決,關鍵是從日誌裡面沒有看出問題,最後還是通過閱讀源碼才找出問題所在。在此將問題現象以及解決方案記錄一下。現象: 在一個頁面中有n多的串連,url的Regex如下:r"en/descriptions/[\d]+/[-:\.\w]+$",大部分串連都能抓取下來,但部分如 en/descriptions/32725456/not-a-virus:Client-SMTP.Win32.Blat.ai, en/descriptions/33
Time of Update: 2018-12-06
在使用python的lxml庫時碰到了這樣的問題:安裝libxml2、libxml2-devel、 libxslt、 libxslt-devel都沒有問題,安裝lxml包也沒有任何問題。執行 import lxml 也沒有問題,但在執行 from lxml import etree時卻出了問題。具體錯誤記錄檔如下: ImportError: /home/soft/lxml/lxml-2.3/src/lxml/etree.so: undefined symbol:
Time of Update: 2018-12-06
在使用webpy的session時經常會發現按照文檔是說明構造的session用法卻總是出錯,和預想差異很大。通過跟蹤webpy源碼發現原來預設情況下webpy在session這塊兒做了很多手腳。舉例如下:(1)session不能在debug模式中使用(2)session不能在webpy內建的wsgi server中使用究其原因是因為webpy在debug或者內建wsgi server中使用的時候啟用了模組層級的reload,reloader 載入了主模組零次,一次是作為__main__被載入,
Time of Update: 2018-12-06
採用lxml進行xml的解析操作,在使用find()和findall()方式進行操作的時候,如果match按照XPath標準寫的複雜點兒,某些情況下會碰到invalid predicate錯誤。從lxml的官方文檔上來看,lxml是支援XPath1.0標準的,可為何還報出invalid
Time of Update: 2018-12-06
計劃在團隊中採用code review,因為一直是用git作為代碼管理的,所以毫無疑問的就選擇了gerrit作為code review的工具。本以為很容易就能配置通過,但在配置的時候還是碰到了不少問題,比如中文編碼,發送郵件等等。折騰了小半天,終於搞定,在此記錄如下,以期對他人有所協助。一、中文編碼的問題為妥善解決中文編碼的問題,對所有git repository做如下約定: a、所有文字檔都必須儲存成utf8編碼 b、對git做如下設定: git config --global
Time of Update: 2018-12-06
在windows下安裝RedCloth時,明明使用gem install RedCloth已經安裝成功,而且能夠通過gem list RedCloth -d能看到安裝的地址,但在rails程式載入時還是說不能找到RedCloth,經過長久的google之後得知原來是RedCloth的錯誤,這種錯誤好像只是在windows+rails2.3時才會出現。具體解決方案如下:(1)更改environment.rb, 將config.gem "RedCloth"更改為config.gem
Time of Update: 2018-12-06
在使用web.py進行開發的時候避免不了會在template中使用$code來定義一些小函數,按照web.py的文檔來看,$code之內能包含任意的python代碼,但在實際使用的時候卻經常發現不是這個樣子的,只有特定的函數可以在$code中出現,比如說預設情況下在template中可以使用 len 函數,但卻不能使用 str,為什嗎?仔細分析web.py的源碼可以發下:所有有關template處理的都包含在template.py檔案中。調用template最終會調用到BaseTemplate