<?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-15951885</id><updated>2011-12-02T22:27:24.323+08:00</updated><category term='集群'/><category term='apache'/><category term='模块'/><category term='Python'/><category term='整合'/><category term='javascript'/><category term='src'/><category term='web'/><category term='httpd'/><category term='static'/><category term='中共'/><category term='Hibernate'/><category term='String'/><category term='tomcat'/><category term='gzip'/><category term='解封'/><category term='Blogger'/><category term='config'/><category term='HTTP'/><category term='磁盘'/><category term='module'/><category term='负载均衡'/><category term='删除'/><category term='sql'/><category term='封锁'/><category term='server'/><category term='GFW'/><category term='分区'/><category term='网络封锁'/><category term='Datastore'/><category term='frame'/><category term='恢复'/><category term='性能，优化'/><title type='text'>Leo Loong</title><subtitle type='html'>About Web development, Java/Python and Google App Engine learning notes.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-15951885.post-8618679639144833448</id><published>2010-09-18T13:48:00.009+08:00</published><updated>2011-03-03T11:39:52.714+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='GFW'/><category scheme='http://www.blogger.com/atom/ns#' term='中共'/><category scheme='http://www.blogger.com/atom/ns#' term='解封'/><category scheme='http://www.blogger.com/atom/ns#' term='封锁'/><category scheme='http://www.blogger.com/atom/ns#' term='网络封锁'/><title type='text'>Blogger 重庆电信再次解封</title><content type='html'>（2011年3月3日，重新来编辑这个贴，其实这次解封时间只有几个小时，可能是GFW抽了一下）&lt;br /&gt;&lt;br /&gt;&lt;STRIKE&gt;重庆电信今天无意间打开 blogspot ,居然能访问了，很欣喜，写下来，距上次在Blogger写文章都有一年多了，也就是Blogger已经被大陆封一年。&lt;br /&gt;&lt;br /&gt;今天能打开其实在这之前是有前兆的，前两天blogspot的页面能打开，但样式表域名下地址不能访问，载入的页面都没样式表，今天都能完整的打开了，很欣慰，不知道下一次中共的GFW什么时候再发疯？心中怒火何时才能平息？&lt;br /&gt;&lt;br /&gt;在这之前两个星期我重庆电信曾经能访问Youtube的，也是同样不能载入样式表域名下的文件和视频，而是可以打开Youtube页面的，过了两天没见起色，依然所有都不能访问。&lt;br /&gt;&lt;br /&gt;不知道是GFW的一次抽风还是真的解封了？希望是一次解封吧。&lt;/STRIKE&gt;&lt;br /&gt;&lt;br /&gt;罪恶的GFW，中共已经成了大陆进步的绊脚石。叹息...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-8618679639144833448?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/8618679639144833448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=8618679639144833448' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/8618679639144833448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/8618679639144833448'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2010/09/blogger.html' title='Blogger 重庆电信再次解封'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15951885.post-8060231559505240382</id><published>2009-11-15T17:37:00.004+08:00</published><updated>2009-11-25T14:34:44.300+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='封锁'/><category scheme='http://www.blogger.com/atom/ns#' term='网络封锁'/><title type='text'>博客暂时转移</title><content type='html'>由于中共对大陆网络的封锁，Blogger也遭殃被封，最近这次封锁都快半年了；所以博客也没有更新，偶尔只能通过代理访问到，不过现在的代理软件的服务器很多都也被封了，心中除了气愤还是气愤。现在暂时在CSDN.net上写博客，地址 &lt;a href="http://blog.csdn.net/holeo"&gt;http://blog.csdn.net/holeo&lt;/a&gt; 。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-8060231559505240382?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/8060231559505240382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=8060231559505240382' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/8060231559505240382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/8060231559505240382'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2009/11/blog-post.html' title='博客暂时转移'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15951885.post-3055217030703354993</id><published>2009-04-03T15:51:00.008+08:00</published><updated>2009-04-03T16:45:33.874+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='整合'/><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='负载均衡'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='集群'/><category scheme='http://www.blogger.com/atom/ns#' term='tomcat'/><title type='text'>关于 Apache httpd 的模块 mod_jk.so</title><content type='html'>Apache Http 整合 Tomcat 集群及负载均衡，首先，Apache Http整合Tomcat有很多方法，主要的两个方法是用mod_jk和mod_proxy_ajp模块整合，其中jk是Tomcat专供链接Apache Http使用的，性能稳定，但缺点是配置稍比porxy_ajp复杂；porxy_ajp使用代理转发，他们都是通过把符合条件的URI通过ajp通讯交给Tomcat的ajp通讯端口处理实现整合；其中，jk通过更详细的URI配置，可以详细到文件名，但proxy_ajp就只能实现匹配目录，所以jk更适合Tomcat与Apache Http的整合。&lt;br /&gt;&lt;br /&gt;首先使用jk来整合，Linux和Windows平台，可直接下载Tomcat编译好的二进制模块文件mod_jk.so，使用Unix平台部分需要手动编译；&lt;br /&gt;&lt;br /&gt;在FreeBSD7中安装编译，已经安装配置好JDK16和Tomcat6还有Apache22，推荐使用ports安装，安装编译mod_jk更方便，基本不会出错：&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#cd /usr/ports/www/mod_jk-apache2 ; make install clean ; rehash&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;完成后，在/usr/local/libexec能找到编译好的mod_jk.so，说明成功。在/usr/local/etc/apache22里能找到jk配置的例子文件mod_jk.conf.sample和workers.properties.sample，参考配置。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#ee /usr/local/etc/apache22/httpd.conf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;include&lt;/span&gt; &lt;span style="color: rgb(153, 51, 0);"&gt;etc/apache22/extra/httpd-jk.conf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#ee /usr/local/etc/apache22/extra/httpd-jk.conf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;LoadModule &lt;span style="color: rgb(153, 51, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;jk_module&lt;/span&gt; libexec/apache22/mod_jk.so&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;JkWorkersFile &lt;span style="color: rgb(153, 51, 0);"&gt;etc/apache22/workers.properties&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;JkMountFile &lt;span style="color: rgb(153, 51, 0);"&gt;etc/apache22/uriworkermap.properties&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;JkLogFile &lt;span style="color: rgb(153, 51, 0);"&gt;/var/log/mod_jk.log&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;JkLogLevel &lt;span style="color: rgb(153, 51, 0);"&gt;error&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# ee etc/apache22/workers.properties&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;worker.list = &lt;span style="color: rgb(153, 51, 0);"&gt;tomcat&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;worker.&lt;span style="color: rgb(153, 51, 0);"&gt;tomcat&lt;/span&gt;.port =&lt;span style="color: rgb(153, 51, 0);"&gt; 8009&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;worker.&lt;span style="color: rgb(153, 51, 0);"&gt;tomcat&lt;/span&gt;.host=&lt;span style="color: rgb(153, 51, 0);"&gt; tomcat-hostname&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;worker.&lt;span style="color: rgb(153, 51, 0);"&gt;tomcat&lt;/span&gt;.type=&lt;span style="color: rgb(153, 51, 0);"&gt; ajp13&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;worker.&lt;span style="color: rgb(153, 51, 0);"&gt;tomcat&lt;/span&gt;.lbfactor= &lt;span style="color: rgb(153, 51, 0);"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#ee etc/apache22/uriworkermap.properties&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;/*.jsp = &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;tomcat&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;/*servlet/* = &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;tomcat&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;/*.do = &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;tomcat&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;/*.action = &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;tomcat&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;启用Tomcat的ajp通讯，默认是开启的端口是8009，上面的配置能实现Apache Http和Tomcat的整合；&lt;br /&gt;&lt;br /&gt;稍后在下面的方法是用多个Tomcat实现集群和负载均衡，性能增强，容错能力增加。（未完，待续...）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-3055217030703354993?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/3055217030703354993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=3055217030703354993' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/3055217030703354993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/3055217030703354993'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2009/04/apache-http-tomcat.html' title='关于 Apache httpd 的模块 mod_jk.so'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15951885.post-2428488256801973313</id><published>2009-04-03T04:02:00.006+08:00</published><updated>2009-05-16T13:57:57.318+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='性能，优化'/><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='module'/><title type='text'>关于Apache Http模块的性能优化</title><content type='html'>&lt;span style="font-weight: bold;"&gt;提高Apache性能，使用基于内存和磁盘的缓存管理，添加下面4个模块：&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;file_cache_module&lt;/span&gt; 此模块提供文件描述符缓存支持,从而提高Apache性能&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;cache_module&lt;/span&gt; 此模块提供基于URI键的内容动态缓存(内存或磁盘),从而提高Apache性能,必须与mod_disk_cache/mod_mem_cache同时使用&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;disk_cache_module&lt;/span&gt; 此模块为mod_cache提供基于磁盘的缓存管理&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;mem_cache_module&lt;/span&gt; 此模块为mod_cache提供基于内存的缓存管理&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-2428488256801973313?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/2428488256801973313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=2428488256801973313' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/2428488256801973313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/2428488256801973313'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2009/04/apache-http.html' title='关于Apache Http模块的性能优化'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15951885.post-1510334349561931657</id><published>2009-04-01T14:43:00.012+08:00</published><updated>2009-04-03T14:58:08.487+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='server'/><category scheme='http://www.blogger.com/atom/ns#' term='static'/><category scheme='http://www.blogger.com/atom/ns#' term='gzip'/><category scheme='http://www.blogger.com/atom/ns#' term='模块'/><category scheme='http://www.blogger.com/atom/ns#' term='config'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='httpd'/><category scheme='http://www.blogger.com/atom/ns#' term='module'/><title type='text'>关于Apache httpd模块的一点笔记</title><content type='html'>Apache httpd 是个很好的web服务器选择，性能强大，扩展性强，合理配置好apache的模块（module）是非常重要的，直接影响到性能。最近在Unix上配置Apache时，琢磨出些东西，于是就写了下来：&lt;br /&gt;&lt;br /&gt;如果是目前单单配一个提供静态服务的功能，且考虑到以后的功能扩展，安装编译时就用动态共享对象（DSO）模式，编译参数里带上自己需要额外添加的模块，后续需要扩展直接配置httpd.conf即可，方便易于维护。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;若提供单一的静态服务，只需加载下面5个模块：&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;authz_host_module&lt;/span&gt; 供基于主机名、IP地址、请求特征的访问控制，最基本的。&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;logio_module&lt;/span&gt; 对每个请求的输入/输出字节数以及HTTP头进行日志记录，简单的日志，必备。&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;mime_module&lt;/span&gt; 通过读取部分文件内容自动猜测文件的MIME类型，不然就不能正确打开html文件，也不能正确显示图片，等等，但可以输出的。&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;dir_module&lt;/span&gt; 指定目录索引文件以及为目录提供"尾斜杠"重定向，这样方便使用。&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;speling_module&lt;/span&gt; 自动纠正URL中的拼写错误，也是容错，方便使用的。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;如果再加上一个自动索引目录和文件的功能，在加上下面1个模块：&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 102, 255);"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;autoindex_module&lt;/span&gt;&lt;/span&gt; 自动对目录中的内容生成列表，类似于"ls"或"dir"命令。&lt;br /&gt;&lt;br /&gt;&lt;span&gt;为了安全，这个功能最好在特定的目录下使用，比如只在&lt;/span&gt;archive这个目录下使用：&lt;br /&gt;&lt;br /&gt;首先去掉apache主目录的索引：&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;Options &lt;span style="font-weight: bold;"&gt;-indexes&lt;/span&gt; FollowSymLinks&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;然后添加下面的一个新的目录配置：&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;&amp;lt;Directory "/usr/home/holeo/webapps/ROOT/archive"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;Options indexes&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;       IndexOptions FancyIndexing NameWidth=60 FoldersFirst&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;       ServerSignature on&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;&amp;lt;/Directory&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;为了提高传输效率，尚且还可增加一个Gzip功能，压缩输出的文件到客户端，减少传输时间和带宽，对静态文件如html，css，js很实用，可增加下面3个模块：&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;deflate_module&lt;/span&gt; 压缩发送给客户端的内容，这是主角。&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;headers_module&lt;/span&gt; 允许通过配置文件控制任意的HTTP请求和应答头信息，发送带gzip的消息。&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;setenvif_module&lt;/span&gt; 根据客户端请求头字段设置环境变量，浏览器类型比对（BrowserMatch）,因为有些客户端浏览器不支持gzip，所以这个时候就不能压缩内容，否则客户端就不能正确显示内容；还有请求文件类型的比对，比如只压缩html，css，js，其他gif，jpg，zip等就不压缩，如果压缩图像以及zip等会增加服务器的额外负担，这样得不偿失。&lt;br /&gt;&lt;br /&gt;使用gzip，还需配置下面的内容，这是本人使用的配置代码：&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;&amp;lt;Location /&amp;gt;&lt;/span&gt;&lt;br /&gt;# Insert filter&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;SetOutputFilter DEFLATE&lt;/span&gt;&lt;br /&gt;# Netscape 4.x has some problems...&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;BrowserMatch ^Mozilla/4 gzip-only-text/html&lt;/span&gt;&lt;br /&gt;# Netscape 4.06-4.08 have some more problems&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;BrowserMatch ^Mozilla/4\.0[678] no-gzip&lt;/span&gt;&lt;br /&gt;# MSIE masquerades as Netscape, but it is fine&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;BrowserMatch \bMSIE !no-gzip !gzip-only-text/html&lt;/span&gt;&lt;br /&gt;# Don't compress images&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;SetEnvIfNoCase Request_URI \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;\.(?:gif|jpe?g|png|bmp|ico|exe|bin|rar|zip|iso|7z|rpm|tar|gz|bz|bz2|mp3|wav|avi|mkv|mov|wmv|wma|swf|flv)$ no-gzip dont-vary&lt;/span&gt;&lt;br /&gt;# Make sure proxies don't deliver the wrong content&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;Header append Vary User-Agent env=!dont-vary&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;&amp;lt;/Location&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;这些就是最常用的模块配置了，当然更多的功能，更强劲的还在其他更多的模块中，才能体现出Apache httpd真正的伟大。哈哈～&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-1510334349561931657?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/1510334349561931657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=1510334349561931657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/1510334349561931657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/1510334349561931657'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2009/04/apache-httpd.html' title='关于Apache httpd模块的一点笔记'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15951885.post-3988979508455728248</id><published>2009-03-17T05:16:00.006+08:00</published><updated>2009-03-17T15:15:55.782+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='磁盘'/><category scheme='http://www.blogger.com/atom/ns#' term='删除'/><category scheme='http://www.blogger.com/atom/ns#' term='分区'/><category scheme='http://www.blogger.com/atom/ns#' term='恢复'/><title type='text'>虚惊～差点把一个珍贵的八年前的硬盘给毁了</title><content type='html'>我一个30G的老硬盘，是8年前电脑的，里面有很多数据，都是很早很早的数据，记录这六七年来的电脑使用历程，每个阶段我都备份在里面的。由于需要今天准备装个WinPE，装在这个硬盘主分区里，因为我的U盘没在身上，不然绝对不会碰这个硬盘，结果在装老毛桃的PE时，把整个硬盘的所有分区给删了，这下麻烦了，惊慌啊，郁闷啊。&lt;br /&gt;&lt;br /&gt;我顿时束手无策了，一看只有一个损坏的分区，什么都打不开，怎么办，我想用软件EasyRecovery恢复数据，这个是一定能恢复出来的，但这个很麻烦，文件很多，而且恢复出来没有原来的文件结构。但在用EasyRecovery时，用高级恢复时发现，可以找回原来分区，试了试，原来的FAT32和NTFS分区一个个都能找回，心想有救了，只要把原来分区表一恢复，整个硬盘的数据就回来了。但试了试用EasyRecovery不行，换了个易我分区表修医生，用这个软件好哇，选择重建分区表，一下子原来所有的分区都出来，分区表恢复了。这个高兴啊，哈哈～给自己一个教训！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-3988979508455728248?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/3988979508455728248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=3988979508455728248' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/3988979508455728248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/3988979508455728248'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2009/03/blog-post.html' title='虚惊～差点把一个珍贵的八年前的硬盘给毁了'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15951885.post-2512254257097349037</id><published>2009-02-07T23:42:00.004+08:00</published><updated>2009-04-03T15:01:26.573+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>Hibernate的替代方案</title><content type='html'>&lt;span class="hilite1"&gt;不是说&lt;/span&gt;&lt;span class="hilite1"&gt;Hibernate不好，&lt;/span&gt;&lt;span class="hilite1"&gt;Hibernate有时确实反应太迟钝，速度不理想，希望大家不要在迷信Hibernate了，自动生成的SQL确实不能让人信服。但如果是做小型的开发应用，使用它能提高开发效率，值得一用。&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="hilite1"&gt;Hibernate&lt;/span&gt;的替代方案有：Apache OJB,JDO,Toplink,EJB(CMP),JPA,以上是基于ORMapping的替代方案，同时市场上比较流行的另外一种框架 是：IBatis，它只对JDBC进行了简单的封装。程序员可以使用熟悉的Sql语句，利用数据库的特性对数据进行相应的优化。&lt;br /&gt;&lt;br /&gt;不适合使用&lt;span class="hilite1"&gt;Hibernate&lt;/span&gt;的几种场合：&lt;br /&gt;&lt;br /&gt;(1):如果你的程序存在大量的批量更新，批量查询时，不适合采用&lt;span class="hilite1"&gt;Hibernate&lt;/span&gt;。这是由于&lt;span class="hilite1"&gt;Hibernate&lt;/span&gt;缓存的原因。这同时也是ORMapping框架的通病。IBatis会是更合理的选择。&lt;br /&gt;(2):关系错综复杂时，不适合采用&lt;span class="hilite1"&gt;Hibernate&lt;/span&gt;。面向对象和面向关系之间的冲突，使得"阻抗不匹配"的代价太大！&lt;br /&gt;(3):如果程序使用到了数据库的特定功能，此时&lt;span class="hilite1"&gt;Hibernate&lt;/span&gt;并不会是你理想的选择。你要利用数据库的功能来完成优化，完成并发。这时你可以想想为什么两条实现同样功能的查询语句，执行的效率却可以天壤之别。&lt;span class="hilite1"&gt;Hibernate&lt;/span&gt;说到底也是需要SQL语句的。而自动生成的SQL语句，你相信它吗？&lt;br /&gt;&lt;br /&gt; 相信大家在工作中还碰到&lt;span class="hilite1"&gt;Hibernate&lt;/span&gt;反应迟钝的案例！等等，一定要加以总结！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-2512254257097349037?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/2512254257097349037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=2512254257097349037' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/2512254257097349037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/2512254257097349037'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2009/02/hibernate.html' title='Hibernate的替代方案'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15951885.post-1568581814950287429</id><published>2008-11-13T22:22:00.003+08:00</published><updated>2008-11-26T20:30:29.415+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='frame'/><category scheme='http://www.blogger.com/atom/ns#' term='src'/><title type='text'>javascript 操作 iframe 的 src</title><content type='html'>$('mainFrame').contentWindow.document.location= 'f_account.jsp'; //IE FF 都正常&lt;br /&gt;&lt;br /&gt;$('mainFrame').src = 'f_account.jsp'; //IE正常，FF2下不能使用&lt;br /&gt;&lt;br /&gt;不得不知道的小技巧。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-1568581814950287429?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/1568581814950287429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=1568581814950287429' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/1568581814950287429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/1568581814950287429'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2008/11/javascript-iframe-src.html' title='javascript 操作 iframe 的 src'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15951885.post-1627742162540593347</id><published>2008-10-30T14:14:00.004+08:00</published><updated>2008-11-26T19:18:56.810+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='String'/><title type='text'>Python字符串操作</title><content type='html'>'''1.复制字符串'''&lt;br /&gt;#strcpy(sStr1,sStr2)&lt;br /&gt;sStr1 = 'strcpy'&lt;br /&gt;sStr2 = sStr1&lt;br /&gt;sStr1 = 'strcpy2'&lt;br /&gt;print sStr2&lt;br /&gt;&lt;br /&gt;'''2.连接字符串'''&lt;br /&gt;#strcat(sStr1,sStr2)&lt;br /&gt;sStr1 = 'strcat'&lt;br /&gt;sStr2 = 'append'&lt;br /&gt;sStr1 += sStr2&lt;br /&gt;print sStr1&lt;br /&gt;&lt;br /&gt;'''3.查找字符'''&lt;br /&gt;#strchr(sStr1,sStr2)&lt;br /&gt;sStr1 = 'strchr'&lt;br /&gt;sStr2 = 'r'&lt;br /&gt;nPos = sStr1.index(sStr2)&lt;br /&gt;print nPos&lt;br /&gt;&lt;br /&gt;'''4.比较字符串'''&lt;br /&gt;#strcmp(sStr1,sStr2)&lt;br /&gt;sStr1 = 'strchr'&lt;br /&gt;sStr2 = 'strch'&lt;br /&gt;print cmp(sStr1,sStr2)&lt;br /&gt;&lt;br /&gt;'''5.扫描字符串是否包含指定的字符'''&lt;br /&gt;#strspn(sStr1,sStr2)&lt;br /&gt;sStr1 = '12345678'&lt;br /&gt;sStr2 = '456'&lt;br /&gt;#sStr1 and chars both in sStr1 and sStr2&lt;br /&gt;print len(sStr1 and sStr2)&lt;br /&gt;&lt;br /&gt;'''6.字符串长度'''&lt;br /&gt;#strlen(sStr1)&lt;br /&gt;sStr1 = 'strlen'&lt;br /&gt;print len(sStr1)&lt;br /&gt;&lt;br /&gt;'''7.将字符串中的小写字符转换为大写字符'''&lt;br /&gt;#strlwr(sStr1)&lt;br /&gt;sStr1 = 'JCstrlwr'&lt;br /&gt;sStr1 = sStr1.upper()&lt;br /&gt;print sStr1&lt;br /&gt;&lt;br /&gt;'''8.追加指定长度的字符串'''&lt;br /&gt;#strncat(sStr1,sStr2,n)&lt;br /&gt;sStr1 = '12345'&lt;br /&gt;sStr2 = 'abcdef'&lt;br /&gt;n = 3&lt;br /&gt;sStr1 += sStr2[0:n]&lt;br /&gt;print sStr1&lt;br /&gt;&lt;br /&gt;'''9.字符串指定长度比较'''&lt;br /&gt;#strncmp(sStr1,sStr2,n)&lt;br /&gt;sStr1 = '12345'&lt;br /&gt;sStr2 = '123bc'&lt;br /&gt;n = 3&lt;br /&gt;print cmp(sStr1[0:n],sStr2[0:n])&lt;br /&gt;&lt;br /&gt;'''10.复制指定长度的字符'''&lt;br /&gt;#strncpy(sStr1,sStr2,n)&lt;br /&gt;sStr1 = ''&lt;br /&gt;sStr2 = '12345'&lt;br /&gt;n = 3&lt;br /&gt;sStr1 = sStr2[0:n]&lt;br /&gt;print sStr1&lt;br /&gt;&lt;br /&gt;'''11.字符串比较，不区分大小写'''&lt;br /&gt;#stricmp(sStr1,sStr2)&lt;br /&gt;sStr1 = 'abcefg'&lt;br /&gt;sStr2 = 'ABCEFG'&lt;br /&gt;print cmp(sStr1.upper(),sStr2.upper())&lt;br /&gt;&lt;br /&gt;'''12.将字符串前n个字符替换为指定的字符'''&lt;br /&gt;#strnset(sStr1,ch,n)&lt;br /&gt;sStr1 = '12345'&lt;br /&gt;ch = 'r'&lt;br /&gt;n = 3&lt;br /&gt;sStr1 = n * ch + sStr1[3:]&lt;br /&gt;print sStr1&lt;br /&gt;&lt;br /&gt;'''13.扫描字符串'''&lt;br /&gt;#strpbrk(sStr1,sStr2)&lt;br /&gt;sStr1 = 'cekjgdklab'&lt;br /&gt;sStr2 = 'gka'&lt;br /&gt;nPos = -1&lt;br /&gt;for c in sStr1:&lt;br /&gt;if c in sStr2:&lt;br /&gt;nPos = sStr1.index(c)&lt;br /&gt;break&lt;br /&gt;print nPos&lt;br /&gt;&lt;br /&gt;'''14.翻转字符串'''&lt;br /&gt;#strrev(sStr1)&lt;br /&gt;sStr1 = 'abcdefg'&lt;br /&gt;sStr1 = sStr1[::-1]&lt;br /&gt;print sStr1&lt;br /&gt;&lt;br /&gt;'''15.查找字符串'''&lt;br /&gt;#strstr(sStr1,sStr2)&lt;br /&gt;sStr1 = 'abcdefg'&lt;br /&gt;sStr2 = 'cde'&lt;br /&gt;print sStr1.find(sStr2)&lt;br /&gt;&lt;br /&gt;'''16.分割字符串'''&lt;br /&gt;#strtok(sStr1,sStr2)&lt;br /&gt;sStr1 = 'ab,cde,fgh,ijk'&lt;br /&gt;sStr2 = ','&lt;br /&gt;sStr1 = sStr1[sStr1.find(sStr2) + 1:]&lt;br /&gt;print sStr1&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-1627742162540593347?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/1627742162540593347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=1627742162540593347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/1627742162540593347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/1627742162540593347'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2008/10/python_30.html' title='Python字符串操作'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15951885.post-3286892829844988491</id><published>2008-10-30T01:16:00.005+08:00</published><updated>2008-11-26T19:20:10.686+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>实现URL编码解码的python程序</title><content type='html'>&lt;span style="color: rgb(102, 102, 204);"&gt;import&lt;/span&gt; urllib&lt;br /&gt;&lt;span style="color: rgb(102, 102, 204);"&gt;import&lt;/span&gt; sys&lt;br /&gt;&lt;br /&gt;string = sys.argv[&lt;span style="color: rgb(51, 153, 153);"&gt;1&lt;/span&gt;]&lt;br /&gt;string = unicode(string,&lt;span style="color: rgb(153, 153, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(153, 153, 0);"&gt;gbk&lt;/span&gt;&lt;span style="color: rgb(153, 153, 0);"&gt;"&lt;/span&gt;)&lt;br /&gt;utf8_string = string.encode(&lt;span style="color: rgb(153, 153, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(153, 153, 0);"&gt;utf-8&lt;/span&gt;&lt;span style="color: rgb(153, 153, 0);"&gt;"&lt;/span&gt;)&lt;br /&gt;gbk_string=string.encode(&lt;span style="color: rgb(153, 153, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(153, 153, 0);"&gt;gbk&lt;/span&gt;&lt;span style="color: rgb(153, 153, 0);"&gt;"&lt;/span&gt;)&lt;br /&gt;gbk=urllib.quote(gbk_string)&lt;br /&gt;utf8=urllib.quote(utf8_string)&lt;br /&gt;print gbk&lt;br /&gt;print utf8&lt;br /&gt;&lt;br /&gt;解码使用unqute和decode函数&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-3286892829844988491?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/3286892829844988491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=3286892829844988491' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/3286892829844988491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/3286892829844988491'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2008/10/urlpython.html' title='实现URL编码解码的python程序'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15951885.post-2201223477492877806</id><published>2008-10-28T13:02:00.001+08:00</published><updated>2009-04-02T16:43:08.088+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='String'/><title type='text'>Python的String实用方法</title><content type='html'>&lt;div class="contenttext"&gt; &lt;p&gt;x = ‘hello’&lt;/p&gt; &lt;p&gt;x.upper() 会将所有的小写字母转换成大写。&lt;/p&gt;&lt;p&gt;x.capitalize() 会将首字母转换成大写。&lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-2201223477492877806?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/2201223477492877806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=2201223477492877806' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/2201223477492877806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/2201223477492877806'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2008/10/string.html' title='Python的String实用方法'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15951885.post-6763069210258345072</id><published>2008-10-16T21:25:00.003+08:00</published><updated>2008-11-06T23:36:47.318+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><title type='text'>IE和FF很重要的差异</title><content type='html'>在HTTP并发请求上，IE和FF有很大的区别，IE有并发限制，FF却没有，这时就要更好组织HTTP请求顺序&lt;br /&gt;&lt;br /&gt;在数组上，length 长度也存在区别&lt;br /&gt;var list = [a,b,c,d,]&lt;br /&gt;在IE上 list.length = 5&lt;br /&gt;在FF上list.length = 4&lt;br /&gt;这样来看FF更聪明些，确实只有4个值，而IE把最后个逗号也算上了&lt;br /&gt;&lt;br /&gt;在使用时这样解决，[a,b,c,d,null]，length-1就是正确长度了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-6763069210258345072?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/6763069210258345072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=6763069210258345072' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/6763069210258345072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/6763069210258345072'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2008/10/ieff.html' title='IE和FF很重要的差异'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15951885.post-7022117503914896597</id><published>2008-10-16T14:05:00.002+08:00</published><updated>2008-10-16T14:14:27.234+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Datastore'/><title type='text'>datastore的一个索引bug？</title><content type='html'>自动生成的index.yaml里面多出来一个&lt;br /&gt;# Unused in query history -- copied from input.&lt;br /&gt;- kind: Comment&lt;br /&gt;  properties:&lt;br /&gt;  - name: True&lt;br /&gt;    direction: desc&lt;br /&gt;奇怪了，model里面我没有name为True的property。&lt;br /&gt;&lt;br /&gt;问题出来了，model里面有个name为yes的property，在dev环境下yes的indexes自动生成并且是生效的，查询成功，update到GAE上并不会生效，查询失败的，提示需要这个索引，奇怪了？&lt;br /&gt;&lt;br /&gt;找了很久的原因，最后把问题给解决了。&lt;br /&gt;&lt;br /&gt;在一个model的里面不能取叫yes的property，否则datastore会认为是True，就会产生一个为True的indexs，恰恰这个&lt;br /&gt;indexs从未被使用过，并且本应name叫yes的的indexs反而不能生效，就导致问题产生，也许是GAE的一个bug吧，我现在的问题就是这样解决的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-7022117503914896597?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/7022117503914896597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=7022117503914896597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/7022117503914896597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/7022117503914896597'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2008/10/datastorebug.html' title='datastore的一个索引bug？'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15951885.post-2534290698769361841</id><published>2008-10-13T03:16:00.002+08:00</published><updated>2008-10-13T03:18:31.778+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>用javascript来控制页面跳到指定锚点</title><content type='html'>用javascript来控制页面跳到指定锚点&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;window&lt;/span&gt;.location.hash = "here"; //here为锚点的名字&lt;br /&gt;纯ajax开发时能用到。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-2534290698769361841?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/2534290698769361841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=2534290698769361841' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/2534290698769361841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/2534290698769361841'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2008/10/javascript.html' title='用javascript来控制页面跳到指定锚点'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15951885.post-2334010312400589215</id><published>2008-10-08T21:39:00.004+08:00</published><updated>2008-10-08T21:46:11.525+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Firefox和ie下都能得到的鼠标坐标</title><content type='html'>&lt;span style="font-weight: bold;"&gt;function&lt;/span&gt; getMousePt(evt){&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;alert&lt;/span&gt;( evt.clientX +" , "+ evt.clientY );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;getMousePt(event);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-2334010312400589215?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/2334010312400589215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=2334010312400589215' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/2334010312400589215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/2334010312400589215'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2008/10/firefoxie.html' title='Firefox和ie下都能得到的鼠标坐标'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15951885.post-1287701146799630044</id><published>2008-10-06T05:49:00.003+08:00</published><updated>2008-10-06T05:56:32.792+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>设置response头，输出xml，并设置编码</title><content type='html'>self.response.headers[&lt;span style="color: rgb(153, 153, 0);"&gt;'Content-Type'&lt;/span&gt;] = &lt;span style="color: rgb(153, 153, 0);"&gt;'text/xml;charset=utf-8'&lt;/span&gt;&lt;br /&gt; self.response.out.write(&lt;span style="color: rgb(153, 153, 0);"&gt;'&amp;lt;res&amp;gt;RPC&amp;lt;/res&amp;gt;'&lt;/span&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-1287701146799630044?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/1287701146799630044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=1287701146799630044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/1287701146799630044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/1287701146799630044'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2008/10/xml.html' title='设置response头，输出xml，并设置编码'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15951885.post-7940873449806026572</id><published>2008-10-05T18:04:00.000+08:00</published><updated>2008-10-05T18:57:49.389+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>302临时跳转</title><content type='html'>&lt;div&gt;302临时跳转，也就是重定向：&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;self.redirect(&lt;span class="Apple-style-span" style="color: rgb(153, 153, 0);"&gt;'http://www.google.com'&lt;/span&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-7940873449806026572?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/7940873449806026572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=7940873449806026572' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/7940873449806026572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/7940873449806026572'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2008/10/302.html' title='302临时跳转'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15951885.post-5779711697333776934</id><published>2008-10-05T17:50:00.001+08:00</published><updated>2008-10-05T21:11:40.392+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Datastore'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>datastore根据key的id查询</title><content type='html'>&lt;div&gt;查询：&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;    mid = int(self.request.get(&lt;span class="Apple-style-span" style="color: rgb(153, 153, 0);"&gt;'mid'&lt;/span&gt;))&lt;/div&gt;&lt;div&gt;    marker = Marker.get_by_id(mid)&lt;/div&gt;&lt;div&gt;    self.response.out.write(&lt;span class="Apple-style-span" style="color: rgb(153, 153, 0);"&gt;'%s'&lt;/span&gt; % marker.click)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;查询并更新，Datastore真的很方便：&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;    mid = int(self.request.get(&lt;span class="Apple-style-span" style="color: rgb(153, 153, 0);"&gt;'mid'&lt;/span&gt;))&lt;/div&gt;&lt;div&gt;    marker = Marker.get_by_id(mid)&lt;/div&gt;&lt;div&gt;    click = marker.click&lt;/div&gt;&lt;div&gt;    click += &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;    marker.click = click&lt;/div&gt;&lt;div&gt;    marker.put()&lt;/div&gt;&lt;div&gt;    self.response.out.write(&lt;span class="Apple-style-span" style="color: rgb(153, 153, 0);"&gt;'%s'&lt;/span&gt; % click)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-5779711697333776934?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/5779711697333776934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=5779711697333776934' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/5779711697333776934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/5779711697333776934'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2008/10/datastorekeyid.html' title='datastore根据key的id查询'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15951885.post-5080575690434455270</id><published>2008-10-05T16:24:00.000+08:00</published><updated>2008-10-05T16:25:12.920+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>string转int</title><content type='html'>marker.uid = int(self.request.get(&lt;span class="Apple-style-span" style="color: rgb(153, 153, 0);"&gt;'uid'&lt;/span&gt;))&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-5080575690434455270?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/5080575690434455270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=5080575690434455270' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/5080575690434455270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/5080575690434455270'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2008/10/stringint.html' title='string转int'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15951885.post-625829929720025883</id><published>2008-10-05T16:18:00.000+08:00</published><updated>2008-10-05T16:22:26.189+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>HTML输出转换</title><content type='html'>      self.response.out.write(&lt;span class="Apple-style-span" style="color: rgb(153, 153, 0);"&gt;'content: '&lt;/span&gt; + cgi.escape(marker.content))&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-625829929720025883?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/625829929720025883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=625829929720025883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/625829929720025883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/625829929720025883'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2008/10/html.html' title='HTML输出转换'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15951885.post-1654086345472487037</id><published>2008-10-05T16:12:00.000+08:00</published><updated>2008-10-05T16:16:40.739+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>时间操作</title><content type='html'>时区转换，转为东8区，加上8小时&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;from &lt;/span&gt;datetime &lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;import &lt;/span&gt;timedelta&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;      self.response.out.write(&lt;span class="Apple-style-span" style="color: rgb(153, 153, 0);"&gt;'&lt;br/&gt;datetime: '&lt;/span&gt;+ (marker.date + timedelta(hours=+&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;8&lt;/span&gt;)).strftime(&lt;span class="Apple-style-span" style="color: rgb(153, 153, 0);"&gt;"%Y-%m-%d %H:%M:%S %Z%z"&lt;/span&gt;) )&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15951885-1654086345472487037?l=leoloong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leoloong.blogspot.com/feeds/1654086345472487037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15951885&amp;postID=1654086345472487037' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/1654086345472487037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15951885/posts/default/1654086345472487037'/><link rel='alternate' type='text/html' href='http://leoloong.blogspot.com/2008/10/blog-post.html' title='时间操作'/><author><name>Leo</name><uri>http://www.blogger.com/profile/07885309478564407351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_Eld49nLN8VA/Sq0tep7kMyI/AAAAAAAAAQY/lXR1uyftJfQ/S220/http_imgloadCA2LMB74.jpg'/></author><thr:total>0</thr:total></entry></feed>
