<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>bluecrystal</title>
    <description>　　
　　I am a programmer.
　　qq:  1759988
　　msn:  bluecrystal_yj@hotmail.com</description>
    <link>http://bluecrystal.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>eclipse+pdt下php调试环境的搭建</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/178239" style="color:red;">http://bluecrystal.javaeye.com/blog/178239</a>&nbsp;
          发表时间: 2008年04月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          　　最近一个项目用到lamp体系来构建，这其中采用了php作为脚本开发语言，于是搭建一个方便的php开发调试环境就成了必须。在该项目中我们采用了eclipse+pdt来作为开发环境，但是其调试环境却要稍微配置一下。本文就介绍如何来配置(很多地方我都是指出解决问题的出处，我不想通过转述来表达其自身文档已经说明的很清楚的问题<img title="evil" src="../../../images/smiles/icon_evil.gif" border="0" alt="evil" />)。&nbsp;<br /><br />　　1&nbsp; 前提 eclipse + pdt(PHP Development Tools)；<br /><br />　　2&nbsp; 不要以为在eclipse中安装好了pdt，就可以调试php代码了，必须下载一个调试器，这里我们选择ZendDebugger，请到官方网站下载(需要注册一个用户)，下载地址为：http://www.zend.com/en/products/studio/downloads<br /><br />　　3&nbsp; 下载后请按照压缩包中的readme.txt的说明进行安装；<br /><br />Zend Debugger installation instructions<br />---------------------------------------<br /><br />1. Locate ZendDebugger.so or ZendDebugger.dll file that is compiled for the<br />&nbsp;&nbsp; correct version of PHP (4.3.x, 4.4.x, 5.0.x, 5.1.x, 5.2.x) in the <br />&nbsp;&nbsp; appropriate directory.<br /><br />2. Add the following line to the php.ini file:<br />&nbsp;&nbsp; Linux and Mac OS X:&nbsp;&nbsp;&nbsp;&nbsp; zend_extension=/full/path/to/ZendDebugger.so<br />&nbsp;&nbsp; Windows:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zend_extension_ts=<span style="color: #ff0000">/full/path/to/</span>ZendDebugger.dll<br />&nbsp;&nbsp; Windows non-tread safe: zend_extension=/full/path/to/ZendDebugger.dll<br />&nbsp; &nbsp;<br />&nbsp;&nbsp; (*) the windows non-thread safe is used only with Zend Core 2.0<br />&nbsp; &nbsp;<br />3. Add the following lines to the php.ini file:<br />&nbsp;&nbsp; zend_debugger.allow_hosts=<span style="color: #ff0000">&lt;ip_addresses&gt;</span><br />&nbsp;&nbsp; zend_debugger.expose_remotely=always <br /><br />4. <span style="color: #0000ff">Place dummy.php file in the document root directory.</span><br /><br />5. Restart web server.<br /><br />　　大家请注意红色字体部分，需要更改为您自己的路径或配置，第4条请勿忽略；<br /><br />&nbsp;　　4&nbsp; 设置完zend debugger后，回到eclipse中，选择Window-Preferences-php-php executables里面添加一条记录，指向你的php安装目录；<br /><br />　　5&nbsp; 设置完毕以上事项后，在eclipse中，选择Help-Help Contents-PDT User Guide-Getting Started-Basic Tutorials-Working with the Debugger，请参照此文档学习如何在该环境下调试php代码，需要提醒注意的是在进行php web程序调试的时候，一定要把工程文件复制到apache服务器目录下，并且做好与本地文件之间的对应关系，这样一旦开始进入调试模式，调试器才能找到源代码。<br /><br />　　后注：其实zend debugger和pdt的在线文档写的相当的清楚，各位同学只要养成使用什么软件就阅读其自带文档的习惯，很多问题都是可以在其自身文档中获得帮助的。<img title="lol" src="../../../images/smiles/icon_lol.gif" border="0" alt="lol" />
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/178239#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 01 Apr 2008 00:07:18 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/178239</link>
        <guid>http://bluecrystal.javaeye.com/blog/178239</guid>
      </item>
      <item>
        <title>无聊时分析了下目前国内和国外汽车消费市场的区域性分布</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/156728" style="color:red;">http://bluecrystal.javaeye.com/blog/156728</a>&nbsp;
          发表时间: 2008年01月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>　　无聊之中，玩google trends的时候，突然想看看以目前大家熟知的汽车厂商的名字作为关键词被搜索的次数，就利用google trends做了以下几个查询，我先申明，这个分析只是我个人无聊所作的非专业分析，权当聊资。<img title="lol" src="../../../images/smiles/icon_lol.gif" border="0" alt="lol" /></p><p>　　如果图像不清楚，请点击看原图。</p><p>　　首先，我以大众、丰田、本田、标致、福特等中文为关键词在trends里面做了一下统计，得出了下面一个结果：</p><p>&nbsp;<img src="../../../upload/attachment/12716/a59f66a9-c203-3aca-baf9-c6fcce81da24.jpg" alt="" /></p><p>&nbsp;</p><p>　　具体分析我就不说了，就看这张图，各位看官自己分析哈，我可不想被各个车系的fans口诛笔伐。</p><p>　　然后我又以下面几个英文关键词volkswagen、toyota、honda、peugeot、gm在trends里面做了查询：</p><p><img src="../../../upload/attachment/12714/58faeebb-b731-3ba7-9944-1c2695a95520.jpg" alt="" />　　　最后我分别以德系车，日系车，美系车的各自代表品牌volkswagen、toyota、gm做了三次查询，把查询的区域分布结果拼在一张图上：</p><p><img src="../../../upload/attachment/12712/3c7cd331-123c-383d-aa83-68993ce5a11b.jpg" alt="" /></p><p> 　　根据这些图，相信各位看官都有了自己的分析，如有兴趣，可在<a href="http://www.google.com/trends" target="_blank">http://www.google.com/trends</a>里面自己去分析哈。</p><p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/156728#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 16 Jan 2008 20:17:54 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/156728</link>
        <guid>http://bluecrystal.javaeye.com/blog/156728</guid>
      </item>
      <item>
        <title>伟大的卡卡，无愧于欧洲足球先生</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/148726" style="color:red;">http://bluecrystal.javaeye.com/blog/148726</a>&nbsp;
          发表时间: 2007年12月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp; <img src="http://i1.sinaimg.cn/ty/g/2007-12-14/U336P6T12D3357261F44DT20071214015429.jpg" alt="" /></p>
<p>&nbsp;&nbsp;&nbsp; 从2006-2007赛季的欧洲冠军联赛认识了卡卡，10个进球荣获金靴奖，无数次危及关头拯救了老迈的ac米兰。而这个夜晚，又是卡卡的两次助攻，一个进球，战胜了博卡青年队，获得了2007年fifa俱乐部世界杯的冠军。可惜，没有看到里克尔梅在场上奔跑，遗憾啊，否则，可能是另外一个局面。</p>
<p>&nbsp;&nbsp;&nbsp; 卡卡在年迈的ac米兰的确是一个非常重要的位置，他的特点和典型的巴西球员还有所区别，看他的跑位和传球以及射门，很多时候你会以为他是一个欧洲拉丁派的代表，实际上在现今欧洲足球逐渐走向同化的情况下，一个南美球员，拥有技术和意识的基础上，能够把握整体，能够做球，使球队获得了更多的胜利机会，卡卡算是这样的代表。</p>
<p>&nbsp;&nbsp;&nbsp; 既能进球，又能传球，还能防守，拥有这样的球员，俱乐部夫复何求<img src="/javascripts/fckeditor/editor/images/smiley/msn/teeth_smile.gif" alt="" /></p>
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/148726#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 16 Dec 2007 21:01:29 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/148726</link>
        <guid>http://bluecrystal.javaeye.com/blog/148726</guid>
      </item>
      <item>
        <title>推荐电影(有剧透)--The Man from Earth</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/147422" style="color:red;">http://bluecrystal.javaeye.com/blog/147422</a>&nbsp;
          发表时间: 2007年12月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 片名： <font face="Arial">The Man from Earth</font></div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 译名：&nbsp; 这个男人来自地球</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 导演：&nbsp; Richard Schenkman </div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 类型： 科幻/神秘/剧情</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imdb链接：&nbsp; <font face="Arial"><a href="http://www.imdb.com/title/tt0756683/">http://www.imdb.com/title/tt0756683/</a></font></div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; verycd链接： <font face="Arial"><a href="http://lib.verycd.com/2007/11/06/0000169901.html">http://lib.verycd.com/2007/11/06/0000169901.html</a></font></div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://img.verycd.com/posts/0711/post-254495-1194361909.jpg"><img src="http://img.verycd.com/posts/0711/post-254495-1194361909.jpg" alt="" /></a></div>
