2007年09月02日

今天来的人挺多,有一些特别是被 Robert Chen 鼓动起来的,因为是在一个公司。会课的 wiki 页面见这里。同时 AlexDong 还拍了照片,见这里

会议主要内容有:

  • Robert Chen 作关于 Python 作用域的分享
  • AlexDong 好看簿开发(django)的分享
  • Zoom.Quiet 作XiaoQ进行关于DIP(Dive Into Python)的修订报告,及建议
  • BillXu 作关于自由软件发展及中国Zeuux(哲思)项目

Robert Chen 是第一次见到,以前只是在邮件件列中简单交流过。PPT原本是微软格式的,但是让 Zoom.Quiet搞掉了,所以动画效果没了。讲得很深入,也很细致。大家交流得也很充分,只不过对于初学者可能有些艰深。PPT下载

Alex Dong 则看得出是一个特别喜欢分享的人,希望把自已知道的东西都告诉别人,而且求知欲也是非常强。这次会课他主要是对于 django 的一些使用在好爱簿中的处理进行了介绍。

XiaoQ因为在长沙,因此无法到北京现场,于是由Zoom.Quiet替他进行了DIP修订的介绍。讲述了XiaoQ个人学习和产生修订的过程,目前是独自一人完成的,值得我去学习。为了生成格式比较好的输出还专门开发了转换程序,这也是学有所用吧。另外还提出了对于社区翻译项目的一些建议。

BillXu则主要讲解了自由软件、开源软件、专有软件各自的不同,发展历史。同时还介绍了自由软件在中国的一些情况,对于未来希望可以建立FSF-China或FSF-Asia分部。但目前时机还不是成熟,现在主要是发起Zeuux项目,先发展会员。同时介绍了本次T-Shirt活动的一些情况。此次Python相关的T-Shirt印刷都是经过Python基金会同意的,属于正版,大家放心。

大梵天是一个很有意思的人,很有激情,他是ubuntu手册的翻译者,这次来会课特别希望有人可以一同参与Python Core Programming(第二版)的翻译,为Python社区做贡献。据他介绍新的第二版有1000多页。

本次会课我认为最大的收获就是BillXu的自由软件相关的介绍,让我了解到了自由软件的四个自由度:使用自由,看源代码的自由,拷贝的自由,修改的自由。而开源软件只强调了代码的开放,其它的自由度并不是强制的,在一定程度上会产生误导。而自由软件更多是从社会学,道德方面来强调软件应该自由的重要性。自由软件事业在中国还有很长的道路要走,需要许许多多的人的理解和支持。

2007年08月06日

今天定在下午两点半钟,在开会之前邮件列表中就已经有许多人表示要出席了,结果会课开始后陆陆续续地还有人进来,大概到了30多人,是历年来人数最多的一次,其中不乏漂亮的MM。本次会课主要有三个议题:

  1. 由我进行Django方面的交流
  2. 由Alex Dong介绍thumbpy项目
  3. 由Zoom.Quiet和博文视点的编辑方舟介绍《可爱的Python》一书的进度

我因为最近比较忙,Django弄得不多,所以准备不是很充分,不过一讲起来竟然也讲了2个小时左右,留给后面的时间就少多了。其间简单说明了一下我为什么选择了Django。主要是:

  • Django出现得比TurboGears和PyLons早,有些先入为主
  • Django的组织方式适合我的口味。所有东西只要一个下载,不用象TurboGears一样需要联上网,通过easy_install来安全十几个模块。
  • Django的哲学也符合我的习惯。

后来,Zoom.Quiet发动张成介绍他们华美汉盛为什么选择Django。张成主要说:Django已经足够,另外它的哲学很实用,很符合他们的方式。

