在线视频日韩,在线播放国产一区中文字幕剧情欧美,欧美日韩国内自拍http://m.shnenglu.com/tangxinfa/category/5923.html開(kāi)發(fā)者之旅zh-cnTue, 28 Feb 2012 09:34:50 GMTTue, 28 Feb 2012 09:34:50 GMT60node.js tipshttp://m.shnenglu.com/tangxinfa/articles/nodejs_tips.html唐新發(fā)唐新發(fā)Sat, 18 Feb 2012 04:25:00 GMThttp://m.shnenglu.com/tangxinfa/articles/nodejs_tips.htmlhttp://m.shnenglu.com/tangxinfa/comments/165904.htmlhttp://m.shnenglu.com/tangxinfa/articles/nodejs_tips.html#Feedback0http://m.shnenglu.com/tangxinfa/comments/commentRss/165904.htmlhttp://m.shnenglu.com/tangxinfa/services/trackbacks/165904.htmlQ. 在項(xiàng)目根目錄下執(zhí)行sudo npm link xxx即可。


唐新發(fā) 2012-02-18 12:25 發(fā)表評(píng)論
]]>
Protocol Buffer學(xué)習(xí)筆記http://m.shnenglu.com/tangxinfa/articles/87022.html唐新發(fā)唐新發(fā)Sun, 07 Jun 2009 15:02:00 GMThttp://m.shnenglu.com/tangxinfa/articles/87022.htmlhttp://m.shnenglu.com/tangxinfa/comments/87022.htmlhttp://m.shnenglu.com/tangxinfa/articles/87022.html#Feedback0http://m.shnenglu.com/tangxinfa/comments/commentRss/87022.htmlhttp://m.shnenglu.com/tangxinfa/services/trackbacks/87022.htmlProtocol Buffer,這個(gè)東西基本上附合我的要求,可以序列化成高效的二進(jìn)制格式,如果能夠提供序列化成文本(如:XML)的功能,會(huì)便于調(diào)試。
手冊(cè)上有一段話初看讓人疑惑:
Protocol Buffers and O-O Design Protocol buffer classes are basically dumb data holders (like structs in C++); they don't make good first class citizens in an object model. If you want to add richer behaviour to a generated class, the best way to do this is to wrap the generated protocol buffer class in an application-specific class. Wrapping protocol buffers is also a good idea if you don't have control over the design of the .proto file (if, say, you're reusing one from another project). In that case, you can use the wrapper class to craft an interface better suited to the unique environment of your application: hiding some data and methods, exposing convenience functions, etc. You should never add behaviour to the generated classes by inheriting from them. This will break internal mechanisms and is not good object-oriented practice anyway.
大意是不要從它生成的Message類進(jìn)行派生,以便加入一些行為函數(shù),而應(yīng)該采用包裝(wrap)的方式,說(shuō)白了就是組合(在你的類中放一個(gè)生成的Message類成員變量)。通過(guò)查看郵件列表,載錄以下詳細(xì)解釋:
 *如果進(jìn)行派生,那么你的類中會(huì)混入Protocol Buffer生成的一些方法,而這些方法將來(lái)還可能會(huì)變化,
 這就意味著你的類將依賴Protocol Buffer的實(shí)現(xiàn)。用設(shè)計(jì)相關(guān)的術(shù)語(yǔ)就是:你繼承了實(shí)現(xiàn),你把業(yè)務(wù)和數(shù)據(jù)混在了一起。


唐新發(fā) 2009-06-07 23:02 發(fā)表評(píng)論
]]>
gsoap學(xué)習(xí)筆記http://m.shnenglu.com/tangxinfa/articles/78344.html唐新發(fā)唐新發(fā)Mon, 30 Mar 2009 02:37:00 GMThttp://m.shnenglu.com/tangxinfa/articles/78344.htmlhttp://m.shnenglu.com/tangxinfa/comments/78344.htmlhttp://m.shnenglu.com/tangxinfa/articles/78344.html#Feedback0http://m.shnenglu.com/tangxinfa/comments/commentRss/78344.htmlhttp://m.shnenglu.com/tangxinfa/services/trackbacks/78344.html  它們是自動(dòng)實(shí)現(xiàn)了的函數(shù)。
  stub由client使用,skeleton由server在收到請(qǐng)求時(shí)自動(dòng)調(diào)用。
  考慮最基本的通信:client->network->server
  在network的兩個(gè)邊界分別就是stub和skeleton
  gsoap通過(guò)生成stub和skeleton,讓我們的client只需調(diào)用一下stub函數(shù),而server只需要實(shí)現(xiàn)skeleton函數(shù)內(nèi)部調(diào)用的對(duì)應(yīng)的處理函數(shù)。


