<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
<channel>
<title><![CDATA[流风,飘然的风 胸有激雷心如平湖]]></title>
        <image>
        <title>http://hi.baidu.com</title>
        <link>http://hi.baidu.com</link>
        <url>http://img.baidu.com/img/logo-hi.gif</url>
        </image>
<description><![CDATA[神龙见尾不见首 曰：吉！阿弥陀佛！我心向佛明心境，超离浊世任尔狂。与松共竹舞风雪，任凭春风笑我痴！]]></description>
<link>http://hi.baidu.com/zdz8207</link>
<language>zh-cn</language>
<generator>www.baidu.com</generator>
<ttl>5</ttl>


<item>
        <title><![CDATA[JAVA中List&Set转换]]></title>
        <link><![CDATA[http://hi.baidu.com/zdz8207/blog/item/1c91b9a1e42ca481471064bd.html]]></link>
        <description><![CDATA[
		
		<div><strong>List list = new ArrayList(new Hashset()); <br>
Set set = new HashSet(list);</strong></div>
<div>// Fixed-size list <br>
&nbsp;&nbsp;&nbsp;  List list = Arrays.asList(array); <br>
&nbsp;&nbsp;&nbsp;&nbsp;  <br>
&nbsp;&nbsp;&nbsp;  // Growable list <br>
&nbsp;&nbsp;&nbsp;  list = new LinkedList(Arrays.asList(array)); <br>
&nbsp;&nbsp;&nbsp;&nbsp;  <br>
&nbsp;&nbsp;&nbsp;  // Duplicate elements are discarded <br>
&nbsp;&nbsp;&nbsp;  Set set = new HashSet(Arrays.asList(array));</div> <a href="http://hi.baidu.com/zdz8207/blog/item/1c91b9a1e42ca481471064bd.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/zdz8207/blog/category/java%D7%CA%C1%CF">java资料</a>&nbsp;<a href="http://hi.baidu.com/zdz8207/blog/item/1c91b9a1e42ca481471064bd.html#comment">查看评论</a>]]></description>
        <pubDate>2009-11-28  18:35</pubDate>
        <category><![CDATA[java资料]]></category>
        <author><![CDATA[zdz8207]]></author>
		<guid>http://hi.baidu.com/zdz8207/blog/item/1c91b9a1e42ca481471064bd.html</guid>
</item>

<item>
        <title><![CDATA[做笨事的人未必笨,做聪明事的人未必聪明]]></title>
        <link><![CDATA[http://hi.baidu.com/zdz8207/blog/item/9c9edaf9174ba953252df29a.html]]></link>
        <description><![CDATA[
		
		<div style="text-indent: 21pt"><span style="font-size: medium"><font size="3">楼下有两个水果店，东边的店主是个看上去挺老实巴交的四十岁左右的女人，你去买水果时，她一般只是笑笑，很少说话；西边的店主是个一脸精明的五十岁左右的男人，你去买水果时他非常热情，问寒问暖的。我老婆经常去西边的水果店，因为那个店主服务热情，而东边的那个店主很少说话，让她觉得太&ldquo;死沉&rdquo;。</font></span></div>
<div style="text-indent: 21pt"><span style="font-size: medium"><font size="3">但过了一段时间后，老婆渐渐就不去西边的那个水果店了，总是往东边的那家跑，弄得我有些不明白了，那天我问她怎么不到西边那家了？她说，西边的那家服务太热情了，你在挑水果时，他总是飞快地往你袋子里装水果，不停地装，大的也装，小的也装，好的也装，坏的也装，现在我算是弄明白了，他就是存心让我把那些没人要的买走。而东边的那家从来不帮你挑水果，你挑完找她称重就行了，只要你不问她问题，她很少找你答话。</font></span></div>
<div style="text-indent: 21pt"><span style="font-size: medium"><font size="3">现在，东边的那家生意越来越红火了，可西边的那家却越来越糟。</font></span></div>
<div style="text-indent: 21pt"> </div>
<div style="text-indent: 21pt"><span style="font-size: medium"><font size="3">楼下还有两个租碟片的，一个离我家远点，一个离我家近点，周末晚上我喜欢租部电影看看，当然经常到离我家近的那家。店主是个20来岁的小伙，有时我会让他推荐一两个，他就会拿出一大捧碟片来，随便抽出一张，对我说：你一定要看这个，不看终身遗憾。我就信以为真，回来一看，实在不怎么样，有时甚至有那种电影院拍的盗版，内容不管，效果也太差。后来，我再也不想要他推荐了。可每次我去，他总要拿出一把碟片，找出一个对我说：你一定要看这个，不看终身遗憾。有时一不小心，还是上了当。再后来，我再也不去他那儿了，宁可走远点也不去了。现在，他们已经关门大吉了。</font></span></div>
<div> </div>
<div style="text-indent: 21pt"><span style="font-size: medium"><font size="3">又想起了以前在一个单位实施ERP时的一件事来。那是一个外资企业，好多老外在负责管理事务。一次，项目组讨论软件如何支持仓库箱号条形码的录入功能，他们的一个实施人员说既要支持条形码的扫描录入，也要支持手工录入。但他们的老外主管死活都不同意，说我就是不明白既然用了条形码为什么还需要手工录入呢？他说条形码可能会被损坏，老外说条形码是否会损坏是另外一个问题。他又说反正可以让软件公司提供这种功能，我们又不会损失什么，老外说我们应该为任何一个功能付钱的。</font></span></div>
<div style="text-indent: 21pt"><span style="font-size: medium"><font size="3">事后，在一次吃饭时，那个实施人员跟我们谈起这件事情来，他是当笑话说的，最后的结论是，这些老外，你都不知道他们有多笨，一根筋。大家都在笑时，一个同事幽幽地说：做笨事的人未必笨。</font></span></div>
<div style="text-indent: 21pt"> </div>
<div style="text-indent: 21pt"><span style="font-size: medium"><font size="3">记得我刚开始学着做ERP项目的时候，项目经理年龄不大，但做事情却显得异常稳重，好多时候，我会叫嚷着是不是可以弄些权宜之计解决当前的某个问题，或者希望先写个小程序应付一下某某事情，或者希望在数据库中做点什么以减少什么方面的麻烦，但这种建议往往都会被他毫不犹豫地否决，而且态度很坚决，绝不给回旋的余地，我那时候真的觉得非常郁闷，对他的一些办事方式很是看不顺眼。等以后项目成功上线了，再回过头来看他的一些处理事情的方法时，才发觉他处理的方法实在是很高明的。总结下来就是，宁可眼前难受点，也不放弃某种原则；问题不能从根本上解决，宁可先搁着，也不做&ldquo;锯箭杆&rdquo;的外科大夫，总能找到更好的解决办法的。</font></span></div>
<div> </div>
<div style="text-indent: 21pt"><span style="font-size: medium"><font size="3">学着女儿写写反义词，&ldquo;做笨事的人未必笨&rdquo;的反义词应该是&ldquo;做聪明事的人未必聪明&rdquo;吧（字数好像不合要求，不管了）。嗯，这句话真有几分道理，让我们看到&ldquo;大聪明&rdquo;与&ldquo;小聪明&rdquo;的区别，人一旦陷于&ldquo;小聪明&rdquo;的泥淖，搞不好就会成为一个&ldquo;做聪明事的笨人&rdquo;，看他做的每一件小事都很聪明，可就是这些事情连起来，最后却没有好结果，有幸者自己本人或经过别人点拨后最终能悟出点啥来，没幸者可能永远都弄不明白是怎么回事。正因为此，才有了&ldquo;赢了每一次战役却输了整个战争&rdquo;的怪事情。</font></span></div>
<div> </div>
<div style="text-indent: 21pt"><span style="font-size: medium"><font size="3">古人云，大智若愚。</font></span></div>
<div>
<p>　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　<br>
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br>
作者：浦飞云<br>
原创文章，转载敬请保留作者署名及原文链接 http://blog.vsharing.com/pufeiyun<br>
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－</p>
<div sizset="18" sizcache="0">从某个角度你看作者的观点，还是很有道理的，让人思考；但这并不是问题的全部，为什么要去做笨事？从另外一个角度来讲，你没有能力去做比笨事更好的事。 如果笨事本身已经失去了方向，我认为也是不可取的。 所以，<strong>无论聪明事还是笨事，都是建立在正确的方向之上。</strong>在错误的方向上做笨事，那是最可悲的！！</div>
<div class="item" sizset="3" sizcache="1">
<div sizset="36" sizcache="1">
<div sizset="36" sizcache="1">
<div class="info-content" sizset="121" sizcache="1">
<div style="margin-bottom: 10px">
<p>佛经上有个典故：生公说法，顽石点头。整天对着顽石像唐僧样，顽石也会像孙悟空那样被折服的。</p>
<p> </p>
</div>
<div class="cmtIco" sizset="121" sizcache="1">
<p>其实就是个&ldquo;度&rdquo;的问题。政治家和商人的区别就在于前者的城府和容度要比后者大很多，前者是通盘考虑，面对利益不能不动心，可更多的考虑是后面的影响，是不是投鼠忌器？</p>
<p><strong><font color="#ff0000">永远都不要把别人当做傻瓜，一旦你有这个想法的时候那么你就是最傻的一个！</font></strong></p>
<p>第五项修炼中提到的游戏，在实际工作中，<strong>出现问题时，首先应该做是分析问题而不是解决问题</strong>，因为有些问题其实可能不是最根本的问题；暂时的不处理可能令时间解决问题，解决反而可能让结果更糟。</p>
<p> </p>
</div>
</div>
</div>
</div>
</div>
</div> <a href="http://hi.baidu.com/zdz8207/blog/item/9c9edaf9174ba953252df29a.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/zdz8207/blog/category/%D4%D3%CE%C4%D2%D5%CA%F5">杂文艺术</a>&nbsp;<a href="http://hi.baidu.com/zdz8207/blog/item/9c9edaf9174ba953252df29a.html#comment">查看评论</a>]]></description>
        <pubDate>2009-11-24  10:36</pubDate>
        <category><![CDATA[杂文艺术]]></category>
        <author><![CDATA[zdz8207]]></author>
		<guid>http://hi.baidu.com/zdz8207/blog/item/9c9edaf9174ba953252df29a.html</guid>
</item>

<item>
        <title><![CDATA[(转)IETester更新至最新版已经兼容Windows7（附下载地址及Debugbar插件）]]></title>
        <link><![CDATA[http://hi.baidu.com/zdz8207/blog/item/a8a90fd79ef002d7a044df0b.html]]></link>
        <description><![CDATA[
		
		<p><a class="postTitle2" href="http://www.cnblogs.com/JustinYoung/archive/2009/09/03/ietester-windows7.html"><font color="#a91718">IETester更新至最新版已经兼容Windows7（附下载地址及Debugbar插件）</font></a></p>
<p><a href="http://www.debugbar.com/">http://www.debugbar.com/</a></p>
<p> </p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/zdz8207/blog/category/Javascript">Javascript</a>&nbsp;<a href="http://hi.baidu.com/zdz8207/blog/item/a8a90fd79ef002d7a044df0b.html#comment">查看评论</a>]]></description>
        <pubDate>2009-11-06  13:46</pubDate>
        <category><![CDATA[Javascript]]></category>
        <author><![CDATA[zdz8207]]></author>
		<guid>http://hi.baidu.com/zdz8207/blog/item/a8a90fd79ef002d7a044df0b.html</guid>
</item>

<item>
        <title><![CDATA[java反射机制，通过类名获取对象，通过方法名和参数调用方法实例]]></title>
        <link><![CDATA[http://hi.baidu.com/zdz8207/blog/item/be1caa7788ee2211b151b9fd.html]]></link>
        <description><![CDATA[
		
		try   {   <br>
                    //得到对象   <br>
  Class   c   =   Class.<font color="#ff0000">forName</font>(&quot;<strong>完整类名</strong>&quot;);   <br>
                    <strong>Object   yourObj   =   c.newInstance();</strong>     <br>
                    //得到方法   <br>
                    Method   methlist[]   =   cls.getDeclaredMethods();   <br>
                    for   (int   i   =   0;   i   &lt;   methlist.length;   i++)   {   <br>
                                Method   m   =   methlist[i];   <br>
                    }   <br>
                    //获取到方法对象,假设方法的参数是一个int,method名为setAge   <br>
                  Method   sAge   =   c.<font color="#ff0000">getMethod</font>(&quot;setAge&quot;,   new   Class[]   {<strong>int.class</strong>});   <br>
                    //获得参数Object   <br>
                    Object[]   arguments   =   new   Object[]   {   <strong>new   Integer(37</strong>)};                 <br>
                    //执行方法   <br>
                    sAge.<font color="#ff0000">invoke</font>(<strong>yourObj </strong>  ,   arguments);     <br>
  }   catch   (Exception   e)   {   <br>
  }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
  <a href="http://hi.baidu.com/zdz8207/blog/item/be1caa7788ee2211b151b9fd.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/zdz8207/blog/category/java%D7%CA%C1%CF">java资料</a>&nbsp;<a href="http://hi.baidu.com/zdz8207/blog/item/be1caa7788ee2211b151b9fd.html#comment">查看评论</a>]]></description>
        <pubDate>2009-11-05  01:20</pubDate>
        <category><![CDATA[java资料]]></category>
        <author><![CDATA[zdz8207]]></author>
		<guid>http://hi.baidu.com/zdz8207/blog/item/be1caa7788ee2211b151b9fd.html</guid>
</item>

<item>
        <title><![CDATA[eclipse uml2插件下载地址]]></title>
        <link><![CDATA[http://hi.baidu.com/zdz8207/blog/item/1c91b9a1b188f18146106451.html]]></link>
        <description><![CDATA[
		
		<p>eclipse uml2插件下载地址，比较难找，分享一下具体地址：<a href="http://www.eclipse.org/downloads/download.php?file=/modeling/mdt/uml2/downloads/drops/3.0.1/R200908281428/mdt-uml2-SDK-3.0.1.zip">http://www.eclipse.org/downloads/download.php?file=/modeling/mdt/uml2/downloads/drops/3.0.1/R200908281428/mdt-uml2-SDK-3.0.1.zip</a></p>
<p>不能直接用下载工具下，要打开网页再点下载才可以。</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/zdz8207/blog/category/java%D7%CA%C1%CF">java资料</a>&nbsp;<a href="http://hi.baidu.com/zdz8207/blog/item/1c91b9a1b188f18146106451.html#comment">查看评论</a>]]></description>
        <pubDate>2009-10-30  23:57</pubDate>
        <category><![CDATA[java资料]]></category>
        <author><![CDATA[zdz8207]]></author>
		<guid>http://hi.baidu.com/zdz8207/blog/item/1c91b9a1b188f18146106451.html</guid>
</item>

<item>
        <title><![CDATA[hibernate 反向工程 一个表生成两个类(表名+Id.java)]]></title>
        <link><![CDATA[http://hi.baidu.com/zdz8207/blog/item/6c1a84d6f822ef2507088b9e.html]]></link>
        <description><![CDATA[
		
		<p>hibernate 反向工程 一个表生成两个类(表名+Id.java),原因是该表没有主键，设置一个主键就不会了。</p>
<p>例如BASE_MENU这个表没有主键反向生成了BaseMenu.java和BaseMenuId.java，打开一看里面的代码非常混乱。而且和spring结合后调用很麻烦。</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/zdz8207/blog/category/java%D7%CA%C1%CF">java资料</a>&nbsp;<a href="http://hi.baidu.com/zdz8207/blog/item/6c1a84d6f822ef2507088b9e.html#comment">查看评论</a>]]></description>
        <pubDate>2009-10-24  14:30</pubDate>
        <category><![CDATA[java资料]]></category>
        <author><![CDATA[zdz8207]]></author>
		<guid>http://hi.baidu.com/zdz8207/blog/item/6c1a84d6f822ef2507088b9e.html</guid>
</item>

<item>
        <title><![CDATA[MyEclipse_7.0 M1版本 links插件安装方法]]></title>
        <link><![CDATA[http://hi.baidu.com/zdz8207/blog/item/60a55a828f76bca80df4d239.html]]></link>
        <description><![CDATA[
		
		<p>MyEclipse_7.0 M1版本 links插件安装方法</p>
<p>以前6.5版本的有links可以链接到其他文件夹下，现在的没有了。</p>
<p>不过可以直接放在C:\Program Files\MyEclipse 7.0M1\eclipse\dropins目录下</p>
<p>和myeclipse文件夹一样，下面一个eclipse文件夹，再放入features plugins两个文件夹，再把插件放到这两个文件夹下就可以了。</p>
<p>例如我的插件都放在：C:\Program Files\MyEclipse 7.0M1\eclipse\dropins\JBossTools-2.1.2.GA-ALL-win32\eclipse\下面。</p>
<p>C:\Program Files\MyEclipse 7.0M1\eclipse\dropins\JBossTools-2.1.2.GA-ALL-win32\eclipse\features</p>
<p>C:\Program Files\MyEclipse 7.0M1\eclipse\dropins\JBossTools-2.1.2.GA-ALL-win32\eclipse\plugins</p>
<p>注：由于myeclipse7.0安装不了自己选的目录，必须安装了C盘默认目录下，这样插件也得都放在C盘下了，比较郁闷。</p>
<p>另外还需要删除C:\Program Files\MyEclipse 7.0M1\eclipse\configuration\org.eclipse.update文件夹重新启动，如果插件还没有出来，则要在eclipse-&gt;Project-&gt;clean清除一下。再不行就得另外想办法了。</p>
<p> </p> <a href="http://hi.baidu.com/zdz8207/blog/item/60a55a828f76bca80df4d239.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/zdz8207/blog/category/java%D7%CA%C1%CF">java资料</a>&nbsp;<a href="http://hi.baidu.com/zdz8207/blog/item/60a55a828f76bca80df4d239.html#comment">查看评论</a>]]></description>
        <pubDate>2009-10-22  20:00</pubDate>
        <category><![CDATA[java资料]]></category>
        <author><![CDATA[zdz8207]]></author>
		<guid>http://hi.baidu.com/zdz8207/blog/item/60a55a828f76bca80df4d239.html</guid>
</item>

<item>
        <title><![CDATA[MyEclipse_7.0 安装提示 灾难性故障 的解决办法]]></title>
        <link><![CDATA[http://hi.baidu.com/zdz8207/blog/item/c7ea01088a7266db63d98647.html]]></link>
        <description><![CDATA[
		
		<p>今天安装MyEclipse_7.0 时一直提示 灾难性故障，把所以杀毒软件和360、防火墙甚至网线都拔了还是不行，重启了几次还是不行。</p>
<p>网上搜索了一下原来是不能改变安装路径导致的，这个就比较郁闷啊，C盘安装了这个剩下的空间就非常可怜了！</p>
<p>1. jdk版本和Myeclipse不兼容</p>
<p>解决方案：重新安装jdk新版本</p>
<p>2.安装路径的问题</p>
<p>解决方案：安装Myeclipse时，不修改其默认的安装路径，让其自动安装到c盘。</p>
<p>3.软件冲突，一些程序可能与myeclipse安装程序有冲突</p>
<p>解决方案：把其他开启的软件都关闭，尤其杀毒软件和防火墙都要关闭。</p> <a href="http://hi.baidu.com/zdz8207/blog/item/c7ea01088a7266db63d98647.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/zdz8207/blog/category/java%D7%CA%C1%CF">java资料</a>&nbsp;<a href="http://hi.baidu.com/zdz8207/blog/item/c7ea01088a7266db63d98647.html#comment">查看评论</a>]]></description>
        <pubDate>2009-10-22  18:20</pubDate>
        <category><![CDATA[java资料]]></category>
        <author><![CDATA[zdz8207]]></author>
		<guid>http://hi.baidu.com/zdz8207/blog/item/c7ea01088a7266db63d98647.html</guid>
</item>

<item>
        <title><![CDATA[pdfFactory Pro V3.5中文专业注册版(破解版)]]></title>
        <link><![CDATA[http://hi.baidu.com/zdz8207/blog/item/f8bbc55c20823849faf2c032.html]]></link>
        <description><![CDATA[
		
		<p>pdfFactory Pro可以通过虚拟打印机把word转换成pdf文档，并在转换前可以进行详细的参数设置，感觉非常好用。</p>
<p><a target="_blank" href="http://soly84.blog.51cto.com/attachment/200909/153780_1252232174.rar">下载地址</a></p>
<p><font color="#ff0000"><strong>注意：如果Print Spooler（将文件加载到内存中以便迟后打印。）服务禁用则无法安装，因为他要用到虚拟打印机，要把内容加载到内存。这个服务有些系统优化软件会把这个禁用掉,必须把他设置成自动，在系统启动的时候就启动这个服务才可以使用，否则每次要先启动这个服务才能使用。</strong></font></p>
<div><font size="4">PDFFactory Pro v3.5 专业版</font></div>
<div> </div>
<div><font size="4">软件介绍:</font></div>
<div><font size="4">PDF文件批量制做的利器，PDF Factory Pro v3.5 专业版，注册后激活强大功能.</font></div>
<div><br>
<font size="4">PdfFactory一款为你提供了一个快捷的方式制作PDF文档的工具软件，更有效，更便宜。</font></div>
<div><font size="4">PdfFactory在安装之后，并不会出现一个通常意义上的程序运行方式，它的运行时通过生成一个虚拟的PdfFactory打印机来实现的，所以在开始运行菜单中找不到它的执行程序。通过虚拟的&ldquo;打印&rdquo;功能，将各类可打印文档，如TXT、DOC、PPT等文件直接转换成PDF文件。并且，这个过程是不需要另外安装PDF文档浏览器的。</font></div>
<div><font size="4">软件的使用很简单。安装之后，打开你需要转换的文档，选择其中的打印功能，就能看到名为PdfFactory的打印机了。软件很小，但是很实现的功能却不少。</font></div>
<div><font size="4">首先当然是创建PDF文档和打印到纸上了，据说只有pdfFactory可以让你只需要一次操作就能打印到纸上或是转换成PDF文档格式；其次是文档合并（并转换成PDF），这个很简单，一直往pdfFactory中打印就可以了。</font></div>
<div>
<p><font size="4">为了了解转换效果，预览的功能当然不可缺少，这也是软件唯一可以浏览&ldquo;准&rdquo;PDF文件的地方；并且，在预览的同时，你还可以设置一些转换的参数，比如内嵌字体、浏览设置（针对Acrobat）以及页面裁剪、设置安全策略（主要是加密）、整合任务标签并重新根据实际需要进行排列等。当然，这个只是针对特别情况需要，一般情况下只需要使用默认设置就好了，不用那么麻烦。还有就是Email的设置功能，转换完成就直接发送，特别适合办公使用，提高效率。</font></p>
<p><font size="4">转载：<a href="http://soly84.blog.51cto.com/153780/199457">http://soly84.blog.51cto.com/153780/199457</a></font></p>
<p> </p>
</div> <a href="http://hi.baidu.com/zdz8207/blog/item/f8bbc55c20823849faf2c032.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/zdz8207/blog/category/%B9%A4%D7%F7%CE%CA%CC%E2">工作问题</a>&nbsp;<a href="http://hi.baidu.com/zdz8207/blog/item/f8bbc55c20823849faf2c032.html#comment">查看评论</a>]]></description>
        <pubDate>2009-10-22  13:19</pubDate>
        <category><![CDATA[工作问题]]></category>
        <author><![CDATA[zdz8207]]></author>
		<guid>http://hi.baidu.com/zdz8207/blog/item/f8bbc55c20823849faf2c032.html</guid>
</item>

<item>
        <title><![CDATA[将Javascript作为编译目标：Clamato、GWT Smalltalk、Python、Scheme]]></title>
        <link><![CDATA[http://hi.baidu.com/zdz8207/blog/item/308e423411c35944241f1401.html]]></link>
        <description><![CDATA[
		
		<p>尽管Javascript无处不在，但还是很难让人喜欢它。在类似Google V8、Apple/WebKit的Nitro/SquirrelFish Extreme和Firefox的TraceMonkey这样的VM出现之前，Javascript的性能并不理想。多个浏览器间互不兼容的实现也让开发十分痛苦。jQuery和其他一些类库提供了方便好用的抽象，可以用同一种API进行编程，甚至消除不兼容性。</p>
<p>解决该问题的另一种方法是彻底隐藏Javascript，将其作为编译目标。Google的<a href="http://www.infoq.com/gwt;jsessionid=EC7F39C891F4DF140F66E0B2F2CD1B6D"><font color="#0b59b2">GWT</font></a>就是一个很成熟的例子，它接受Java代码（用Java API的一个子集写的），并将它编译为针对浏览器的Javascript。<a href="http://www.infoq.com/news/2009/09/google-wave-backstage;jsessionid=EC7F39C891F4DF140F66E0B2F2CD1B6D"><font color="#0b59b2">现实中GWT的真实案例之一就是Google Wave客户端</font></a>。最近，一些其他语言的实现也加入了这一行列。</p>
<p>Avi Bryant，Smalltalk <a href="http://www.seaside.st/"><font color="#0b59b2">Seaside Web框架</font></a>的作者，开发了<a href="http://clamato.net/"><font color="#0b59b2">Clamato</font></a>，这是一种能编译为常见Javascript的Smalltalk方言。Avi在<a href="http://www.infoq.com/interviews/bryant-smalltalk-trendly;jsessionid=EC7F39C891F4DF140F66E0B2F2CD1B6D"><font color="#0b59b2">FutureRuby时InfoQ对他的采访</font></a>中描述了Clamato的设计原则。</p>
<p><a href="http://clamato.net/examples/tutorial.html"><font color="#0b59b2">Clamato的指南页面</font></a>允许你在浏览器中打开一个Clamato（Smalltalk）类浏览器，查看并编辑Clamato源代码。要查找类的话，就使用类浏览器左上角的文本框。比较有意思的是那个自托管的基于PEG的Clamato解析器（在文本框中键入&ldquo;PP&rdquo;可以看到解析器和各种组合程序的类）。从Seaside风格的HTML构造器（Clamato浏览器中的HTMLCanvas类）中我们可以看到Seaside的影子。可视化组件能用它来构造GUI，例如，指南中的计数器组件：</p>
<pre>renderOn: html
  html h3 with: @counter.
  html button
    with: '+';
    onClick: [@counter := @counter + 1. self reload].
  html button
    with: '-';
    onClick: [@counter := @counter - 1. self reload].</pre>
<p>renderOn: html这一行定义了一个新的方法，范例的其他部分是方法体，它构建了带一个页眉和两个按钮的HTML，两个按钮配置了事件处理器。无独有偶，最近还出现了另一个基于浏览器的Smalltalk&mdash;&mdash;GWT Smalltalk。它的作者Peter Fisk之前创造了Vista Smalltalk，它可以基于.Net，也可以基于ActionScript。GWT Smalltalk使用了GWT来生成运行在浏览器中的Jaavscript。</p>
<p>GWT Smalltalk刚处于起步阶段，但发展很快。目前已经支持使用XMPP，这让它能方便地与Google Wave进行交互（XMPP是Google Wave极其重要的一部分）。你可以从<a href="http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;printTitle=Industry_Misinterpretations_155:_GWT_Smalltalk&amp;entry=3431497211"><font color="#0b59b2">Industry Misinterpretations对Peter Fisk的采访播客</font></a>和<a href="http://gwtsmalltalk.wordpress.com/"><font color="#0b59b2">GWT Smalltalk的博客</font></a>上获得更多细节。</p>
<p>讲完了Smalltalk，再来看看Python，它也有自己的Javascript编译器&mdash;&mdash;<a href="http://pyjs.org/"><font color="#0b59b2">pyjamas</font></a>：</p>
<blockquote>pyjamas是一个独立的Python到Javascript的编译器、一个AJAX框架/类库和一种Widget集API</blockquote>
<p>作为入门，最好的去处是<a href="http://pyjs.org/book/output/Bookreader.html#Introduction"><font color="#0b59b2">在线pyjamas图书</font></a>。</p>
<p>另一种能编译为Javascript的语言是<a href="http://github.com/dyoo/moby-scheme"><font color="#0b59b2">Moby Scheme</font></a>。让它如此引人注目的是它针对移动设备（目前是Android）的方式&mdash;&mdash;将代码编译为Javascript。这一做法是可行的，因为有<a href="http://phonegap.com/"><font color="#0b59b2">PhoneGap</font></a>，而且Android里那个基于WebKit的浏览器自带了一个高效的Javascript VM。PhoneGap是一个允许Javascript访问本地设备功能的类库，这设备可以是加速度计、GPS、摄像头，也可以是类似通讯簿之类的东西。 PhoneGap的作者用它建起了沟通不同智能电话设备间的桥梁，它们可以有不同的编程环境，只要都有WebKit和快速的Javascript VM就可以了。通过让Javascript访问设备功能，就能为智能电话开发跨平台的应用。详见<a href="http://www.infoq.com/interviews/nitobi-phonegap;jsessionid=EC7F39C891F4DF140F66E0B2F2CD1B6D"><font color="#0b59b2">InfoQ对PhoneGap作者关于PhoneGap概览的采访</font></a>。</p>
<p><strong>查看英文原文：</strong><a href="http://www.infoq.com/news/2009/09/ -compilation-target;jsessionid=EC7F39C891F4DF140F66E0B2F2CD1B6D"><font color="#0b59b2">Javascript as Compiler Target: Clamato, GWT Smalltalk, Python, Scheme</font></a></p>
<p> </p> <a href="http://hi.baidu.com/zdz8207/blog/item/308e423411c35944241f1401.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/zdz8207/blog/category/Javascript">Javascript</a>&nbsp;<a href="http://hi.baidu.com/zdz8207/blog/item/308e423411c35944241f1401.html#comment">查看评论</a>]]></description>
        <pubDate>2009-10-21  17:16</pubDate>
        <category><![CDATA[Javascript]]></category>
        <author><![CDATA[zdz8207]]></author>
		<guid>http://hi.baidu.com/zdz8207/blog/item/308e423411c35944241f1401.html</guid>
</item>


</channel>
</rss>