<div></div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff"><strong>我的评论：</strong></font></div>
<div><font color="#0000ff"><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一部小成本的寓言式试验性电影，通过几个人在一个房间内的对白，将一个故事演绎的让人回味儿无穷，没有特效，没有动作，没有名演员，没有性，没有色，总之你想像得出的商业片元素，它都没有，有的只是精彩的近乎严谨的推理式的对白，我很佩服我所看的版本的字幕贡献者，精准而有所发挥的翻译，让人理解了这部影片。</strong></font></div>
<div><font color="#0000ff"><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 80多分钟的影片，就有80分钟的对白，涉及了众多人类文明发展史中的很多问题，比如战争，宗教，进化，伦理，心理学，尤其是对基督教的历史做了一个有趣的想象，颠覆了传统的观念，让你惊叹的同时也多了更多对于人类与环境，人类与历史、人类与宗教的思考。</strong></font></div>
<div><font color="#0000ff"><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 看看吧，一部很不错的片子，就片子本身的内容我不想多讲，还是留给读者您自己去体会。</strong></font></div>
<div><font color="#0000ff"><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在这里，也可参看我的朋友关于这部影片的一篇博文：<font face="Arial"><a href="http://tonychyi.blog.163.com/blog/static/198458602007111005447553/">http://tonychyi.blog.163.com/blog/static/198458602007111005447553/</a></font></strong></font></div>
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/147422#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 10 Dec 2007 23:34:24 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/147422</link>
        <guid>http://bluecrystal.javaeye.com/blog/147422</guid>
      </item>
      <item>
        <title>有感于android安装的简单</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/146876" style="color:red;">http://bluecrystal.javaeye.com/blog/146876</a>&nbsp;
          发表时间: 2007年12月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 看着google推出了android，也看了javaeye中各位兄弟的文章，以前我也没有接触过移动开发领域，想想接触一下新的方向也未尝不可，因此手一痒，就折腾起来，结果，只用了1个小时，我就下载并搭建起了android的开发环境，并且跑通了helloword的程序，而且也大概了解了其系统体系。看来，google的简单哲学在android上也充分的体现出来。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我不敢妄自对其他的系统作评论，比如symbian os和windows mobile，但是想想google从一开始就将android开源，并且基于linux构建，我这种移动开发新兵都能很快上手，的确是极大地吸引了开发人员，试想如果搭建一个开发环境都要弄破脑袋，折腾很长时间，那开发体验也太差了。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 此外使用java语言开发，很多人会担心效率问题，其实我想没必要担心，想想经过google优化后跑在linux上的java虚拟机不会差的，这样的话，使用java可发，开发效率当然比用c/c++要好，甚至我想，google甚至会把其传统开发语言c/c++、java、python三剑客中的python也会挪到android上面的，那个时候就会出现几种开发速度较快的动态脚本语言来开发android应用，可能吗？我想以google的作风，很可能！并且大家不要忘了开源社区一贯的技术推动能力，有了jruby,jython这样的项目，android上用脚本写程序，那也是可望也可及的事情。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; google android给了我一个美好的初学体验，也希望他能够在后续发展中走好。
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/146876#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 08 Dec 2007 14:21:59 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/146876</link>
        <guid>http://bluecrystal.javaeye.com/blog/146876</guid>
      </item>
      <item>
        <title>[tips]ImageMagick软件包简介及安装</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/146523" style="color:red;">http://bluecrystal.javaeye.com/blog/146523</a>&nbsp;
          发表时间: 2007年12月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>[简介]</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ImageMagick是一个软件工具集，用于创建、编辑和组合位图图像。利用这个工具包可读、写、转换多种文件格式的图像，比如DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF等，同时还能对图像进行放大、缩小、翻转、旋转、剪切、镜像、改变颜色、写文字、画线等操作。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这个工具包提供了命令行工具进行图像处理，同时也针对各种开发语言提供了开发包，比如Ada、java、ruby、python、lisp、c++等。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 站点： <a href="http://imagemagick.org/script/index.php">http://imagemagick.org/script/index.php</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 文档： <a href="http://imagemagick.org/script/command-line-tools.php">命令行工具</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://imagemagick.org/script/api.php">开发接口</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 下载： <a href="ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz">ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz<br />
</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong> [安装]</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff">$ gunzip -c ImageMagick.tar.gz | tar xvf -<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $ cd ImageMagick-6.3.7<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $ ./configure<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $ make<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $ make install</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注意make install的时候必须是root权限。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>[使用]</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff">$ convert</font> <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 键入这个命令后，出来一堆说明，恭喜，你安装成功了。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我安装这个工具包的目的是为了使用其python接口来作图像处理，这一切看起来都很顺利，但是，在安装其python开发包PythonMagick的时候，却遇到了很大的麻烦，在我的另外一篇博文：<a href="http://bluecrystal.javaeye.com/blog/146511">[tips]PythonMagick的安装</a> 会详细的描述这个问题 。
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/146523#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 06 Dec 2007 23:22:41 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/146523</link>
        <guid>http://bluecrystal.javaeye.com/blog/146523</guid>
      </item>
      <item>
        <title>[tips]PythonMagick的安装</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/146511" style="color:red;">http://bluecrystal.javaeye.com/blog/146511</a>&nbsp;
          发表时间: 2007年12月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PythonMagick是ImageMagick的python开发包。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  下载：<a href="http://www.imagemagick.org/download/python/PythonMagick-0.7.tar.gz">PythonMagick-0.7.tar.gz</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  安装之前确认是否安装了下列库或包：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff"><em style="background-color: rgb(255, 255, 255);">boost<br />
</em></font>        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff"><em style="background-color: rgb(255, 255, 255);"> boost-python<br />
</em></font>        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff"><em style="background-color: rgb(255, 255, 255);"> python 2.5<br />
</em></font>        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff"><em style="background-color: rgb(255, 255, 255);"> Magick++ (&gt;= 6.2)</em></font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  还要确认是否安装了下列工具：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff">pkg-config<br />
</font>        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff"> libtool<br />
</font>        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff"> make</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  然后执行下列命令进行安装：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff">$ tar -xzf PythonMagick-0.7.tar.gz<br />
</font>        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff"> $ cd PythonMagick-0.7<br />
</font>        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff"> $ ./configure<br />
</font>        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff"> $ make<br />
</font>        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff"> $ make install</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  make install的时候，必须具备root权限，看起来似乎很顺利，标准的安装过程，但是实际上一开始就出问题了<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  问题一：　./configure的时候找不到ImageMagick，实际上我是安装了的，关于ImageMagick的安装请参看我的博文：<a href="http://bluecrystal.javaeye.com/admin/show/146523"><span class="postdesc">[tips]ImageMagick软件包简介及安装</span></a>，这个时候进入当前登录用户的home目录，打开.bash_profile文件，加入以下几行：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff">PKG_CONFIG_PATH=/usr/local/lib/pkgconfig<br />
</font>        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff">export PKG_CONFIG_PATH</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  其中/usr/local/lib/pkgconfig为ImageMagick的包描述文件所在目录<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  保存并退出到命令行后，执行下列命令使之生效：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff">$ source .bash_profile</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  做完上述配置后，./configure是没有问题了。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  问题二：　make的时候会报　no matching function for call to 'registry_lookup(const volatile void (*)())'　的错误，这个问题比较麻烦，在google上找了很久，说是boost－python不再支持void*的原因，经过自己的一些尝试，才找到解决办法：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  1  首先把下列提及文件中的void* or void * 全部替换为unsigned char* or unsigned char *，注意在替换的时候，要符合c++的语法：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff">PythonMagick-0.7/pythonmagick_src/_Blob.cpp _Image.cpp<br />
</font>        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff">/usr/local/include/Magick++/Blob.h Image.h</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  其中/usr/local/include/Magick++为ImageMagick安装后的头文件，可能会有所不同；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  2  进入PythonMagick-0.7/pyste_src，找到Blob.pyste、Image.pyste，更改文件中的路径为正群的安装路径；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  3  进入PythonMagick-0.7/helpers_src，找到Blob.cpp，打开，将其内容替换为：<br />
<div class="code_title">cpp 代码</div>
<div class="dp-highlighter">
<div class="bar"> </div>
<ol class="dp-cpp" start="1">
    <li class="alt"><span><span class="preprocessor">#include &quot;Blob.h&quot;</span><span>  </span></span></li>
    <li class=""><span>  </span></li>
    <li class="alt"><span><span class="keyword">void</span><span> update_wrapper(Magick::Blob&amp; blob, </span><span class="keyword">const</span><span> std::string&amp; data) {  </span></span></li>
    <li class=""><span>    blob.update((unsigned <span class="datatypes">char</span><span>*)(</span><span class="keyword">const_cast</span><span>&lt;</span><span class="datatypes">char</span><span>*&gt;(data.c_str())),data.size());  </span></span></li>
    <li class="alt"><span>}  </span></li>
    <li class=""><span>  </span></li>
    <li class="alt"><span>std::string get_blob_data(<span class="keyword">const</span><span> Magick::Blob&amp; blob) {  </span></span></li>
    <li class=""><span>    <span class="keyword">const</span><span> unsigned </span><span class="datatypes">char</span><span>* data = </span><span class="keyword">static_cast</span><span>&lt;</span><span class="keyword">const</span><span> unsigned </span><span class="datatypes">char</span><span>*&gt;(blob.data());  </span></span></li>
    <li class="alt"><span>    <span class="datatypes">size_t</span><span> length = blob.length();  </span></span></li>
    <li class=""><span>    <span class="keyword">return</span><span> std::string(data,data+length);  </span></span></li>
    <li class="alt"><span>}  </span></li>