唐新發(fā) 2009-03-30 10:37 發(fā)表評(píng)論
]]>
log4cxx使用心得http://m.shnenglu.com/tangxinfa/articles/log4cxx_tips.html唐新發(fā)唐新發(fā)Tue, 17 Jun 2008 02:01:00 GMThttp://m.shnenglu.com/tangxinfa/articles/log4cxx_tips.htmlhttp://m.shnenglu.com/tangxinfa/comments/53660.htmlhttp://m.shnenglu.com/tangxinfa/articles/log4cxx_tips.html#Feedback0http://m.shnenglu.com/tangxinfa/comments/commentRss/53660.htmlhttp://m.shnenglu.com/tangxinfa/services/trackbacks/53660.html
  • 簡(jiǎn)介
apache出品必屬精品。正宗c++日志庫(kù),與log4j一脈相承。
http://logging.apache.org/log4cxx/index.html
  • 下載、編譯、安裝
打算安裝到${HOME}/libs目錄下:
cd ~/libs
wget http://mirror.bjtu.edu.cn/apache//apr/apr-1.4.4.tar.bz2
tar xjvf apr-1.4.4.tar.bz2
cd apr-1.4.4
./configure --prefix=${HOME}/libs && make && make install
cd ..
wget http://mirror.bjtu.edu.cn/apache//apr/apr-util-1.3.11.tar.bz2
tar xjvf apr-util-1.3.11.tar.bz2
cd apr-util-1.3.11
./configure --prefix=${HOME}/libs --with-apr=${HOME}/libs && make && make install
cd ..
wget http://apache.etoak.com//logging/log4cxx/0.10.0/apache-log4cxx-0.10.0.tar.gz
tar xzvf
apache-log4cxx-0.10.0.tar.gz
cd apache-log4cxx-0.10.0
./configure --with-charset=utf-8 --prefix=${HOME}/libs --with-apr=${HOME}/libs --with-apr-util=${HOME}/libs && make && make install


  • 使用例子
hello.cpp:
#include?"log4cxx/logger.h"
#include?
"log4cxx/propertyconfigurator.h"

static?log4cxx::LoggerPtr?logger(log4cxx::Logger::getLogger("hello"));

int?main(int?argc,?char?*argv[])
{
????????log4cxx::PropertyConfigurator::configure(
"./log4cxx_hello.properties");
??????? LOG4CXX_INFO(logger,?
"你好,log4cxx!");
????????
return?0;
}

log4cxx_hello.properties:
log4j.rootLogger=debug,?R

log4j.appender.stdout
=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout
=org.apache.log4j.PatternLayout

#?Pattern?to?output?the?caller's?file?name?and?line?number.
log4j.appender.stdout.layout.ConversionPattern
=%5p?[%t]?(%F:%L)?-?%m%n

log4j.appender.R
=org.apache.log4j.RollingFileAppender
log4j.appender.R.File
=./hello.log

log4j.appender.R.MaxFileSize
=100KB
#?Keep?one?backup?file
log4j.appender.R.MaxBackupIndex
=10

log4j.appender.R.layout
=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern
=%5p?%c?[%t]?(%F:%L)?-?%m%n

g++ -o hello hello.cpp -I${HOME}/libs/include ${HOME}/libs/lib/liblog4cxx.a ${HOME}/libs/lib/libaprutil-1.a ${HOME}/libs/lib/libapr-1.a? -lexpat -lpthread

  • 注意事項(xiàng)
