2006年02月28日

现在在 wxPython 的邮件列表中正在开始一个非常有意义的项目,那就是由SPE编辑器的作者Stani发起了几大 wxPython 的编辑器的作者一同开发一个新的编辑器的项目。有人建议是做成一个IDE,不管怎么样都行。已经包含了象SPE, NewEdit, DrPython, ActiveGrid, 等人员的加盟,还有其它相关的一些项目的作者,如一个UML模块的作者,Eric3的作者也在关注,还有Robin这位wxPython的大佬也在关注。讨论很热烈,目前基本的想法是先创建一个精巧,稳定的核心,然后展开。但具体的细节还要等创建项目之后,可能会有一个wiki进行讨论。

不过使用英文讨论真是很麻烦,看着费劲,写着费劲。不过到是可以认识不少人,还是不错。有兴趣的也请关注,这将是一个非常好的学习的机会。有这么多经验非富的人参与,前景还是不错。

2006年02月27日

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

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

会课的语音下载页面

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

因为繁忙,甚至连重大的 Python 大会都没有来得及报到。

Python大会在Dallas/Addison Marriott Quorum Hotel举行。正式的会议时间是 2/24 – 2/26 日。因此到本文发布时主要会议已经完成。内容可谓是非常多,安排得也很紧张。日程安排。 从2/27-3/2日是常规的sprint日,也就是大家在一起实际地解决一些问题,在短时间内让大家一起做些东西出来。

关于大会有一个网站可以看这里

我是没有机会参加的,不过有人在网站记录了一些情况。看这里。不过这个报道是位于blogspot上的,因此一般你是看不到的,但可以通过bloglines订阅。或在 http://www.planetpython.org/ 看到。Guido 作了主题发言,特别是讲述了一些关于 Python 2.5 版的一些进展和变化,预计新版本将在今年9月发布,真是一个好消息。具体的内容还是希望大家去上面的链接看一下。

关于 sprint 的安排参见这里。其中关于 django 的在这里。上面有一些计划,都是不错的,象:

将magic-removal 与trunk合并。事务。模式的派生(即model的继承)。多种后端认证,如OpenID。创建Django的标准应用库。实现Oracle/ODBC的数据库后端等。当然题目都不错,但到底是哪个被选中,还要看他们的具体安排。

Eugene Lazutkin参加了大会,并且拍了不少照片。Blog记录地址在这里。Flickr 地址在这里。选一些照片出来:

Guido不知何时留起了大胡子。不知道是不是因为看了孟岩所写的《胡子决定编程语言运势》,反正是留起来了。大家通过上面的链接看照片时可以看到 Guido 的衣服换了几次,有Google的,有Powered by Python的。

Andrew Kuchling,我们看到的许多Python的文档就是出自他之手。

左边不知道,但右边是Ian Bicking。看脸型,如果刮掉胡子还比较帅啊。

右边就是Django的创始人之一:Adrian Holovaty。表情总是这么害羞啊。

Jacob Kaplan-Moss是django的另一位创始人。

大家自已去找吧,很多有趣的东西。

2006年02月17日

一直想做一个 Blog 系统,想在啄木鸟主机上装一个。为什么,因为 Python 真的没有一个好的 Blog 系统。在做 NewEdit 项目的时候,我似乎明白一些道理:

  • 经验要靠做的
  • 自已的才是大家的

学习这件事,光看书不行,要实践。实践的目的是为了真正理解,而真正理解就是一想就有,已经在头脑中留下痕迹,必需要对你的大脑产生一定的刺激才可以。强度不够都不行。因此要不停地实践。在实践的过程中你一定要积累。怎么积累,代码写出来了,就是积累,以后可以参考。文章写出来的也是积累,同时对你的思维是一个整理的过程。说白了,就是要有拿得出手的东西,可以保存起来的东西。不然,时间长了,很可能就忘了。积累是一个漫长的过程,只有坚持才能有收获。积累还是一个寻找的过程,寻找和记录下你认为有用的东西。积累还是一个考虑的过程,你会琢磨,哪些是有益的积累,哪些是无益和积累。在这种积累过程中你会形成自已的风格,自已的思维方式,从而决定的你要走什么样的道路。

许多东西不好用怎么办。自已做。有些东西可以与别人合做,有些东西可以自已做。合做的东西总有自已不是很清楚的东西。而自已做的东西,除了遗忘,都是清楚的东西。因此自已做的好处是你会很方便地将你的经验应用到其经的地方,而且可以无限制地使用你的成果,不用担心其它的问题。自已的东西你是最熟悉,也是使用起来最顺手的。从而可以大大提高你的生产力。

