1. Freedom 综述

logo_flosspols_kleur2

Free-Libre and Open Source Software
自由/开放源代码软件 资料汇编

相关的思想性文章...

2. 知识森林

集中一些优秀的开源项目的文档,资料,代码,思想…………

  • 只是我们水平,能力有限,这里仅仅尽力汇集了我们常用的优秀项目的知识片段……期望在大家成长的同时,可以分享给更多人更好的中文资料!
  • translateProtocol 翻译约定,由 Twisted 文档翻译项目引出的成果

2.1. LAMPs

若想进行跨平台的解决方案, 那就没有绝对的事情!

  • LAMPs-LAMP“明灯”照亮我们的Web事业

    • Linux 开源!最核心的动力!
    • Apache 最 Power 的 Web 服务器...

Apache.org 旗下汇集了无数强力的开源项目,严然与成为开源开发的管理中心

  • PHP - Hypertext Preprocessor

最流行的嵌入库试动态网页脚本

2.1.1. Linux

  • 拯救了自由的系统!

2.1.2. FreeBSD

2.1.3. Lisp

古老优美的脚本语言

2.2. DB

  • MySQL

最流行的快速轻型DB

最Mini的高级关系型DB

  • ZODB -- 高效对象型数据库

2.3. Text!

文可文,非常文。本可文,非常本。文本,数据之始,字符,万思之母...

  • 文本作为最基础的数据格式从来没有在计算机世界中消失,而且以最快的发展速度在支持着我们最狂妄的需求!
  • 文本文件好 
    工具遍地跑
    程序两三行
    全部改好了
    

    -- 文本文件好 - Blog on 27th Floor

2.3.1. 结构化文本[StructureText]

使用缩进和简单的符号来标识文档结构的文本

  • ST -- 基础结构化文本

  • reST -- 新结构化文本

  • PyTextile -- 模糊化的标记文本

  • txt2tags -- 多模式结构文本 Python 应用!

  • AsciiDoc -- 简单方便的文本转换格式,支持HTML, Linux Man Page, Docbook

2.3.2. 标记文本[TagText]

标记文本!是XML的依存之道!

2.3.2.1. XML

2.3.2.2. 文章专用标签文本[DocBook]

2.3.3. TeX

  • LaTeX 使用技巧

  • Py2TeX将Python代码转换成TeX格式

2.3.4. 文本转换

2.4. 图象处理

含有章节索引的中文 文章模板

::-- hoxide [2005-07-29 19:08:23]

2.4.1. Python Imaging Library

2.4.2. ImageMagick

2.5. C / C++

2.6. Python

一种精心设计出来的脚本语言,使你可以快捷的实现任何愿望!

2.6.1. Pythonology 蠎学!

 Python 八荣八耻 

以动手实践为荣 , 以只看不练为耻;
以打印日志为荣 , 以单步跟踪为耻;
以空格缩进为荣 , 以制表缩进为耻;
以单元测试为荣 , 以人工测试为耻;

以模块复用为荣 , 以复制粘贴为耻;
以多态应用为荣 , 以分支判断为耻;
以Pythonic为荣 , 以冗余拖沓为耻;
以总结分享为荣 , 以跪求其解为耻;

2.6.1.1. 如何开始学习Python?!

2.6.1.2. Python 版本

追踪不同版本间的特性差异

2.6.1.3. Jython

差点儿死的咖啡蟒

2.6.1.4. 中蟒

总是被国人诟病的奇妙的Python 方言

2.6.1.5. Py Books

sizkim分享::

《Python编程金典》

PythonHowToProgram_book.zip 120Mb PDF格式
PythonHowToProgram_code.tar.gz

Pythonic 推广项目,组织,收集各种Python 学习,应用资料,进行推广宣传活动! Hoxide 发起

::-- ZoomQuiet [2005-03-20 04:58:51]

3. 缘起 Pythonic 推广

简述

  • 开源者, 不仅自己使用开放的软件, 同时也应该将这些美妙的东西介绍给别人, 共享是开源的精神基础. Python是我们的媒介, 是宣传开源和开源的切入点.

3.1. 推广计划

  • 2005 年 9-10 月, Python聚会? S(anghai/uzhou) Python User Group 发起? 组织活动?