1,配置的MaxBackupIndex不得過(guò)大,log4cxx編譯時(shí)限制了它的大小(大概十多個(gè)),一個(gè)日志文件寫(xiě)滿后會(huì)重命名所有已有的日志文件,
這個(gè)限制避免性能問(wèn)題,可以通過(guò)設(shè)置大一點(diǎn)的MaxFileSize來(lái)保存更多日志,否則就要在編譯時(shí)改大一點(diǎn)了。
參考:http://objectmix.com/apache/684503-urgent-log4cxx-large-window-sizes-not-allowed.html

  • 使用技巧
1,決定配置文件的格式(xml,property)。以使用相應(yīng)的配置器(Configurator)裝入配置文件。
???? xml雖較property格式繁鎖,支持的配置面更全,而property格式的配置文件使用更簡(jiǎn)單,容易在網(wǎng)上找到現(xiàn)成的配置文件。
2,logger命名。
???? logger名稱反映了軟件模塊,如果有代表軟件模塊的類,則在類中包含以該類類名命名的logger對(duì)象,該模塊功能相關(guān)代碼通過(guò)該logger進(jìn)行日志記錄。
另外可將logger對(duì)象作為全局變量,方便使用,特別是當(dāng)軟件模塊較松散,并無(wú)對(duì)應(yīng)的封裝類時(shí)。
3,在代碼中適當(dāng)?shù)胤胖萌罩敬a。引用適當(dāng)?shù)娜罩緦?duì)象,對(duì)日志進(jìn)行適當(dāng)分級(jí)。
4,余下的工作就是修改配置文件,對(duì)日志進(jìn)行控制了。
  使用配置文件的好處就是可以方便地配置日志而不需要修改源代碼,可以在配置文件中方便配置日志過(guò)濾、格式、日志目的地。

  • 體驗(yàn)
  之前產(chǎn)品中用到的是log4cplus,但是常常有寫(xiě)日志崩潰的情況出現(xiàn),使用log4cxx正是用于解決該崩潰。