</ol>
</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  做完以上设置后，按照安装步骤走，就搞定了，如果编译过程中出现问题，就再仔细检查1中所提到的文件中的void *指针是否替换完，因为有几个地方，void和*之间会有很多空格，要注意检查。
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/146511#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 06 Dec 2007 22:23:11 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/146511</link>
        <guid>http://bluecrystal.javaeye.com/blog/146511</guid>
      </item>
      <item>
        <title>[tips]python图形处理库Python Imaging Library (PIL)简介及安装</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/146490" style="color:red;">http://bluecrystal.javaeye.com/blog/146490</a>&nbsp;
          发表时间: 2007年12月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          　　<strong>[简介]</strong><br />　　这两天用python写一个程序,需要对各种格式的图片进行一些简单的处理,采用了Python Imaging Library (PIL)库,这个库可用于图片的一些常用操作,比如改变图片格式、尺寸、色彩、旋转等。<br />　　pil站点: <a href="http://www.pythonware.com/products/pil/index.htm" target="_blank">http://www.pythonware.com/products/pil/index.htm</a><br />　　pil下载: <a href="http://effbot.org/downloads/Imaging-1.1.6.tar.gz" target="_blank">http://effbot.org/downloads/Imaging-1.1.6.tar.gz</a><br />　　pil文档: <a href="http://www.pythonware.com/library/pil/handbook/index.htm" target="_blank">http://www.pythonware.com/library/pil/handbook/index.htm</a><br />　　<br />　　<strong>[安装]</strong><br />　　$ gunzip Imaging-1.1.6.tar.gz<br />　　$ tar xvf Imaging-1.1.6.tar<br />　　$ cd Imaging-1.1.6<br />　　$ python setup.py build_ext -i<br />　　$ python selftest.py<br />　　$ python setup.py install<br />　　安装完毕后,可在python安装目录下的site-packages找到PIL安装目录。<br /><br />　　<strong>[使用]</strong><br />　　如果你想使用PIL的Image类，就直接import Image即可，详细的使用方法请阅读其文档。
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/146490#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 06 Dec 2007 20:25:22 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/146490</link>
        <guid>http://bluecrystal.javaeye.com/blog/146490</guid>
      </item>
      <item>
        <title>有感于《程序员》2007年12期一篇文章作者的写作风格和csdn编辑的态度</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/145698" style="color:red;">http://bluecrystal.javaeye.com/blog/145698</a>&nbsp;
          发表时间: 2007年12月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          　　今天看了12期的《程序员》里面刊登的一篇文章“Ruby、Rails、Agile的启示”，我直接引用里面的几段原话：<br /><br />　　<div class="quote_title">引用</div><div class="quote_div">在RoR社区中，很难看到“学术”性质的东西，也很难看到所谓的“流派”，只有非常真实代码和思想。Rails技术领域的最高技术会议RailsConf，也鼓励展示领域内的项目创新。没有大公司的搅局，纯粹程序员的文化氛围，一切都显得简单到极致。</div><br />　　<div class="quote_title">引用</div><div class="quote_div">IT巨头们也没有忽视RoR的崛起。Sun是现在RoR的主要支持者之一，NetBeans默认支持RoR的开发。整个J2EE社区渴望将Ruby和Rails嫁接在一起，让RoR可以继承Java的巨大遗产，而Java则可方便使用Ruby和Rails的各种创新，为整个企业界的开发带来了一股新鲜的风气。</div><br />　　<div class="quote_title">引用</div><div class="quote_div">笔者使用PC时间长达10年，今年转变为Mac用户后，终于体会到了Mac的华丽和易用性。笔者问身边许多使用Mac的朋友，下一台电脑，你会选择PC，还是Mac？100％的回答是会继续选择Mac。简短几个月，笔者在Mac下面进行工作、学习的经验，已经让我很难在回到Windows了(必要的时候会使用Windows虚拟机)。</div><br />　　<div class="quote_title">引用</div><div class="quote_div">以笔者自己学习和工作经验来看，走向TDD(测试驱动开发)是技术生涯中最大，也是最有乐趣的一次转变。整个******的人都有这样的体会，没有测试代码，我们不知道如何写程序。</div><br />　　<div class="quote_title">引用</div><div class="quote_div">对我而言，Mac有3点好处：1、血统纯正的Unix系统 2、非常安全、非常稳定，完全不用担心备份操作系统，不担心木马病毒 3、华丽的界面，使用艺术品一样的享受。以上三点，是Windows无法提供</div><br />　　<div class="quote_title">引用</div><div class="quote_div">禁止使用Windows已经成为*******的公司核心文化。每一个成员，都需要在Unix/Linux系统下，完成工作任务。再也不用担心烦人的病毒和间谍软件，Windows上太多分散人注意力的地方，使用Linux后，公司员工的生产效率一点也不比Windows底，而且避免了各种法律问题。按照优先级向技术团队推荐OS: Mac OS X ; Linux/Ubuntu;Windows</div><br /><br />　　对于作者的言语相信每个读者都有自己的想法和思维，我感兴趣的是作者在文章中表现出的强烈的个人倾向，很多技术文章的作者在涉及敏感话题的时候，总会用“各有特点，各有应用领域”之类的话来打圆场，该文作者却没有逃避这个问题，而是非常明确的表明自己的看法和倾向，其实这样的文章还是很有冲击力的，现在社会都讲究要注重发展每个人的个性特点，写文章也没必要中庸，写出自己的擅长，写出自己的想法，何必在乎别人的回馈。大的it巨头花巨资营销自己的产品，这不也是表明某种倾向吗，所以我喜欢这样的文章，只有百花齐放，才能五彩缤纷，您说呢？<img src="/images/smiles/icon_cool.gif"/><br /><br />　　另外一个方面，csdn的编辑们让这样敏感、激进的话语出现在《程序员》杂志中，也不能不说是一种进步，我作为《程序员》杂志的读者，从它创刊至今一直都在订阅，最近都已经对《程序员》杂志快失去信心了，这篇文章还是让我觉得有些意外之外的感觉，也希望中国能够出现一个专业化细分的技术期刊市场，而不是csdn一家独秀。<img src="/images/smiles/icon_razz.gif"/>
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/145698#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 03 Dec 2007 21:42:14 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/145698</link>
        <guid>http://bluecrystal.javaeye.com/blog/145698</guid>
      </item>
      <item>
        <title>[tips] linux下ssh客户端以及sftp文件传送的一般用法</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/144352" style="color:red;">http://bluecrystal.javaeye.com/blog/144352</a>&nbsp;
          发表时间: 2007年11月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp; 以前在windows上，我要用ssh连接服务器，我一般都用putty。<br />