3.2. 推广历史

  • 2004 年 3-6 月, Hoxide在数学学院机房, 6次讲解, 第一次将python介绍到了苏州大学.

  • 2004 年 11 月, Hoxide 《漫谈开源软件》, 将开源软件和开源精神作为一个整体一起介绍.

  • 2005 年 4 月, Hoxide 《漫谈python语言》, 一个时长两个小时的python介绍, 概览python的语言特性和应用实例. 其间还分发了刻有python软件的光盘.

  • 2005年 11月在北京师范大学,应邀进行一系列的宣讲活动 -- SpreadPyInBjTeachers

    • ..., Python 的科学应用?
  • 2007-03-17 在 bobo.com.cn 进行技术培训,推广Python -- AlbertLee

  • 2007-03-22 在 新浪内部进行技术培训,推广Python -- ZoomQuiet

3.2.1. 文宣资料

3.3. 资料收集

Python电子书本地收集 -- 啄木鸟空间发布

3.3.0.1. Py Tips

3.3.0.2. Python 学习笔记

Py 之灵活好学又是可以体现在大家各有入门妙方!倡议记录在案哪!

3.3.0.2.1. fall in Pythonic

初学者如何快速入门?

4. 反馈

  • 是也乎是也乎!非常积极的活动,鼎力支持! -- ZoomQuiet

4.0.1. Py 4 distribute

ejwe <jejwester@gmail.com> 
回复: python-chinese@lists.python.cn
收件人: python-chinese@lists.python.cn
日期: 2005-11-24 下午2:29
主题: [python-chinese] 如何“编译”Python程序[转]

如何编译python程序(或者如何由python生成可执行文件)是一个非常常见的问题,总是有人问,列出来,google搜索的时候就可以看到了。如果还有人说"找不到相关资料",唯一的解释就是这个人太懒了,根本没有去找。

如果转载,请注明出处。

  1. python(及其它高级的脚本语言)不存在把指令编译到本地代码的工具,但是总是可以发布可执行文件。

我觉得py2exe等等工具还是罗嗦,需要在配置文件中写上需要的数据文件作者完全无视这样一个事实:我需要发布可执行文件的时候,程序已经完工了,所有的数据文件就在主程序所在目录下,所以多数情况下,根本不用到别的地方搜索。

  1. py2exe http://py2exe.sf.net

只支持windows平台,应该是大家听到最多的一个名字了,用户不少,所以有问题的话在它的mail list里面很容易找到答案。文档中提到了"无法找到某某code"、使用opengl等模块的问题

  1. Installer http://www.mcmillan-inc.com/installer_dnld.html

可以产生windows、linux平台的可执行文件,现在作者主页连不上去了,但是搜索一下可以在其它地方下载 自带一个小程序写配置文件,如果程序较复杂,还是需要手工修改这个配置文件

  1. Python自带的freeze(不过windows版本不带这个,你可以自己下载python的源程序再找)。这个是我最不推荐的一种方法(为什么?自己看),不过如果你的python程序要发布到其它工具不支持的平台上,可以考虑这个方法
  2. 新出来的Pyco http://www.pythonapocrypha.com/projects/pyco/

还没用过

  1. Squeeze http://starship.python.net/crew/fredrik/ipa/squeeze.htm

还没用过,只支持python 1.4

  1. cx_Freeze http://starship.python.net/crew/atuining/cx_Freeze/

winodws、linux平台。简单的程序甚至都不需要写配置文件

  1. Stand alone Python for Windows http://arctrix.com/nas/python/standalone.html

如果你不介意源程序太过"暴露"的话,用这个吧 会不会觉得Updated: Sun, 09 Apr 2000 18:39:54 -0600 扎眼?如果你看一看它的VC源代码,就不会这么想了——其实这是普遍适用于win系统的方法,无论是98、2000或者xp。也许也可以用到linux上——我不懂linux,如果真的可以这么做,还请告诉我。

  1. py2app http://undefined.org/python/

支持linux平台的工具可能也支持mac os,或者直接使用这个py2app。具体就不知道了,只吃过苹果,还没玩过苹果呢

  1. 另类的方法,对python语言都还不是100%支持,众多的CPython模块也不可以使用,还有,我也没有试过:
    1. for .NET的python编译器(如Visual Python),不过我可不喜欢为了一个芝麻大的软件安装.NET framework
    2. 用jython,然后用jbuilder、jsmooth、NativeJ之类的包裹一下,或者用gcj编译成本地代码 http://blender.blogchina.com/523381.html

