无法递归的五点半

for_each(day.begin(),day.end(),bind2nd(Add(),me))

导航

<2024年3月>
252627282912
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

常用链接

留言簿(4)

随笔分类

随笔档案

文章分类

相册

收藏夹

C++

Unix/Linux

个人主页

其他

软件工程

网络管理

综合

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜

#

MySQL Proxy

    大型的数据库厂商在数据可用性上下足了功夫一会儿负责均衡,一会儿分布式数据库,不时还发明一些术语吓唬用户。而开源社区总是让人感到创意十足。夹在数据库和用户端之间的中间层产品大家一定见得多了,今年6月发布的MySQL Proxy名字看上去一般般,但其功能确很Cool。
    MySQL Proxy 可以作负载均衡,可以艰苦,分析,客户端和服务器之间的通讯。最Cool的是可以使用嵌入到系统中的Lua。呵呵,现在不来点脚本语言好像就不入流呢。最近InfoQ上一篇文章《用MySQL Proxy实现读写分离》可能是时下现实的一种应用。原理很简单看看图就一目了然:

posted @ 2007-10-18 16:29 五点半 阅读(874) | 评论 (3)编辑 收藏

盗版啊!盗版

    毕业论文已经使用Latex排好。学校要求使用Word,并提供了严格的模板。这个模板还真不错,但我哪有MS Office呢?04年以来只使用Linux,没用MS Office好多年,一直用Open Office对付这,这次肯定不行了。无奈只有找台机器装Windows,Office,满世界的找注册码什么的。
    我用Linux并不是想显得很厉害,也不是Linux桌面很好,甚至觉得要普及Linux桌面路还很长。用Linux70%是工作原因,30%是因为不太想用盗版。我觉得我们搞软件的还对使用盗版情有独钟,软件产业的确很危险。
    经常听大家比较中印软件产业,我对此兴趣不大,也不太了结印度的情况。我只认识一个印度人,给我上过软件测试课。有一次提到国内网站上到处都是Crack,我看见他的表情里只有轻蔑。

posted @ 2007-10-09 23:35 五点半 阅读(510) | 评论 (3)编辑 收藏

录郑逸梅《幽梦新影》有感