&nbsp;&nbsp;&nbsp; 这段时间一直在linux上工作，由于linux上一般都自带ssh客户端，也就是ssh命令了，此外还有一个命令sftp，用来安全的传送文件，今天为了管理linux服务器，用到了linux下的这两个命令行工具，现就其最常用的用法描述如下：<br />
&nbsp;&nbsp;&nbsp; 假定服务器ip为61.145.34.33，ssh服务的端口号为9186，服务器上有个用户为sshuser；<br />
&nbsp;&nbsp;&nbsp; <strong>用ssh登录服务器的命令为：</strong><br />
&nbsp;&nbsp;&nbsp; <font color="#0000ff"><span style="background-color: rgb(192, 192, 192);">&gt;ssh -l sshuser 61.145.34.33 -p 9186</span></font><br />
&nbsp;&nbsp;&nbsp; 回车后，如果是第一次登录，会提示你一条认证信息，你键入yes即可，接着输入服务器sshuser的密码登录即可；<br />
<br />
&nbsp;&nbsp;&nbsp; <strong>用sftp登录服务器的命令为：</strong><br />
&nbsp;&nbsp;&nbsp; <font color="#0000ff"><span style="background-color: rgb(192, 192, 192);">&gt;sftp -oPort=9186 sshuser@61.145.34.33</span></font><br />
&nbsp;&nbsp;&nbsp; 回车后，输入服务器sshuser的密码登录，然后会显示一个sftp&gt;的环境，这个时候，键入help你会看到所有命令的帮助，跟ftp命令行工具非常类似，比如get,put等等。<br />
<br />
&nbsp;&nbsp;&nbsp; 至于这两个命令行的其他用法，可参看其联机手册...
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/144352#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 27 Nov 2007 22:28:20 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/144352</link>
        <guid>http://bluecrystal.javaeye.com/blog/144352</guid>
      </item>
      <item>
        <title>linux下我使用的软件工具集</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/140700" style="color:red;">http://bluecrystal.javaeye.com/blog/140700</a>&nbsp;
          发表时间: 2007年11月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 前两天我一直用的sony笔记本终于崩溃了(sony的笔记本小毛病很多，搞开发的同学最好还是用thinkpad)，换了一台thinkpad的r51来用，我检查了一下配置，发现比较低，想想干脆装成linux。一来可以提高自己的xnix水平，二来呢也不会有人找我借电脑用了<img src="/javascripts/fckeditor/editor/images/smiley/msn/shades_smile.gif" alt="" />。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 折腾了2～3天终于把这台r51配置好了，幸运的是除了声卡，其他的驱动竟然都被系统识别了，看来这ibm对linux的硬件兼容做得还不错。其他的我就不多说了，我只想说作为一个java和python的开发人员，我都在这台机器上装了些什么工具，而且这些工具都用来做什么，也方便有心用linux作为自己的工作平台的同学参考：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; 文字处理和演示<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.openoffice.org/" target="_blank">openoffice&nbsp;</a>&nbsp; ms office 有的它都有；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.adobe.com/products/acrobat/readstep2.html" target="_blank">adobe reader</a>&nbsp; pdf阅读工具，不能少阿，很多文档得用它看；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp; 即时通信工具<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.pidgin.im/" target="_blank">pidgin</a>&nbsp;&nbsp;&nbsp; 支持qq,msn,aim,yahoo,gtalk,icq等聊天工具；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3&nbsp; 开发工具<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.eclipse.org" target="_blank">eclipse&nbsp;</a> java开发环境；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://pydev.sourceforge.net/" target="_blank">pydev&nbsp;</a>&nbsp; 用于python开发的eclipse插件；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.djangoproject.com" target="_blank">django&nbsp;</a> 基于python的web开发框架；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp; 版本工具<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://tortoisesvn.tigris.org/" target="_blank">rapidsvn&nbsp;</a> subversion的客户端工具；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5&nbsp; 图形处理<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.gimp.org" target="_blank">gimp&nbsp;</a> 强大的图形处理和制作工具<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp; 网页设计工具<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://bluefish.openoffice.nl/" target="_blank">bluefish&nbsp;</a> 可视化页面制作工具，支持许多编程和标记语言；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://quanta.kdewebdev.org/" target="_blank">quanta plus</a>&nbsp; web开发工具，脚本支持很不错；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7&nbsp; 下载工具<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.krasu.ru/soft/chuchelo/" target="_blank">d4x&nbsp;</a> 类似于flashget的图形化多线程下载工具；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://myget.sourceforge.net/" target="_blank">myget&nbsp;</a> 命令行下的多线程下载工具，很好用；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8&nbsp; 浏览器<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.mozilla.org/" target="_blank">firefox&nbsp;</a> linux下当仁不让的好用的浏览器；<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其他一些开发工具在安装linux的时候，一定要自定义安装，并且选上，比如kdevelop以及perl、umbrello等。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/140700#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 14 Nov 2007 19:59:43 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/140700</link>
        <guid>http://bluecrystal.javaeye.com/blog/140700</guid>
      </item>
      <item>
        <title>linux下resin的安装和配置</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/138881" style="color:red;">http://bluecrystal.javaeye.com/blog/138881</a>&nbsp;
          发表时间: 2007年11月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这两天不知道为什么，一直运行的好好的tomcat出现了间歇性的崩溃现象，查看日志，优化配置，优化程序，反复检查系统环境和配置，什么招都用过了，就是解决不了问题。这个时候，一个朋友跟我说，他也遇到了相同的问题，实在是解决不了，就换成了resin，结果，就运行正常了。我一时无奈之下，也把tomcat换成了resin，让它先运行着，以观后效，再做决定。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 同时，为了分享resin在linux下之安装配置经验，遂写此文。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; 从 <strong><a href="http://www.caucho.com/download/" target="_blank">http://www.caucho.com/download/</a> </strong>下载resin，我下载的是 <strong><em>Resin 3.0.23</em> </strong>这个版本(tar.gz格式)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为什么下载这个版本，因为据说这个版本最稳定可靠。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp; 检查你的linux环境 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查看是否安装了<em><strong> jdk1.5</strong></em> 或以上版本，是否安装了<strong><em>perl</em></strong>。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3&nbsp; <strong><font color="#000080">tar -vzxf resin-3.0.23.tar.gz&nbsp;</font></strong> 到你想放置的目录<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp; 进入resin-3.0.23的安装目录，按照次序执行下列命令<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong><font color="#000080">./configure<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; make<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; make install</font></strong><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5&nbsp; 在确保环境变量JAVA_HOME已经设置的情况下，进入resin-3.0.23/bin目录，执行下列命令<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code><font color="#000080"><strong>httpd.sh</strong></font><br />
&nbsp;&nbsp;&nbsp; <br />
</code> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code>6 在浏览器中用 http://hostip:8080 即可访问到resin的默认页面<br />
<br />
</code> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code>7 修改和制作启动脚本，让linux启动的时候，resin能够自动运行<br />
&nbsp; &nbsp; &nbsp;&nbsp; 7.1&nbsp; 复制resin-3.0.23/bin下的httpd.sh到<strong> /etc/rc.d/init.d/ </strong>下面，并更名为resin<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7.2&nbsp; 在<strong> /etc/rc.d/init.d/</strong> 下打开resin脚本，把相关的JAVA_HOME和RESIN_HOME的选项去掉注释，并正确设置这两个环境变量<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7.3&nbsp; 将其中</code>wrapper.pl位置处的路径修改一下，改为<strong><font color="#000080">$RESIN_HOME/bin/wrapper.pl</font></strong><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8&nbsp; <strong><font color="#000080">chkconfig --add resin</font></strong>，将resin加入到系统自启动服务中<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9&nbsp; 重启动机器完毕后，用 <code>http://hostip:8080 即可访问到resin的默认页面</code>
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/138881#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 08 Nov 2007 00:41:16 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/138881</link>
        <guid>http://bluecrystal.javaeye.com/blog/138881</guid>
      </item>
      <item>
        <title>django中如何国际化你的页面</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/138106" style="color:red;">http://bluecrystal.javaeye.com/blog/138106</a>&nbsp;
          发表时间: 2007年11月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div>        在web开发中经常会根据不同语言地区的用户显示不同的页面，或者你想集中管理你的页面提示或警告信息，这种情况下，我们一般都回利用一些系统自身的国际化功能来完成这个工作。</div>
<div>        下面我会用很简洁的方式一步一步从创建一个项目开始，描述如何在django中使用国际化功能。在开始之前，先说说开发环境：winxppro+sp2+python2.5+django0.96，另下面的很多django命令都在django安装根目录的bin下，请事先设置好路径方便使用。</div>
<div><font color="#0000ff">        第一步： 创建一个项目</font></div>
<div>        使用<strong>django-admin.py startproject djtest</strong> 创建项目；
<div>&nbsp;</div>
</div>
<div> <font color="#0000ff">       第二步： 创建应用</font></div>
<div><font color="#0000ff">        </font>使用<strong>manage.py startapp international</strong> 创建应用；
<div>&nbsp;</div>
</div>
<div> <font color="#0000ff"><font color="#0000ff">       </font>第三步： 修改配置文件</font></div>
<div><font color="#0000ff">        </font>在djtest目录下，更改settings.py，修改<font face="Arial"><strong>DATABASE_ENGINE </strong><font face="Arial"><strong>DATABASE_NAME </strong><font face="Arial"><strong>DATABASE_USER </strong><font face="Arial"><strong>DATABASE_PASSWORD</strong>，这几个参数值随便设置吧，但是要保证能够链接上数据库，否则后面django自带的测试服务器启动不了，并且一访问就报错 ：），此外再设置<font face="Arial"><strong>USE_I18N = </strong><font face="Arial"><strong>True</strong>；</font></font></font></font></font></font></div>
<div>        <font color="#0000ff">第四步： 配置urls.py</font></div>
<div>        在urlpatterns中增加一行 <font face="Arial"><strong>(r'^international/test/', 'djtest.international.views.test') </strong></font></div>
<div>
<div><strong></strong></div>
<div> <font color="#0000ff"><font color="#0000ff">       </font>第五步： 写一个简单的处理函数</font></div>
<div><font color="#0000ff">        </font>打开views.py，添加如下代码</div>
<div>
<div class="code_title">python 代码</div>
<div class="dp-highlighter">
<div class="bar"> </div>
<ol class="dp-py">
    <li class="alt"><span><span class="keyword">from</span><span> django.shortcuts </span><span class="keyword">import</span><span> render_to_response </span></span></li>
    <li class=""><span></span></li>
    <li class="alt"><span></span><span class="keyword">def</span><span> test(request): </span></li>
    <li class=""><span></span><span class="keyword">return</span><span> render_to_response('international/test.html') </span></li>
</ol>
</div>
<div>&nbsp;</div>
</div>
<div> </div>
<div> <font color="#0000ff"><font color="#0000ff">       </font>第六步： 写一个简单的模板文件</font></div>
<div><font color="#0000ff">        </font>在djtest目录下创建一个templates/<font face="Arial">international目录，并在该目录下创建一个test.html模板文件，主要加入下面两行（详细请看上传的源码）：</font></div>
<div><span><span><strong><font color="#0000ff">        </font>{% load i18n %}</strong></span></span></div>
<div><span><span><span><strong><font color="#0000ff">        </font>{% trans 'hello test' %}</strong></span></span></span></div>
<div>&nbsp;</div>
<div><span><span class="tag"><span class="tag"><span class="tag"><span class="tag"></span></span></span></span></span></div>
<div> <font color="#0000ff"><font color="#0000ff">       </font>第七步： 创建包含国际化文本串的文件</font></div>
<div><font color="#0000ff">        </font>在djtest目录下，首先创建目录locale，敲入命令 <strong>make-messages.py -l zh_CN</strong> 命令在djtest下的locale/<font face="Arial">zh_CN/LC_MESSAGES下</font>生成文件django.po，该文件为刚刚敲入的命令遍历djtest下的源代码和模板目录后生成的，所以打开这个文件，你会找到这样两行：
<div class="code_title">代码</div>
<div class="dp-highlighter">
<ol class="dp-xml">
    <li class="alt"><span><span>msgid &quot;hello test&quot; </span></span></li>
    <li class=""><span>msgstr &quot;中文测试&quot; </span></li>