反馈

  • 还有使用 .egg 的 setuptools 那 —— ZoomQuiet

  • 我用wxPython给py2exe做了个界面,有兴趣可以试试.py2exe_gui —— 0.706

4.0.2. Py 4 Chinese

Python 中文 开发技巧

4.0.2.1. 中文Python资源

4.0.3. Py 4 IDE/GUI

Python 综合开发环境

Python GUI 开发技术

GUI 工具

Windows

Unix/X11

MacOS

Notes

Tkinter

(./)

(./)

(./)

最古老的Python GUI工具,基于tcl/tk,标准库中内置的GUI支持.参考书:John Grayson 的 Python and Tkinter programming.

PyGTK (+PyGnome)

(./)

(./)

(./)

Gnome的底层GUI库 GTK+ 的Python封装,并不推荐做跨平台使用.

wxPython

(./)

(./)

{X}

流行的跨平台GUI工具包 wxWindows的Python绑定.

PyQt

(./)

(./)

(./) (Mac Os 10)

KDE的底层GUI库,另一个流行的跨平台 GUI 工具包 Qt 的 Python 绑定.

FxPy

(./)

(./)

{X}

基于FOX的一个小GUI工具包,运行速度不错.

PyWin32

(./)

{X}

{X}

PyForDelphi

(./)

(./)

(./)

独立产品

* 将Flash应用于Python项目 -- Azureon

4.0.4. Py 4 Web

Python web 开发技巧

4.0.5. Py Web 应用平台(Application Frameworks)

WebProgramming - PythonInfo Wiki

Python WEB应用框架纵览

收集并描述各种基于Python 的WEB 开发平台,指引我们的敏捷开发

依大致国人关注度进行排序

超级框架

Twisted

主流框架

CherryPy

Django

TurboGears

Karrigell

web2py

  • 主页~ 号称企业级的web framework

  • Web2Py ~ 我们的体验!

web.py

Pylons

Quixote.堂吉诃德

Paste

Myghty

Zope系列

基础宣传
Zope3 时代
  • ZopeX3--全新开发的应用平台!

    • 但是!和ZOPE2的变化实在是太大了。难怪ZOPE3从2001年开始开发,一直到现在还有release呢,整个架构变了,连使用习惯都变了,对于想转到Zope3开发的人员来说是一个比较麻烦的问题。
  • Zope3Book -- 紧跟最新成果的翻译项目!honeyday 发起!

  • 三十分钟学会Zope3 -- 野火星兔

  • ZCA

Zope2 平台
CMF 框架

国人框架

Uliweb

  • Uliweb -- 由limodou发起,多人参加的开源web框架。

悟空智轮

  • WukooPy -- lihui 混合 Karrigell 和 Quixote 创造的 一个应用轮子

    • 哈哈哈!别直接龙了,叫 蟒龙是也乎?

CMS框架

PyCMS系列收集

itools

payago

pylucid

skeletonz

teeny_tiny_cms

边缘框架

Dabo

  • DaBo -- 又一个默默发展的快速开发平台!

Storm

Snakelets

ikaaro

  • IkaaRo -- 从工具包入手的CMS 构建包

atocha

  • atocha -- 一个围绕表单的web framework

    • 感觉还不错,可以考虑嵌在其它的web应用中用来生成表单 -- Limodou

robaccia

colubrid

aquarium

RhubarbTart

5. Pythonic Web 应用平台对比

更多的Py实现 CMS--内容管理平台
各种CMS 的对比见
cms_matrix cmsmatrix.org

排序原则

平台

有大把時間做企業級應用

plone,zope

適合 python 專家用

pylons, webpy, twisted.web, zope

追求一體框架

django, zope/plone, karingel

適合快速上手

karingel, cherrypy. turbogears

快速 CMS

django

支援度

django, turbogears, pylons, zope/plone

框架自由度

pylons, turbogears

一般用途

django, turbogears, pylons

文檔優勢

django, turbogears, pylons

有 Rails 背景

pylons, turbogears

