狗屎皮的设计上碰到了一个URL的问题。根据需求,/article/[id]显示指定ID的文章,而/article/recent显示最新文章列表。从URL设计来说,我个人感觉问题也不大,逻辑还是挺清楚的。但是因为TG2用的是原来CherryPy风格的url mapping,也就是用@expose的方法名直接对应url,要实现这种功能就不太方便了。当然你也可以这样写:
def article(self, id): if id=='recent': return self.article_recent() else: return self.article_id(id)
Tags: pylons, Python, turbogears 2.0, web framework
虽然web2py提供了用doctest进行测试的方式,但是这个只能在controller层直接对页面交互进行测试。虽然这样的测试覆盖很全面,但是测试粒度太大,对我来说测得不够细。 (more…)
前一阵参加了一个Python的活动,其间老董的讲座是讨论网页爬虫技术的。其中提到了一下关于页面解析的问题,他推荐了三种技术。其中有用到libxml2里的xpath来处理,我就跟令狐谈到我曾经也用过这个东东。令狐建议我把这个东东说一下,于是我就写了这一篇。 (more…)
Tags: html, jquery, libxml2, lxml, Python, re, xhtml, xpath
Linux玩久了之后,在Windows下用不了很多优秀的命令行工具,就会感觉特别不爽。因此我一般都会在电脑上安装一套GNU utils for windows。最开始的时候,我用的是minGW里的utils,但是它附带的工具不全,虽然有一部分其他工具可以在其他地方google到,毕竟比较费神费力。
后来好好玩了一下Cygwin,开始喜欢上这个玩意儿了。以前一直以为cygwin就是开始菜单里启动的那个bash界面,后来发现其实不是,cygwin实际上是通过一个cygwin1.dll实现了几乎全部的UNIX函数,因此只要链接到这个dll,就可以很方便的port各种UNIX工具了。port出来的工具,也可以在DOS命令行下正常执行。
因为Cygwin的安装是集中式的,有点类似于apt机制,这很方便,不需要到处找各种各样的port了,只要从registry里安装就行。 (more…)
Tags: cygwin, encoding, Python, 中文
虽然我在C++里用正则表达式已经有一些年头了,不过一直都是用的boost里那个库。坦白说,不是很好用。虽然我很早就知道PCRE,但一直都以为这是一个为PHP开发的库。实在是火星人啊。囧
前两天在推土上提起这事时,火炬向我推荐说PCRE比boost里那个正则库好用,于是试了一下,结果可耻滴发现BCB自带了PCRE,只不过没有在文档里提到罢了。
Tags: BCB, c++, html, pcre, text, 正则表达式
一般来说,程序多少都会有一些自己的配置信息要保存,不论是通常用的保存到INI还是注册表,或者是XML甚至YAML,总归是要写不少代码处理的。
问题的麻烦在于,程序中实现操作配置信息通常并不需要关注它是保存在什么地方,以什么格式保存,但是传统的方法不论是调用TIniFile还是TRegistry或者是DOM,都是需要开发者花一些时间精力浪费在这上面。
今天抽空完成了jQuery的示例5:一个简单的投票系统。
本例没有什么特殊的地方。只有一点。投票系统至少需要两个参数:一个是投票项目的id,一个是投票的方向(支持还是反对),所以我这样构造一个a元素:
<a href='#' class='up' id='<?php echo $row['vid']?>'><?php echo $row['up']?></a>
我用class来确定投票方向,而用id来确定投票项目。
最后,我用jQuery中的replaceWith来替代掉被点击的a元素的内容为:
$(this).replaceWith("<strong>"+count+"</strong>");
大功告成!
Tags: demos, JavaScript, jquery, jquery api browser, 例子
在第七天,我终于”完成”了将任氏有无轩的最重要的部分:藏书管理部分迁移到了Symfony,并且是在应用环境。进行了一些小的修改就不说了。
本来是要用Lucene进行索引编制的,但是我的应用实践表明,Lucene实在对中文支持很不好。所以,我只好放弃Lucene,而改用最原始select大法。
发布完毕后,基本没有大的问题。一个小问题是,原来www.rsywx.net/wiki就无法访问了,需要用www.rsywx.net/wiki/doku.php来访问,这个应该是路径映射的问题,不过既然改好了我也就不管那么多了。
从1月12日开始,到4月14日基本完成,历时3个月断断续续的开发。这样的开发进度,在真正的软件公司是不可以接受的。但是,这就是我之前一直说的:为自己开发软件的好处和悠闲。不用担心进度,随时可以让步……
接下来的工作相对比较简单了,准备再慢慢搞。
仅作此文留念。
Tags: jquery, Lucene, search, Symfony
原文见:http://www.rsywx.net/wordpress/2009/04/1606
Tags: jquery, Lucene, search, Symfony, zend, 搜索
今天完成了jQuery的示例9:检查用户名是否存在。之所以做这个例子,一是因为要保证完整性,另一个是在CSDN的PHP板块有很多人问到这个。
演示地址:http://www.rsywx.net/jquery/demos/test09.html。
代码都很简单,不再列出。有兴趣的可以直接下载后分析。
特别提出一点:在代码中,我在jQuery中调用JSON函数处理返回值的时候,由于返回值很简单(true或者false的布尔值),所以直接对返回的data进行了判断,实践证明是可行的。
Tags: demos, JavaScript, jquery, 例子