</ol>
</div>
</div>
<div><font color="#0000ff">        </font>在msgstr的双引号内写入自己想要表达的字符串即可，比如&quot;中文测试&quot;，并将该django文件保存为utf-8格式，在windows下最好不要带bom。</div>
<div><font color="#0000ff">        </font>然后我们在djtest下，再敲入命令 <strong>make-messages.py -l en</strong> 命令在djtest下的locale/en/LC_MESSAGES下生成文件django.po，然后我们做同样的处理，只不过把msgstr的内容写成&quot;english test&quot;，也将该文件保存为无bom的utf-8格式。</div>
<div>        请注意，每个.po文件都请将<font face="Arial">Content-Type: text/plain; charset设置为utf-8；
<div>&nbsp;</div>
</font></div>
<div> <font color="#0000ff"><font color="#0000ff">       </font>第八步： 编译.po文件</font></div>
<div><font color="#0000ff">        </font>在djtest目录下，敲入命令 <strong>compile-messages.py</strong> 该命令会为每一个.po文件生成.mo文件，供django使用；
<div>&nbsp;</div>
</div>
<div> <font color="#0000ff"><font color="#0000ff">       </font>第九步： 设置settings.py文件</font></div>
<div><font color="#0000ff">        </font>在<font face="Arial">INSTALLED_APPS加入<font face="Arial">'djtest.international', </font></font>设置<font face="Arial">LANGUAGE_CODE = 'zh-cn' </font>
<div> <font color="#0000ff"><font color="#0000ff">       </font>第十步： 启动django的测试服务器</font></div>
<div><font color="#0000ff">        </font>在djtest目录下，敲入命令 <strong>manage.py runserver</strong>，然后访问<font face="Arial"><a href="http://localhost:8000/international/test/">http://localhost:8000/international/test/</a>浏览效果，更改settings.py中的<font face="Arial">LANGUAGE_CODE = 'en', 你就可以看到英文的消息。</font></font></div>
</div>
<div>&nbsp;</div>
</div>
<div>&nbsp;</div>
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/138106#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 05 Nov 2007 15:50:20 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/138106</link>
        <guid>http://bluecrystal.javaeye.com/blog/138106</guid>
      </item>
      <item>
        <title>如何用css和div控制html页面中的下拉列表框(select)</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/137473" style="color:red;">http://bluecrystal.javaeye.com/blog/137473</a>&nbsp;
          发表时间: 2007年11月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 近日在做一个小型项目的时候，发现ie6中不能用css控制select下拉列表框的样子，甚是郁闷，后来google了一番，加上自己的尝试，终于使用外嵌div的方式比较圆满的解决了这个问题，特写此稿，分享自己的心得体会。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 首先，在ff2.0中，对select的样式控制是可以被渲染的，至于mac下的<font face="Arial">safari会不会渲染对select的样式控制，没有试过，不得而知，仅针对使用最广泛的ff2.0和ie6做了下面一个例子。</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>select下拉列表框样式控制的关键就是在其外面嵌套一个div，并控制div边框格式以及其overflow属性，并请注意div和select各自的position属性，这个也很重要哈，大家可反复设置这几个属性的不同取值，做做实验，就明白其中道理了<img src="/javascripts/fckeditor/editor/images/smiley/msn/shades_smile.gif" alt="" />  </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 大家可以从附件中下载源代码查看。<span><span><span><span>把这段代码保存为一个html文件，分别用ff2.0和ie6浏览，即可得到如下效果：</span></span></span></span></p>
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/137473#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 02 Nov 2007 00:21:27 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/137473</link>
        <guid>http://bluecrystal.javaeye.com/blog/137473</guid>
      </item>
      <item>
        <title>python小例子之8 -- decorator的使用</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/137462" style="color:red;">http://bluecrystal.javaeye.com/blog/137462</a>&nbsp;
          发表时间: 2007年11月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div>主题： <font face="Arial"><font face="Arial">decorator的使用</font></font></div>
<div>环境： winxp pro + sp2 + python2.5<br />
备注： 请注意，凡是在源代码文件中使用了中文字符，请最好保存为utf-8格式</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本文与另外一篇blog文章内容相关：<a href="http://bluecrystal.javaeye.com/blog/132934" title="永久链接：python中如何简单的实现decorator模式--由django admin源码所得体会">python中如何简单的实现decorator模式--由django admin源码所得体会</a>&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本文就是因<a href="http://kdekid.javaeye.com/">kdekid</a>&nbsp;在该blog回帖后，我对python decorator的使用整理出的一点心得，在上述提及的blog中的代码亦可修改为本文所描述的方式，各位同学可自己试试 ：）</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 具体的语法描述可参考： python manuals -- Language Reference -- 7.Compound statements -- 7.6 Function definitions&nbsp; <img src="/javascripts/fckeditor/editor/images/smiley/msn/lightbulb.gif" alt="" /><br />
</div>
<div>代码：</div>
<div>
<div class="code_title">python 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-py">
    <li class="alt"><span><span class="comment">#&nbsp;decorator_arg.py </span><span>&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="comment">#&nbsp;修饰函数&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="keyword">def</span><span>&nbsp;decorator(fun):&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">def</span><span>&nbsp;ifun(*args,&nbsp;**kwargs):&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args&nbsp;=&nbsp;(i+1&nbsp;</span><span class="keyword">for</span><span>&nbsp;i&nbsp;</span><span class="keyword">in</span><span>&nbsp;args)&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;fun(*args,&nbsp;**kwargs)&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;ifun&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="keyword">def</span><span>&nbsp;decorator1(arg): &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">def</span><span>&nbsp;_decorator1(fun): &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">def</span><span>&nbsp;ifun(*args,&nbsp;**kwargs): &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args&nbsp;=&nbsp;(i+arg&nbsp;</span><span class="keyword">for</span><span>&nbsp;i&nbsp;</span><span class="keyword">in</span><span>&nbsp;args) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;fun(*args,&nbsp;**kwargs) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;ifun &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;_decorator1 &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="comment">#&nbsp;被修饰函数1 </span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>@decorator &nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="keyword">def</span><span>&nbsp;fun1(x,y,z):&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;x+y+z&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>arg&nbsp;=&nbsp;2 &nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="comment">#&nbsp;被修饰函数2 </span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>@decorator1(arg) &nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="keyword">def</span><span>&nbsp;fun2(x,y,z): &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;x+y+z &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="comment">#&nbsp;测试代码&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>a&nbsp;=&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>b&nbsp;=&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>c&nbsp;=&nbsp;5 &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="keyword">print</span><span>&nbsp;fun1(a,b,c) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="keyword">print</span><span>&nbsp;fun2(a,b,c) &nbsp;&nbsp;</span> </li>
</ol>
</div>
<div></div>
<div>测试：保存为文件，直接执行即可</div>
<div>测试结果：</div>
<div>
<div class="code_title">控制台输出：</div>
<div class="dp-highlighter">
<ol class="dp-c">
    <li class="alt"><span><span>&gt;&gt;&gt;&nbsp; &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>15 &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>18&nbsp;&nbsp;</span> </li>
</ol>
</div>
</div>
<br />
</div>
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/137462#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 01 Nov 2007 23:01:35 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/137462</link>
        <guid>http://bluecrystal.javaeye.com/blog/137462</guid>
      </item>
      <item>
        <title>python中如何简单的实现decorator模式--由django admin源码所得体会</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/132934" style="color:red;">http://bluecrystal.javaeye.com/blog/132934</a>&nbsp;
          发表时间: 2007年10月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这段时间用django做一个小型的应用系统，虽然其自动生成的后台管理功能很实用，可是毕竟都是按照django自己的方式在表达，很多情况下，并不一定就满足用户的要求，于是我就脱其衣，剥其皮，对其自动生成后台的源码琢磨琢磨。这篇文章就来自于这次源码的阅读工作。</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 举个很简单，但是在web开发工作中最常见的场景，很多时候，你的很多url在真正执行操作前，都要验证用户的权限，总不成每回儿都写代码吧，因此你可能会把它写成一个共用的模块，要用的时候就调用，但是我今天却要用另外一种方式来解决问题，说白了，就是实现decorator模式，我们先来看简单的一段代码：</div>
<div>
<div class="code_title">python 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-py">
    <li class="alt"><span><span class="comment">#&nbsp;decorator.py </span><span>&nbsp;&nbsp;</span></span> </li>
    <li class=""><span></span><span class="comment">#&nbsp;修饰函数 </span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="keyword">def</span><span>&nbsp;decorator(fun): &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">def</span><span>&nbsp;ifun(*args,&nbsp;**kwargs): &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args&nbsp;=&nbsp;(i+1&nbsp;</span><span class="keyword">for</span><span>&nbsp;i&nbsp;</span><span class="keyword">in</span><span>&nbsp;args) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;fun(*args,&nbsp;**kwargs) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;ifun&nbsp;&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="comment">#&nbsp;被修饰函数1 </span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="keyword">def</span><span>&nbsp;fun1(x,y): &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;x+y &nbsp;&nbsp;</span> </li>
    <li class=""><span>fun1&nbsp;=&nbsp;decorator(fun1) &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="comment">#&nbsp;被修饰函数2 </span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="keyword">def</span><span>&nbsp;fun2(x,y,z): &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;x+y+z &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>fun2&nbsp;=&nbsp;decorator(fun2) &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="comment">#&nbsp;测试代码 </span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>a&nbsp;=&nbsp;3 &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>b&nbsp;=&nbsp;4 &nbsp;&nbsp;</span> </li>
    <li class=""><span>c&nbsp;=&nbsp;5 &nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="keyword">print</span><span>&nbsp;fun1(a,b) &nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="keyword">print</span><span>&nbsp;fun2(a,b,c)&nbsp;&nbsp;</span> </li>
