博文

目前显示的是 十一月, 2008的博文

2008-11-30

冷啊!!!没有暖气的北京的冬天的屋子实在是可怕。我有点希望我现在抱着的不是一台thinkpad而是头儿那台每天倍受散热底座和御用电风扇呵护的华硕笔记本。thinkpad本来就是冷色系,而且又没温度,太发指了!冻死我了!今天去mysql的网站寻找对mysql api更高层的封装。发现两个很令人中意的,一个是仿jdbc的Connector/C++,一个是历史相当悠久(但是貌似后来换了人维护)的mysql++。我记得以前mysql++是很简陋的,但是现在发现它真的是做的不错。有这么几点:文档很漂亮。doxygen生的reference manual和一篇排版及内容都很漂亮的user manual。支持简单的Structure mapping。嗯,我说的不是ORM。因为首先,它是简单的类似POD那样的东西。不存在继承和多态,于是充其量算ADT,和OO无缘。其次,它只支持 表 <-> struct 之间的 一一对应,不能把一个用户自定义的collection影射到多张表,反之亦然。呃,无论如何,对于像我这些被hibernate惯坏的孩子来说,它太可爱了支持参数化查询。就是先用一个带%d、%s这样的sql字符串构造一个Query,然后AddParamXXX的方式添加参数,然后执行查询。呃,我在说别的,ADO.net或JDBC。mysql++的参数化查询要简单的多,只有两种格式,大写的%Q和小写的%q,但是,也足够了。说句题外话,我以前在一家很NB的公司工作看一些很NB的C/C++程序员写下来的NB代码,它们很好很精致,但是sql注入漏洞频频。另外,asp的程序员也好这个口。但是从那些满大街都是的无论多小白的C#程序员的代码中,却很少遇见这样的漏洞。因为越傻越天真就越懒,绝不会自己去构造sql查询语句或者自己写转义函数。我还真见有人放着mysql的escape api不用,自己去写转义函数。结果忽略了字符集的影响。呃……mysqlpp尽管进步不少,但是在使用的时候还是会有那么些奇奇怪怪的问题。比如我最初在cygwin下把它编译成dll使用的时候,一般都没有问题,但是有一个option类,却遇到了奇怪的dll导出的问题。还有,给数据库连接设定字符集,多么常见的操作啊,但是mysqlpp的文档只字不提这个,笔墨被花去夸赞icu和iconv了。还有,它在将它那套struc…

vc9下wstream不支持unget() ?

今天在写一个简单的算术表达式的解析器,遇到一些问题。发现貌似vc9下wcin不支持unget,一执行unget,stream就被设置为fail { wchar_t c=std::wcin.get(); std::wcin.unget(); if(std::wcin.fail()){ std::cout<<"error"<<std::endl; } } 跟踪调试,发现是因为streambuf的gptr()和eback()函数返回的都是NULL。前者应该指向读缓存区的当前位置,后者应该指向读缓存区的开头。wifstream也是同样的问题。但是换了下,把wcin换成窄字符(std::cin),上述代码都可以正常工作。why ? 是不是我忘记调什么初始化函数了?之所以专指vc,是因为在linux/gcc下没有遇到这样的问题。

2008-11-25

昨天和前天我买了hostmonster的空间然后又买了thinkpad t400(上个周末刷卡花去1万多),到目前为止,尚未从购物的兴奋中消退。买了hostmonster的空间后,先是把数据从老的地方挪过来,然后升级wordpress,中途遇到了些小波折,回退了一次然后重新升级。然后就考虑怎么利用这空间写东西了。首先,目标是自己写一个blog system替换掉wordpress。语言锁定于C++。开发平台考虑再三,最后选择为cygwin+eclipse,库主要是用ace/cgicc,后端存储还是采用mysql,至于页面如何构架,尚在思考中,考虑要不要引入dojo。其实很想找一个C版的smarty,但是无奈的是smarty实在是太强大了,我在网上所能找到的C的html模板库都简陋的非常。昨天和今天主要是搭开发环境。分别在服务器和笔记本上编译了ace以及cgicc,然后设置路径,写了简单的hello world测试了下库是否都能找到。我在hostmonster上编译的时候给库加了rpath参数以确保库能被找到,测试结果ok。还非得采用动态库,否则每个cgi都有2-4M之巨。下一步可能首先想做的是一个更完善的代码部署系统。以前用eclipse写servlet/jsp的时候,直接就可以用ant进行部署、reload。现在我是采用ftp上传然后执行shell脚本编译,目前主要的问题出在install上。需要修改Makefile.am让install的时候把bin_PROGRAMS中的每个东东的后缀$(EXEEXT)换成.cgi,然后install到$(CGI_HOME)下。呃。。。不会写sh脚本,茫然中。总之我的终极目标就是要在客户端实现一键部署。在笔记本上双击一个bat文件,然后就会自动把代码部署到远程服务器上去然后自动编译、安装。然后直接就可以在浏览器里面看到新的页面了。I hope that.

推荐一个活动:Ian Murdock的讲座

时间:2008年11月22日(星期六),下午1:30开始入场
地点:清华科技园创新大厦二层多功能厅
活动:与Ian Murdock见面
费用:此次活动不收费
礼品:所有参会人员均会获得Unix-Center.Net站衫一件
抽奖:现场将通过抽奖方式送出两台IPod
报名:网上报名 http://www.unix-center.net/bbs/viewthread.php?tid=65231:30 — 2:00
签到2:00 — 3:00
Ian Murdock个人演讲3:00 — 4:30
自由提问时间,这个时段听众可以就自己感兴趣的任何问题向Ian Murdock提问。Ian Murdock于1973年4 月28日出生于德国的君斯坦市(Konstanz, Germany)。他是Debian GNU/Linux发行版的创始人,也是商用Linux发行商Progeny公司的创始人。他目前是Sun 公司的副总裁,负责Sun 公司的开发者社区部门。在加入Sun 公司之前,Ian Murdock是Linux 基金会(Linux Foundation)的首席技术长官(CTO),以及Linux平台交互标准LSB (Linux Standard Base)的主席。1993年,当Ian Murdock还是一名普渡大学本科生的时候,他完成了Debian Linux的基本定义文档The Debian Manifesto。1996年,Ian Murdock获得了普渡大学计算机系的学士学位。Debian一词源自他当时的女朋友(现在是他的妻子)Debra和他名字的组合,也就是 Deb(ra)-Ian。Ian Murdock目前居住在美国的印地安纳州(Indiana)。

verycd打不开了。。。。

昨晚想去verycd找house,约莫着第7集快出来。
发现打开之后页面竟然是baidu。空白的页面内嵌入一个baidu的frame。标题是warn。
OMG~~~ 这到底算什么??