唐新發(fā) 2008-06-17 10:01 發(fā)表評(píng)論
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            日韩亚洲欧美成人一区| 中国成人在线视频| 久久一区免费| 女生裸体视频一区二区三区| 久久久欧美精品sm网站| 久久久蜜桃一区二区人| 美乳少妇欧美精品| 欧美精彩视频一区二区三区| 欧美精品不卡| 国产精品久久久久久妇女6080 | 国产精品久久影院| 国产精品青草综合久久久久99| 国产精品乱码| 狠狠综合久久| 一区二区三区国产精华| 香蕉精品999视频一区二区 | 亚洲精选大片| 亚洲欧洲日产国码二区| 国产日韩欧美综合| 亚洲第一福利在线观看| 一区二区三区四区五区视频| 久久精品麻豆| 欧美激情国产日韩| 亚洲国产一区二区三区a毛片 | 欧美视频在线视频| 国产色婷婷国产综合在线理论片a| 国产一区二区三区黄| 亚洲欧洲精品一区二区三区不卡 | 伊人色综合久久天天五月婷| 亚洲日本乱码在线观看| 午夜精品福利一区二区蜜股av| 久久国产婷婷国产香蕉| 亚洲国产一区视频| 欧美在线国产精品| 欧美视频一区二区| 亚洲第一页在线| 欧美一区二区在线| 亚洲欧洲免费视频| 久久久久久久91| 国产精品香蕉在线观看| 99精品久久| 欧美福利小视频| 欧美一级精品大片| 国产精品色网| 亚洲深夜av| 亚洲国产成人精品女人久久久| 性高湖久久久久久久久| 欧美日韩中文字幕日韩欧美| 亚洲激情在线观看视频免费| 久久免费国产| 亚洲欧美日韩精品久久久久| 欧美体内she精视频| 亚洲美女在线观看| 亚洲动漫精品| 美女黄毛**国产精品啪啪| 国产亚洲精品v| 欧美一区二区三区在线看| 在线中文字幕不卡| 国产精品jizz在线观看美国| 一本大道久久精品懂色aⅴ| 欧美大成色www永久网站婷| 久久精品99| 精东粉嫩av免费一区二区三区| 欧美一区在线直播| 亚洲一区免费网站| 国产精品免费区二区三区观看| 一区二区三区四区五区在线| 亚洲精品国久久99热| 欧美另类极品videosbest最新版本| 亚洲成人在线网| 欧美jjzz| 欧美电影在线观看| av成人天堂| 一区二区三区欧美激情| 国产精品黄视频| 日韩视频一区二区| 国产自产精品| 亚洲国产成人精品久久| 在线观看91久久久久久| 亚洲一区欧美一区| 99v久久综合狠狠综合久久| 裸体歌舞表演一区二区 | 欧美特黄一级| 一本色道久久精品| 宅男在线国产精品| 国产精品久久久久久久久久久久 | 国产一区导航| 欧美a一区二区| 欧美日韩国产高清| 亚洲欧美中文日韩v在线观看| 亚洲一二三区精品| 在线观看日韩精品| 99精品国产在热久久下载| 国产日韩精品视频一区二区三区| 久久先锋影音| 欧美日韩一二三四五区| 久久大逼视频| 欧美电影在线| 久久九九免费视频| 欧美大片一区二区| 欧美影院在线| 欧美另类69精品久久久久9999| 亚洲女优在线| 麻豆成人在线观看| 欧美一区二区三区的| 蜜桃伊人久久| 久久久人成影片一区二区三区观看| 免播放器亚洲| 久久久久久久精| 欧美午夜精品| 欧美激情一级片一区二区| 国产精品一区二区你懂的| 亚洲国产视频一区二区| 欧美午夜欧美| 欧美激情五月| 亚洲福利专区| 久久精品99久久香蕉国产色戒 | 国产精品综合| 亚洲人成精品久久久久| 黑人巨大精品欧美一区二区小视频 | 久久婷婷国产综合国色天香| 国产精品乱码妇女bbbb| 国产精品视频导航| 亚洲福利在线观看| 欲色影视综合吧| 香蕉久久国产| 欧美一二三视频| 国产精品久久久久久久app| 亚洲国产精品久久人人爱蜜臀 | 国产精品高潮视频| 亚洲精品综合久久中文字幕| 亚洲国产欧美日韩另类综合| 久久国产一区二区| 久久精品九九| 国产日韩精品久久| 午夜久久一区| 久久久噜噜噜久噜久久| 国产日韩亚洲欧美综合| 亚洲欧洲99久久| 久久电影一区| 禁久久精品乱码| 久久久综合香蕉尹人综合网| 久久久久一区| 亚洲第一福利视频| 美女精品国产| 亚洲欧洲精品一区二区三区 | 久久精品日韩一区二区三区| 国产欧美亚洲精品| 欧美一级片一区| 久久久一区二区| 亚洲高清视频一区二区| 麻豆精品视频在线| 亚洲精品乱码久久久久久按摩观| 日韩亚洲不卡在线| 欧美午夜在线| 欧美亚洲免费电影| 男男成人高潮片免费网站| 亚洲激情电影在线| 欧美日韩高清不卡| 亚洲一二三四区| 久久一区二区三区四区五区| 亚洲第一成人在线| 欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 | 欧美另类变人与禽xxxxx| 日韩亚洲欧美精品| 性欧美超级视频| 狠狠色综合色区| 免费永久网站黄欧美| 一区二区日韩精品| 久久欧美中文字幕| 99精品视频免费| 国产手机视频精品| 欧美成人一区二区三区片免费| 日韩网站在线观看| 久久蜜桃资源一区二区老牛 | 欧美激情一区二区三区全黄| 一区二区不卡在线视频 午夜欧美不卡'| 亚洲欧美日韩国产中文在线| 韩日午夜在线资源一区二区| 欧美日韩精品二区第二页| 欧美中文在线免费| 亚洲激情在线激情| 久久精品国产精品亚洲| 亚洲国产精品123| 篠田优中文在线播放第一区| 在线精品视频一区二区| 欧美天堂在线观看| 美女网站在线免费欧美精品| 中国成人亚色综合网站| 欧美电影美腿模特1979在线看| 亚洲伊人网站| 亚洲精选在线观看| 在线播放日韩专区| 国产欧美韩国高清| 欧美日韩一区三区四区| 免费亚洲电影在线| 久久五月激情| 久久激情五月激情| 亚洲女同性videos| 在线亚洲一区|