</ol>
</div>
</div>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这段代码运行的结果是：</p>
<div class="code_title">输出结果</div>
<div class="dp-highlighter">
<ol class="dp-xml">
    <li class="alt"><span><span>9 &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>15&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 大家看看上面的代码，fun1和fun2可以理解为你要访问的url要执行的操作，而decorator就是你要做的权限检查，在这种方式下你的代码会很干净，不是吗？<img src="/javascripts/fckeditor/editor/images/smiley/msn/wink_smile.gif" alt="" /></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果有兴趣，可阅读<font face="Arial"><font color="#ff0000">django.contrib.admin.views</font>下面的<font color="#ff0000">main.py decorators.py</font></font></p>
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/132934#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 17 Oct 2007 17:40:24 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/132934</link>
        <guid>http://bluecrystal.javaeye.com/blog/132934</guid>
      </item>
      <item>
        <title>中国死海--你是死海吗？</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/132865" style="color:red;">http://bluecrystal.javaeye.com/blog/132865</a>&nbsp;
          发表时间: 2007年10月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><a href="http://www.newssc.org/gb/Newssc/zt/ml/tjjq/images/00035065.jpg" target="_blank"><img src="http://www.newssc.org/gb/Newssc/zt/ml/tjjq/images/00035065.jpg" alt="" /></a></span></div>
<div class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"></span></div>
<div class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;&nbsp;&nbsp; </span></div>
<div class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;&nbsp;&nbsp; 这周末是我和老婆结婚</span><span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt">1</span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">周年的纪念日，和老婆初步商议去距离成都</span><st1:chmetcnv tcsc="0" hasspace="False" sourcevalue="100" negative="False" numbertype="1" unitname="公里" w:st="on"><span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt">100</span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">公里</span></st1:chmetcnv><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">的遂宁市大英县的&ldquo;中国死海&rdquo;过周年庆。希望能在休闲中度过这个特殊的日子。</span></div>
<div class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"></span></div>
<div class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></div>
<div class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"></span></div>
<div class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"></span></div>
<div class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;&nbsp;&nbsp; </span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">中国死海自</span><span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt">03</span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">年开放至今已有</span><span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt">4</span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">年多时间，期间周围的很多朋友都有去过，而且反馈都非常好。但对于这个景区我一直都没有提起太大的兴趣，原因在于我认为中国死海完全是一个模仿秀，它仅仅是按卤水浮力的原理打造出来的一个人造景观，它不假思索的冠了死海的名，直接取名叫&ldquo;中国死海&rdquo;。这让一向支持原创的我心里面多少有些不舒服。</span></div>
<div class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"></span></div>
<p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;&nbsp;&nbsp; 我想起了几年前的四姑娘山，四姑娘山有着迷人的雪山和高山草甸风光，特别以起伏相连的四座雪山（传说中它们是四个姑娘，这是四姑娘山得名的原因）的独特景观吸引着中外游客。</span></p>
<p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"></span></p>
<p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;&nbsp;&nbsp; 那个时候，景区正处于开发阶段，景区推广也在同时进行着，如何给景区取一个好的宣传口号是成功推广的第一步，当时景区作了很多宣传口号的备选方案，然后逐个筛选，最后拍板的宣传口号是&ldquo;四姑娘山</span><span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt">-</span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">东方的阿尔卑斯山&rdquo;，景区希望以阿尔卑斯山的名气打响四姑娘山的名气，如果你没法去真正的阿尔卑斯山，就来四姑娘山吧，我想这是景区一个初衷。</span></p>
<p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"></span></p>
<p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;&nbsp;&nbsp; 而这个宣传口号打出去过后，好像并没有很理想地达到预期的效果，大家在疑惑，仅仅因为有雪山就能叫阿尔卑斯吗？那阿尔卑斯独有的滑雪、温泉、度假，在四姑娘山都找不到。同样，四姑娘山在藏区，有着它独自的内涵，它是一座神山，一座圣山，你怎么可以让它和一座文化背景完全不同的&ldquo;洋山&rdquo;相提并论呢？</span></p>
<p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"></span></p>
<p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;&nbsp;&nbsp; 四姑娘山没有迎来想象中火爆的游人景象，阿尔卑斯并没能把四姑娘山带红。景区开始反思，他们逐渐认识到当初选择这个宣传口号的失策，景区要求长远的发展，不应该寄居别的景区，而是应该创建独自的品牌。阿尔卑斯山在全世界只有一个，四姑娘山也只有一个；东方的阿尔卑斯山不是阿尔卑斯山，也不是四姑娘山。我们要打造的是一个独一无二的四姑娘山，而不是一个模仿秀。他们调整了自己的推广方案，实际结合自身特色，打造了新的宣传口号，这就是你现在看到的&ldquo;东方圣山</span><span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt">-</span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">四姑娘山&rdquo;。</span></p>
<p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"></span></p>
<p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;&nbsp;&nbsp; 目前，以中国死海取名的景区还有很多，新疆，山西，只要有盐湖或者地下盐卤水的地方，就可以出现一个死海。而这些死海，能走多久，能走多远？如果他们能知道四姑娘山的这段故事，他们也许会有更多的思考。</span></p>
<p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;&nbsp;&nbsp; </span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">这周周末，我们就要去&ldquo;中国死海&rdquo;了，爱她就带她去中国死海吧！<img src="/javascripts/fckeditor/editor/images/smiley/msn/shades_smile.gif" alt="" /></span></p>
<p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"></span></p>
<p class="MsoNormal" align="left" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">PS：最后那句&ldquo;爱她就带她去中国死海吧！&rdquo;是中国死海的宣传口号，真的是将模仿进行到底<img src="/javascripts/fckeditor/editor/images/smiley/msn/confused_smile.gif" alt="" /></span></p>
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/132865#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 17 Oct 2007 14:30:32 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/132865</link>
        <guid>http://bluecrystal.javaeye.com/blog/132865</guid>
      </item>
      <item>
        <title>python小例子之7 -- 生成md5串</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/131980" style="color:red;">http://bluecrystal.javaeye.com/blog/131980</a>&nbsp;
          发表时间: 2007年10月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div>主题： <font face="Arial">生成md5串</font></div>
<div>&nbsp;环境： winxp pro + sp2 + python2.5<br />
备注： 请注意，凡是在源代码文件中使用了中文字符，请最好保存为utf-8格式<br />
代码：<br />
<div class="code_title">python 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-py">
    <li class="alt"><span><span class="comment">#&nbsp;tmd5.py </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;</span><span class="commonlibs">md5</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;hashlib &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>src&nbsp;=&nbsp;'this&nbsp;</span><span class="keyword">is</span><span>&nbsp;a&nbsp;test.' &nbsp;&nbsp;</span></li>
    <li class=""><span>m1&nbsp;=&nbsp;</span><span class="commonlibs">md5</span><span>.</span><span class="commonlibs">new</span><span>() &nbsp;&nbsp;</span></li>
    <li class="alt"><span>m1.</span><span class="builtins">update</span><span>(src) &nbsp;&nbsp;</span></li>
    <li class=""><span>dest1&nbsp;=&nbsp;m1.hexdigest() &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>m2&nbsp;=&nbsp;hashlib.</span><span class="commonlibs">md5</span><span>() &nbsp;&nbsp;</span></li>
    <li class="alt"><span>m2.</span><span class="builtins">update</span><span>(src) &nbsp;&nbsp;</span></li>
    <li class=""><span>dest2&nbsp;=&nbsp;m2.hexdigest() &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">print</span><span>&nbsp;'source&nbsp;</span><span class="commonlibs">string</span><span>:&nbsp;',&nbsp;src &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">print</span><span>&nbsp;'destination&nbsp;string1:&nbsp;',&nbsp;dest1 &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">print</span><span>&nbsp;'destination&nbsp;string2:&nbsp;',&nbsp;dest2 &nbsp;&nbsp;</span></li>
</ol>
</div>
</div>
<div></div>
<div>测试：保存为文件，直接执行即可</div>
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/131980#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 15 Oct 2007 15:56:09 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/131980</link>
        <guid>http://bluecrystal.javaeye.com/blog/131980</guid>
      </item>
      <item>
        <title>推荐一本书《CSS: The Missing Manual》-- 一本讲css很不错的书</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/131956" style="color:red;">http://bluecrystal.javaeye.com/blog/131956</a>&nbsp;
          发表时间: 2007年10月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          书名： CSS: The Missing Manual<br />