Alex Dong的thumbpy项目算是一个测试工具,特别是它可以做到代码覆盖检查。具体的工作原理,Alex Dong讲解得很详细,并且给出实际的操作示例。那么主要解决了2个问题:

  1. 如何计算每行执行的代码。这一点充分使用了sys.settrace和threading.settrace来捕获每条语句的执行,然后得到每行执行的代码的文件和行号。
  2. 分析源文件的每行代码,主要是为了去掉象注释,docstring,空行之类的无法执行的语句,从而使代码覆盖统计更准备。那么这块处理的难度主要是如何识别一行代码是不能执行的,通过paser模块得到一个ast树进行分析。

目前thumbpy可以使用python标准的unittest来进行测试,象doctest目前还不标准。而且也可以实现象nose一样的一个deamon的方式,即一旦启动,当你做了修改后,会自动进行测试。它还提供了一个-l参数,可以自动只测试最新修改的test代码,这样不必要每次全部再测试一遍,可以忽略掉没有修改的测试。

thumbpy目前是一个开源软件,已经放在code.google.com上了,而且Alex Dong欢迎所有感兴趣的人来完善它。他建议大家去试一试,用一用。

后面是广告时间。Alex Dong正在开发一个“好看簿”的网站,向大家征集两个网站设计的样式。在会上大家也各抒已见。一个设计是红色鲜艳的色彩,另一个是比较清淡的。我个人是偏向于清淡的,会上许多人也是如些建议。如果你也想看一看给出建议,可以访问这里。那么好看簿是一个什么定位的网站呢?它是一个上传图片,可以加入文字和声音,从而将一张或若干张图片变成一个故事。那么这次会课的“故事”就在这里

另外Alex Dong的夫人也一同前来参加会课,并且Alex Dong的夫人做了一个非常棒的Firefox插件,可以进行根据内容的广告过滤。如果你想试一试可以到这里给zephyr.fang发邮件索取。

最后则是Zoom.Quiet的《可爱的Python》的进度介绍、写作目的和未来的设想。同时博文视点的编辑方舟也发表了关于出版社与社区合作出书的看法,说国外是一种趋势,国内还在探索之中,希望我们CPUG能做得最好。同时这本书还需要大量的人来配合,所以建议有精力,兴趣的pythoner尽量掺和,让这本书早日面市。

会课进行了将近4个小时,直到下午6点多才结束。最后大家一起合了影,故事都在好看簿上了。上面有链接大家可以看一看,参加会课的可以把自已的名字登记上。同时好看簿也是使用Django开发的。参加会课的人有些是冲着Django交流主题来的,看来web开发的火热,而且Django在中国也算是火了。

2006年11月23日

昨天晚上与3位法国朋友在朝阳一边饭馆聚了一下,北京这边一共去了有10位。法国朋友很友好,Roger会点点中文,而且还很幽默。另外两个说了几次我也记不住叫什么,发音比较怪。有几位象Cheng Zhang的英文很好,可以和他们谈得来,我对于简单的可以听懂,说的话就太费劲了。吃饭的时候,大家随便聊了聊。最后决定先在google上共建一个Universal Python User Group,目前在:http://groups-beta.google.com/group/upug/

在吃完饭的路上和另一位法国朋友聊了一会我的项目,他的英文和我的英文差不多,有时还要通过纸来交流。不过他很喜欢笑,很有趣。他平时是使用emacs。不过Roger在描述他使用emacs表演很夸张,给人感觉使用emacs的因为习惯用键盘,所以手指有些变形,甚至连脚都想用上。样子非常有趣。

后来去了一家上岛咖啡大家又一起聊了一会。互相交流一下项目。最后12:00多结束。

感觉很愉快,就是晚了点。有时间还得多练练英语啊,也许有好多机会呢。

2006年09月24日

会课结束了,页面在这里

今天有10人参加。原以为别人还有一些东西要讲,结果只有我要讲。先是做了UliPad的使用介绍,结果有一些原本说是要演示的,到后来东西讲得多了,就忘了。还是边讲边演示的好。另外还出现了一些小bug,结果现在解决了。接着是进行了jQuery的介绍。