突然想起郑逸梅老先生。他讲的艺坛逸事离我们可能远了,但《幽梦新影》读来还是很有味道的。Google;抄录之:
------------------
壮士跨马,逸士骑驴。
读《离骚经》宜于茶余,诵《剑侠传》宜于酒后。
坐花茵,枕琴囊,嗽清泉,啖松实,仙乎仙乎!
愁无可遣,遣之于诗,遣之于酒 。恨无可语,语之于月,语之于蛩。
文人如范仲淹,始足以讲武;武将如岳鹏举,始足以谈文。
胸中一团浩荡之气,不能发之于文,亦当挥之以剑。
喜读书之者不得书读,喜饮酒者不得酒饮,喜游山水者不得山水游,最为恨事。
野客狎鸥,逸士放鹤。
天下不平之气,托之于雷;人有不平之事,托之于剑。
一琴一剑,抒我怨愤,一灯一影,伴我凄清。
铅刀虽钝,然鲜挫折。
大英雄不怕死,亦不轻生;大丈夫不随世浮沉,亦不矫情立异。
贫时不忘富,自无谄容;富时不忘贫,自无骄态。
一喜一怒,最是见人之真。
马嘶西风,剑鸣鞘匣,雄心一起,便绕走通宵,不能成寐。
世有大年,岂必常服补剂;天生名将,不关多读兵书。
濯垢易,涤耻难。
世间最丑之事,莫若攀龙附凤。
英雄好杀,不杀人之所不忍杀者,好杀人之所不敢杀者;文人好骂,不骂人之所不忍骂者,好骂人之所不敢骂者。
人不可不有月下谈禅之逸致,亦不可不有花前说剑之豪情。
天下惟善读书者,不负花月,不脱酒盏,不离山水,不绝美人。
南人失之柔,不可不睹黄河之奔腾;北人失之亢,不可不见吴山之秀美。
美人之胜于花者,解语也;花之胜于美人者,生香也,二者不可得兼,舍生香而解语者也。
梅令人高,兰令人幽,菊令人野,莲令人淡,春海棠令人艳,牡丹令人豪,蕉与竹令人韵,秋海棠令人媚,松令人逸,桐令人清。柳令人感。
所谓美人者,以花为貌,以鸟为声,以月为神,以柳为态,以玉为骨,以冰雪为肤,以秋水为姿,以诗词为心,吾无间然矣。
能闲世人之所忙者,方能忙世人之所闲。
上元须酌豪友;端午须酌丽友;七夕须酌韵友;中秋须酌淡友;重九须酌逸友。
对渊博友,如读异书;对风雅友,如读名人诗文;对谨饬友,如读圣贤经传;对滑稽友,如阅传奇小说。
一介之士,必有密友,密友不必定是刎颈之交。大率虽千百里之遥,皆可相信,而不为浮言所动;闻之有谤者,即多方为辨析而后;事之宜行宜止者,代为筹划决断;或事当利害关头,有所需而后济者,即不必与闻,亦不虑其负我与否,竟为力承其事,此皆所谓密友也。
发前人未发之论,方是奇书,言妻子难言之情,乃为密友。
少年读书,如隙中窥月;中年读书,如庭中望月;老年读书,如台上玩月,皆以阅历之浅深耳。
能识无字之书,方可出惊人妙句,能会难通之解,方可参最上禅机。
古今至文,皆血泪所成。
《水浒传》是一部怒书,《西厢记》是一部悟书,《金瓶梅》是一部哀书。
文章是案上之山水,山水是地上之文章。
读书最乐,若读史书,则喜少怒多,究之,怒处亦乐处也。
读经宜冬,其神专也;读史宜夏,其时久也;读诸子宜秋,其致别也;读诸集宜春,其机畅也。
文人读武事,大都纸上谈兵;武将论文章,半属道听途说。
善读书者,无之而非书也;山水亦书也,棋酒亦书也,花月亦书也。善游山水者,无之而非山水;书史亦山水也,诗酒亦山水也,花月亦山水也。
“情”之一字,所以维持世界;“才”之一字,所以粉饰乾坤。
人须求可入诗,物须求可入画。
当为花中之萱草,毋为鸟中之杜鹃。
胸藏丘壑,城市不异山林,兴寄烟霞,净浮有如莲鸟。
清宵独坐,邀月言愁;良夜孤眠,呼蛩语恨。
居城市中,当以画幅为册水,以盆景为苑圃,以书籍当朋友。
方外不必戒酒 ,但须戒俗;红裙不必通文,但须有趣。
胸中小不平,可以酒消之;世间大不平,非剑不能消也。
鹤令人逸,马令人俊,兰令人幽,松令人古。
美味以大嚼尽之,奇境以精游了之,深情以浅语传之,良辰以酒食度之,富贵以骄奢处之,俱失造化本怀。
有山林隐远之乐而不知享者,渔樵也,农圃也,缁轻也;有园亭姬妾之乐而不能享不善享者,富翁也,大僚也。
----------------------
所谓“录”也就是Ctrl-c和Ctrl-v而已,记得读大学时可是工工整整抄写到本子上的。从第一次在486上看到电子书惊叹的表情到现在CtrlCV无奈的感觉。也就十多年吧,弹指一挥间也说不上,世界就变化得如此之快。故人以乘黄鹤去,老先生绝想不到他的句子会在互联网上粘来粘去。大家也就读读,那闲云野鹤般的姿态最多也就是心中的神往吧。
有些句子读来是有快感的“世间最丑之事,莫若攀龙附凤。”! 看看周遭憋足而丑陋的众生像,只能“胸中一团浩荡之气,不能发之于文,亦当挥之以剑。”?呵,这是游戏规则。这样的事恐怕只有“托之于雷”了。单单看中了这一条,可能太愤青了,所以我还是更喜欢“冷眼以观世界,虚心以读书”。

posted @ 2007-09-10 11:08 五点半 阅读(597) | 评论 (1)编辑 收藏

Snmp SMI 常见数据类型

来自网络,收集备用:

Integer: 有符号32位整数
Integer32:与Integer相同。
UInteger32:无符号32位整数
Octet String:任意二进制或文本数据,通常长度限制在255个字符内。
Object Identifier:An OID. 
Bit String:表示取名的位的枚举。这是一个无符号的数据类型。
IpAddress:IP地址。
Counter32:表示一个非负的整数,递增到最大值,然后恢复并从0开始递增。
Counter64:与Counter32相同,最大值为64位的最大值-1。
Gauge32:表示无符号整数,可增加或减少,但是不超过最大值。
TimeTicks:表示代表数据的一个无符号整数,2^32取模(4294967296),两个值之间为百分之一秒。
Opaque:提供向下兼容,不再使用的数据类型
NsapAddress:表示一个用变长八进制字符窗表示的OSI地址。