如果你喜欢分享,首先你要有积累才能贡献给大家。自已做的东西最容易积累,好与不好,可能对别人都有帮助。

那么这个 Blog 系统也算是我学习 django 以来做的第一个大点的东西。原本想得功能挺多,多用户,Ajax功能,多级分类,多级评论等等。但真做起来才知道问题很多,有经验的问题,也有 Django 本身的问题。因此只好把功能简了又简。现在终于有一个单用户,可以做一些简单处理的 Blog 系统了。有兴趣的话大家可以看一下。这个 Blog 功能还很弱,纯当是学习了。如果可以的话,慢慢完善吧。

SVN 地址: http://cvs.woodpecker.org.cn/svn/woodpecker/zqlib/tangle/limodou/blog

2006年02月16日

学习一门语言的原因有很多,基本上可以归为:为了谋生,为了兴趣。

谋生是一个很现实的问题。许多人都想学好编程,目的是为了找一个好工作。在网上我看到一篇 Blog 是关于 Snakes & Rubies 的会议发言,有人记录下来了一些重点,其中有几句我感觉很好的:

On using "not mainstream" languages:
Adrian: "Our response was: With PHP people learn that because they
want to get jobs. With Java they learn that because they take computer
science courses. With Python you learn it because you love it. Because
you want to experience the beauty. I’m sure it’s the same way for
Ruby. If I’m hiring a Python programmer the chances are that the
person is good."
David: "I totally agree."

编译成中文为:

当谈到"非主流"语言:
Adrian:"我们的回应是:人们学习PHP是因为要得到一份工作;人们学习Java是因为他们选修了计算机科学这门课;人们学习Python是因为他们爱这门语言,因为他们追寻美,(我相信这对Ruby也是适用的)。如果我雇佣了一个Python程序员,他很有可能是优秀的程序员。"
David:"完全同意。"                             由bSword译

于是我也无聊,想发到CSDN上去,但没想到选为非技术话题,结果贴子跑进了灌水乐园了。真有人回复,见下:

这些都是废话,最实际的需求就是老板需要。
喜欢又不能当饭吃,不要用老外的价值观来对比,别人可以写一个月程序活半年,我们行不?

还是要吃饭的
中国和外国不一样

楼主不知道有中国特色的社会主义吗?

诊断:楼主目前活在精神世界中

而我的回答是:

吃饭的话我用c,java。也许还有可能是python。

请注意,这里并没有说我是否需要靠python来吃饭。你完全可以只把它当作一个兴趣。

其实本就是一种感悟,生活要放得轻松些才好。结果许多人看到Adrian的第一反应就是:挣钱。不可不说这的确是中国的一种现实,也是中国在开源方面不足的地方。但这些并不是我想说的。我想说,生活中除了工作挣钱,你还可以有其它的爱好,甚至是理想。也许这些理想不能成为现实,但正是因为有了许多美好的理想生活才不会那么单调和乏味,除了工作挣钱你还可以有许许多的有意思的事情去做。如果你认为这种生活不现实,那只能承认你的生活并不让你满意。

在 Python 的邮件列表中至少还有人同意Adrian的话。同时也证明了物以类聚,人以群分的简单道理。

2006年02月14日

以前真是没有太仔细想 URL 的设计,现在正在考虑以一个 Blog 程序来练手。于是我首先想实现一个日历功能。一个简单的日历的确没有什么,但日历上一般都有链接,于是这些链接就是问题。特别象 Blog 程序,日期可以认为是一个入口,比如年、年/月、年/月/日这表示不同的入口。那么它是与整个 Blog 网站相关联的。因此日历虽然做为一个小部件,但它却可以起到控制入口的作用,因此它就与整个 Blog 网站关联起来了。

当我在日历上允许提供链接的话,那么这个 URL 的规则就变得十分的重要。我可以完全让外部来提供,而在日历显示部件通过参数来处理,但迟早我会遇到这个 URL 的设计问题。于是考虑到 django 的 URL 的特点,我想对于全局性的 URL 的使用真是要提前考虑。而且一旦确定,下面的开发相应要简单一些。这样我只需要设定一个基本入口,然后其它的就按常用的方式:年、年/月、年/月/日这样来表示就行了。