录音还没有传上去,等Zoom.Quiet了。我自已听着,真是感觉:不专业啊。呵呵。

2006年07月30日

今天在新浪的会议室举行了第九次会课。到会有八人。会议有两个议题:

  • Leo的使用介绍--zoom.quiet
  • LightTracker开始介绍--alax.dong

Leo是Zoom.quiet日常必不可少的东西,安装很早,使用基本上从2005年下半年开始。Leo是一款称为“文学编程”方式的编辑器。可以简单地说:面向结构,模板化编程。如何理解呢?对于一个程序,除了代码还有象注释,说明,算法等逻辑单位,在一般的编辑器是面向文本或代码的,你无法有直观的方式看到文档或项目的逻辑结构,最多可以看到类结构或代码结构,但对于分散的逻辑结构无法定义和简单地查看。而Leo却正好是以这些逻辑结构为基础的一个编辑器。在Leo中有许多的结点,组织成一种树型结构。一个结点对应一定的文本,文本中可以有对其它结点和特殊用于控制输出的标记。一个结点下还可以有子结点。如果在父结点上定义了一定的导出规则,就可以把相应的所以子结点按照父结点的结构和导出规则输出结果。父结点就象定义了结构的模板,子结点相当于模板变量的实例化。当然这种定义是可以递归的。而且结点的引用可以更复杂。这样,在编程中就是以定义和组织逻辑结点为基础,然后对每个结点进行编程。这种编辑方式可以使得逻辑关系一目了然,而且通过输出结点的特殊处理和结构安排,可以容易地对代码结构进行调整。

当然,从使用到熟练需要一个习惯的过程。

的确感觉不错。以前并不是很关注,因为许多东西都是靠记忆。但如何把这种记忆变成直观的形式呢?并没有仔细想过。现在看到Zoom.quiet的讲解感觉不错。而且许多人把他们的分析结果也存成了Leo的格式,可以从逻辑上直观的看到程序代码,而不是直面代码,这种感觉不错。看到Zoom.quiet收集的有python.leo和zope.leo,虽然版本可能有些老,但从别人分析的基础上再看代码可能直是很方便。而且推想大家的程序都这样写,那么理解程序可能相对简单多了。

如果NewEdit也支持这种功能,那么可能非常好。

后面是alex.dong做的关于lighttracker的开发介绍。那么lighttracker是alex.dong分析BitTorrent的tracker服务后的一个重新实现。原来的版本是采用twisted开发的,而alex.dong认为这是一个典型的web应用,完全可以考虑使用python的web framework来实现。当然,原BT的tracker服务还可以支持upd协议。不过既然是轻量的,可以不用考虑那么多。

而alex.dong采用web.py来开发,他认为web.py的好处主要有:

  1. 小巧,只要一个文件
  2. 封装层比较薄,比如对db,cookie,url映射等。模板采用cheetah。

因此对于快速开发非常方便。不过,有一些在演示中使用到的模块并不是python的标准模块,比如DBUtil,这些在web.py中使用,但需要单独安装的。因此在这方面,web.py还是有一些不足。原本alex.dong在用web.py实现了lighttracker之后,还希望使用django再实现一遍,但时间短,而且django的内容相对复杂,因此就放弃了。lighttracker实现了tracker的协议,如Announce, scrap, bencode。目前在sourceforge上创建有项目。

那么alex.dong同时还讲解了BT的工作原理和新出现的DHT(分布式HashTable),通过这种技术可以不通过中心服务器实现peer-to-peer的通讯(当然你总得有那么一次要与服务器连接成功进行初始化)。看来p2p的技术也在不停地发展之中。

然后alex.dong给我们运行,并进行了单元测试的说明。

效果不错,学到了BT的不少东西,而且也感受到了alex.dong的知识面很广。他除了使用python,平时主要以java和.net开发,而且是微软的MVP,水平可是不一般啊。