作者： David McFarland <br />
<a href="http://ecx.images-amazon.com/images/I/413VSleqL3L._AA240_.jpg" target="_blank"><img src="http://ecx.images-amazon.com/images/I/413VSleqL3L._AA240_.jpg" alt="" /></a><br />
amazon link：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.amazon.com/CSS-Missing-Manual-David-McFarland/dp/0596526873">www.amazon.com/CSS-Missing-Manual-David-McFarland/dp/0596526873</a><br />
google book link：<a href="http://books.google.com/books?id=PyOKuTXf06QC&amp;pg=PP1&amp;ots=b-HAegwKUy&amp;dq=css+missing+manual&amp;sig=wc6uIyvqNETQUQY4HF29htn00N0#PPP1,M1">books.google.com/books</a><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这本书的内容我也不需要多说，大伙儿可以看amazon的介绍。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我是昨天在书店闲逛的时候无意之中发现了这本书的英文影印版，由于这段时间我接触一个网站的开发项目，其中对div+css网站布局方式有了些新的认识，因此多翻了几页，发现该书的作者写的还不错，至少让我这个对页面设计一知半解的程序员有豁然开朗的感觉，想想，或许推荐给想对css有所了解的朋友们，应该还是不错的。
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/131956#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 15 Oct 2007 14:28:33 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/131956</link>
        <guid>http://bluecrystal.javaeye.com/blog/131956</guid>
      </item>
      <item>
        <title>今天偶然的一句调侃，也算对ibm、sun、ms、apple的一个总结 :)</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/121383" style="color:red;">http://bluecrystal.javaeye.com/blog/121383</a>&nbsp;
          发表时间: 2007年09月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 今天下午跟同事们闲聊，我突然冒了一句，现在细细想来，却也不无道理，权当作一个饭后谈资，与大伙儿分享一下。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当时冒出的那句是：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ibm把简单的事情复杂化，ms把复杂的事情简单化，apple把所有的事情个性化，sun把封闭的事情公开化<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这些个话，众位看官细细把玩，个中滋味想必在 IT 道儿混的兄弟姐妹们都能说出自己的体会，咱也不必过于较真，就当八卦新闻一看置之。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img src="/javascripts/fckeditor/editor/images/smiley/msn/teeth_smile.gif" alt="" />
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/121383#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 06 Sep 2007 19:31:27 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/121383</link>
        <guid>http://bluecrystal.javaeye.com/blog/121383</guid>
      </item>
      <item>
        <title>推荐电影(无剧透) -- Mr. Brooks(布鲁克斯先生) -- 人或多或少都有另外一面</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/120970" style="color:red;">http://bluecrystal.javaeye.com/blog/120970</a>&nbsp;
          发表时间: 2007年09月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <img src="http://image2.sina.com.cn/ent/d/2007-04-27/U105P28T3D1536451F326DT20070427155110.jpg" height="549" alt="" width="373" /><br />
名称： Mr. Brooks<br />
译名： 布鲁克斯先生<br />
imdb 评分：&nbsp; <strong>7.8/10</strong> <small>(<a href="ratings">10,182  votes</a>)<br />
</small>imdb链接： <a href="http://www.imdb.com/title/tt0780571/">http://www.imdb.com/title/tt0780571/</a><br />
sina链接：&nbsp;<a href="http://ent.sina.com.cn/m/f/mrbrooks/"> http://ent.sina.com.cn/m/f/mrbrooks/</a><br />
主演：凯文&middot;科斯纳 Kevin Costner<br />
威廉&middot;赫特 William Hurt<br />
戴米&middot;摩尔 Demi Moore<br />
丹尼&middot;库克 Dane Cook<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 看惯了千篇一律的动作场景和科幻镜头，其实剧情片或许才能吊起我们这些久经大片熏染的主们的兴趣。这部由Kevin Costner和Demi Moore，一个老男，一个老女担纲的片子还是让我的脑袋着实思考了一把。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Kevin Costner自从《<a href="http://www.imdb.com/title/tt0107808/">A Perfect World </a>》中那个让我感动的角色之后，就一直低迷了，以至于我都忘了他，一个实力派演员的存在，这部片子，Kevin 那种老道的演技又一次展现在我的面前，不愠不火，不紧不慢，非常精致的演绎了一个角色，让我们明白每个人都有不同于平常的一面，你是成功者也好，失败者也好，大侠还是小偷，你都有自己不同的心理状态。每个人都有自己的心魔，或许，每个人一生最大的敌人和障碍就是自己。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Demi Moore，那部《<a href="http://www.imdb.com/title/tt0099653/">Ghost</a>》以及那首伤感的情歌，一直到现在，还是感动这很多人，可后来，似乎也一直走下坡路，和她同时代的Jodie Foster就比她强，很沉稳，每部片子都有出彩的地方，象最近的《<a href="http://www.imdb.com/title/tt0454848/">Flightplan</a>》<a href="http://www.imdb.com/title/tt0408790/">《Inside Man</a>》都能看到她成熟的表演。而Demi Moore在这部片子中饰演的角色就是要向家人证明自己，或许现实中，她也需要证明自己。
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/120970#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 06 Sep 2007 10:16:39 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/120970</link>
        <guid>http://bluecrystal.javaeye.com/blog/120970</guid>
      </item>
      <item>
        <title>python小例子之6 -- pop3协议收取邮件</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/118089" style="color:red;">http://bluecrystal.javaeye.com/blog/118089</a>&nbsp;
          发表时间: 2007年08月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主题：pop3协议收取邮件<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 环境： winxp pro + sp2 + python2.5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 备注： 请注意，凡是在源代码文件中使用了中文字符，请最好保存为utf-8格式，如果Subject为中文字符，有可能出现乱码<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 代码：<br />
<div class="code_title">python 代码</div>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-py" start="1">
    <li class="alt"><span><span class="comment">#&nbsp;pop3.py</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">import</span><span>&nbsp;</span><span class="commonlibs">poplib</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>emailServer&nbsp;=&nbsp;<span class="commonlibs">poplib</span><span>.POP3('<strike>your&nbsp;pop3&nbsp;server&nbsp;name</strike>')&nbsp;&nbsp;</span></span></li>
    <li class=""><span>emailServer.<span class="commonlibs">user</span><span>('<strike>your&nbsp;mail&nbsp;account</strike>')&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>emailServer.pass_('<strike>your&nbsp;mail&nbsp;password</strike>')&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="comment">#&nbsp;设置为1，可查看向pop3服务器提交了什么命令</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>emailServer.set_debuglevel(1)&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="comment">#&nbsp;获取欢迎消息</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>serverWelcome&nbsp;=&nbsp;emailServer.getwelcome()&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">print</span><span>&nbsp;serverWelcome&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="comment">#&nbsp;获取一些统计信息</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>emailMsgNum,&nbsp;emailSize&nbsp;=&nbsp;emailServer.<span class="commonlibs">stat</span><span>()&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">print</span><span>&nbsp;'</span><span class="commonlibs">email</span><span>&nbsp;number&nbsp;</span><span class="keyword">is</span><span>&nbsp;%d&nbsp;</span><span class="keyword">and</span><span>&nbsp;size&nbsp;</span><span class="keyword">is</span><span>&nbsp;%d'%(emailMsgNum,&nbsp;emailSize)&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="comment">#&nbsp;遍历邮件，并打印出每封邮件的标题</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="keyword">for</span><span>&nbsp;i&nbsp;</span><span class="keyword">in</span><span>&nbsp;</span><span class="builtins">range</span><span>(emailMsgNum):&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">for</span><span>&nbsp;piece&nbsp;</span><span class="keyword">in</span><span>&nbsp;emailServer.retr(i+1)[1]:&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;piece.startswith('Subject'):&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">print</span><span>&nbsp;'\t'&nbsp;+&nbsp;piece&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">break</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>emailServer.quit()&nbsp;&nbsp;</span></li>
</ol>
</div>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 测试：保存为文件，<strong><font color="#ff0000">把相应带<strike>删除线</strike>的地方修改为相适应的值</font></strong>，直接执行即可
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/118089#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 29 Aug 2007 22:01:32 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/118089</link>
        <guid>http://bluecrystal.javaeye.com/blog/118089</guid>
      </item>
      <item>
        <title>电影《南京》观后感 -- 一个遗忘历史的民族终究也会被历史所唾弃</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/117658" style="color:red;">http://bluecrystal.javaeye.com/blog/117658</a>&nbsp;
          发表时间: 2007年08月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://news.xinhuanet.com/ent/2007-07/07/xinsrc_332070407080081226901.jpg" target="_blank"><img src="http://news.xinhuanet.com/ent/2007-07/07/xinsrc_332070407080081226901.jpg" alt="" /></a><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font size="2"> </font><font size="2" color="#ff0000" style="background-color: rgb(192, 192, 192);">《南京》是第一部以外国人视角回顾南京大屠杀的纪录片，主要情节围绕以华群女士为首十几位驻华西方人士，包括几名美国传教士和一个德国商人展开。他们冒着生命危险，运用他们在南京的影响力，于1937年12月在南京建立了一个国际安全区，保护了25万中国人的安全。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><font size="2" color="#ff0000" style="background-color: rgb(192, 192, 192);">不过，导演很遗憾地表示，他们在日本采访的250名老兵中，只有7名表示了悔意。有的老兵在回忆这段历史时，竟然只记得，第一天进南京城天气很热，只想能喝到水。此外，让导演深感遗憾的还有，目前这段历史的幸存者在减少，不到500个，如果5年前就开始收集资料的话，可能会更容易一些。<br />