不过在具本的实现上还是存在选择,那就是:页面方式与Ajax方式。比如我点击上个月的链接,那么只是日历发生变化,还是整个页面重新刷新呢?我看了看一些 Blog 的方式,大部分是页面整个刷新,但其实只有日历发生了变化,具体的 Blog 内容并不变化。如果是这种情况,使用 Ajax 技术只刷新日历效果可能更好。如果是连内容一起刷新,那么就可以使用传统的方式。

这样的话,整个 Blog 网站就变成以内容加日期为主体了。比如:

yyy.com/username/blogs/2006/02/14/1234.html 用于单个Post
yyy.com/username/blogs/2006/02/14 一天的Post
yyy.com/username/blogs/2006/02 一个月的Post
yyy.com/username/blogs/2006 一年的Post
yyy.com/username/manage 用户管理
yyy.com/username/rss/categories/python 某个分类的RSS
yyy.com/username/rss/comments 评论的RSS

等等。有了良好的 URL 设计,一些工作看起来好象清晰多了。

2006年02月13日

具体内容已经上传至 SVN ,本讲主要讲述一些关于 View, Template, Tag的关系和设计的一些建议,没有具体的例子。

在线观看

2006年02月10日

今天在邮件列表中收信发现和以前不同的,原因是:以前google的信不会自动贴加一些论坛的引脚信息,如:

您收到此信息是由于您订阅了 Google Groups "python.cn" group.
 To post to this group, send email to python-cn@googlegroups.com
 要退订此论坛,请发邮件至 python-cn-unsubscribe@googlegroups.com
 For more options, visit this group at http://groups.google.com/group/python-cn

但以前并没有。看来是一个新功能。于是上到 google group 中将其改掉。同时还发现以前没用过的一些设置,有趣。

其实这个世界充满了冲突,自然会引起许多的争论。 CSDN 上已经有一场争论,不过人就是这样,人有自已的尊严,为了它自然要去维护。也许你说的对,但他有他的理由。这也是为什么世界不会真正的统一,会有这么多语言的原因。不去管它,单说我自已吧。

django 中发了一个 Ticket ,结果被 Adrian 关掉了,原因是他认为没有多大用。争论就在此开始。不过一上来我就吃了个大亏,因为这是一个英文的邮件列表,而我的英文一般,唉……

那么主要的原因是:我希望使 Django 的处理自动化,如应用的部署,不用手工去修改 settings.py and urls.py。于是我发起了新的 Ticket 是关于将配置信息由原来的 Python 文件转为文本文件。但在邮件列表中基本上是没有人支持。于是我重新思考了一下,应该是建议 Django 对自动化提供支持。主要是使对 settings.py 和 urls.py 的读取,写入和保存更容易。

但似乎列表中的老外们对于自动化工具,对于编辑器的支持很不感兴趣。象我以前表过的关于在 NewEdit 中开发 Django 和自动化安装工具 djangoinstall 基本上没人感兴趣。于是我又想,是不是我太懒了呢?我光想一些方便的东西。对于别人来说,修改个把文件根本没有什么很简单,但如果不是一个或两个而是一堆,你会如何。也许是中西方思想的差异?不过从做项目来说,老外的软件的确是更规矩一些,象版权声明,安装指南,用户手册等的确很全。也许老外喜欢做这些细节的工作?

于是我将邮件改了个标题,看一看这回大家有什么意见。也许有比改变配置的格式更好的解决方案。

另外我原本想建议使用dict4ini来处理python变为text的,但发现对于[(,)],即列表元素太复杂,比如是tuple无法支持。因此不行。看来dict4ini还不能作为对象dump工具。可以考虑象yaml或obj2ini之类的工具。不过这个方案恐怕没人支持。

讨论比较激烈,再次感到自已英文水平不行啊。

为什么要改,因为希望让大家使用更方便,比如方便订阅。特别是我想让我的 feed 与别人一样,可以自动每天生成一个从del.icio.us生成的摘要(以前使用furl,不过用用就不用了)。因为喜欢使用Scrapbook将页面保存到本地,但我想许多东西还是要与大家分享。这次我想试试del.icio.us,并且希望让更多人知道我。呵呵。

但我并不希望把生成的摘要作为我的blog的内容,这些不是我的原创。而希望象有些blog一样,只在rss中出现。因此即可以满足分享的要求,也不影响我blog的原创性。

于是我开始使用 FeedBurner 来“烧制”我的 Feed。我想要的它都有,我没想到的它也有,慢慢研究吧。因此建议大家改一下我的 Blog 的 Rss 的地址为: http://feeds.feedburner.com/limodou

 
Add to Google 
Subscribe in Bloglines