今天不错,因此会课从下午2点开始,到6点多才结束,回到家已经快8点了。许多东西还有待zoom.quiet进行整理。wiki页面访问。会后天成dreamingk希望下次我们去exoweb进行会课,真是期待啊。因为看到exoweb的工作环境与google有得一拼啊。

因为我在web方面主学的是django,因此对于web.py倒是有些想法。首先web.py应该算是一个比django还要简单的框架,而且它是在django之后出现的,并且许多东西直接学习的django。当然从功能上web.py没有django强大,从整体上说django很完整,比如ORM, template, url dispatch等。而web.py不是完整的ORM,只是对db的简单封装,当然我想也不能象django一样自动从Model生成表了(我没有用过web.py,我是这样想的)。web.py的模板系统采用cheetah,因此你还需要单独安装。session管理可能也不象django一样采用数据库。不过对于简单而且喜欢动手的人来说web.py可能不错。不过想比之下django的功能很强,但带来的问题的确,你要学习的更多。从使用者的角度来说,选择哪种web frame要看你的需要和你已经掌握的东西。强大的东西总是要学更多的东西。如果简单的东西够用,那么不一定要学更强大的框架。但如果你不想“事必躬亲”,希望更多的复用,还是强大一些的可能更适合。象我也是经历过不少框架的学习,如Karrigell, cherrypy等,到现在认为django比较适合我。学习不是一蹴而就,因此可以从简单入手,然后再了解复杂一些的框架。随着对框架的熟悉,终将实现运用自如,复杂不在是一个问题了。当然这一切都需要通过学习和实践来完成。

对于lighttracker的应用不算复杂。它只有两个表,因此在django中很容易生成。剩下的一些与tracker相关的处理,不管是用哪个框架都差不多,只是对于db和某些框架相关的可能有些区别。不过我想如果你熟悉django,还是很简单的。但简单永远是相对的。

2006年03月26日

今天到的人还算不错,特别请来了阿北给我们做豆瓣网的介绍。张成也带来了不少同事,主要介绍爱发现网站的功能和简单的设计,这可是使用 django 开发的哦。我主要还是介绍了 woodlog 的功能和设计方面的一些东西。

在会议上大家就各方面内容进行了广泛的讨论,比如 woodlog 的性能,最大用户数,这些说实在的,我目前开发 woodlog 还是为了学习,许多并没有考虑。后面阿北在介绍豆瓣网的时候,更多的给我的感觉是对性能的要求。从技术上讲,功能本身可能不算什么,主要是性能。阿北的体会的集中在数据库,在硬盘上面。当初阿北选择 MySql 的主要原因就是对性能的要求,而且 MySql 从各方面来说使用人数众多,应该是一个可以接受的产品。其它为了加快性能如采用 memcache 来处理 cache 等。因此阿北说得有一点很重要。他为什么不使用 ORM ,因为 ORM 一是没有经过性能的测试,另外是 ORM 多了一层包装自然会有损失,而且许多数据库的优化调整将无法使用。这是事实。对于我来说,方便,功能是第一,而性能是第二。但对于阿北,对于商业应用,性能可能是第一的,因此也更直接。

当然并不是说要放弃 ORM 放弃 framework ,因为不同的应用对性能的要求不同,而我考虑是更多的是小型应用,对性能的要求不会太高。这也是不同的目的,出发点自然不同。

张成兄展示了他们使用 Django 开发的爱发现网站。这是一个类似于 Digg 的网站。用户可以提交他从任何地方看到的新闻,而且爱发现网站也提供一个 RSS 聚合功能,方便用户提交。用户提交后将进入待选区,需要别人的推荐,然后才可以进入首页。以前张成给我过一个网址,那时他说美工没有做呢,的确是文本一片。不过后来学过一些 CSS 设计的文章,的确新式的网站设计就应该是这样的。Html 输出的是结构化的内容,显示交给 CSS 来做。现在看上去就非常漂亮。