posted @ 2007-07-28 13:28 五点半 阅读(3060) | 评论 (0)编辑 收藏

boost::mem_fn 从成员函数指针到函数对象

    C++通过范型编程倒是映入了大量函数编程的思想和手法,但终究强类型的语言,有时代码就不是那么优雅了.
    一般情况下函数指针和函数对象(functor)是可以互换的,如std::for_each的第三个参数,但标准库中有4个函数配接器(not1,not2,bind1st,bind2nd)是不能接受函数指针,必须使用std::ptr_fun将函数指针封装成函数对象.还有一种情况是函数指针指向的函数的参数类型与函数模板需要的不匹配,如果要通过for_each调用每个Iterator的解引用(dereference)的对象的某个成员函数.直接使用诸如ClassA::*member_func的成员函数指针显然是想当然的做法,调用的语法都不一致,结果是一大堆编译错误信息.没有关系可以使用std::mem_fun和std::mem_fun_ref.如for_each(classAVector.begin(),classAVector.end(),mem_fun_ref(ClassA::*member_func)).标准库中的这一套函数适配器(functor adapters)使用起来要充分考虑使用的场合.不同的情况使用不同配接器.特别是您要区分for_each的容器是Container<T>还是Container<T*>,前者使用std::mem_fun_ref,后者使用std::mem_fun.这一段的详细讨论可一参照Effective STL的第40条和第41条.(个人感觉这几个配接器的名字真有的...fun).
    如果您实在是有点受不了或者你不能确定容器中究竟放的是什么而且你愿意使用一下准标准库,就可以考虑boost库的mem_fn.boost::mem_fn也不是很特别的boost成员.使用boost::mem_fn好处:不用关心容器中是T还是T*甚至是boost::share_ptr<T>,另外买一赠一fn比fun更好听一点.下面抄录boost的帮助代码就很说明问题了.
struct X
{
    
void f();
};

void g(std::vector<X> & v)
{
    std::for_each(v.begin(), v.end(), boost::mem_fn(
&X::f));
};

void h(std::vector<*> const & v)
{
    std::for_each(v.begin(), v.end(), boost::mem_fn(
&X::f));
};

void k(std::vector<boost::shared_ptr<X> > const & v)
{
    std::for_each(v.begin(), v.end(), boost::mem_fn(
&X::f));
};

posted @ 2007-07-24 12:34 五点半 阅读(2957) | 评论 (0)编辑 收藏

一个cut命令使用的例子

完全用sed来过滤处理文本是麻烦的。特别有时想快速的获得一个结果,构造正则表达式就会用掉很多时间。比如想看看有那些ip在访问web服务器。使用
root@www:~#netstat -na46
一大堆,不可能一个一个数吧。我只想看看80端口的连接加一个grep ,这样:
root@www:~#netstat -na46 | grep 192\.168\.100\.14:80
还是很多。加一个 wc -l有重复统计。好了,我只要第5列。cut -f5 。不起作用。原来cut是按TAB分字段。没关系使用sed替换:
root@www:~#netstat -na46 | grep 192\.168\.100\.14:80 | sed 's/ \{1,\}/\t/g'
好了终于可是使用cut 了
root@www:~#netstat -na46 | grep 192\.168\.100\.14:80 | sed 's/ \{1,\}/\t/g'  | cut -f 5
接下来就是排序把重复的ip过滤掉:
root@www:~#netstat -na46 | grep 192\.168\.100\.14:80 | sed 's/ \{1,\}/\t/g'  | cut -f 5 | sort -u
root@www:~#netstat -na46 | grep 192\.168\.100\.14:80 | sed 's/ \{1,\}/\t/g'  | cut -f 5 | sort -u | wc -l

真方便!模块化的力量,中间件的力量(管道符|难道不算一个精巧的消息中间件吗)!

posted @ 2007-06-06 10:25 五点半 阅读(957) | 评论 (0)编辑 收藏

好了歌

纪念陈晓旭,电视台把《红楼梦》又放了一边,真好!顺便抄《好了歌》,每日一读:
陋 室空堂,当年笏满床;衰草枯杨,曾为歌舞场。蛛丝儿结满雕梁,绿纱今又糊在蓬窗上。谈什么脂正浓,粉正香,如何两鬓又成霜?昨日黄土垅头堆白骨,今宵红绡 帐里卧鸳鸯。金满箱,银满箱,转眼乞丐人皆谤!正叹他人命不长,哪知自己归来丧?训有方,保不定日后作强梁;择膏粱,谁承望流落烟花巷!因嫌纱帽小,致使 枷锁扛。昨怜破袄寒,今嫌紫蟒长。乱哄哄你方唱罢我登场,反认他乡是故乡。甚荒唐,到头来都是为他人作嫁衣裳。