</font><font size="2" color="#ff0000" style="background-color: rgb(192, 192, 192);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对于这次在日本的拍摄，导演比尔&middot;古登塔格说，他拍摄该片完全是站在中立的角度来透视历史，但是整个拍摄中，他还是遇到了意想不到的困难。剧组共有3位日本工作人员，影片拍摄到中途，3人纷纷要求退出，&ldquo;可能是迫于某方面压力&rdquo;。而扮演日本军官的日本演员，其博客上也被人发了死亡威胁书。<br />
</font><font size="2"><font color="#ff0000" style="background-color: rgb(192, 192, 192);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 不过，导演说，这些退出的员工都是年纪大的，后来重组的工作组当中，来自日本的都是年轻人，大家合作得很好。 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#ff0000" style="background-color: rgb(192, 192, 192);">《南京》因为出现大量真实的历史图片、文献以及当年西方人士留下的对日军屠城暴行的亲笔记录等珍贵史料而受人注目。这些资料，是摄制组用了两年时间，辗转中国、日本、韩国、加拿大、美国等地寻找到的。其中有一段长达40分钟的真实记录了南京大屠杀惨状的史实片段更是首次出现在银幕上。除此以外，影片摄制工作人员还辗转多国，采访了近80位南京大屠杀幸存者及当年的日军老兵，真实地还原了那段最黑暗的岁月。 </font></font><font color="#ff0000"><br style="background-color: rgb(192, 192, 192);" />
</font><font color="#ff0000"><span style="background-color: rgb(192, 192, 192);"><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以上摘自新华网，原文链接：</font></span><a href="http://news.xinhuanet.com/ent/2007-07/07/content_6339987.htm" target="_blank" style="background-color: rgb(192, 192, 192);"><font size="2"> http://news.xinhuanet.com/ent/2007-07/07/content_6339987.htm</font></a></font><br />
<br />
<font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 今天晚上公司组织了一次活动，就是看电影《南京》，本意也就是对员工做一次爱国主义教育活动吧，虽然看之前已经被网上大量的图片和文字血淋淋的教育过无数遍，我也做好了难过的心里准备，可是当电影里幸存者声泪俱下的述说以及当年侵略南京的日本兵得意的讲述，我还是被刺伤了。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我不想对战争的残酷以及战争对人性，道义的扭曲作出过多的谈论，我只想说即便是一个军人被战争扭曲而疯狂了，也不会象日本军人在南京犯下的罪行，那种对生命的极度漠视，对人性的极度违背，以至于我怀疑日本军人以及其代表的日本民族是否集体患病，一种心灵的病，应该考虑是否对这个民族实施管制，就像把精神病人送进精神病院一样。不要说我愤青，也不要把我的文章和拒绝日货挂钩，因为看了这部片子，我如果连骂两句的权利都没有，我难以发泄这郁闷到极点的心情。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 人之所以区别于动物，就是人会思考。文明之所以远离野蛮，就是对生命意义的尊重。人类文明在野蛮与无知中挣扎了很久，但是在最近几千年迅速得以走向民主和人性。然而日本人在上个世纪犯下的这场罪行，无疑是人类文明发展史上最不光彩的一页，若干年后，当后世的人们审视这段历史时，一定会说，你看，野蛮人，还没有进化。就像我们现在看以前的猿人为了食物互相拼杀一样，野蛮。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 更可悲的是，这个号称大国的国家的人们，早已忘却他们犯下的罪行，错，应该不是忘记，而是记得但却不承认，并且试图抹杀或篡改这段历史，并把那些犯下罪行的士兵们当神一样供着，这是多么可悲的一个民族，</font><font color="#ff0000"><strong><font size="2">一个遗忘历史的民族终究也会被历史所唾弃</font></strong><font color="#000000"><font size="2">。<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其实，我很希望曾经的受害国，应该联合起来提起一项新的诉讼，要求国际法律机构或者相应的机构，能够迫使日本拆掉靖国神社中的战犯灵位，或许这样做不能改变日本民族的一种骨子里的对历史的态度，但是我们要给他们压力，</font><font color="#ff0000"><strong><font size="2">让他们知道不承认错误的孩子是坏孩子，那种不承认错误也罢，还到处嚷嚷装无辜，那就是无赖<img src="/javascripts/fckeditor/editor/images/smiley/msn/angry_smile.gif" alt="" />。</font></strong><font color="#000000"><br />
<br />
<font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这又是一个难以入睡的夜晚........<br />
<br />
&nbsp;</font></font></font></font></font><font size="2"><br />
</font>
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/117658#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 28 Aug 2007 22:59:09 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/117658</link>
        <guid>http://bluecrystal.javaeye.com/blog/117658</guid>
      </item>
      <item>
        <title>python小例子之5 -- lambda的一般用法  </title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/117540" style="color:red;">http://bluecrystal.javaeye.com/blog/117540</a>&nbsp;
          发表时间: 2007年08月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主题：lambda的一般用法 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 环境： winxp pro + sp2 + python2.5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 备注： 请注意，凡是在源代码文件中使用了中文字符，请最好保存为utf-8格式<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 描述： lambda提供了一个运行时动态创建函数的方法<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 代码：<br />
<div class="code_title">python 代码</div>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-py" start="1">
    <li class="alt"><span><span class="comment">#&nbsp;lambda.py</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="keyword">def</span><span>&nbsp;fun1(n):&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;</span><span class="keyword">lambda</span><span>&nbsp;m:m**n&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">def</span><span>&nbsp;fun2(m,&nbsp;n):&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;m+n&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="comment">#&nbsp;演示通常的lambda用法</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>f1&nbsp;=&nbsp;<span class="keyword">lambda</span><span>&nbsp;x,y,z:&nbsp;x*2+y+z&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="keyword">print</span><span>&nbsp;f1(3,2,1)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="comment">#&nbsp;动态生成一个函数</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>f2&nbsp;=&nbsp;fun1(2)&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="keyword">print</span><span>&nbsp;f2(4)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="comment">#&nbsp;lambda用作函数参数的写法</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">print</span><span>&nbsp;fun2(3,&nbsp;(</span><span class="keyword">lambda</span><span>&nbsp;x:x+1)(2))&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 测试：保存为文件，直接执行即可
          <br/>
          <span style="color:red;">
            <a href="http://bluecrystal.javaeye.com/blog/117540#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 28 Aug 2007 14:42:18 +0800</pubDate>
        <link>http://bluecrystal.javaeye.com/blog/117540</link>
        <guid>http://bluecrystal.javaeye.com/blog/117540</guid>
      </item>
      <item>
        <title>python小例子之4 -- 列表(list)和字典(dict)数据排序</title>
        <author>bluecrystal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluecrystal.javaeye.com">bluecrystal</a>&nbsp;
          链接：<a href="http://bluecrystal.javaeye.com/blog/117279" style="color:red;">http://bluecrystal.javaeye.com/blog/117279</a>&nbsp;
          发表时间: 2007年08月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主题：列表(list)和字典(dict)数据排序<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 环境： winxp pro + sp2 + python2.5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 备注： 请注意，凡是在源代码文件中使用了中文字符，请最好保存为utf-8格式<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 代码：<br />
<div class="code_title">python 代码</div>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-py" start="1">
    <li class="alt"><span><span class="comment">#&nbsp;sort.py</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="comment">#&nbsp;这个类用来演示如何对自定义对象进行排序</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">class</span><span>&nbsp;Sortobj:&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;=&nbsp;0&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;=&nbsp;''&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">def</span><span>&nbsp;</span><span class="magicmethods">__init__</span><span>(</span><span class="builtins">self</span><span>,&nbsp;a,&nbsp;b):&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="builtins">self</span><span>.a&nbsp;=&nbsp;a&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="builtins">self</span><span>.b&nbsp;=&nbsp;b&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">def</span><span>&nbsp;printab(</span><span class="builtins">self</span><span>):&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">print</span><span>&nbsp;</span><span class="builtins">self</span><span>.a,&nbsp;</span><span class="builtins">self</span><span>.b&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="comment">#&nbsp;演示对字符串列表进行排序</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>samplelist_str&nbsp;=&nbsp;['blue','allen','sophia','keen']&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="keyword">print</span><span>&nbsp;samplelist_str&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>samplelist_str.sort()&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="keyword">print</span><span>&nbsp;samplelist_str&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="keyword">print</span><span>&nbsp;'\n'&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="comment">#&nbsp;演示对整型数进行排序</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>samplelist_int&nbsp;=&nbsp;[34,23,2,2333,45]&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="keyword">print</span><span>&nbsp;samplelist_int&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>samplelist_int.sort()&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="keyword">print</span><span>&nbsp;samplelist_int&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="keyword">print</span><span>&nbsp;'\n'&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="comment">#&nbsp;演示对字典数据进行排序</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>sampledict_str&nbsp;=&nbsp;{'blue':'5555@sina.com',&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'allen':'222@163.com',&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'sophia':'4444@gmail.com',&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ceen':'blue@263.net'}&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">print</span><span>&nbsp;sampledict_str&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="comment">#&nbsp;按照key进行排序</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">print</span><span>&nbsp;sorted(sampledict_str.</span><span class="builtins">items</span><span>(),&nbsp;key=</span><span class="keyword">lambda</span><span> d: d[0])&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="comment">#&nbsp;按照value进行排序</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">print</span><span>&nbsp;sorted(sampledict_str.</span><span class="builtins">items</span><span>(),&nbsp;key=</span><span class="keyword">lambda</span><span> d: d[1])&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="comment">#&nbsp;构建用于排序的类实例</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>obja&nbsp;=&nbsp;Sortobj(343,&nbsp;'keen')&nbsp;&nbsp;</span></li>
    <li class="alt"><span>objb&nbsp;=&nbsp;Sortobj(56,&nbsp;'blue')&nbsp;&nbsp;</span></li>
    <li class=""><span>objc&nbsp;=&nbsp;Sortobj(2,&nbsp;'aba')&nbsp;&nbsp;</span></li>
    <li class="alt"><span>objd&nbsp;=&nbsp;Sortobj(89,&nbsp;'iiii')&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">print</span><span>&nbsp;'\n'&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>samplelist_obj&nbsp;=&nbsp;[obja,&nbsp;objb,&nbsp