有 AJAX/javascript helper/widgets

turbogears/pylons

WSGI 支持度

pylons, turbogears(django努力中)

JSON(AJAX server side)

turbogears

並用 flash/flex

turbogears

5.1. 再次综合对比

5.1.1. limodou 曰

limodou <limodou@gmail.com>              hide details    4:52 pm (8 hours ago) 
        reply-to                python-chinese@lists.python.cn   
        to              python-chinese@lists.python.cn   
        date            Jul 8, 2007 4:52 PM      
        subject         Re: [python-chinese] 现在python的web框架这么多,有没有人能分析分析各自的优点缺点?        

从级别上来说:

  • 轻量级:web.py karrigell cherrypy
  • 中量级:django, tg, pylons
  • 重量级:zope/plone
  • 从个人的体会:轻量级适用范围太小,象web.py, karrigell还算全面,而cherrypy就应该只算一个web

server级的了,许多东西都没有,大量的要自已去做.从这三者中如果要选择,我会选择karrigell.karrigell更接近php,功能比较多,模板丰富.

  • 不过既然是轻量级,自然会过渡到更高量级的框架上,这是随着你对web开发的要求越来越高,比如ORM, 模板,更好的组织方式,自动化的功能,可参考的项目等等因素.
  • 从中量级已经有过不少人对tg和django进行比较,在ibm开发者网站上还有过,网上也不少,不过可能大多是比较ROR与django.从设计哲学上来看,tg与pylons很接近,它们都是若干个项目的集成,而且目前越来越趋同,比如都使用mako模板,sqlalchemy这个ORM.而且有一个sprint是在pylons上跑tg,不过没有仔细研究过.大量地使用了wsgi.构建基础是在setuptools之上,甚至还使用了setuptools提供的插件机制可以从网上自动安装东西.
  • 而django则可以认为是一站式的框架,不象tg/pylons需要安装大量的第三方的模块,安装django很简单,以前有阵子django的安装框架也是使用setuptools,但是因为使用了setuptools,如果你的python不是2.5以上版本,因此setuptools不是内置的,所以需要单独安装,后来django团队认为这个并不能带来什么好处,因此它内置不信赖于setuptools的某机强大的机制,再加上对于没有安装setuptools的人并不方便,所以就改为原始的setup方式了.所以从这里也可以看出django的设计是集成化的方式,与tg/pylons差别之巨大.因此有人想过何时tg与pylons会合并也正是因为它们设计思路的接近,而django与其它两者之间基本上是不可能的.关于django的功能不想过多的介绍了,应该有不少,最大的特点要算是:admin功能自动生成,正则式方式的url设计,简洁而拘谨的template,自成体系的ORM,出色的i18n的支持,目前又已经将unicode分支合并到主干上来了.
  • 从三者出现的时间来说:django>tg>pylons.

  • 我为什么选择django,主要是django的设计哲学与我个人的习惯接近,我认为django安装使用方式,不用自动从网上下载若干个模块,对安装非常方便.而且因为django出来的早,所以在没有发布前就从python邮件列表中得到消息就已经开始关注了,所以对它的态度可能有些先入为主.再加上django最具影响力的就是Guido

van Rossum这位python的创始人在多个场个宣传他喜欢django,就是在最近的Google developer day上,在北京见到这位"明星"他还在说:"I like django".因为我想他的一个观点就是:"Simple is the best.". 当然象大朗所说学习成本高要看怎么说了.如果你的要求高,django有许多高要求的东西,学起来自然很高.如果你的要求低,功能自然差了许多,而且可以使用admin,所以学习成本不高.而且每种框架都有自身的难度,深入下去自然要求比较高.这种高要求也许不全是学习成本,比如有些功能可能框架就没有, 这种难度就不再是学习的难度而是需要由你设计或寻找一个可用实例的难度了.

  • web框架我要说:因为简单的会不够用,所以迟早会选择一个功能强大全面的框架.框架需要有活力,有发展.要看自身的要求与关注点,从多个框架中选择一个合适自已的.至少从功能来说django/tg/pylons是差不多的,而如果tg/pylons如果合并的话,就有两个功能相当,适合两种不同的使用习惯的人使用了.
  • zope/plone可能需要专业从事web开发的人长期的投入,它就象一片大海,让人很难摸清楚.zope我只学过zope2,而且还是只会使用dtml,zclass, python script来开发,象product,tal都没有使用过.而zope3更不要说了.而plone是基于zope之上的一个cms的产品,功能更强大,内容更多.学习zope/plone更多的是在使用产品,大量的时间可能是花在学习zope和plone的组件的学习上,而不是python本身.而django/tg/pylons则许多还是依赖于python的语法功能,如decorator等,还是可以明显得看出python的东西来,学习的感受不太一样.再如zope3中采用了xml来描述配置,引入了interface,这些在其它的python开发中应用并不广泛,不能说它不好,只是说可能与一般的python程序员所追求的"Simple is the best"可能不太一致.习惯了简单东西的python程序员可能很难再去投入到一个看上去复杂的体系中了.我可能就是这样的.

