Go4Pro.org
msgbartop
Go for Programming, Go for Professionals, Be a Professional!
msgbarbottom

12 Oct 09 TurboGears 2.0 使用 routes

by 令狐虫

狗屎皮的设计上碰到了一个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)

(more…)

Tags: , , ,

27 Sep 09 用unittest测试web2py应用中的非页面部分

by 猛禽

虽然web2py提供了用doctest进行测试的方式,但是这个只能在controller层直接对页面交互进行测试。虽然这样的测试覆盖很全面,但是测试粒度太大,对我来说测得不够细。 (more…)

Tags: ,

01 Sep 09 xpath在HTML解析中的应用(更新加强版)

by 猛禽

前一阵参加了一个Python的活动,其间老董的讲座是讨论网页爬虫技术的。其中提到了一下关于页面解析的问题,他推荐了三种技术。其中有用到libxml2里的xpath来处理,我就跟令狐谈到我曾经也用过这个东东。令狐建议我把这个东东说一下,于是我就写了这一篇。 (more…)

Tags: , , , , , , ,

04 Aug 09 Cygwin 1.7版 中文问题的解决(99%)

by 令狐虫

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: , , ,

12 Jul 09 试了一把PCRE

by 猛禽

虽然我在C++里用正则表达式已经有一些年头了,不过一直都是用的boost里那个库。坦白说,不是很好用。虽然我很早就知道PCRE,但一直都以为这是一个为PHP开发的库。实在是火星人啊。囧

前两天在推土上提起这事时,火炬向我推荐说PCRE比boost里那个正则库好用,于是试了一下,结果可耻滴发现BCB自带了PCRE,只不过没有在文档里提到罢了。

(more…)

Tags: , , , , ,

12 Jul 09 用RTTI处理程序配置信息

by 猛禽

一般来说,程序多少都会有一些自己的配置信息要保存,不论是通常用的保存到INI还是注册表,或者是XML甚至YAML,总归是要写不少代码处理的。

问题的麻烦在于,程序中实现操作配置信息通常并不需要关注它是保存在什么地方,以什么格式保存,但是传统的方法不论是调用TIniFile还是TRegistry或者是DOM,都是需要开发者花一些时间精力浪费在这上面。

(more…)

Tags: ,

10 May 09 【jQuery】示例5:一个简单的投票系统

by TR@SOE

今天抽空完成了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: , , , ,

14 Apr 09 Going for Symfony | 第七天

by TR@SOE

在第七天,我终于”完成”了将任氏有无轩的最重要的部分:藏书管理部分迁移到了Symfony,并且是在应用环境。进行了一些小的修改就不说了。

本来是要用Lucene进行索引编制的,但是我的应用实践表明,Lucene实在对中文支持很不好。所以,我只好放弃Lucene,而改用最原始select大法。

发布完毕后,基本没有大的问题。一个小问题是,原来www.rsywx.net/wiki就无法访问了,需要用www.rsywx.net/wiki/doku.php来访问,这个应该是路径映射的问题,不过既然改好了我也就不管那么多了。

从1月12日开始,到4月14日基本完成,历时3个月断断续续的开发。这样的开发进度,在真正的软件公司是不可以接受的。但是,这就是我之前一直说的:为自己开发软件的好处和悠闲。不用担心进度,随时可以让步……

接下来的工作相对比较简单了,准备再慢慢搞。

仅作此文留念。

Tags: , , ,

05 Apr 09 Going for Symfony | 第六天

by TR@SOE

原文见:http://www.rsywx.net/wordpress/2009/04/1606

Tags: , , , , ,

25 Mar 09 【jQuery】示例9:检查用户名是否存在

by TR@SOE

今天完成了jQuery的示例9:检查用户名是否存在。之所以做这个例子,一是因为要保证完整性,另一个是在CSDN的PHP板块有很多人问到这个。

演示地址:http://www.rsywx.net/jquery/demos/test09.html

代码都很简单,不再列出。有兴趣的可以直接下载后分析。

特别提出一点:在代码中,我在jQuery中调用JSON函数处理返回值的时候,由于返回值很简单(true或者false的布尔值),所以直接对返回的data进行了判断,实践证明是可行的。

Technorati : , , ,
Del.icio.us : , , ,
Zooomr : , , ,
Flickr : , , ,

Tags: , , ,