最后就啄木鸟的内容管理各抒己见,不过基本上是同意对分类再明确,再简化。我从一个写程序的角度出发,我更希望做一个内容管理系统,其它人则有些还是希望在 wiki 上改,意见不同。不过 Zoom.Quiet 到是表式可以同时做,那么如果有这么一个系统的话,希望可以用起来。

整个会课还是很成功,就是 Zoom.Quiet 照片照得差了点,可能是不太会用我的照机吧,有些模糊。本来是希望有一次“腐败”的,但没有准备好,只有算了。

具体的会课照片和录音可以访问啄木鸟wiki

2006年02月27日

正好我们的CPUG的大会与PyCon大会有一天是重合的,也许是一个巧合吧。时间在 2006/02/26 日。参加人数不多。在会我先是由我主讲了关于 django 和  正在开发的 woodlog 系统。然后由 Zoom.Quiet 宣讲了关于 CPUG 的发展历史,2005年工作的一个介绍。再接着就是对目前存在的问题提出,然后大家讨论。在会上主要认定CPUG的目前阶段的主要工作仍然是大力宣传和推广 Python 语言,多与企业、学校联系,尽一切可能的机会多宣传 Python 。另外鼓励原创文档,翻译文档的创作,同时啄木鸟主机已经有一些自动发布的功能可以方便发布系列文档。对于项目目前仍以个人推动为主,但希望有强有力的项目作为CPUG的一个宣传的亮点。

在会上大家提了许多好的想法,一方面需要加强成员之间的交流,倡导有经验的成员更多的分享成功与问题。对于新手倡导积极的交流。

会课的语音下载页面

讲课的S5幻灯也在上面的页面可以下载。

2006年01月13日

我把 2004和2005年我所写的Blog打开压缩包提供给大家,有兴趣地可以下载看。

下载地址:

2004年 2005年

不管有用没用,反正是在一起了。注意,没有评论。而且也不保证完全与 donews 上的一样,因此有可能修改后没有更新。

2005年11月29日

下面是与 Python, cpug, CZUG, 啄木鸟社区 社区相关的邮件列集合,看一看。相关的wiki页面

 CPUG系列组织讨论群

  •  python.cn — 主列表的group 镜像讨论群

    • 强烈建议与 python-chinese@lists.python.cn 同时订阅,以免服务中断

  •  CPUG — 中国 Python 用户组讨论群

  •  BPUG — 中国北京 Python 用户组讨论群

  •  SPUG — 长三角地区 Python 用户组讨论群

  •  CPUG-eastchina — 东南中国 Python 用户组讨论群

Zope技术系列讨论群

CPUG系列项目相关讨论群

2005年11月21日

2005/11/20日,应庄秀丽老师的邀请,由CPUG的成员Zoom.Quiet在师范大学作了一次关于《漫谈自由与开源+啄木鸟社区介绍》的主题报告。我也终于出席了。CPUG的几位成员也去了,Albert Lee, Perrin, 清风等(有些第一次见面)。在坐有几十位学生,后来庄老师也来了。Zoom.Quiet讲得的确非常好,要是我则直接切入内容,根本讲不了这么生动。而且自由与开源的内容本身就非常多,不专门准备的话有些东西的确非常难讲。由于设备所限,没有照像,更没有录像了。

庄老师很热情,这也是我第一次见到庄老师。会后就立即要求安装 Python ,于是我为她装了一个,并安装了 wxPython + NewEdit 。然后展示了 Hello world 程序。不过,由于那间教室还有课,我们只好很快地结束。庄老师对于我们这些CPUG成员能够从不认识到一起做事情感到很好奇,这都是网络带来的好处,让我们许多人为了共同的兴趣能够结识,并且成为现实中的朋友。庄老师谈到希望使用 Python 来替换掉以前使用 Delphi 开发的一个软件,并且希望自已马上开始学习,在课上还向她的学生们建议大家都一起学习,并加入我们的邮件列表和社团,真是一个好学的人。

这是一个良好的开端。

报告的录音在这里可以下载。有些大61M:P

补一个照片 2005/11/22