5.1.2. 沈崴 曰

沈崴 <wileishn@gmail.com>                  hide details    12:36 am (40 minutes ago) 
        reply-to                python-cn@googlegroups.com       
        to      
        python-chinese@lists.python.cn,
python-cn@googlegroups.com       
        date            Jul 9, 2007 12:36 AM     
        subject         [CPyUG:28791] Re: [python-chinese] 现在python的web框架这么多,有没有人能分析分析各自的优点缺点?   
        mailed-by               googlegroups.com         

赵老师, 您好! 我曾走马观花地尝试过上述某些框架, 略有些感想, 希望能对您有所帮助 :)

  • 0. Limodou 关于这些工具级别的阐述说得很好!
  • 1. Ruby on Rails, 当项目进行到一半的时候, 所有人都意识到这其实是一个错误。因此, 我们放弃了 ROR。对 Python

程序员而言, 除非 ROR 带来的商业利益超过成本上的支出, 否则很难适应 ROR 的效率。打个比方, 在 Plone 中尽管你可以使用 ArchGenXML 通过 UML 图来建立 Plone 应用, 但是真正开始使用后, 我们会发现手写 Archetypes 代码其实要比画 UML 图要来得方便和快捷。

  • 2. Zope/Plone 是我现在完成所有应用的首选。Plone 已经自带用户、权限等系统,

你完全没必要自己作任何事情。Archetypes 拥有难以置信的建模能力, 搜索引擎和增删改页面全自动生成。Plone 自带的工作流引擎允许你靠鼠标完成工作流设计。使用得当, Plone 能带来几十倍的开发效率提升。Plone 也有非常严重的问题。首先,几乎所有人都认为 Plone 很慢, 事实上, Plone Skin 带来了太多 IO, 明白这一点, 我们能把 Plone 加速到和 CherryPy2 不相上下的程度。其次, 很多人对 Plone 定制苦不堪言, 但是如果不过于依赖 Plone Skin, 那么这也不是一个问题。最后, Plone 的栈很深, 不是所有人都会有足够耐心花几年时间来熟练地使用她, 这才是真正的问题 (在下认为这是完全值得的)。

  • 3. 当应用不足以用到 Plone (比如我突然要为字符终端程序编写一个系统后台守护进程), 特别地, 当 Plone

过于完善的系统反而完全束缚了我们, 既然 Django 看上去是目前最好的框架, 这时候我选择 Django。这或许从一个侧面反映了一个在国内鲜为人知的情况, 那就是无论是国内还是国外, 使用 Plone 的应用要远超过 Django, 但是 Plone 程序员不会告诉你哪些站点是用 Plone 开发的, 因为这太偷懒了。常常, 这时任务会简单到直接使用 SimpleHTTPServer.py 就可以解决, 因此即使是一个临时方案, Django 还是很少被我用到。

  • 4. TurboGears 系的程序员或许会感慨没有像 Django 那么好用的 URL 映射系统, 这是个意想不到的大问题,

因为黑客或许会选择像 TG 那样通过重用构建起来的东西, 但是他们更喜欢正则。

  • 作为 TurboGears 系的一员,小弟斗胆猜测大家的潜台词可能都是: 我们爱 CherryPy 这样的好东西, 这带来了另一个意想不到的大问题: Apache Proxy已经是一个 Tree Mount 和正则发布系统, 无论对 CherryPy 还是 Django 这都绝对不是一个好消息。

  • 接下来,