posted @ 2007-05-24 17:30 五点半 阅读(326) | 评论 (0)编辑 收藏

Django的配置安装(Debian)

实在是不好。C++的东西太少。看来C++还真不是基于配置的语言。动态语言的流水帐就是要多一些。
其实一切都可以aptitude。
aptitude install python-django sqlite3 python-pysqlite2 libapache2-mod-python
创建一个django的项目还是很简单的,在~/project/ 下django-admin startproject newproj
python manage.py runserver
就可以在本地调式了。
然后是部署到apache上
很简单
ln -s ~/project/newproj /var/www/newproj
在httpd.conf中加入
<Location "/newproj/">
    SetHandler python-program
    # 关键一定要在前面,而且要将项目的上级目录加入
    PythonPath   "['/var/www']+sys.path"
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE newproj.settings
    PythonDebug On
</Location>

还要注意
本地调试的url和部署后的url可能不一样注意修改urls.py


posted @ 2007-05-21 18:41 五点半 阅读(918) | 评论 (0)编辑 收藏

开源XSL C++开发包

    可能因为微软、IBM这样的商业公式和开源社区在数据表达方面的不谋而合,以及再加上W3C推波助澜XML的相关技术总是和应用结合得非常紧密。XML从产生就不乏优秀的工具。在最近一个项目中,我们就使用了原生的XML存储数据库Berkely DBXML(BDB)。
其实,DBXML使用了大量优秀的开源工具来实现,其中数据存储使用Berkely DB,XML解析使用XercesC,XPath的实现使用Pathan(2.3以前),XQilla(2.3以后)。关于这几个库,我将官方网站的介绍摘录如下:
  1. Xerces-C++ is a validating XML parser written in a portable subset of C++. Xerces-C++ makes it easy to give your application the ability to read and write XML data. A shared library is provided for parsing, generating, manipulating, and validating XML documents.
  2. Pathan is a open source library which allows developers using Xerces-C to parse and evaluate XPath expressions for XML node selection.
  3. XQilla is an XQuery and XPath 2 library and command line utility written in C++ , implemented on top of the Xerces-C. XQilla is originally based on an open source project called Pathan, that was hosted by Decisionsoft and implemented XPath 2. However, XQilla has been developed and improved considerably from the Pathan code base.
  4. Xalan is an XSLT processor for transforming XML documents into HTML, text, or other XML document types
    在接下来的工作中,我们希望把存储的XML表达出来。我们通过XSL来实现XML的表达,有趣的是XSL
本身也是XML,又是一个有趣的递归。
把DBXML与XSL联系起来。我们找到了一个DBXML API中函数,他可以将XML Node 以Xerces DOMDocument 方式返回:
xercesc_2_6::DOMDocument *XmlDocument::getContentAsDOM() const;

    我们要还要引入一个库Xalan C++。Xalan C++可以将生成的结果存储在一个Xerces DOMDocument中;可以使用TransformToXercesDOM将XercesDOM作为转换的源。

    在XML开源软件中还有一支,那就是来自MIT的xmlsoft.org。其中最著名的libxml2和基于libxml2的libxslt,均应用到gnome上。这些都是C的API包,在此基础上有C++绑定,PHP绑定,perl绑定等等。debian下的php-mod-xml就源自这里。
    openoffice的OpenDocument基于XML,xml.openoffice.org上也有一些实现,同样值得关注。

posted @ 2007-04-29 11:24 五点半 阅读(1920) | 评论 (1)编辑 收藏

安装Tor和FoxyProxy

很早就想试试Tor,但etch中没有,也懒得自己编译(aptitude真是让人越来越懒哈)。Debian升级到了sid。顺便安装了Tor
接下来在Firefox下安装Foxyproxy 。foxyproxy可以设置网络访问的模板,与模板匹配的使用代理,匹配不成功就直接访问。foxyproxy有一个缺省的模板,是gmail的,依葫芦画瓢,创建了一个zh.wikipedia.org的模板,使用tor代理(即把代理设置为127.0.0.1:9050)。
真有用!昨天晚上全部在看wikipedia。

posted @ 2007-04-09 11:16 五点半 阅读(1955) | 评论 (0)编辑 收藏

仅列出标题
共4页: 1 2 3 4