Differences between revisions 14 and 21 (spanning 7 versions)
Revision 14 as of 2006-01-25 01:50:03
Size: 10557
Editor: limodou
Comment:
Revision 21 as of 2009-12-25 07:15:11
Size: 11191
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
写了一个DocBook的教程,阅读可以访问: [http://pyrecord.freezope.org/docbook/index.html DocBook学习] [http://pyrecord.freezope.org/download/docbook_step.zip/down 打包下载] 写了一个DocBook的教程,阅读可以访问: [[http://pyrecord.freezope.org/docbook/index.html|DocBook学习]] [[http://pyrecord.freezope.org/download/docbook_step.zip/down|打包下载]]
Line 10: Line 10:
 * ["Mix-in技术介绍"]
 * ["Mix-in技术与分布类编程"]
 * [http://blog.donews.com/limodou/archive/2005/11/08/619201.aspx Mixin技术的解释]
 * [http://blog.donews.com/limodou/archive/2005/11/09/620066.aspx mixin技术中Mixin与Plugin的区分]
 * [http://blog.donews.com/limodou/archive/2005/11/09/620117.aspx 一个使用NewEdit中Mixin模块的示例]
 * [[Mix-in技术介绍]]
 * [[Mix-in技术与分布类编程]]
 * [[http://blog.donews.com/limodou/archive/2005/11/08/619201.aspx|Mixin技术的解释]]
 * [[http://blog.donews.com/limodou/archive/2005/11/09/620066.aspx|mixin技术中Mixin与Plugin的区分]]
 * [[http://blog.donews.com/limodou/archive/2005/11/09/620117.aspx|一个使用NewEdit中Mixin模块的示例]]
Line 20: Line 20:
大量地使用了Mixin技术。查看["NewEdit"] 大量地使用了Mixin技术。查看[[NewEdit]]
Line 24: Line 24:
这是由Otter模板系统引发的一个小项目。是我设计的Python模板项目。查看["Meteor"] 这是由Otter模板系统引发的一个小项目。是我设计的Python模板项目。查看[[Meteor]]
Line 32: Line 32:
看到一个有趣的 confbot 项目,然后先是汉化,接着就是一系列的改造,版本从1.2一直升级到1.9.1(目前)。欢迎访问 wiki:self/GoogleTalkBot 看到一个有趣的 confbot 项目,然后先是汉化,接着就是一系列的改造,版本从1.2一直升级到1.9.1(目前)。欢迎访问 self:GoogleTalkBot
Line 36: Line 36:
  * [http://blog.donews.com/limodou/archive/2005/09/13/552149.aspx Dict4Ini 将dict保存为ini格式文件]
  * [http://blog.donews.com/limodou/archive/2005/09/14/553550.aspx Dict4Ini - 缺省值设置]
  * [http://blog.donews.com/limodou/archive/2005/09/14/553693.aspx Dict4Ini - 向ini文件中增加注释]
  * [http://blog.donews.com/limodou/archive/2005/09/14/553749.aspx Dict4Ini - 保存unicode字符串]
  * [http://blog.donews.com/limodou/archive/2005/09/14/553782.aspx Dict4Ini - 使用多级section]
  * [[http://blog.donews.com/limodou/archive/2005/09/13/552149.aspx|Dict4Ini 将dict保存为ini格式文件]]
  * [[http://blog.donews.com/limodou/archive/2005/09/14/553550.aspx|Dict4Ini - 缺省值设置]]
  * [[http://blog.donews.com/limodou/archive/2005/09/14/553693.aspx|Dict4Ini - 向ini文件中增加注释]]
  * [[http://blog.donews.com/limodou/archive/2005/09/14/553749.aspx|Dict4Ini - 保存unicode字符串]]
  * [[http://blog.donews.com/limodou/archive/2005/09/14/553782.aspx|Dict4Ini - 使用多级section]]
Line 44: Line 44:
写过一篇如何使用Latex的中文教程。阅读:[http://pyrecord.freezope.org/articles/doc2002032101/show LATEX中文环境使用(Windows)简介] 写过一篇如何使用Latex的中文教程。阅读:[[http://pyrecord.freezope.org/articles/doc2002032101/show|LATEX中文环境使用(Windows)简介]]
Line 48: Line 48:
写过如何使用MiniDom来处理XML,阅读:["MiniDOM处理XML文件"] 写过如何使用MiniDom来处理XML,阅读:[[MiniDOM处理XML文件]]
Line 52: Line 52:
 * [http://www.donews.net/limodou/archive/2004/04/12/11800.aspx C语言写Python extension实践]
 * [http://www.donews.net/limodou/archive/2004/08/12/66928.aspx pyrex学习笔记一 -- 序言]
 * [http://www.donews.net/limodou/archive/2004/08/13/67333.aspx pyrex学习笔记二 -- 综述]
 * [http://www.donews.net/limodou/archive/2004/08/13/67561.aspx pyrex学习笔记三 -- 与外部C代码的接口]
 * [http://www.donews.net/limodou/archive/2004/08/14/68151.aspx pyrex学习笔记四 -- 与外部C代码的接口]
 * [http://www.donews.net/limodou/archive/2004/08/14/68215.aspx pyrex学习笔记五 -- 限制]
 * [[http://www.donews.net/limodou/archive/2004/04/12/11800.aspx|C语言写Python extension实践]]
 * [[http://www.donews.net/limodou/archive/2004/08/12/66928.aspx|pyrex学习笔记一 -- 序言]]
 * [[http://www.donews.net/limodou/archive/2004/08/13/67333.aspx|pyrex学习笔记二 -- 综述]]
 * [[http://www.donews.net/limodou/archive/2004/08/13/67561.aspx|pyrex学习笔记三 -- 与外部C代码的接口]]
 * [[http://www.donews.net/limodou/archive/2004/08/14/68151.aspx|pyrex学习笔记四 -- 与外部C代码的接口]]
 * [[http://www.donews.net/limodou/archive/2004/08/14/68215.aspx|pyrex学习笔记五 -- 限制]]
Line 60: Line 60:
 * [http://blog.donews.com/limodou/archive/2005/09/13/552828.aspx i18n的动态切换与Lazy计算]
 * [http://www.donews.net/limodou/archive/2004/06/15/28916.aspx i18n的实现(一)-- 通常的实现方法]
 * [http://www.donews.net/limodou/archive/2004/06/15/28947.aspx i18n的实现(二)-- 遇到的问题及解决]
 * [http://www.donews.net/limodou/archive/2004/06/15/28961.aspx i18n的实现(三)-- gettext的实现原理]
 * [http://www.donews.net/limodou/archive/2004/06/23/32650.aspx i18n的一个小问题]
 * [[http://blog.donews.com/limodou/archive/2005/09/13/552828.aspx|i18n的动态切换与Lazy计算]]
 * [[http://www.donews.net/limodou/archive/2004/06/15/28916.aspx|i18n的实现(一)-- 通常的实现方法]]
 * [[http://www.donews.net/limodou/archive/2004/06/15/28947.aspx|i18n的实现(二)-- 遇到的问题及解决]]
 * [[http://www.donews.net/limodou/archive/2004/06/15/28961.aspx|i18n的实现(三)-- gettext的实现原理]]
 * [[http://www.donews.net/limodou/archive/2004/06/23/32650.aspx|i18n的一个小问题]]
Line 68: Line 68:
 * [http://www.donews.net/limodou/archive/2004/07/05/37895.aspx PySqlite 简明教程]
 * [http://www.donews.net/limodou/archive/2004/07/10/40733.aspx PySqlite 简明教程(续)]
 * [http://www.donews.net/limodou/archive/2005/06/14/429371.aspx 关于PySqlite 2.0的一些体会]
 * [http://www.donews.net/limodou/archive/2005/06/14/430149.aspx 一个使用pysqlite2的数据库备份小程序]
 * [[http://www.donews.net/limodou/archive/2004/07/05/37895.aspx|PySqlite 简明教程]]
 * [[http://www.donews.net/limodou/archive/2004/07/10/40733.aspx|PySqlite 简明教程(续)]]
 * [[http://www.donews.net/limodou/archive/2005/06/14/429371.aspx|关于PySqlite 2.0的一些体会]]
 * [[http://www.donews.net/limodou/archive/2005/06/14/430149.aspx|一个使用pysqlite2的数据库备份小程序]]
Line 74: Line 74:
 * [http://www.donews.net/limodou/archive/2005/04/27/354050.aspx 我使用roundup的经历] roundup的安装
 * [http://www.donews.net/limodou/archive/2005/04/28/354862.aspx 加上中文的译文] 中文化的过程
 * [[http://www.donews.net/limodou/archive/2005/04/27/354050.aspx|我使用roundup的经历]] roundup的安装
 * [[http://www.donews.net/limodou/archive/2005/04/28/354862.aspx|加上中文的译文]] 中文化的过程
Line 78: Line 78:
SetupTools 是一个新出的打包、安装工具,使用起来很方便。DjanGo 就是用它。访问[http://peak.telecommunity.com/DevCenter/setuptools 它的主页] SetupTools 是一个新出的打包、安装工具,使用起来很方便。DjanGo 就是用它。访问[[http://peak.telecommunity.com/DevCenter/setuptools|它的主页]]
Line 82: Line 82:
 * [http://blog.donews.com/limodou/archive/2005/08/06/497379.aspx setup.py和MANIFEST.in]
 * [http://blog.donews.com/limodou/archive/2005/07/23/477994.aspx SetupTools工具的使用心得(一)]
 * [http://blog.donews.com/limodou/archive/2005/08/05/496412.aspx SetupTools工具使用心得(二)]
 * [[http://blog.donews.com/limodou/archive/2005/08/06/497379.aspx|setup.py和MANIFEST.in]]
 * [[http://blog.donews.com/limodou/archive/2005/07/23/477994.aspx|SetupTools工具的使用心得(一)]]
 * [[http://blog.donews.com/limodou/archive/2005/08/05/496412.aspx|SetupTools工具使用心得(二)]]
Line 89: Line 89:
 * [http://blog.donews.com/limodou/archive/2005/12/14/658269.aspx 学习第一天]
 *
[http://blog.donews.com/limodou/archive/2005/12/15/658660.aspx 学习第二天(一)]
 *
[http://blog.donews.com/limodou/archive/2005/12/15/658751.aspx 学习第二天(二)]
 *
[http://blog.donews.com/limodou/archive/2005/12/15/659146.aspx 学习第二天(三)]
 *
[http://blog.donews.com/limodou/archive/2005/12/15/659553.aspx 学习第二天(四)]
 *
[http://blog.donews.com/limodou/archive/2005/12/17/661210.aspx 学习第三天(一)]
 *
[http://blog.donews.com/limodou/archive/2005/12/17/661286.aspx 学习第三天(二)]
 *
[http://blog.donews.com/limodou/archive/2005/12/18/662782.aspx 学习第四天]
 *
[http://blog.donews.com/limodou/archive/2005/12/23/668253.aspx Deferred属性装载]
 *
[http://blog.donews.com/limodou/archive/2005/12/24/669123.aspx assign_mapper]
 * [[http://blog.donews.com/limodou/archive/2005/12/14/658269.aspx|学习第一天]]
 * [
[http://blog.donews.com/limodou/archive/2005/12/15/658660.aspx|学习第二天(一)]]
 * [
[http://blog.donews.com/limodou/archive/2005/12/15/658751.aspx|学习第二天(二)]]
 * [
[http://blog.donews.com/limodou/archive/2005/12/15/659146.aspx|学习第二天(三)]]
 * [
[http://blog.donews.com/limodou/archive/2005/12/15/659553.aspx|学习第二天(四)]]
 * [
[http://blog.donews.com/limodou/archive/2005/12/17/661210.aspx|学习第三天(一)]]
 * [
[http://blog.donews.com/limodou/archive/2005/12/17/661286.aspx|学习第三天(二)]]
 * [
[http://blog.donews.com/limodou/archive/2005/12/18/662782.aspx|学习第四天]]
 * [
[http://blog.donews.com/limodou/archive/2005/12/23/668253.aspx|Deferred属性装载]]
 * [
[http://blog.donews.com/limodou/archive/2005/12/24/669123.aspx|assign_mapper]]
Line 100: Line 100:
Blog系统的安装、测试、及改造。["PyBlosxom-li"] Blog系统的安装、测试、及改造。[[PyBlosxom-li]]
Line 106: Line 106:
 * ["PyTextile"]
 * ["Py2Html"]
 * ["reST2Html"]
 * [[PyTextile]]
 * [[Py2Html]]
 * [[reST2Html]]
Line 112: Line 112:
[[Anchor(CCTranslationAnchor)]] <<Anchor(CCTranslationAnchor)>>
Line 115: Line 115:
  * "[http://pyrecord.freezope.org/translation 翻译与评论网]" 下载: attachment:CCTranslation_ed2.zexp   * "[[http://pyrecord.freezope.org/translation|翻译与评论网]]" 下载: [[attachment:CCTranslation_ed2.zexp]]
Line 117: Line 117:
 * [http://www.donews.net/limodou/archive/2005/04/22/346712.aspx 找个目录存放你的东西] 如何设置起如目录及5种页面写法介绍
 * [http://www.donews.net/limodou/archive/2005/04/22/346780.aspx 使用表单上传数据] 如何使用表单来上传文件,在KarriGell自带教程已经有例子了
 * [http://www.donews.net/limodou/archive/2005/04/23/347247.aspx k_config.py取得配置文件的信息] 分析k_config.py的处理过程
 * [http://www.donews.net/limodou/archive/2005/04/23/347349.aspx 我为什么选择了Karrigell] KarriGell与CherryPy的比较
 * [http://www.donews.net/limodou/archive/2005/04/24/348930.aspx Portal Demo中用户管理的学习] 了解KarriGell中dbstorage层的使用
 * [http://www.donews.net/limodou/archive/2005/04/25/350766.aspx 数据库实现中遇到的小问题]
 * [http://www.donews.net/limodou/archive/2005/06/19/436879.aspx 在命令行输出信息]
 * [http://www.donews.net/limodou/archive/2005/06/19/436974.aspx 请求的应答处理过程] 学习KarriGell的应答处理过程
 * [http://www.donews.net/limodou/archive/2005/06/19/437000.aspx 关于Gzip的一个Bug]
 * [http://www.donews.net/limodou/archive/2005/06/21/438998.aspx 增加不识别的mimetype]
 * [[http://www.donews.net/limodou/archive/2005/04/22/346712.aspx|找个目录存放你的东西]] 如何设置起如目录及5种页面写法介绍
 * [[http://www.donews.net/limodou/archive/2005/04/22/346780.aspx|使用表单上传数据]] 如何使用表单来上传文件,在KarriGell自带教程已经有例子了
 * [[http://www.donews.net/limodou/archive/2005/04/23/347247.aspx|k_config.py取得配置文件的信息]] 分析k_config.py的处理过程
 * [[http://www.donews.net/limodou/archive/2005/04/23/347349.aspx|我为什么选择了Karrigell]] KarriGell与CherryPy的比较
 * [[http://www.donews.net/limodou/archive/2005/04/24/348930.aspx|Portal Demo中用户管理的学习]] 了解KarriGell中dbstorage层的使用
 * [[http://www.donews.net/limodou/archive/2005/04/25/350766.aspx|数据库实现中遇到的小问题]]
 * [[http://www.donews.net/limodou/archive/2005/06/19/436879.aspx|在命令行输出信息]]
 * [[http://www.donews.net/limodou/archive/2005/06/19/436974.aspx|请求的应答处理过程]] 学习KarriGell的应答处理过程
 * [[http://www.donews.net/limodou/archive/2005/06/19/437000.aspx|关于Gzip的一个Bug]]
 * [[http://www.donews.net/limodou/archive/2005/06/21/438998.aspx|增加不识别的mimetype]]
Line 131: Line 131:
 * [http://blog.donews.com/limodou/archive/2005/12/27/672689.aspx (一)KarriGell和DjanGo开发体验,介绍一个最简单的hello,django的例子]
 * [http://blog.donews.com/limodou/archive/2005/12/27/672944.aspx (二)生成一个web form 用来做加法的简单例子]
 * [http://blog.donews.com/limodou/archive/2005/12/27/673302.aspx (三)使用Template的简单例子]
 * [http://blog.donews.com/limodou/archive/2005/12/28/673915.aspx (四)生成csv格式文件]
 * [http://blog.donews.com/limodou/archive/2005/12/28/674160.aspx (五)session的示例,开始进入数据库的世界]
 * [[http://blog.donews.com/limodou/archive/2005/12/27/672689.aspx|(一)KarriGell和DjanGo开发体验,介绍一个最简单的hello,django的例子]]
 * [[http://blog.donews.com/limodou/archive/2005/12/27/672944.aspx|(二)生成一个web form 用来做加法的简单例子]]
 * [[http://blog.donews.com/limodou/archive/2005/12/27/673302.aspx|(三)使用Template的简单例子]]
 * [[http://blog.donews.com/limodou/archive/2005/12/28/673915.aspx|(四)生成csv格式文件]]
 * [[http://blog.donews.com/limodou/archive/2005/12/28/674160.aspx|(五)session的示例,开始进入数据库的世界]]
Line 137: Line 137:
  1. [http://blog.donews.com/limodou/archive/2005/12/29/675762.aspx 第一部分]
  1. [http://blog.donews.com/limodou/archive/2005/12/29/675771.aspx 第二部分]
  1. [http://blog.donews.com/limodou/archive/2005/12/29/675805.aspx 第三部分]
  1. [[http://blog.donews.com/limodou/archive/2005/12/29/675762.aspx|第一部分]]
  1. [[http://blog.donews.com/limodou/archive/2005/12/29/675771.aspx|第二部分]]
  1. [[http://blog.donews.com/limodou/archive/2005/12/29/675805.aspx|第三部分]]
Line 141: Line 141:
  1. [http://blog.donews.com/limodou/archive/2005/12/29/676623.aspx 第一部分]
  1. [http://blog.donews.com/limodou/archive/2005/12/29/676636.aspx 第二部分]
  1. [http://blog.donews.com/limodou/archive/2005/12/29/676646.aspx 第三部分]
 * [http://blog.donews.com/limodou/archive/2005/12/30/677765.aspx (八)为通讯录增加文件导入和导出功能]
 * [http://blog.donews.com/limodou/archive/2005/12/31/678295.aspx (九)通讯录的美化,使用嵌套模板,静态文件,分页处理等]
 * [http://blog.donews.com/limodou/archive/2005/12/31/678696.aspx (十)扩展django的模板,自定义filter,进一步美化]
 * [http://blog.donews.com/limodou/archive/2005/12/31/679080.aspx (十一)用户管理和使用authentication来限制用户的行为]
 * [http://blog.donews.com/limodou/archive/2006/01/04/683035.aspx (十二)搜索功能的实现和Apache上的部署体验]
 * [http://blog.donews.com/limodou/archive/2006/01/09/688249.aspx (十三)简单的Ajax的实现(一),MochiKit的一些使用]
 * [http://blog.donews.com/limodou/archive/2006/01/09/688298.aspx (十四)简单的Ajax的实现(二),使用SimpleJson来交换数据]
 * [http://blog.donews.com/limodou/archive/2006/01/10/689415.aspx (十五)i18n 的一个简单实现]
  1. [[http://blog.donews.com/limodou/archive/2005/12/29/676623.aspx|第一部分]]
  1. [[http://blog.donews.com/limodou/archive/2005/12/29/676636.aspx|第二部分]]
  1. [[http://blog.donews.com/limodou/archive/2005/12/29/676646.aspx|第三部分]]
 * [[http://blog.donews.com/limodou/archive/2005/12/30/677765.aspx|(八)为通讯录增加文件导入和导出功能]]
 * [[http://blog.donews.com/limodou/archive/2005/12/31/678295.aspx|(九)通讯录的美化,使用嵌套模板,静态文件,分页处理等]]
 * [[http://blog.donews.com/limodou/archive/2005/12/31/678696.aspx|(十)扩展django的模板,自定义filter,进一步美化]]
 * [[http://blog.donews.com/limodou/archive/2005/12/31/679080.aspx|(十一)用户管理和使用authentication来限制用户的行为]]
 * [[http://blog.donews.com/limodou/archive/2006/01/04/683035.aspx|(十二)搜索功能的实现和Apache上的部署体验]]
 * [[http://blog.donews.com/limodou/archive/2006/01/09/688249.aspx|(十三)简单的Ajax的实现(一),MochiKit的一些使用]]
 * [[http://blog.donews.com/limodou/archive/2006/01/09/688298.aspx|(十四)简单的Ajax的实现(二),使用SimpleJson来交换数据]]
 * [[http://blog.donews.com/limodou/archive/2006/01/10/689415.aspx|(十五)i18n 的一个简单实现]]
Line 154: Line 154:
以下为0.92版本 以下为0.92+版本(当前DjanGo的最新版本为0.95)
Line 156: Line 156:
 * (一)KarriGell和DjanGo开发体验,介绍一个最简单的hello,django的例子 attachment:tut01.html  * [[http://www.woodpecker.org.cn/obp/django/django-stepbystep/newtest/doc|DjanGo Step by Step]]
Line 161: Line 161:
 * [http://blog.donews.com/limodou/archive/2005/11/30/642824.aspx Casing -- 将执行函数包起来]
 * [http://blog.donews.com/limodou/archive/2005/11/30/642855.aspx Casing模块使用(一)]
 * [http://blog.donews.com/limodou/archive/2005/11/30/642912.aspx Casing模块使用(二)]
 * [http://blog.donews.com/limodou/archive/2005/11/30/642968.aspx Casing模块使用(三)]
 * [http://blog.donews.com/limodou/archive/2005/11/30/643003.aspx Casing模块使用(四)]
 * 英文版 ["Casing"] 说明
 * [[http://blog.donews.com/limodou/archive/2005/11/30/642824.aspx|Casing -- 将执行函数包起来]]
 * [[http://blog.donews.com/limodou/archive/2005/11/30/642855.aspx|Casing模块使用(一)]]
 * [[http://blog.donews.com/limodou/archive/2005/11/30/642912.aspx|Casing模块使用(二)]]
 * [[http://blog.donews.com/limodou/archive/2005/11/30/642968.aspx|Casing模块使用(三)]]
 * [[http://blog.donews.com/limodou/archive/2005/11/30/643003.aspx|Casing模块使用(四)]]
 * 英文版 [[Casing]] 说明

=== 文学编程 ===
以reStructuredText为基础开发了一个小工具,它可以将自定义的code指示的内容保存为程序。

 * svn http://cvs.woodpecker.org.cn/svn/woodpecker/zqlib/tangle/limodou/liteprog/
 * [[http://wiki.woodpecker.org.cn/moin/LimodouShare?action=AttachFile&do=get&target=liteprog.html|文档阅读]]
 * [[http://wiki.woodpecker.org.cn/moin/LimodouShare?action=AttachFile&do=get&target=liteprog.zip|代码下载]]

DocBook

写了一个DocBook的教程,阅读可以访问: DocBook学习 打包下载

Mixin

这里有我以前写的关于Mixin的文章:

现在 NewEdit 中大量地使用了Mixin,具体的处理已经有很大的不一样了,有时间会撰文写出来。

NewEdit项目

大量地使用了Mixin技术。查看NewEdit

Meteor项目

这是由Otter模板系统引发的一个小项目。是我设计的Python模板项目。查看Meteor

EasyGuider项目

方便生成Wizard和Dialog的项目,可以与Meteor相配合成为一个模板替换或代码框架生成工具。查看 EasyGuider

ConfBot项目

看到一个有趣的 confbot 项目,然后先是汉化,接着就是一系列的改造,版本从1.2一直升级到1.9.1(目前)。欢迎访问 self:GoogleTalkBot

Latex使用

写过一篇如何使用Latex的中文教程。阅读:LATEX中文环境使用(Windows)简介

XML

写过如何使用MiniDom来处理XML,阅读:MiniDOM处理XML文件

编写扩展Python库

国际化和Unicode处理

Python模块使用

pySqlite

roundup

setuptools

SetupTools 是一个新出的打包、安装工具,使用起来很方便。DjanGo 就是用它。访问它的主页

我学习setup.py的一些心得:

SQLAlchemy

一个象SQLObject的ORM数据库模块,非常强大好用,强烈推荐

pyblosxom系统测试及改造

Blog系统的安装、测试、及改造。PyBlosxom-li

文本转换->HTML

这里讨论的文本转换都是指文本片段的转换,不是完整文档的转换。如果要实现也不是困难的。而且这些功能在NewEdit已经实现了。可以通过菜单就将选定的文本转成HTML了。

Web Framework 研究

Zope

KarriGell

DjanGo

以下为0.91版本


以下为0.92+版本(当前DjanGo的最新版本为0.95)

多线程研究

Casing模块

文学编程

以reStructuredText为基础开发了一个小工具,它可以将自定义的code指示的内容保存为程序。

LimodouProjs (last edited 2009-12-25 07:15:11 by localhost)