<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-14916928</id><updated>2011-10-14T13:35:47.085+11:00</updated><title type='text'>OneZ Studio</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default?start-index=101&amp;max-results=100'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>112</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-14916928.post-4918189718719528462</id><published>2011-10-14T13:34:00.001+11:00</published><updated>2011-10-14T13:35:47.137+11:00</updated><title type='text'>Subversion 1.7</title><summary type='text'>Subversion, 现在该叫Apache Subversion, 10月11日发布新版本，1.7.0。  Subversion 1.7的一个重大改变是，Working Copy Metadata Storage Improvements，提供了一个完整可重写的工作副本元数据管理系统(WC-NG)。其结果，就是中心化元数据存储。  在使用以前的Subversion时，工作副本中的每一个子目录，都包含一个.svn隐含目录。在1.7.0中，所有版本控制的相关元数据，都集中到工作副本的根目录下，唯一的.svn隐含目录中了。  1.7.0中，使用SQLite数据库，存储版本控制中的全部元数据(.svn/wc.db)。  Windows平台下的TortoiseSVN，亦作了相应的更新。针对上面的元数据存储机制的改变，TortoiseSVN提供了一个菜单选项，用以升级SVN工作副本。当然，升级以后</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/4918189718719528462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=4918189718719528462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/4918189718719528462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/4918189718719528462'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2011/10/subversion-17.html' title='Subversion 1.7'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-1706327173133053733</id><published>2010-07-28T10:26:00.001+10:00</published><updated>2010-07-28T10:26:06.390+10:00</updated><title type='text'>Behind the Wizard (Cherokee + Django)</title><summary type='text'>在前一篇中，介绍了如何在Cherokee Web Server中，通过其内置的Django Wizard，整合Django项目。在建立了一个虚拟路径之后，就马上能够提供Django项目的Web服务了。   这个Wizard做了哪些事情呢？  1. Rule  虚拟路径/firstonez，是一个关于路径的规则。所有对/firstonez的访问，都要应用此规则。  2. Handler   于此规则相对应的Handler，采用SCGI方式。即Cherokee Web Server通过SCGI协议，将对/firstonez的访问，转移给Django项目。具体的SCGI设置如下：   这里定义了SCGI所连接的信息源头(Information Sources)，Django Wizard自动建立了一个名为“Django 11”的信息源，其对应的地址和端口为：127.0.0.1:43095。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/1706327173133053733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=1706327173133053733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/1706327173133053733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/1706327173133053733'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2010/07/behind-wizard-cherokee-django.html' title='Behind the Wizard (Cherokee + Django)'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_vxu3Int_2nc/TE95DOoPnnI/AAAAAAAAAEE/OWiQo1TgLPo/s72-c/Ubuntu%2010.04-2010-07-26-13-04-11_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-7546756269351506882</id><published>2010-07-26T13:52:00.005+10:00</published><updated>2010-07-26T19:33:03.790+10:00</updated><title type='text'>Serve the Django Project by Cherokee Web Server in Ubuntu</title><summary type='text'>被myhat123念了无数次Django，我一直没有去碰Django。刚好前日在VMWare里面，安装Ubuntu 10.04 LTS，顺便安装了下Django，算是给myhat123一个交代。  Cherokee Web Server，我以前只是偶有耳闻，也是没摸过。呵呵，也顺路一起了。  1. Installation of Django and Cherokee  Ubuntu里面，安装软件很省心。在Synaptic Package Manage里面，选择软件包：cherokee，python-django和python-flup，然后“Apply”安装。  当前安装的Cherokee版本是0.99.39-4.1，Django版本为1.1.1-2ubuntu1。  安装之后，Cherokee Web Server就已经开始运行了。系统也已经为建立Django项目作好准备。  2. </summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/7546756269351506882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=7546756269351506882' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/7546756269351506882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/7546756269351506882'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2010/07/serve-django-project-by-cherokee-web.html' title='Serve the Django Project by Cherokee Web Server in Ubuntu'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_vxu3Int_2nc/TE0Ga0uM2NI/AAAAAAAAADE/8Oyg6U2NNlk/s72-c/Ubuntu%2010.04-2010-07-26-12-27-27_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-7673375315561895726</id><published>2010-07-19T15:47:00.002+10:00</published><updated>2010-07-19T17:11:36.601+10:00</updated><title type='text'>Work with JSON Data in Firefox</title><summary type='text'>JSON (JavaScript Object Notation)，作为轻量级的数据交换格式，被越来越广泛地应用在Web Application中。这里讨论的是，如何在Firefox里，有效、方便地和JSON数据打交道。 1. JSON (JavaScript Object Notation) Regular Format JSON数据在使用上，是非常简单易用的。很多语言都提供了JSON数据的编码和解码函数。比如在PHP程序中，可以这样来输出JSON格式的数据。            1: &lt;?php&lt;!--CRLF--&gt;   2:     // data initial&lt;!--CRLF--&gt;   3:     $myData = array();&lt;!--CRLF--&gt;   4:  &lt;!--CRLF--&gt;   5:     // data update&lt;!--CRLF--&gt;   6:</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/7673375315561895726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=7673375315561895726' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/7673375315561895726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/7673375315561895726'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2010/07/work-with-json-data-in-firefox.html' title='Work with JSON Data in Firefox'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_vxu3Int_2nc/TEPm0COBiaI/AAAAAAAAACs/qD95ILmwkmQ/s72-c/jsonview_example_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-4127560074471201816</id><published>2010-06-09T18:57:00.001+10:00</published><updated>2010-06-09T18:57:06.834+10:00</updated><title type='text'>No update on the dynamic web page with Safari Reader</title><summary type='text'>Apple发布了Safari 5.0，其中一项新功能是，提供了Safara Reader模式。挺好的一项功能，没有那些花哨的东西，清爽多了。  目前，发现的一个大问题是，对于动态刷新的页面，Safari Reader只会显示页面初始载入时的内容。如果页面在显示过程中，出现动态改变，比如通过Ajax修改了文字，Reader模式还是去显示初始载入时的文字，而不会更新到变化以后的最新状态。显然，这是个Bug。  </summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/4127560074471201816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=4127560074471201816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/4127560074471201816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/4127560074471201816'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2010/06/no-update-on-dynamic-web-page-with.html' title='No update on the dynamic web page with Safari Reader'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-7943729817436090650</id><published>2010-06-01T10:06:00.001+10:00</published><updated>2010-06-01T10:06:28.733+10:00</updated><title type='text'>Pylons 1.0 Released</title><summary type='text'>五月二十八日，Pylons终于发布1.0版。新闻通告，Pylons 1.0 Released。  翻了一下自己以前的blog，从开始接触Pylons到现在，转眼过去四年有余，时间真快。  </summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/7943729817436090650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=7943729817436090650' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/7943729817436090650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/7943729817436090650'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2010/06/pylons-10-released.html' title='Pylons 1.0 Released'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-1086088113966617567</id><published>2009-08-19T09:53:00.001+10:00</published><updated>2009-08-19T09:55:11.914+10:00</updated><title type='text'>RELEASE: mod_scgi 1.13 for Apache 2 (Windows)</title><summary type='text'>The mod_scgi for Apache 2 has been upgraded to SCGI 1.13.You can download it from http://bigonez.googlepages.com/.</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/1086088113966617567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=1086088113966617567' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/1086088113966617567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/1086088113966617567'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2009/08/release-modscgi-113-for-apache-2.html' title='RELEASE: mod_scgi 1.13 for Apache 2 (Windows)'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-6874034720919198680</id><published>2009-04-05T15:48:00.009+10:00</published><updated>2009-04-05T16:41:21.089+10:00</updated><title type='text'>PHP Class for Ext Form Remote Validation</title><summary type='text'>在Ext JS中，Form里面的数据，同样可以直接提交给Server，在Server端完成数据校验和存储。这个过程，在Ext JS API文档中，对应着Ext.form.Action.Submit。同样，也可以通过Ext.form.BasicForm.submit()来调用。 Submit的基本参数，包括：url，指定提交目的地，比如./mydata.php；waitMsg，数据提交过程中的等待信息；success，数据提交成功后的处理过程，比如关闭Form对话框、更新客户端列表等等。  Ext JS对于数据提交，使用的是标准的POST方式；Server端在接受到提交的数据之后，进行校验，然后将结果，使用JSON数据格式，返回给Ext Form。从Ext.form.Action.Submit这个文档，可以看出，Ext Form对数据校验结果的要求，同样包括两部分，一是success状态，</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/6874034720919198680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=6874034720919198680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/6874034720919198680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/6874034720919198680'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2009/04/php-class-for-ext-form-remote.html' title='PHP Class for Ext Form Remote Validation'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-7947774259412934389</id><published>2009-04-05T15:32:00.009+10:00</published><updated>2009-04-05T16:35:27.406+10:00</updated><title type='text'>PHP Class for Ext Form Data Loading</title><summary type='text'>在Ext JS中，Form里面的数据，可以动态从Server端直接载入。这个过程，在Ext JS API文档中，对应着Ext.form.Action.Load。也可以通过Ext.form.BasicForm.load()来调用。   Load()的基本参数，包括：url，指定数据源，比如./mydata.php；waitMsg，数据载入过程中的提示信息，简单的，如'Loading'。   Ext JS，缺省支持JSON数据格式。在Form数据载入过程中，Ext Form(客户端)使用普通的HTTP访问方式发出请求，Server响应数据请求，给出JSON格式数据。Ext Form能够自主解析，把数据分配给相应的Field。从Ext.form.Action.Load这个文档，可以知道，Ext Form对数据的要求，包括两部分，一是success状态，true或false；二是data块，这个</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/7947774259412934389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=7947774259412934389' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/7947774259412934389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/7947774259412934389'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2009/04/php-class-for-ext-form-data-loading.html' title='PHP Class for Ext Form Data Loading'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-6909103911069599776</id><published>2008-11-29T22:51:00.001+11:00</published><updated>2008-11-29T22:51:51.972+11:00</updated><title type='text'>Demo Code for Union Validate with Lock</title><summary type='text'>我把前面提到的，应用了“锁”机制的联合检查，做了一个简单的演示页面。  由于在BlogSpot上面，没办法将这个页面和对应的JavaScipt包一起放上来，所以只好打包，提供下载了。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/6909103911069599776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=6909103911069599776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/6909103911069599776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/6909103911069599776'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2008/11/demo-code-for-union-validate-with-lock.html' title='Demo Code for Union Validate with Lock'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-5077521334253294709</id><published>2008-11-28T11:54:00.002+11:00</published><updated>2008-11-28T11:56:12.071+11:00</updated><title type='text'>MySQL 5.1 GA Released</title><summary type='text'>MySQL 5.1 GA版本，已经正式发布。从MySQL 5.1 List of Changes来看，似乎5.1 GA版本在 14/11/2008 就已经正式发布了。不知为何静悄悄地，没什么动静。我自己历来对MySQL不太感冒，总觉得在很多方面，不如PostgreSQL。MySQL，简单、快速，但功能不够完整。MySQL 5.1的正式发布，在功能性上有所提高。其实，MySQL简单、快速，在很多场合下，也够用了。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/5077521334253294709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=5077521334253294709' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/5077521334253294709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/5077521334253294709'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2008/11/mysql-51-ga-released.html' title='MySQL 5.1 GA Released'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-1564680145485178518</id><published>2008-11-27T10:30:00.021+11:00</published><updated>2008-11-29T21:24:36.974+11:00</updated><title type='text'>Hack on FormCheck : Union Validate with Lock</title><summary type='text'>在上一篇中，描述了如何用自定义validate函数，进行多个INPUT元素的联合检查。在那里，是把myvalidate设置在多个INPUT中的某个元素上。这样的做法，是为了避免出现validate的递归调用，导致无限循环。但在实际应用的过程中，用户的实际使用体验，并不是最好的，因为实际的错误提示，总是出现在那一个INPUT元素上，而不是最近输入元素。要想获得更好的用户体验，又要避免“死循环”的出现，可以使用“锁”的机制。下面介绍一个实际使用“锁”的例子。在页面上，有两个INPUT元素，分别是最小值和最大值。正常的逻辑，最小值不能大于最大值，最大值不能小于最小值。这项检查，由自定义validate函数avOrder()来完成。   1: &lt;label&gt;&lt;span&gt;Minimum:&lt;/span&gt;   2: &lt;input type="text" name="minValue" class="</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/1564680145485178518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=1564680145485178518' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/1564680145485178518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/1564680145485178518'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2008/11/hack-on-formcheck-union-validate-with.html' title='Hack on FormCheck : Union Validate with Lock'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-822290510353468743</id><published>2008-11-04T16:06:00.033+11:00</published><updated>2008-11-27T11:41:25.734+11:00</updated><title type='text'>Hack on FormCheck : Self-defining Validation with Multiple Elements</title><summary type='text'>前面定义了FormCheck自定义函数接口，接口本身还是比较简单的。相对的，反而是在书写自定义validate函数的时候，还需要注意一些细节上的问题。以我目前进行的项目为例，需要对同一行的三个text box，进行“数据和”的检验。把三个text box里的数相加，看它们的“和”，是否等于100。HTML的Code：   1: &lt;td&gt;&lt;input type="text" name="r2c1" class="validate['required','digit','~sum100']" /&gt;&lt;/td&gt;   2: &lt;td&gt;&lt;input type="text" name="r2c2" class="validate['required','digit']" /&gt;&lt;/td&gt;   3: &lt;td&gt;&lt;input type="text" name="r2c3" class="validate['</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/822290510353468743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=822290510353468743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/822290510353468743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/822290510353468743'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2008/11/hack-on-formcheck-self-defining_04.html' title='Hack on FormCheck : Self-defining Validation with Multiple Elements'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-735784059045188077</id><published>2008-11-04T16:06:00.032+11:00</published><updated>2008-11-27T11:40:42.950+11:00</updated><title type='text'>Hack on FormCheck : Self-defining Validation</title><summary type='text'>尽管FormCheck提供了很多的validation模式，但在实际应用中，总会遇到不够的时候，比如Fine Validation，多元素联合验证等等。这些validation的功能，往往需要自己去定义。FormCheck目前的版本，还没有开放自定义validate函数的接口。只能先自己定义自定义函数接口，然后再把自定义validate函数adapt上去。310:   validate : function(el) {   :     ...316:     el.validation.each(function(rule) {317:       if(this.isChildType(el)) {   :         ...321:       } else {   :         ...344:         if (el.get('tag') == "select" |</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/735784059045188077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=735784059045188077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/735784059045188077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/735784059045188077'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2008/11/hack-on-formcheck-self-defining.html' title='Hack on FormCheck : Self-defining Validation'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-3353886567126961897</id><published>2008-11-04T16:06:00.019+11:00</published><updated>2008-11-04T16:58:11.794+11:00</updated><title type='text'>Hack on FormCheck : Disabled Input Element</title><summary type='text'>最近结合MooTools 1.2使用FormCheck，进行Form数据的验证。显示效果，自然是很漂亮。不过，还是有地方不够完善，需要自己动动手。其中一点，如果一个INPUT设置了required，但它被disabled之后，仍然会进行validation。增加313行，对disabled的元素，禁止(直接忽略)validation。一但该元素恢复enabled之后，validation也会自动恢复。309:   ...310:   validate : function(el) {311:       el.errors = [];312:       el.isOk = true;313:       if( el.get('disabled') )    return true;    // skip the validation on the disabled </summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/3353886567126961897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=3353886567126961897' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/3353886567126961897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/3353886567126961897'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2008/11/hack-on-formcheck-disabled-input.html' title='Hack on FormCheck : Disabled Input Element'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-6958813840838092673</id><published>2008-10-25T23:45:00.002+11:00</published><updated>2008-11-27T10:42:08.987+11:00</updated><title type='text'>Blogging with Window Live Writer</title><summary type='text'>尝试着用Windows Live Writer来写Blog，期望能够把code装饰得好看些。这是一个例子，用的插件是：Code Snippet plugin for Windows Live Writer   1: var exampleFunction = function() {   2:      alert('hello')   3: };   4:     5: window.addEvent('domready', function() {   6:     exampleFunction();   7: });看看实际效果如何。还行，只是需要手工删掉tag之间多余的空格。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/6958813840838092673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=6958813840838092673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/6958813840838092673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/6958813840838092673'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2008/10/blogging-with-window-live-writer.html' title='Blogging with Window Live Writer'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-1458923101434551643</id><published>2008-10-03T17:19:00.008+10:00</published><updated>2008-10-19T16:16:33.597+11:00</updated><title type='text'>Access Radio Button with MooTools</title><summary type='text'>在以前手工书写JavaScript，效验Form数据的时候，对Form中的Radio Button的处理，是使用“循环检测”来实现，显得很冗长。利用现有的JavaScript库，可以使代码大大简化。假设，Form中有一组name为gender的Radio Button。其values，有male和female。用MooTools 1.2来写JavaScript Code，获取Radio Butten的状态，可以这样：function getGender() {  var item = $(document.body).getElement('input[name=gender][checked]');  return item != null ? item.value : null;}如果对同一个页面上的多组Radio Button取值，比如对name的开始部分，同为bginfo_的多组</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/1458923101434551643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=1458923101434551643' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/1458923101434551643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/1458923101434551643'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2008/10/access-radio-button-with-mootools.html' title='Access Radio Button with MooTools'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-2481756153495111541</id><published>2008-10-03T13:52:00.003+10:00</published><updated>2008-10-03T19:36:49.039+10:00</updated><title type='text'>Working Directory in PHP Destructor</title><summary type='text'>最近工作的一个Web项目，需要将目标的工作状态，保持到文件中。尝试着用Constructor和Destructor来解决，一个保存，一个恢复。在开发和发布的过程中，遇到了PHP工作路径的问题。这里是一段测试代码：&lt;?phpclass ClassA { function __construct() {  echo "construct\t" . getcwd() . "&lt;br /&gt;"; } function run() {  echo "running\t" . getcwd() . "&lt;br /&gt;"; } function __destruct() {  echo "destruct\t" . getcwd() . "&lt;br /&gt;"; }}$objA = new ClassA();$objA-&gt;run();?&gt;在Windows开发平台下，三个函数给出了所期待的、一致的答案。而在Linux</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/2481756153495111541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=2481756153495111541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/2481756153495111541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/2481756153495111541'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2008/10/working-directory-in-php-destructor.html' title='Working Directory in PHP Destructor'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-3201475652677338342</id><published>2008-05-05T12:08:00.003+10:00</published><updated>2008-05-05T12:18:39.218+10:00</updated><title type='text'>Setup phpPgAdmin in CentOS</title><summary type='text'>在上一篇里提到，安装了PostgreSQL YUM Repository提供的phpPgAdmin，结果却一直login fail。经过进一步的查证，这个问题终于得到解决。在正确地安装了PostgreSQL之后，借由第三方客户端软件，能够从外部通过TCP/IP来访问PostgreSQL数据库。说明PostgreSQL和CentOS本身的安装、运行都是没有问题的。phpPgAdmin的主页面，也是可以访问的，HTTPD也没有问题。只有在企图login的时候，出现fail信息。那问题就应该出在httpd连接database上面。1. SELinuxCentOS的运行，启动了SELinux。在SELinux的选项中，有一项为：httpd_can_network_connect_db。缺省状态为off。或许与此有关？通过查看/var/log/messages的纪录，证明了这个猜测。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/3201475652677338342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=3201475652677338342' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/3201475652677338342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/3201475652677338342'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2008/05/setup-phppgadmin-in-centos.html' title='Setup phpPgAdmin in CentOS'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-5952664909429694511</id><published>2008-04-30T22:16:00.004+10:00</published><updated>2008-04-30T22:57:52.885+10:00</updated><title type='text'>Using PostgreSQL YUM Repository in CentOS</title><summary type='text'>PostgreSQL，著名的Open Source数据库系统。现在已开通了自己的YUM Repository，提供官方的rpm。目前，支持包括Fedora(7,8)、Red Hat(4,5)以及CentOS(4,5)的Linux发行版，支持PostgreSQL 7.3, 7.4, 8.0, 8,1, 8,2和8.3版本。这里，介绍一下我在CentOS 5.1里面，升级到PostgreSQL 8.3的过程。1. 备份现有PostgreSQL数据库CentOS 5.1提供的PostgreSQL版本，是8.1.11。要升级到PostgreSQL 8.3，属于major upgrade。现有数据文件是不兼容的。必须把数据先dump出来，待升级完成之后，再导入回数据库。# su - postgres$ pg_dumpall -c &gt; /var/lib/pgsql/backups/</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/5952664909429694511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=5952664909429694511' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/5952664909429694511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/5952664909429694511'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2008/04/using-postgresql-yum-repository-in.html' title='Using PostgreSQL YUM Repository in CentOS'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-7023467335550566381</id><published>2008-04-29T23:17:00.002+10:00</published><updated>2008-04-29T23:57:18.555+10:00</updated><title type='text'>Install PHP 5.2.5 into CentOS 5.1</title><summary type='text'>CentOS作为RHEL的克隆版本，受到很多人的喜欢。这也是我一直推荐的Linux版本，因为它够稳定，使用感觉比较smooth。事物总有两方面，CentOS和RHEL一样，所提供软件的版本相对比较“落后”。因为所用服务器的实际情况和所需组件的特殊要求，我不得不考虑借助第三方repository，在CentOS 5.1中安装PHP 5.2.x，(CentOS 5.1自带的是PHP 5.1.6)。能找到的，就只有Remo Repository提供了编译好的rpm包。唯一不爽的是，Remi上面的使用说明是法文，看不懂，只能靠猜。1. 安装remi-release包wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-2.noarch.rpmwget http://rpms.famillecollet.com/</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/7023467335550566381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=7023467335550566381' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/7023467335550566381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/7023467335550566381'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2008/04/install-php-525-into-centos-51.html' title='Install PHP 5.2.5 into CentOS 5.1'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-7404090068027708849</id><published>2008-04-29T22:11:00.003+10:00</published><updated>2008-04-29T22:31:03.101+10:00</updated><title type='text'>Speedup PyDev Debugger by Psyco</title><summary type='text'>最近在使用PyDev调试的时候，看到多出来一条警告信息。pydev debugger: warning: psyco not available for debugger speedups在PyDev上看到，PyDev 1.3.14的一个变化，是使用Psyco来加速PyDev调试器的运行。有关于此，参见Fabio Zadrozny所写的介绍。如介绍中所述，这个改进其特别的地方是，Psyco可用来加速PyDev Debugger；而被调试的程序，却不会受Psyco的影响。我个人的感觉，有没有Psyco，确实对PyDev Debugger速度有影响，还是能感觉得到的。不管怎样，能够加速运行，总是让人心情愉快。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/7404090068027708849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=7404090068027708849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/7404090068027708849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/7404090068027708849'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2008/04/speedup-pydev-debugger-by-psyco.html' title='Speedup PyDev Debugger by Psyco'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-7618834770893639993</id><published>2007-11-16T22:15:00.000+11:00</published><updated>2007-11-16T22:35:05.099+11:00</updated><title type='text'>Code: The Distance from Point to Line Segment</title><summary type='text'>上周提到的“点到线段的距离”问题，我的Python Code是这样的：import math def p2s( a, b, p ):    dX = b[0] - a[0]    dY = b[1] - a[1]    segmentLen = math.sqrt( dX * dX + dY * dY )    halfLen = segmentLen / 2     pX = p[0] - a[0]    pY = p[1] - a[1]    if segmentLen &lt; 1E-6:        return math.sqrt( pX * pX + pY * pY )     newX = abs( ( pX * dX + pY * dY ) / segmentLen - halfLen )    newY = abs( - pX * dY + pY * dX ) / </summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/7618834770893639993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=7618834770893639993' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/7618834770893639993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/7618834770893639993'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2007/11/code-distance-from-point-to-line.html' title='Code: The Distance from Point to Line Segment'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-8041794201823144063</id><published>2007-11-09T13:09:00.000+11:00</published><updated>2007-11-14T15:09:27.070+11:00</updated><title type='text'>Quiz: The Distance from Point to Line Segment</title><summary type='text'>昨天和James，深入地讨论了一个简单的平面几何问题，计算点到线段的距离。如图所示，知道线段AB和点P1、P2的坐标，计算距离L1、L2的长度。要求，优化算法，使得计算的Time Cost最少。我用Python在Windows下，测试了不同数值操作相应的time cost。基本的比例关系是这样的：        加法   :  2.0        减法   :  2.0        乘法   :  2.2        除法   :  2.4        开根   :  6.0        绝对值 :  3.0        判断是 :  2.5        判断否 :  2.6有兴趣的，一起考虑考虑这个简单问题，如何做到更好。请将idea或code，回复在下面。基本的程序样式，如下：import math def p2s( a, b, p ):    [...] a = ( </summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/8041794201823144063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=8041794201823144063' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/8041794201823144063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/8041794201823144063'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2007/11/quiz-distance-from-point-to-section.html' title='Quiz: The Distance from Point to Line Segment'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_vxu3Int_2nc/RzPC6gAa3yI/AAAAAAAAAAM/yCGzucobQpg/s72-c/p2s.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-3280311146527111630</id><published>2007-10-14T23:33:00.000+10:00</published><updated>2007-10-14T23:52:12.106+10:00</updated><title type='text'>Integrate ZendCore with Abyss X1</title><summary type='text'>ZendCore 2.5发布，个人使用的感觉上，比原来的2.0要稳定得多，速度当然很快。我随手stop了ZendCore捆绑的Apache，在Abyss X1里面用过FastCGI连接到ZendCore，还是比较简单、顺利。只要在Scripting Parameters::Custom Environment Variables里面设置PHPRC指向php.ini所在的...\ZendCore\etc就行了。检查phpinfo()，Zend Engine v2.2.0, Zend Core v2.5.0, Zend Extension Manager v1.2.0, Zend Optimizer v3.3.1, Zend Debugger v5.2.10，一个不少。ZendCore使用的PHP 5.2.4也存在$_SERVER["PHP_SELF"]环绕的问题，所以还是只能在Abyss </summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/3280311146527111630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=3280311146527111630' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/3280311146527111630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/3280311146527111630'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2007/10/integrate-zendcore-with-abyss-x1.html' title='Integrate ZendCore with Abyss X1'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-1249072142077598948</id><published>2007-10-08T21:43:00.000+10:00</published><updated>2007-10-08T22:32:54.618+10:00</updated><title type='text'>A Simple JSON-RPC Case in Python</title><summary type='text'>前面说到了Ajax + JSON，既然有开了始，就趁着惯性，再玩了把JSON-RPC。这RPC是啥，不在网上查一下，还真不知道。先来看看Wikipedia上是怎么描述RPC的。Remote procedure call (RPC) is a technology that allows a computer program to cause a subroutine or procedure to execute in another address space (commonly on another computer on a shared network) without the programmer explicitly coding the details for this remote interaction. That is, the programmer would </summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/1249072142077598948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=1249072142077598948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/1249072142077598948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/1249072142077598948'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2007/10/simple-json-rpc-case-in-python.html' title='A Simple JSON-RPC Case in Python'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-6767609780678609707</id><published>2007-10-08T15:30:00.000+10:00</published><updated>2007-10-08T16:07:21.788+10:00</updated><title type='text'>Provide JSON Service in CGI Mode by Python</title><summary type='text'>在上一篇中说到，Abyss Web Server提供了对Python的CGI模式的支持。具体的配置比较简单，只需指定Python解析器的位置，绑定py文件即可。详见这里。作为第一个Python Web应用，毫无疑问地，从简单的hello.py开始。#! /usr/bin/env pythonimport cgiif (__name__=='__main__'):    print "Content-Type: text/html"     # HTML is following    print                               # blank line, end of headers    print "&lt;TITLE&gt;Python CGI Script&lt;/TITLE&gt;"    print "&lt;H1&gt;Python CGI Script&lt;/H1&gt;"    </summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/6767609780678609707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=6767609780678609707' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/6767609780678609707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/6767609780678609707'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2007/10/provide-json-service-in-cgi-mode-by.html' title='Provide JSON Service in CGI Mode by Python'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-8189238450776362683</id><published>2007-10-08T00:00:00.000+10:00</published><updated>2007-10-08T00:08:42.661+10:00</updated><title type='text'>Using Abyss Web Server X1</title><summary type='text'>我平常的工作基本是在笔记本电脑上进行，为了完成Web开发的一些任务，就直接拉了XAMPP来用。使用了一段时间的感觉是，Apache对于开发来讲，太“重”了，再加上调试用的Xdebug模块，笔记本的噪音就有点大。因此，一直想找一个轻量型的Web Server来用。之前，也使用过Lighttpd的Windows版本，用FastCGI模式连接PHP Parser，一直没有成功。CGI模式的速度，调试起来不太爽。前些日子，又查了一下，找到了这个，Abyss Web Server X1 2.5，一个同样跨平台的Web服务器软件。它的Personal Edition X1版本是免费使用的。基本上，现在流行的Script语言，如PHP，Python，Ruby，还有ASP.Net，都能够得到支持。Re-write，Virtual hosting，SSL/TLS等，也同样不少。具体的，这里有介绍。在</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/8189238450776362683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=8189238450776362683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/8189238450776362683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/8189238450776362683'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2007/10/using-abyss-web-server-x1.html' title='Using Abyss Web Server X1'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-1983310174231139815</id><published>2007-10-01T11:30:00.000+10:00</published><updated>2007-10-01T12:24:47.588+10:00</updated><title type='text'>Install Typo3 4.x with PostgreSQL</title><summary type='text'>Typo3从4.0开始，间接提供了对PostgreSQL等其它数据库的支持。这里以PostgreSQL为例，介绍如何架构Typo3，使之运行在非MySQL数据库上。Typo3对非MySQL数据库的支持，是基于其所包含的两个扩展的基础之上，ADOdb(adodb)和Database Abstraction Layer(dbal)。在Typo3 4.x的发行包里，已经包含了这两个扩展包，无需再安装。缺省配置下，未激活这两个扩展包。. DB Server Side首先作数据库服务器端的准备工作，建立一个空的database在DB Server上。目前，DBAL还不能直接create database，必须手动进行。还好这个过程，并不复杂，基本上就是一个指令。这里，假定建立了一个名为pgtypo3的数据库。. Web Server Side和通常的情况一样，在建立一个Typo3站点的时候，</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/1983310174231139815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=1983310174231139815' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/1983310174231139815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/1983310174231139815'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2007/10/install-typo3-4x-with-postgresql.html' title='Install Typo3 4.x with PostgreSQL'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-3718371294798617285</id><published>2007-07-19T16:15:00.000+10:00</published><updated>2007-07-19T16:18:39.200+10:00</updated><title type='text'>Xdebug 2.0.0 Released</title><summary type='text'>Xdebug 2.0.0 正式发布。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/3718371294798617285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=3718371294798617285' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/3718371294798617285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/3718371294798617285'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2007/07/xdebug-200-released.html' title='Xdebug 2.0.0 Released'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-122746230459780789</id><published>2007-03-11T12:49:00.000+11:00</published><updated>2007-04-24T10:48:16.564+10:00</updated><title type='text'>Handle the XML Data by Serialising in PHP</title><summary type='text'>前段时间，接手一个PHP Web Application。在这个程序中，当新用户Login之后，都需要从配置文件中读入数据，进行初始化。配置文件，采用的是XML格式，大小20KB~30KB。初始化的过程，包含了XML解析，和数据对象的建立。XML解析，使用DOM XML扩展来完成。在调试的过程中发现，整个程序在运行的时候，初始化过程占用了大部分时间，使得用户在Login之后，有明显地反映迟钝的感觉。如何提供初始化的速度？Inspection的结果，经过初始化后的XML数据，最后都变成了PHP中的对象，并且对不同用户来讲，并没有什么特别的不同。非常幸运，PHP提供了串行化(Serialisng)这一功能。通过serialise处理，把初始化后的XML数据对象，以串行化的形式直接存储到文件中。这样处理的结果是，用户Login之后，仅仅只需要从文件中“反串行化”数据对象即可，</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/122746230459780789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=122746230459780789' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/122746230459780789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/122746230459780789'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2007/03/handle-xml-data-by-serialising-in-php.html' title='Handle the XML Data by Serialising in PHP'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-4562435871891343811</id><published>2007-03-10T15:31:00.000+11:00</published><updated>2007-03-10T15:35:25.104+11:00</updated><title type='text'>RELEASE: mod_scgi 1.12 for Apache 2 (Windows)</title><summary type='text'>The mod_scgi for Apache 2 has been upgraded to SCGI 1.12.You can download it from http://bigonez.googlepages.com/.</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/4562435871891343811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=4562435871891343811' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/4562435871891343811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/4562435871891343811'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2007/03/release-modscgi-112-for-apache-2.html' title='RELEASE: mod_scgi 1.12 for Apache 2 (Windows)'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-24479749101745295</id><published>2007-03-09T20:27:00.000+11:00</published><updated>2007-03-09T21:11:55.488+11:00</updated><title type='text'>Using AUTO_INCREMENT field in MySQL</title><summary type='text'>AUTO_INCREMENT，是MySQL数据库中，字段定义当中的一个可选属性，可以用来对每个纪录产生唯一标识符。简单的说，就是“自增加”数字字段。当我们不断地往数据表中写入数据的时候，auto increment字段的数值会不断地增加，并且这种增加是连续的。前些日，James说，在他的那个数据收集程序中，使用了auto increment字段作为记录的ID。但他遇到问题是，该字段出现了“间隔”，ID号并不是我们认为的那样是连续的，出现了gap。他的程序是Python写的一个多线程、多路数据输入的数据收集程序，MySQL数据库接口当然就是那个MySQLdb。这里，就不去探讨James是如何发现和解决问题的。最后的结果，是在某一个线程中，虽然发出了insert指令，但是却没有commit。补上commit，就解决问题了。( 显然，他在这里使用了支持transaction的table，</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/24479749101745295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=24479749101745295' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/24479749101745295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/24479749101745295'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2007/03/using-autoincrement-field-in-mysql.html' title='Using AUTO_INCREMENT field in MySQL'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-116488679408394497</id><published>2006-11-30T22:15:00.000+11:00</published><updated>2006-11-30T22:39:54.650+11:00</updated><title type='text'>Install Modes of Ubuntu 6.10</title><summary type='text'>Ubuntu似乎从6.06开始，Install CD和Live CD合二为一，可以在同一张CD上先进入Live Linux，然后再将系统安装到硬盘中。我之前的Ubuntu 6.06是从5.10直接升级上来的，现在的Ubuntu 6.10也是Upgrade的。上个周末，刚好要安装一个，于是就试了一下Install from Live Linux的安装方式。的确，GUI安装，看起来自然是比较舒服的。不过很快就遇到了问题，Live Linux Install不能接受LVM分区，并且root也不可以采用XFS文件系统。对于分区，我个人比较习惯/boot: EXT3; /: XFS; Swap。/root和Swap都放在同一个LVM物理分区中。试了一会儿，无法实现，只好放弃Gpart分区。回到熟悉的Text Mode Install，终于可以安装自己习惯的方式完成分区，一路顺利。也许Desktop</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/116488679408394497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=116488679408394497' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/116488679408394497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/116488679408394497'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/11/install-modes-of-ubuntu-610.html' title='Install Modes of Ubuntu 6.10'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-116290433775793410</id><published>2006-11-07T23:43:00.000+11:00</published><updated>2006-11-07T23:58:58.186+11:00</updated><title type='text'>Sudoku Puzzle</title><summary type='text'>周末的报纸上，有一个数字游戏，叫做“Sudoku Puzzle”。报纸买来之后，无聊的小家伙，嚷嚷着玩这个游戏。我今天刚好翻了翻，上面已经都被填上数字了，但显然，小家伙太心急，没填对。记得上大学那会，也曾经拿这类游戏开练，学习数据结构和算法。因此，看到了就有些手痒，于是花了三个小时，用Python写了个小程序来解。好玩！</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/116290433775793410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=116290433775793410' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/116290433775793410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/116290433775793410'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/11/sudoku-puzzle.html' title='Sudoku Puzzle'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-116218223941953730</id><published>2006-10-30T15:11:00.000+11:00</published><updated>2006-10-30T15:23:59.723+11:00</updated><title type='text'>Upgraded</title><summary type='text'>Ubuntu 6.10已发布了，周末升级了一下，感觉还不错。NetBeans 5.5也已发布，增加了对C/C++、Web Application，以及企业应用的支持，这个版本对Subversion也提供了很好的支持，使用的第一印象很好。和Eclipse相比，除了对Script语言的支持比较差之外，对使用Java，C/C++等语言的开发，NetBeans更加好用。另外NetBeans还有免费Free CD派送，且有简体中文版。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/116218223941953730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=116218223941953730' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/116218223941953730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/116218223941953730'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/10/upgraded.html' title='Upgraded'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-116173714031423928</id><published>2006-10-25T10:29:00.000+10:00</published><updated>2006-10-25T10:45:40.580+10:00</updated><title type='text'>Trac 0.10-stable Released</title><summary type='text'>Trac 0.10稳定版本(Zengia)发布。和以前的版本相比，主要的变化是：Support for spam protection.Advanced diff support.InterWiki and InterTrac support.Improved notification system.WSGI Used as web server protocol.详细的情况，请参见ChangeLog和Release Notes。在以前的Post中提到过，Windows平台中使用Trac，需要修改三个文件的文件名。0.10b版本中出现的tracdb2env，现在没有了。因此，只要改tracd和trac-admin这两个文件即可。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/116173714031423928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=116173714031423928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/116173714031423928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/116173714031423928'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/10/trac-010-stable-released.html' title='Trac 0.10-stable Released'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-116040050712597219</id><published>2006-10-09T23:24:00.000+10:00</published><updated>2006-10-10T13:50:54.836+10:00</updated><title type='text'>Python Remote Debugging in Komodo</title><summary type='text'>在上一篇中提到，Xdebug的DBGp协议，也可以用来对非PHP程序进行在线调试。刚好，拿它来试验一下如何对Python程序进行Remote Debugging。Komodo中的设置，和前面是一样的，设置Preferences - Debugger - Proxy中的，Listen for debug connections on port: 9000再选择Debug - Listen for Remote Debugger即可。接下来要安装DBGp调试模块。在系统的PATH中增加&lt;komodo-install-directory&gt;\lib\support\dbgp\bin再增加一个系统环境变量PYTHONPATH=%PYTHONPATH%;&lt;komodo-install-directory&gt;\lib\support\dbgp\pythonlib用实际路径替换上面的&lt;</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/116040050712597219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=116040050712597219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/116040050712597219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/116040050712597219'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/10/python-remote-debugging-in-komodo.html' title='Python Remote Debugging in Komodo'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-116028352478035181</id><published>2006-10-08T14:58:00.000+10:00</published><updated>2006-10-08T23:55:09.886+10:00</updated><title type='text'>PHP Remote Debugging - more details</title><summary type='text'>PHP Remote Debugging，相应的配置要涉及到Web Server端和IDE端，以及实际页面的访问。一开始的时候，有些摸不着头脑，理清楚了，就比较简单。了解PHP的调试，一定会走到PHP在线帮助的“Appendix E. Debugging PHP”。在这一页的最后，又见到了熟悉的老朋友，一段Python代码，一个简单的在线调试监听器。运行这段Python code之后，在浏览器上输入在线调试指令，真的就连接过来了，从而知道PHP Remote Debugging是如何开始的。无论DBG还是Xdebug，都在调试开始指令中，包含了所调试PHP脚本的完整的路径名和文件名。这样，IDE就可以直接打开相应的文件进行调试，在本机直接跳过HTTP URL到FS File这样的映射(Mapping)。所使用的PHP解释器，是Web Server上的那个Parser，而不是IDE</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/116028352478035181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=116028352478035181' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/116028352478035181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/116028352478035181'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/10/php-remote-debugging-more-details.html' title='PHP Remote Debugging - more details'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-116028336328436118</id><published>2006-10-08T14:54:00.000+10:00</published><updated>2006-10-08T22:59:06.616+10:00</updated><title type='text'>PHP Remote Debugging - DBG + Xdebug</title><summary type='text'>在前面两篇中，分别提到了如何用DBG和Xdebug扩展模块，在IDE中进行PHP Remote Debugging。谈到IDE，PHPeclipse也是一个目前比较流行的PHP开发环境。其正式的版本中，使用DBG作为调试器。目前在其开发版本中，包含了对Xdebug的支持。PHPeclipse在使用DBG的时候，不需要DBG Listener，其内置了监听器，缺省所使用得端口也有所改变。对php.ini进行设置，以实现同时对DBG和Xdebug模块，以及多个PHP IDE的支持。具体的设置如下：...extension=php_dbg.dll[Debugger]debugger.enabled=ondebugger.profiler_enabled=ondebugger.JIT_enabled=ondebugger.JIT_port=7869, 10000/16...</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/116028336328436118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=116028336328436118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/116028336328436118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/116028336328436118'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/10/php-remote-debugging-dbg-xdebug.html' title='PHP Remote Debugging - DBG + Xdebug'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-116028320229954955</id><published>2006-10-08T14:52:00.000+10:00</published><updated>2006-10-08T22:45:07.240+10:00</updated><title type='text'>PHP Remote Debugging - Xdebug</title><summary type='text'>PHP Remote Debugging，另一个比较流行的调试模块是Xdebug。Xdebug，使用上非常方便，在遇到exception的时候，能够将Application当前的状况，变量、call trace等信息，友好地直接输出到web页面上。从Xdebug上下载Xdebug for PHP的扩展模块，将其置于PHP的ext目录中。在php.ini中增加，extension=php_xdebug.dllxdebug.show_exception_trace=onxdebug.show_local_vars=on这样就可以在Web Application遇到语法或值溢出等exception的时候，显示相关变量和调用堆栈。对于PHP Remote Debugging，需要在php.ini中对Xdebug进行更多的设置。zend_extension_ts="ext/</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/116028320229954955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=116028320229954955' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/116028320229954955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/116028320229954955'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/10/php-remote-debugging-xdebug.html' title='PHP Remote Debugging - Xdebug'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-116028316001296879</id><published>2006-10-08T14:51:00.000+10:00</published><updated>2006-10-09T09:09:33.730+10:00</updated><title type='text'>PHP Remote Debugging - DBG</title><summary type='text'>PHP Remote Debugging，是对PHP Web应用程序进行调试的最直接、最有力的手段。尤其是现在，框架横行的时代，光靠阅读源码和简单的echo，显然进展不快。Remote Debugging，直译过来是“远程调试”，个人更愿意翻译成“在线调试”，即在实际使用Web Server的情况下，对Web Application进行调试。诸多PHP IDE，都集成了广泛使用的DBG调试模块。这里以PHPEdit为例，介绍如何使用DBG进行PHP程序的在线调试。PHPEdit包含了DBG Listener和DBG Debugger，能够进行单步跟踪、全局和局部变量检查等功能，用它进行Remote Debugging，非常方便、实用。在启动PHPEdit的时候，DBG Listener也会一同启动。在系统托盘区，可以找到一个类似雷达天线的图标，那个就是PHP DBG Listener。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/116028316001296879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=116028316001296879' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/116028316001296879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/116028316001296879'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/10/php-remote-debugging-dbg.html' title='PHP Remote Debugging - DBG'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-115932391886648796</id><published>2006-09-27T11:56:00.000+10:00</published><updated>2006-09-27T12:29:33.990+10:00</updated><title type='text'>Proxy setting for RubyGems under Windows</title><summary type='text'>Ruby通过RubyGems，安装和管理附加的组件。我的机器上安装有Ruby 1.8.5和RubyGems 0.9.0，在办公室里，是透过Proxy连接到Internet上。在这个条件下，发现RubyGems的运行有些怪异。因为要在不同的上网环境里工作，不太喜欢修改环境变量。因此，一般是直接附加设置选项来执行命令。从Help中看到，gem在命令行参数中提供了-p选项，以设置proxy。但用下来的结果，居然是一半工作、一半不工作。对于list命令，gem list -r -p http://www-cache.xxx.au:8080没有问题，工作的很好。而当我要安装某个组件的时候，gem install sqlite3-ruby -y -p http://www-cache.xxx.au:8080那就一定会出错。更为无奈的是，如果要更新已安装的组件，gem update -p http:/</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/115932391886648796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=115932391886648796' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115932391886648796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115932391886648796'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/09/proxy-setting-for-rubygems-under.html' title='Proxy setting for RubyGems under Windows'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-115916695759180748</id><published>2006-09-25T16:48:00.000+10:00</published><updated>2006-09-25T17:02:06.773+10:00</updated><title type='text'>Using ViewVC to Browse Subversion Repository</title><summary type='text'>在前面的Post中提到，Apache 2和SVN整合之后，缺省的Web-based Browsing不是很好看，也不能浏览多个版本的源码。通常展示Subversion代码库，使用的是ViewCVS，即现在的ViewVC。在Windows下安装ViewVC，需要用到Apache 2.0、ViewVC、ActivePython、SVN-Python Binding、mod_python以及GNU Win32 Diff。Apache 2.0、ActivePython、SVN-Python Binding、mod_python以及Diff的安装，没什么好讲的，安装到缺省的目录就行。唯一注意的是，需要手工将Diff所在的GNU Win32的bin目录添加到系统的PATH中去。Windows下对系统环境参数的修改，通常需要系统重启才能生效。Python应该在安装的时候，自动把相应的目录添加到PATH</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/115916695759180748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=115916695759180748' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115916695759180748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115916695759180748'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/09/using-viewvc-to-browse-subversion.html' title='Using ViewVC to Browse Subversion Repository'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-115867278973304596</id><published>2006-09-19T23:32:00.000+10:00</published><updated>2006-09-20T00:45:43.430+10:00</updated><title type='text'>Typo3 serves the multiple sites under Windows</title><summary type='text'>Typo3 4.0.2放出，在源码文件列表中看到了dummy-4.0.2.zip和typo3_src-4.0.2.zip。Zip包是提供给Windows平台使用的。印象中，以前的dummy和typo3_src只有tar.gz结尾的、专供Unix-like平台使用的包。在dummy-XXX.tar.gz包中，包含了一些Unix系统下的symbolic links，以支持一套typo3_src配合多个dummy，实现对多站点的支持。现在有了Zip包，就意味着可以在Windows下也能实现对多站点支持的这一功能。想到这，不禁手就痒痒了。首先，要建立Apache 2 + PHP 4/5的可运行环境。这个就不细说了。下载dummy-4.0.2.zip和typo3_src-4.0.2.zip。将他们分别解压缩到Apache 2的htdocs目录下。修改目录名为：dummy-4.0.2      --</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/115867278973304596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=115867278973304596' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115867278973304596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115867278973304596'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/09/typo3-serves-multiple-sites-under.html' title='Typo3 serves the multiple sites under Windows'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-115858884107883447</id><published>2006-09-18T23:56:00.000+10:00</published><updated>2006-09-19T15:22:51.580+10:00</updated><title type='text'>Getting Started with Subversion - E</title><summary type='text'>Subversion无痛起步，至此已经全部Post出来。这三篇入门介绍，主要是针对三种不同的典型情况，快速提供一个可运行的Subversion应用基础。这些内容，也仅仅是入门而已，还有很多细节需要深入。Post出来的内容，是在实际安装的纪录基础上，加上简要说明而成的。因此，这里只有步骤，详细的说明还需参考相应的文档。这里，虽然是针对Windows平台来作的说明，但是大部分的内容，在Unix-like环境下，依然是行之有效的，除了没有TortoiseSVN。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/115858884107883447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=115858884107883447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115858884107883447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115858884107883447'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/09/getting-started-with-subversion-e.html' title='Getting Started with Subversion - E'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-115858566964743388</id><published>2006-09-18T23:19:00.000+10:00</published><updated>2006-09-23T20:46:22.900+10:00</updated><title type='text'>Getting Started with Subversion - Trac</title><summary type='text'>Subversion无痛起步 --- Trac 0.10b1 + Apache 2目前，很多基于Subversion的项目，使用Trac进行项目管理。Trac的好处，就不再重复了。本篇介绍如何在Windows下建立Trac项目，并将Trac和Apache进行整合。开始之前，当然是下载、安装所需要的软件。Apache 2和Subversion，在前面已经作了介绍。0. Install Apache 2.0.59/2.2.3 into Windows, and make sure it works;1. Install Subversion 1.4.0, and add C:\Program Files\Subversion\bin   into the system PATH;Trac是Python程序，安装Python必不可少。其它需要的组件有PySQLite(提供数据库支持)，</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/115858566964743388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=115858566964743388' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115858566964743388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115858566964743388'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/09/getting-started-with-subversion-trac.html' title='Getting Started with Subversion - Trac'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-115857533122511654</id><published>2006-09-18T20:21:00.000+10:00</published><updated>2006-09-20T22:12:29.800+10:00</updated><title type='text'>Getting Started with Subversion - Subversion + Apache</title><summary type='text'>Subversion无痛起步 --- Subversion 1.4 + Apache 2.0在前一篇中，谈到了如何在日常的编码工作中，利用TortoiseSVN进行版本控制。，TortoiseSVN作为客户端程序，无疑是非常实用的，同时它也提供了基本的SVN Admin的功能。这对于个人应用来讲，基本够用了。如果开发项目需要多人合作，就需要建立Subversion Server。Subversion自带有一个svnserve作为Server，而目前比较流行的做法是，将SVN和Apache Web Server进行整合。这就是本篇所要介绍的内容。首先是软件下载与安装。0. Install Apache 2.0.59 into Windows, and make sure it works;1. Download svn-1.4.0-setup.exe from here;2. </summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/115857533122511654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=115857533122511654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115857533122511654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115857533122511654'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/09/getting-started-with-subversion_18.html' title='Getting Started with Subversion - Subversion + Apache'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-115854754807980393</id><published>2006-09-18T12:37:00.000+10:00</published><updated>2006-09-19T12:01:19.593+10:00</updated><title type='text'>Getting Started with Subversion - TortoiseSVN</title><summary type='text'>Subversion无痛起步 --- TortoiseSVN 1.4.0TortoiseSVN，是目前我所使用过的最好的Subversion客户端软件。Subversion无痛起步从TortoiseSVN开始，是最为合适的。首先，当然是下载、安装TortoiseSVN。TortoiseSVN安装后需要重起系统，这样TortoiseSVN就会在系统的弹出式菜单中了。0. Download TortoiseSVN 1.4.0 from http://tortoisesvn.net/downloads   and install, restart;建立Subversion代码库目录，初始化项目demosvn。1. mkdir C:\svnroot2. mkdir C:\svnroot\demosvn3. In C:\svnroot\demosvn, right click,   go </summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/115854754807980393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=115854754807980393' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115854754807980393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115854754807980393'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/09/getting-started-with-subversion.html' title='Getting Started with Subversion - TortoiseSVN'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-115849646038728943</id><published>2006-09-17T22:12:00.000+10:00</published><updated>2006-09-17T22:36:59.853+10:00</updated><title type='text'>Getting Started with Subversion - O</title><summary type='text'>上周被xlp223问起Subversion的事情。对于Subversion，我还是大约两年前，Subversion 1.0刚出来的时候，用了一些功。但是零零散散记录下来的东西，也不知道到哪里去了。刚好乘此机会，复习复习。这复习下来的结果，就是“Subversion无痛起步”三部曲。Subversion入门使用的各个步骤，都已经一一记录下来。在后面的几天里，将加上一些必要的简单说明，逐个Post出来。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/115849646038728943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=115849646038728943' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115849646038728943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115849646038728943'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/09/getting-started-with-subversion-o.html' title='Getting Started with Subversion - O'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-115780299242274653</id><published>2006-09-09T21:40:00.000+10:00</published><updated>2006-09-19T11:54:37.723+10:00</updated><title type='text'>The patch for compiling Apache 2.2.3 with Visual Studio .Net 2003</title><summary type='text'>前两天，编译mod_scgi for Apache 2 (Windows)，基本上还算顺利。编译mod_scgifor Apahce 2.0.59，一路顺风。而在编译Apache 2.2.3的时候，总是在Resources这个地方，rc.exe出错。试着编译Apahce 2.2.3源码所附带的其它modules，结果也是一样的。最后检查下来的原因，是Apache 2.2.3 for Windows的源码中，使用了一些针对Visual Studio 2005的Resources处理方式，而这是和Visual Studio 2003不兼容的。在日前所发布的mod_scgi for Apache 2.2.3中，是直接将版本信息中的两个参数删除。因此，在Version Information中，会看到Description: LONG_NAME出现。尽管这对实际使用，没有任何影响，但毕竟不够完美</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/115780299242274653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=115780299242274653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115780299242274653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115780299242274653'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/09/patch-for-compiling-apache-223-with.html' title='The patch for compiling Apache 2.2.3 with Visual Studio .Net 2003'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-115751100493036735</id><published>2006-09-06T12:45:00.000+10:00</published><updated>2006-09-06T12:50:05.266+10:00</updated><title type='text'>RELEASE: mod_scgi for Apache 2 (Windows)</title><summary type='text'>I have compiled the mod_scgi module for Apache 2 in Windows. It used SCGI 1.11 with Apache HTTPD 2.0.59 and 2.2.3.You can download it from http://bigonez.googlepages.com/ and leave your comments and suggestions in this post.</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/115751100493036735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=115751100493036735' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115751100493036735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115751100493036735'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/09/release-modscgi-for-apache-2-windows.html' title='RELEASE: mod_scgi for Apache 2 (Windows)'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-115743607703467167</id><published>2006-09-05T15:21:00.000+10:00</published><updated>2006-09-05T16:02:38.063+10:00</updated><title type='text'>Start R GUI with the proxy setting in Windows</title><summary type='text'>办公室的计算机，通过Proxy连接到Internet，上面安装有R for Windows。R-Gui提供了自我安装、升级的功能，但在界面上没有直接提供网络设置的选项。相应的设置，是作为启动参数提供给Rgui。在启动Rgui.exe的时候，追加'--internet2'选项。这样，Rgui就会使用系统提供的Internet设置。只要Windows的Internet选项中，已经对proxy作了设置即可。如果使用SciViews-R作为R GUI，需修改SciView安装目录下的，RSciViews和RSciViews (English)快捷链接，增加'--internet2'选项。对于JGR，目前还没找到在哪里设置此项参数。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/115743607703467167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=115743607703467167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115743607703467167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115743607703467167'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/09/start-r-gui-with-proxy-setting-in.html' title='Start R GUI with the proxy setting in Windows'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-115664532051134076</id><published>2006-08-27T11:26:00.000+10:00</published><updated>2006-08-27T13:20:35.600+10:00</updated><title type='text'>Backend Localisation in Typo3 4.0</title><summary type='text'>Typo3官方提供的源码包，后台缺省使用的语言是英文。尽管英文的字面意思更为准确(没有歧义)，使用本地化语言却总是很受欢迎的。Typo3和其它CMS一样，也提供了对多语言的支持。只是在发行包中，由于各个语言的翻译工作相对滞后，无法和Typo3发行版本同步，不可能也没有必要包含所有各种语言包。因此在安装Typo3之后，需要再单独安装本地化支持。在Typo3 4.0版本之前，本地化语言是作为单独的扩展包进行安装的，需要在Host Server上进行操作。最新的Typo3 4.0版本，进一步增强了对本地化语言的支持。在扩展管理器(Extension Manager)中，单独列出一项以支持本地化语言，这就是Translation Handing。它可以使用户和最新的本地化翻译成果保持同步。这里以安装中文语言包进行说明：1. 以管理员身份，进入Typo3后台，并切换当前的Workspace到</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/115664532051134076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=115664532051134076' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115664532051134076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115664532051134076'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/08/backend-localisation-in-typo3-40.html' title='Backend Localisation in Typo3 4.0'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-115637923184407595</id><published>2006-08-24T10:26:00.000+10:00</published><updated>2006-08-24T11:50:33.176+10:00</updated><title type='text'>Ubuntu's X: "no screens found"</title><summary type='text'>前天晚上，习惯性地Update了一下Ubuntu，升级了一个xserver-xorg-core包，一切都是那么正常。待到数小时后Restart，光标闪了几下，看到了久违的X-window错误，X: "no screens found" 。立刻反思了一下，除了升了一下级，自己没干什么坏事。现有的xorg.conf久经考验，用了一年多了都没有问题的。查看文件时间戳，也没有被改动的痕迹，郁闷。既然问题是升级引起的，那解决的办法估计也只有靠升级自己来解决了。在控制台下，打入man apt-getsudo apt-get updatesudo apt-get upgrade呵呵，为啥要man apt-get？很不好意思，被Update Manager惯坏了，忘记apt-get怎么用，就只好临时抱佛脚了。运气还不错，xserver-xorg-core再一次得到更新。重启之后，一切恢复了正常，</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/115637923184407595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=115637923184407595' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115637923184407595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115637923184407595'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/08/ubuntus-x-no-screens-found.html' title='Ubuntu&apos;s X: &quot;no screens found&quot;'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-115539799762226931</id><published>2006-08-13T01:19:00.000+10:00</published><updated>2006-08-13T02:02:17.106+10:00</updated><title type='text'>URL for SQLite in SQLAlchemy</title><summary type='text'>SQLAlchemy的在线文档上，连接SQLite数据库的URL写法，有三种：# sqlite (note the four slashes for an absolute path)sqlite_db = create_engine('sqlite:////absolute/path/to/database.txt')sqlite_db = create_engine('sqlite:///relative/path/to/database.txt')sqlite_db = create_engine('sqlite://')  # in-memory database这三种写法涵盖了Unix系统下的所有情况。在Windows系统下，使用相对路径和内存数据库时的URL，和前面是一致的。Windows和Unix的区别之一，就是Windows有盘符。在使用绝对路径时，如果Python程序和</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/115539799762226931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=115539799762226931' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115539799762226931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115539799762226931'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/08/url-for-sqlite-in-sqlalchemy.html' title='URL for SQLite in SQLAlchemy'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-115512041940022610</id><published>2006-08-09T20:40:00.000+10:00</published><updated>2006-08-09T20:47:00.406+10:00</updated><title type='text'>TurboMan is back!</title><summary type='text'>如我这般年纪的Programmer，差不多都用过Turbo C 2.0。Turbo C可以说是Software Develop IDE在DOS那个时代的代表。现在它又要回来了，TurboExplorer。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/115512041940022610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=115512041940022610' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115512041940022610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115512041940022610'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/08/turboman-is-back.html' title='TurboMan is back!'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-115504708008743920</id><published>2006-08-09T00:21:00.000+10:00</published><updated>2006-08-09T00:24:40.540+10:00</updated><title type='text'>Clever Harold - New Python Web Development Framework</title><summary type='text'>又一个新的Python Web框架出来了，Clever Harold。不知道会有什么新鲜玩意，看看。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/115504708008743920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=115504708008743920' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115504708008743920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115504708008743920'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/08/clever-harold-new-python-web.html' title='Clever Harold - New Python Web Development Framework'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-115356201957959395</id><published>2006-07-22T19:31:00.000+10:00</published><updated>2006-07-22T20:27:12.953+10:00</updated><title type='text'>英文环境下刻录中文DVD</title><summary type='text'>因为硬盘的空间紧张，准备把这些文件刻盘备份。这回遇到了新问题。通常，我刻盘是在Windows下进行的。手上的Windows都是英文版XP的，安装有中文支持，看包含中文文件名的CD/DVD也都沒有什么问题，但这回要刻录有中文文件名的DVD时，沒有一个Windows英文版刻录软件能接受中文文件名文件。即使Nero，号称支持中文文件名，也是不行。当然，我绝对相信中文版Windows下，一定是可以刻录中文文件名文件的。不过，就要为此而去安装中文Windows？这样的事情，我是不会去做的。Windows下沒有办法，那就只好动用我的秘密武器－Ubuntu了。Gnome中，使用Gnome CD/DVD Creator，刻录就沒有问题了。不过有提示说，文件名不是Windows兼容的。结果也正是这样，刻录出来的DVD，Linux下读得出来中文名，在Windows下都成下划线了。继续寻找，终极武器－</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/115356201957959395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=115356201957959395' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115356201957959395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115356201957959395'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/07/dvd.html' title='英文环境下刻录中文DVD'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-115206301048218545</id><published>2006-07-05T10:56:00.000+10:00</published><updated>2006-07-05T11:38:06.933+10:00</updated><title type='text'>Eclipse 3.2 &amp; PyDev 1.2.1</title><summary type='text'>Eclipse 3.2已经发布，对应此版本的PyDev也出到1.2.1，并且新版本的PyDev只支持Eclipse 3.2。新版本的第一感觉，比以前快些。在我的PIII 550E(384M RAM)机器上，操作Eclipse比FireFox浏览网页还快，比我“以为”的速度快得多，这让我非常惊讶。作为一个习惯，Java程序通常要作一些适当的优化调整。说到底，其实很简单，Java是Ram消耗大户，并非CPU消耗大户。只要给Java程序足够的内存，速度就没有太多问题。具体要调整的参数，可以通过java -X查阅。Eclipse这部分的设置保存在eclipse.ini中。缺省的设置是：-vmargs-Xms40m-Xmx256m这里给出的最大内存256M，初始40M。JVM在Eclipse启动的时候，首先分配40M使用，然后在运行的过程中，再动态分配更多的Ram给程序。而“动态分配”这一操作，</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/115206301048218545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=115206301048218545' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115206301048218545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115206301048218545'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/07/eclipse-32-pydev-121.html' title='Eclipse 3.2 &amp; PyDev 1.2.1'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-115205310456147658</id><published>2006-07-05T08:41:00.000+10:00</published><updated>2006-07-05T08:46:01.770+10:00</updated><title type='text'>绝杀</title><summary type='text'>德国：意大利，意志坚定的猎人，被狡猾的狐狸绝杀。里皮在加时阶段的换人，决定了一切。“金童”皮耶罗进化成了“神”。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/115205310456147658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=115205310456147658' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115205310456147658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115205310456147658'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/07/blog-post.html' title='绝杀'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-115102637164159862</id><published>2006-06-23T11:13:00.000+10:00</published><updated>2006-06-23T11:53:17.836+10:00</updated><title type='text'>Go! Socceroo!</title><summary type='text'>Socceroo，这是澳洲特有的Word，足球(Soccer)+袋鼠(Kangaroo)，就成了袋鼠王国对自己球队的昵称。世界杯这段时间，到处都可以看到、听到Socceroo。今天凌晨，Socceroo终于进了16强，胜利的喜悦写在每个人的脸上。这场比赛注定会载入澳洲的足球史册。永远拼搏的队员，加上神奇的希丁克，Socceroo在继续前进。Go! Socceroo!</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/115102637164159862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=115102637164159862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115102637164159862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/115102637164159862'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/06/go-socceroo.html' title='Go! Socceroo!'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114934486985523196</id><published>2006-06-03T23:50:00.000+10:00</published><updated>2006-06-04T00:31:57.830+10:00</updated><title type='text'>Upgrade to Ubuntu 6.06 LTS</title><summary type='text'>Ubuntu 6.06 LTS准时发布，今天周末，刚好升级。在Ubuntu 5.10中，直接到System-Administration，运行Update Manager。同步之后，会出现有新版本的提示，点击升级就行了。整个升级过程，下载了800多兆的数据。除了问了两次是否覆盖现有配置文件之外，一切自动。重新启动之后，就进入了崭新的Ubuntu 6.06 LTS。Ubuntu 6.06 LTS的第一印象，GUI界面非常漂亮，可以用“豪华”来形容，并不过份。简单的几个操作之后，感觉得到整体速度变快了。我的Laptop上的显卡是ATI X600，驱动没有问题，glxgears的FPS成绩超过了2700。我已不想再去安装ATI offical driver了。现在已是深夜了，Laptop上的风扇除了跑glxgears的时候在转而外，一直很安静。目前遇到的小问题是SCIM。在Ubuntu </summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114934486985523196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114934486985523196' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114934486985523196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114934486985523196'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/06/upgrade-to-ubuntu-606-lts.html' title='Upgrade to Ubuntu 6.06 LTS'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114830451049498506</id><published>2006-05-22T23:00:00.000+10:00</published><updated>2006-05-22T23:38:51.020+10:00</updated><title type='text'>Speed Up VBA</title><summary type='text'>这两天在修改其他人的VBA程序。Group里的人，一直抱怨MS Office的VBA速度太慢。看了看Online Help，简单地加了两行代码，现在的运行速度比以前快了四倍。这中间的关键，只是应用了VBA中Application.ScreenUpdating这个选项。在开始运行VBA的时候，设置ScreenUpdating=False，关闭屏幕更新；在程序结束前，再设置ScreenUpdating=False。这样在VBA执行的时候，就不必浪费CPU在屏幕更新上了，运行速度得以大大提高。结合我前面的一篇，在VBA中直接将结果输出到MDI文件中。在最初的测试中，设置了ScreenUpdating=False，虽然产生结果文档的速度提高了，但PrintOut这一步花费了不少时间。我尝试着在PrintOut之前恢复设置ScreenUpdating，之后再关闭设置ScreenUpdating</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114830451049498506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114830451049498506' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114830451049498506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114830451049498506'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/05/speed-up-vba.html' title='Speed Up VBA'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114813816716039932</id><published>2006-05-21T00:53:00.000+10:00</published><updated>2006-05-21T01:22:36.693+10:00</updated><title type='text'>Microsoft Office Document Image Writer Options</title><summary type='text'>在Microsoft Office 2003中包含了Microsoft Office Document Image Writer，一个虚拟的打印机，可以将打印结果保存到文件(MDI, Microsoft Office Document Imaging, 也简称MODI)中。个人猜测，是微软企图打击PDF格式文件的一个工具。MODI Writer和Office其它工具在一起，还是比较好用的。特别是对一些大的、一次性产生而又不再修改的文档，保留原始文件太占空间，用MDI就很方便，打开或打印的速度也比较快。一旦“打印”，输出到文件之后，会在MODI中将输出的结果显示出来。对话框中有选项，可以选不显示，但缺省是是要显示的。通常情况下，这个缺省设置是无所谓的。不过近日，当我用VBA大批量输出MDI文件的时候，批量输出的MDI文件，统统被打开、并显示出来了。这就令人比较头疼。VBA</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114813816716039932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114813816716039932' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114813816716039932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114813816716039932'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/05/microsoft-office-document-image-writer.html' title='Microsoft Office Document Image Writer Options'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114803347780602986</id><published>2006-05-19T20:02:00.000+10:00</published><updated>2006-05-19T20:21:29.733+10:00</updated><title type='text'>黑色的代价</title><summary type='text'>Apple的MacBook终于发布了，最贵的是黑色的MacBook(US$1,499.00)。其实和白色的相比，只是硬盘相差了20G。如果补上这个差别，也就是US$1,349.00。这额外的US$150.00，就是黑色的代价。如Intel所宣称的，Core Duo 2的性能将会有大的提升，相应移动版的Merom也有大的进步。相信半年以后，基于Mac OS X 10.5和Merom的MacBook会比较成熟。真有点心动了。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114803347780602986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114803347780602986' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114803347780602986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114803347780602986'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/05/blog-post.html' title='黑色的代价'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114759122767140017</id><published>2006-05-14T16:25:00.000+10:00</published><updated>2006-05-14T18:12:30.986+10:00</updated><title type='text'>Typo3 4.0之多站点安装</title><summary type='text'>Typo3 4.0出来有一个月了，一直没有时间安装。这个周末刚好得空，就装了一下，很顺利。这里列一下基本的几个步骤。1. Web Server环境的准备。我的测试系统还是Windows下的coLinux(Debian 3.0)，Apache2 + PHP 4。之前安装过Typo3 3.8，所以一些相关的软件包(如imagemagick等)已经安装好了。2. 从SourceForge下载Typo3 4.0，包括typo3_src-4.0.tar.gz和dummy-4.0.tar.gz。3. 解压缩这两个tar包。$ tar xvzf typo3_src-4.0.tar.gz$ tar xvzf dummy-4.0.tar.gz4. 移动到Web文件目录下，并修改文件owner。coLinux的web server用户是www-data，在安装过程中，需要有"写"权限。$ sudo mv </summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114759122767140017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114759122767140017' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114759122767140017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114759122767140017'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/05/typo3-40.html' title='Typo3 4.0之多站点安装'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114541110206147065</id><published>2006-04-19T11:20:00.000+10:00</published><updated>2006-04-19T11:45:02.490+10:00</updated><title type='text'>Code Igniter 框架基本结构</title><summary type='text'>Code Igniter框架，其基本结构是一个单一入点的PHP Web应用程序，入口:index.php。一个类似于Ruby On Rails的Web Application Framework。在这个框架里，Web Developer需要做的事情：定义所需要的Routing，实现Controller，设计输出所需的View。对于复杂应用，将数据结构从Controller中抽象出来成为Model。对于简单应用，使用db这一层数据接口就行了，Model不是必需的。Code Igniter从1.3.1开始才有单独Model目录。在Code Igniter中，Model不仅仅是指数据库table结构，还可以包括和数据相关的基本操作。因此有一部分Controller的Function可以move到Model里面，比如get、insert、update等等，这些只涉及到数据变更，不涉及View</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114541110206147065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114541110206147065' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114541110206147065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114541110206147065'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/04/code-igniter_19.html' title='Code Igniter 框架基本结构'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114494052176199919</id><published>2006-04-14T01:01:00.000+10:00</published><updated>2006-04-14T01:11:27.583+10:00</updated><title type='text'>Code Igniter的初步印象</title><summary type='text'>在过去的一周时间里，断断续续地看着Code Igniter，总体感觉'Very Nice'。从Web所提供的Video Tutorial和Documents开始，渐进地完成第一个试验性的App，中间没有感觉到有太大的学习曲线。其中对PHP所作的些许变动，或者说简化，放在整个框架里，还是比较nature的，没有丝毫突兀的感觉。App本身的文件都在application目录下，MVC分别占据各自独立的子目录，其它的如配置、自定义script、出错页面等也都相对独立。整体的目录结构还是非常清晰的。不过，也还是有改进的余地的，如果再增加一级目录，会更好些。这一点在Forum上已经有人提出了这个问题。估计框架本身的结构以后会有些变化，但这不会影响到App的目录结构。Code Igniter所提供的文档，非常好。内容全面，结构清晰，语言简洁。相比其他文档来讲，多了一种享受的感觉。对比前一阶段接触的</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114494052176199919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114494052176199919' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114494052176199919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114494052176199919'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/04/code-igniter_14.html' title='Code Igniter的初步印象'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114467047206262700</id><published>2006-04-10T21:33:00.000+10:00</published><updated>2006-04-11T09:37:36.433+10:00</updated><title type='text'>避免CI controller中的scaffolding出错</title><summary type='text'>试着用CodeIgniter做了个简单的通讯录，基本上是跟着Video Tutorial的内容走。还是挺顺利的，遇到的问题是，在利用scaffolding的时候，update或insert数据的之后，回不到record list这个view。出错信息倒是很清楚，在redirect之前已经有内容被输出。检查下来的原因，是自己的controller文件在?&gt;之后多加了一个空行。多余的空行，通常只是为了源文件书写得好看一些，更多时候是编辑时所遗留下来的。这在通常的编码过程中很常见，也不会有什么影响。不过在CodeIgniter现有的版本中，?&gt;标识之后的内容会被输出到页面上，一旦需要修改header，redirect到其它路径，就会报错。这在PHP中是个常见的问题。对于这个问题，一个办法当然是保持Controller文件没有附加任何多余空格、空行；另外就是，server side打开</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114467047206262700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114467047206262700' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114467047206262700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114467047206262700'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/04/ci-controllerscaffolding.html' title='避免CI controller中的scaffolding出错'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114456665024518189</id><published>2006-04-09T16:59:00.000+10:00</published><updated>2006-04-09T17:10:50.673+10:00</updated><title type='text'>Code Igniter</title><summary type='text'>Code Igniter，一个Ruby on Rails的PHP克隆。选择，往往是平衡之后的结果。PHP框架，很多是基于PHP 5，并且大量应用PEAR里的组件。在这些条件无法达到的情况下，Code Igniter，支持PHP 4、Lite、ROR like，这些特点对我来讲就显得比较合适。真的合适吗？Let me try.</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114456665024518189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114456665024518189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114456665024518189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114456665024518189'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/04/code-igniter.html' title='Code Igniter'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114441026441503395</id><published>2006-04-07T21:41:00.000+10:00</published><updated>2006-04-07T21:44:24.900+10:00</updated><title type='text'>Typo3 4.0 Released</title><summary type='text'>期待已久的Typo3 4.0终于发布了。又有新玩具了。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114441026441503395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114441026441503395' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114441026441503395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114441026441503395'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/04/typo3-40-released.html' title='Typo3 4.0 Released'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114406388918349117</id><published>2006-04-03T21:23:00.000+10:00</published><updated>2006-04-03T21:32:35.830+10:00</updated><title type='text'>Cheat Sheet</title><summary type='text'>Cheat Sheet，中文不知道该怎么翻译。字面意思“小纸条”，实际上就是“速记卡”。今天看到一个网站，收集了不少关于Web的Cheat Sheet。这对象我这种记性不好的人来讲，还是蛮有用的。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114406388918349117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114406388918349117' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114406388918349117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114406388918349117'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/04/cheat-sheet.html' title='Cheat Sheet'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114396807382622751</id><published>2006-04-02T18:11:00.000+10:00</published><updated>2006-04-03T08:37:32.650+10:00</updated><title type='text'>Python Egg的形式</title><summary type='text'>看过xpl223的prefix问题，今天想do something。在做了几个简单的测试之后，基本上把问题锁定在Routes上面。Routes，和其它的Python组件一样，是以Python Egg的形式安装在系统中的。安装之后的Python Egg，有两种形式。一是.egg，一个完整的包文件；另外一种就是，egg展开之后的形式，通常单独建立一个子目录，目录名也是以.egg结尾的。Python Egg在安装以后，会在文件easy-install.pth里面注册。所谓的“注册”，其实也就是增加一行纪录，说明easy_install的包在那里。在easy-install.pth中，是看不出egg以那种形式存在的，具体的要看site-packages。事实上，egg的形式并不重要，两种方式都可以正常工作。那为什么要有两种形式？包方式就很简单，为什么还要展开？我的理解，一些egg相对比较独立，</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114396807382622751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114396807382622751' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114396807382622751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114396807382622751'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/04/python-egg.html' title='Python Egg的形式'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114359692831712581</id><published>2006-03-29T12:48:00.000+11:00</published><updated>2006-03-29T13:02:44.013+11:00</updated><title type='text'>xlp223、pylons、BLOG</title><summary type='text'>通过Blog，“认识”了xlp223，共同的话题就是Pylons。因为时差的关系，xlp223差不多总是在半夜12点左右，MSN过来一个Smile，然后开始对Pylons说东道西。由于大家都有Blog的原因，有些主题在交流之后，就会出现在自己的Blog上。看看各自的Blog，感觉上有点类似于“92共识”的味道，一个主题，各自表述。有意思！这不，关于分布式SCGI，xlp223又在那里说开了。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114359692831712581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114359692831712581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114359692831712581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114359692831712581'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/03/xlp223pylonsblog.html' title='xlp223、pylons、BLOG'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114359580557782193</id><published>2006-03-29T12:29:00.000+11:00</published><updated>2006-03-29T12:31:57.290+11:00</updated><title type='text'>Flup之分布式SCGI服务</title><summary type='text'>在前一篇里，提到“从配置的形式上看，SCGI是可以进行分布式部署的，Web Server和Web App不必在同一台机器上”。昨晚，被xlp223抓住，尽管有些困，也不得不跟着学习一下，结果xlp223试验成功了。在缺省配置下，Paster是将SCGI限制为只能本地访问。如果要从外部访问SCGI Service，需要在Pylons配置文件中增加allowedServers选项。...[server:main]use = egg:PasteScript#flup_scgi_threadhost = 127.0.0.1port = 5001allowedServers = 192.168.0.1...这里192.168.0.1是Web Server的IP地址，允许该地址访问SCGI Service。接下来考虑到的是Web Server和Web App多对多映射的问题，即一个Web </summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114359580557782193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114359580557782193' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114359580557782193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114359580557782193'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/03/flupscgi.html' title='Flup之分布式SCGI服务'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114326658669739258</id><published>2006-03-25T17:02:00.000+11:00</published><updated>2006-03-25T17:15:33.583+11:00</updated><title type='text'>SCGI on Windows</title><summary type='text'>原来也曾尝试过在Windows下面安装SCGI，失败。原始的SCGI for Python中间包含了一个C程序，是针对OpenBSD/FreeBSD的，其中关于socket的头文件里的一些底层结构和函数，自然是针对Unix-like系统的。其结果是，在Windows下面，不管是VC6(for Python 2.3)，还是VC7(for Python 2.4)，都是无法编译通过。这需要参照Windows SDK进行改编。文件并不大，不过要同时参考Unix和Windows的相关细节，还是需要花些时间的。xlp223在其blog上的一篇文章，是个很好的发现。Pylons App透过Flup提供SCGI Service，Flup自身实现了SCGI协议，以及FastCGI和AJP，且还有多线程和多进程之分。使用Flup，就不需要编译独立的SCGI。这一点太重要了，突破了以往惯性思维的误区。好了，</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114326658669739258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114326658669739258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114326658669739258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114326658669739258'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/03/scgi-on-windows.html' title='SCGI on Windows'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114247304886167466</id><published>2006-03-16T12:01:00.000+11:00</published><updated>2006-03-16T12:41:44.116+11:00</updated><title type='text'>Pylons 0.8</title><summary type='text'>Pylons终于发布了一个正式的版本-0.8。正如发布文告中提到的，Pylons本身综合了其它框架的思想和特点，而Pylons的一些底层组件，也被融合到其它的框架之中。Pylons比较注重建立一个良好的自身架构。目前所欠缺的是，缺乏类似于其它框架的admin tools。发布了正式版本，就不需要从SVN上Check Out了。躲在proxy后面的机器，现在也可以安装Pylons了。这是安装以后新增的egg列表，来看看Pylons 0.8到底融合了那些东西。pylons-0.8-py2.4.eggnose-0.8.7.1-py2.4.eggwebhelpers-0.1-py2.4.eggwsgiutils-0.7-py2.4.eggsimplejson-1.1-py2.4.eggpastescript-0.5-py2.4.eggpastedeploy-0.5-py2.4.eggpaste-</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114247304886167466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114247304886167466' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114247304886167466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114247304886167466'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/03/pylons-08.html' title='Pylons 0.8'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114195464645692740</id><published>2006-03-10T12:27:00.000+11:00</published><updated>2006-03-10T12:37:26.920+11:00</updated><title type='text'>Blogger Error</title><summary type='text'>我现在怀疑自己最近的手气，似乎比较特别。今天在打开Blog的时候，看不到图片。View Image，又得到一页出错信息。Google，这最后的神话，看来也快撑不住了。忽然之间，有个idea，开辟一个blog，专门介绍各种error message，那样一定很好玩。不过，...，这样是不是很无聊？不过，...，或许收集得多了，还能发财，也未可知。算了，还是我出主意，留给别人去实践吧。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114195464645692740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114195464645692740' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114195464645692740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114195464645692740'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/03/blogger-error.html' title='Blogger Error'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114186618601780880</id><published>2006-03-09T11:54:00.000+11:00</published><updated>2006-03-09T12:03:06.416+11:00</updated><title type='text'>Gmail Error</title><summary type='text'>今天使用Gmail，得到了这样的结果。真是难的一见，cut下来，留个“纪念”。正所谓，智者千虑，终有一失。人总是免不了mistake，程序中免不了bug，电脑里免不了Error，窗口上免不了Blue Screen。写完这个消息，Gmail已经恢复正常了。哈哈！</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114186618601780880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114186618601780880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114186618601780880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114186618601780880'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/03/gmail-error.html' title='Gmail Error'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114181442763679530</id><published>2006-03-08T21:26:00.000+11:00</published><updated>2006-03-08T21:49:02.683+11:00</updated><title type='text'>Paste HTTP Server</title><summary type='text'>以前说过，coLinux serve Pylons，响应速度慢。还以为是coLinux的问题，今天有mail也提到，Paste在不同机器之间访问速度慢的问题。按照Ben的建议，把config.ini中[server:main]的use = egg:Paste#http改成use = egg:PasteScript#wsgiutils速度立即正常了。Paste#http或许在HTTP协议的实现上有些特殊，不能及时响应吧。又看了看Myghty的样板，那里就是用的wsgiutils。答案早就有，就是不注意。从另外一个角度来看待这个事情，Paste速度慢的问题，已经有比较长的一段时间了，现在才有人提出来。估计大部分人是通过和Apache进行组合，解决了速度问题。其它的因素，只能说使用Paste的人还不够多，Pylons的人那就更少了。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114181442763679530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114181442763679530' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114181442763679530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114181442763679530'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/03/paste-http-server.html' title='Paste HTTP Server'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114173236496162818</id><published>2006-03-07T22:35:00.000+11:00</published><updated>2006-03-08T00:23:29.010+11:00</updated><title type='text'>Ubuntu Dapper</title><summary type='text'>今天例行公事地Update了一下Ubuntu，顺便翻了翻Dapper的软件列表，有libapache-mod-scgi (1.9-1)和lighttpd (1.4.9-1)，这样搭配Apache或Lighttpd来玩Pylons就方便多了。按照计划，Ubuntu Dapper会在四月二十日发布。期待中。在更新Python Egg之后，启动Pylons App的时候，遇到了PasteScript版本有问题。在/usr/local/bin/paster中更正了PasteScript版本号之后，恢复正常。当然，又测试了一回prefix，现在可以说是99.9％的没有问题了。剩余的0.1%是，加了prefix之后，localhost:5000/还可以看到缺省页。如果和Apache连用，自然是不存在这个问题的，呵呵！</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114173236496162818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114173236496162818' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114173236496162818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114173236496162818'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/03/ubuntu-dapper.html' title='Ubuntu Dapper'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114164745396939340</id><published>2006-03-06T23:17:00.000+11:00</published><updated>2006-03-08T14:18:13.366+11:00</updated><title type='text'>Pylons的prefix选项</title><summary type='text'>Pylons现在提供了prefix选项。利用此选项，可以将Pylons应用的URL整体Shift到sub-path中，这样在前面提到的问题，就轻松化解了。目前该选项，还不是十分完美，需要对middleware.py做一点Hack才行。Hack以后的middleware.py如下：...import reclass PrefixWrapper(object):  def __init__(self, app, prefix):    self.app = app    self.prefix = prefix    self.re_prefix = re.compile(self.prefix + '(.*)')  def __call__(self, environ, start_response):    environ['PATH_INFO'] = re.sub(</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114164745396939340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114164745396939340' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114164745396939340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114164745396939340'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/03/pylonsprefix.html' title='Pylons的prefix选项'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114146345923849629</id><published>2006-03-04T20:09:00.000+11:00</published><updated>2006-03-05T09:41:50.603+11:00</updated><title type='text'>Apache 2 + SCGI 拾遗</title><summary type='text'>mod_scgi中使用的SCGIMount设置方式，看起来非常眼熟，让我想起了mod_jk。印象中，Apache 2 + Tomcat也是用在mod_jk中设置 JkMount的方式。事实上，两者的工作模式也很相似，都是运行各自独立的Service(Server)，通过桥接器连接到Apache上。在前一篇Blog中提到，“libapache2-mod-scgi至少要是1.7.0以上的”，这主要是因为SCGI的接口变化。SCGI从1.5开始实现SCGIMount，1.7版又Fix了一个与此有关的Bug，因此应使用1.7以上版本的SCGI。如果一定要用早先的版本，那只有使用SCGIServer和SCGIHandler了。前面说了，“在Ubuntu系统下，Breezy的libapache2-mod-scgi也还是1.2-1版本，Dapper的才是1.9-1”，如果现在要使用Dapper上的</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114146345923849629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114146345923849629' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114146345923849629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114146345923849629'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/03/apache-2-scgi.html' title='Apache 2 + SCGI 拾遗'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114145020096534689</id><published>2006-03-04T16:13:00.000+11:00</published><updated>2006-03-25T12:24:46.206+11:00</updated><title type='text'>Setup Apache 2 + SCGI for Pylons(Paste Enabled) Web Application</title><summary type='text'>我的Pylons试验平台是coLinux(Debian-3.0r2)。对于coLinux来讲，本机访问Pylons应用，没有问题，但从外部访问速度较慢，而访问Apache 2的速度却正常，原因未明。因此，通过Apache来访问Pylons应用，似乎是理想的解决办法。刚好xlp223也说到这事，就试试如何用Apache 2和SCGI来访问Pylons应用。首先，需要为Pylons安装SCGI服务器，$ sudo easy_install flup接着，修改Pylons应用的配置文件scgi.ini，(缺省是development.ini，复制成scgi.ini)...[server:main]use = egg:PasteScript#flup_scgi_threadhost = 127.0.0.1port = 5001...请注意，egg:PasteScript#</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114145020096534689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114145020096534689' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114145020096534689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114145020096534689'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/03/setup-apache-2-scgi-for-pylonspaste.html' title='Setup Apache 2 + SCGI for Pylons(Paste Enabled) Web Application'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114073918403186373</id><published>2006-02-24T10:56:00.000+11:00</published><updated>2006-02-24T11:03:16.913+11:00</updated><title type='text'>Ingredients to the Pylons Python Web Framework</title><summary type='text'>Pylons的大鸟Ben Bangert，刚刚发了一篇“Ingredients to the Pylons Python Web Framework”，对于理解Pylons的整体架构很有帮助。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114073918403186373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114073918403186373' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114073918403186373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114073918403186373'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/02/ingredients-to-pylons-python-web.html' title='Ingredients to the Pylons Python Web Framework'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114073895860243881</id><published>2006-02-24T10:49:00.000+11:00</published><updated>2006-02-24T11:17:30.016+11:00</updated><title type='text'>Apple, Orange, GUI, PHP, Framework</title><summary type='text'>在Apple上逛了一下，一不小心又碰到一个框架。Green Orange，一个PHP框架，提供GUI的开发模式，在浏览器上开发应用。Sound's good。有空的时候，倒要看看这能进苹果园的绿橙子，到底是啥样。这Web Application Framework的树林，看来是越来越大了。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114073895860243881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114073895860243881' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114073895860243881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114073895860243881'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/02/apple-orange-gui-php-framework.html' title='Apple, Orange, GUI, PHP, Framework'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114065843839216942</id><published>2006-02-23T12:11:00.000+11:00</published><updated>2006-02-23T12:35:19.756+11:00</updated><title type='text'>学用Myghty作Pylons的模板</title><summary type='text'>Pylons中的模板，取自于Myghty。Myghty本身不仅仅是模板，而是一个完整的框架。如果完整地学习Myghty，那有些东西在Pylons中实际是没有用的，或者是不能用的。Myghty这块馅饼，怎么开吃就是个问题。要是有个Sample就好了。翻了翻Myghty Egg里的内容，Myghty 1.0带了三个paster模板。其实也就是三个例子。通过paster create命令，创建基于这些模板的sample project。我是从simple template开始的，把Myghty project下面的myt和myc文件，拿到Pylons project里面来。这样就能够直接在Pylons下面，就着Myghty的例子来学Myghty了。我现在的理解，View这一块，Pylons直接用Myghty，模板之间的关系可以照搬；在Pylons中需要注意的是，如何在controller和</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114065843839216942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114065843839216942' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114065843839216942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114065843839216942'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/02/myghtypylons.html' title='学用Myghty作Pylons的模板'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114027890887669140</id><published>2006-02-19T02:40:00.000+11:00</published><updated>2006-02-20T22:12:39.333+11:00</updated><title type='text'>Pylons的动静有点大</title><summary type='text'>刚才同步了一下Pylons，版本到了0.8dev_r662。一同升级的有Routes(1.2)，还多了一个nose(0.86)。这个nose是用来作单元测试的，细节未知。从r618到r662，上周末写的测试code已经不能跑了，从一堆error message里看，应该是和Routes有关。对于只有dev的东西来讲，这当然是正常的。一切都在趋向更好、更稳定。一个我比较喜欢的变化是，有了models子目录。这下controller、model和template终于各自有明确的位置了。Ben在邮件列表中提到，0.8会很快release。这是个好消息。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114027890887669140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114027890887669140' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114027890887669140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114027890887669140'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/02/pylons_19.html' title='Pylons的动静有点大'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114013494883453074</id><published>2006-02-17T10:39:00.000+11:00</published><updated>2006-02-17T11:09:08.870+11:00</updated><title type='text'>pyDev可以实用了</title><summary type='text'>大约在一个月以前，我曾经试用过PyDev，版本大概是0.9.1(具体的忘记了)。作为IDE来讲，Debug的功能是最重要的。那个版本在进入Debug模式以后，其步进的速度，实在令人不堪。“删”立决。昨日说到JpyDbg，又想起了这档事。查了查，Eclipse已经到了3.1.2，PyDev的最新版是1.0.1，已过了1.0版本。当即重审，性能和稳定性已有了非常明显的提高。Debug的速度不能说是飞快，基本上和其它Python IDE类似；自动完成，使用起来也还行。软件1.0版本这个里程碑，过不过，真的是不一样。PyDev现在的状况，已经可以实用了。安装PyDev的一个小问题，文档中提到的Eclipse update链接是http://pydev.sf.net/updates/。在Eclipse中设置此链接，似乎抓不到1.0.1版本，使用真正的链接http://</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114013494883453074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114013494883453074' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114013494883453074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114013494883453074'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/02/pydev.html' title='pyDev可以实用了'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-114006211707106118</id><published>2006-02-16T14:33:00.000+11:00</published><updated>2006-02-17T10:00:28.293+11:00</updated><title type='text'>JpyDbg - 把NetBeans变成Python IDE</title><summary type='text'>最近使用NetBeans 5.0，其运行速度非常令人满意。顺便google了一下，有没有For Python的插件，还真有 - JpyDbg。其支持页面在这里。试用了一下，尽管目前的整合程度还不高，但基本的高亮显示、调试跟踪、以及中间变量显示等IDE的基本要素都有了，Debug是通过前后台的套接字通讯来实现的，其过程其实和调试Java程序一样自然，速度也很快。JpyDbg还可以作为jEdit的plug-in。如果觉得NetBeans太大，也可以使用JEdit + JpyDbg来作为Python的IDE。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/114006211707106118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=114006211707106118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114006211707106118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/114006211707106118'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/02/jpydbg-netbeanspython-ide.html' title='JpyDbg - 把NetBeans变成Python IDE'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-113974502001820236</id><published>2006-02-12T22:27:00.000+11:00</published><updated>2006-02-14T12:10:51.276+11:00</updated><title type='text'>Paste Serve</title><summary type='text'>Pylons的管理底层用的是Python Paste，以此来实现应用的产生、管理以及运行。其中最重要的、用得最多的就是Paste Serve。在Paste.Scipt文档中，有关如何设置运行参数、配置文件，乃至如何在Unix系统下是书写Service Script文件，都有详细的描述。似乎看来Python Paste is ready for multiapp。在开发阶段，无所谓；在运行期，准备好Python Egg，轻松实现multiapp。Paste Serve命令本身，实际只能Serve一个App，启动一个Server。配合daemon选项，通过fork的方法，来实现multiapp的。在Windows下面，deamon选项是不能工作的。因为Windows中没有fork。通过其它手段，并不影响multiapp的使用。xlp223提到在SVN上新出现multiapp分支，还不清楚其和</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/113974502001820236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=113974502001820236' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/113974502001820236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/113974502001820236'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/02/paste-serve.html' title='Paste Serve'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-113970373362679789</id><published>2006-02-12T11:09:00.000+11:00</published><updated>2006-02-12T12:46:38.910+11:00</updated><title type='text'>pylons的粗浅印象</title><summary type='text'>进行了pylons的一个简单而完整的试验。对pylons也有了一些粗略的认识。前些日子，也用TurboGears做了类似的试验，感觉上更喜欢pylons多一些。昨晚，和xlp223交流了一些彼此的看法，获益良多。从架构上来讲，TurboGears是直接建立在MochiKit、Kid、CherryPy和SQLObject的基础之上。TurboGears和基础构件之间耦合地比较紧密。pylons则包括了Myghty、Routes、Paste等更多的构件。直觉上，却不因此而显得凌乱，反而更直观、更弹性。pylons的文件结构清晰，应用的后续发展会比较简单、直接，感觉已经成熟。URL Mapping这一块，由Routes来完成，也比较简单、方便。Myghty，已经有很长的发展历史，是成熟的模板系统。SQLObject大家都在用。pylons和构件之间不是强耦合，有中间的粘结层，构件可替换，</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/113970373362679789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=113970373362679789' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/113970373362679789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/113970373362679789'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/02/pylons.html' title='pylons的粗浅印象'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-113957745110609380</id><published>2006-02-11T00:16:00.000+11:00</published><updated>2006-02-11T00:19:03.916+11:00</updated><title type='text'>Google - 简单还是复杂</title><summary type='text'>有人说，感谢上帝，给我们Google。想问什么，只要Google一下就行了。Google，是名词还是动词？回到Python WAF的问题上，Google给我们的答案不是太少了，而是太多了。一个要求推荐WAF的问帖，可以有近百个跟帖。一个比较TurboGears和Django人员活跃程度的blog，也会引来20个Comments。更有这样全面的统计。 Google，到底把问题搞简单了，还是搞复杂了？You can ask Google.</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/113957745110609380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=113957745110609380' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/113957745110609380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/113957745110609380'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/02/google.html' title='Google - 简单还是复杂'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-113954208825831239</id><published>2006-02-10T14:15:00.000+11:00</published><updated>2006-02-11T00:29:49.393+11:00</updated><title type='text'>Python WAF的零碎</title><summary type='text'>在搜索其它东西的时候，一不小心又看到一个 Python WAF- Pylons，建立在Myghty， Routes 和 Paste的基础上的。呵呵，也就是在Paste上又加点调料。Paste我喜欢，这Pylons一定要尝一尝。不幸的是，从它的SVN上checkout总是出错，不能马上试。差点忘了，网上还有人画了几个WAF和基础构件的关系图，在这里。看看满有趣的。后记：数小时后，SVN终于恢复正常，安装成功Pylons。Pylons集成(依赖)的egg可真多，幸好有easy_install帮忙。不过在coLinux中，又遇到和Karrigell类似的速度问题，CPU不“兴奋”，莫名其妙的慢，不在嵌入式系统里却是没有问题。相对应的，TurboGears倒是跑得挺欢。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/113954208825831239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=113954208825831239' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/113954208825831239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/113954208825831239'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/02/python-waf.html' title='Python WAF的零碎'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-113948655623948500</id><published>2006-02-09T22:41:00.000+11:00</published><updated>2006-02-09T23:18:44.020+11:00</updated><title type='text'>开始Python Web应用框架</title><summary type='text'>不想继续把时间停留在不停地安装、测试上了。就是TurboGears，外带Karrigell了。通过easy_install是非常容易安装TurboGears的，第一个能显示一条记录的Application做出来了。目前，对URL Path映射还不太习惯。Kid模板上的语法，是XML规范的，＜br/＞不能写成＜br＞，浪费了一点时间。Karrigell，还不错，比较对我这种Programmer的胃口。目前唯一的问题是，其在coLinux中的运行速度出人意料的慢。另外，easy_install无法安装Karrigell(2.2.1)，找不到setup.py。另外，coLinux上pySqlite2，需要自己先编译、安装SQLite3，才能easy_install pysqlite。Debian Stable版本的sqlite3不提供sqlite3.h头文件和动态库链接。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/113948655623948500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=113948655623948500' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/113948655623948500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/113948655623948500'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/02/python-web.html' title='开始Python Web应用框架'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-113948460296799906</id><published>2006-02-09T21:13:00.000+11:00</published><updated>2007-03-18T00:09:51.994+11:00</updated><title type='text'>PHP CMS的试用结果</title><summary type='text'>PHP CMS非常的流行，从大到小，可以选择的系统众多。经过前一段时间的试用和筛选。最后，我留下了4个，Lite 2个，Medium 1个，Huge 1个。筛选的过程，是在Windows和Linux中进行。个人设定的前提条件，是要提供对PostgreSQL或SQLite的支持。不幸的是，几乎所有的CMS都是基于MySQL的，少有支持PostgreSQL、SQLite的。这大概和PHP以前集成MySQL，PostgreSQL没有Windows版本的这段历史有关吧。Lite PHP CMS：limbo，小巧、方便，甚至可以不用数据库支持，Joomla的模板大都可以套用。toendaCMS，有德式的严谨，支持PostgreSQL和SQLite，小型应用够了。Medium PHP CMS：Joomla，最火爆的CMS，模板众多，人气很旺，发展空间大。预计1.1版开始提供数据库抽象层，支持</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/113948460296799906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=113948460296799906' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/113948460296799906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/113948460296799906'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/02/php-cms.html' title='PHP CMS的试用结果'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-113849646527314063</id><published>2006-01-29T11:59:00.000+11:00</published><updated>2006-01-29T12:01:05.363+11:00</updated><title type='text'>新年好！</title><summary type='text'>又是一个春节！新年好！</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/113849646527314063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=113849646527314063' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/113849646527314063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/113849646527314063'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/01/blog-post.html' title='新年好！'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-113773716394364728</id><published>2006-01-20T16:57:00.000+11:00</published><updated>2006-01-20T17:42:02.746+11:00</updated><title type='text'>Evrsoft First Page 2006终于发布</title><summary type='text'>原来的1st Page 2000 v2.0，3、4年以前，曾经在网页写作工具上很有名气。我用了很长时间，一直企盼着3.0版本的出现。这一等，就是几年，几乎到了忘却的边缘。现在好了，终于盼到了First Page 2006 3.0发布，但愿它能重铸辉煌。刚才把First Page 2006和2000两个版本一起都下载了。2000版留个纪念，开用2006版。查了一下，2000版的发行时间，是1999年9月23日。6年半的时间，似乎离现在已很遥远。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/113773716394364728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=113773716394364728' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/113773716394364728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/113773716394364728'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/01/evrsoft-first-page-2006.html' title='Evrsoft First Page 2006终于发布'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14916928.post-113747966956192350</id><published>2006-01-17T17:27:00.000+11:00</published><updated>2006-01-17T17:52:58.880+11:00</updated><title type='text'>PySQLite 2.1.0 发布</title><summary type='text'>PySQLite 2.1.0 发布了。查看了一下Changelog，PySQLite 2.1.0提供了Statement Caching的功能，只要在数据库连接的时候， 指定cached_statements的数目就可以了。此功能能够减少对SQL查询语句的重复解析。从测试的情况来看，打开此功能后，内存使用上有所增加(7%-9%)，但运行时间减少了30%，运行表现有显著提高。执行SQL查询语句的三种execute...方法，现在也可以和"库连接"对象直接连用了，不必非要通过cursor来完成了。另外，通过字段名来读取数据记录，也作了优化。</summary><link rel='replies' type='application/atom+xml' href='http://onezstudio.blogspot.com/feeds/113747966956192350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14916928&amp;postID=113747966956192350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/113747966956192350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14916928/posts/default/113747966956192350'/><link rel='alternate' type='text/html' href='http://onezstudio.blogspot.com/2006/01/pysqlite-210.html' title='PySQLite 2.1.0 发布'/><author><name>OneZ</name><uri>http://www.blogger.com/profile/05269574885742990684</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_vxu3Int_2nc/ScWGHmISrGI/AAAAAAAAAB8/d_C_ZHbS-hw/S220/RIMG0034.20.jpg'/></author><thr:total>0</thr:total></entry></feed>
