<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[edwardpro's blog]]></title> 
<link>http://www.edwardpro.com/index.php</link> 
<description><![CDATA[猴子的天空]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[edwardpro's blog]]></copyright>
<item>
<link>http://www.edwardpro.com/post/599/</link>
<title><![CDATA[再会,上海]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[生活日志]]></category>
<pubDate>Thu, 13 Nov 2008 02:43:12 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/599/</guid> 
<description>
<![CDATA[ 
	<p>思量了很久, 思索了很久, 终于决定离开上海这片土地, 就像许巍唱的:<br /><br /><span style="color: #c60a00">我像风一样自由<br /></span>就像你的温柔无法挽留<br />你推开我伸出的双手<br />你走吧最好别回头<br />无尽的漂流自由的渴求<br />所有沧桑独自承受<br />我给你温柔你拒绝接受<br />我给你双手真实的感受<br />我给你自由记忆的长久<br />我给你所有但不能停留<br /><span style="color: #c60a00">我像风一样自由</span><br /><br />1年多的困惑没有给我带来多少价值, 所以终于决定要离开了, 而牵挂的却始终有一个人, 她默默地给了我支持, 才让我最终选择远方的城市, 陌生而又熟悉的街头, 已经不算年轻的我终于来临了, 人生第二个弯角, 期待 向往 畏缩... 明天会是怎样的太阳呢? 只有我去了才知道. <br /><br />感谢所有上海的朋友, 我们杭州见.<br />感谢给我巨大信任的凤凤同学, 我会用鲜花簇拥着来迎你.<br /><br />变化总是带来希望, 也有很多荆棘, 倒下没有关系, 重要的是还能站起来. </p>
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/598/</link>
<title><![CDATA[让ibatis插上c3p0的翅膀]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[技术私语]]></category>
<pubDate>Tue, 04 Nov 2008 17:29:34 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/598/</guid> 
<description>
<![CDATA[ 
	<p>ibatis真是个不错的东西,它特别合适小型的数据库应用使用,不过它的连接池比较简单,估计很难适应真正的生产环境,得改改,其实之前网上也看到别人写的,但是我不是很明白意图...<br /><br />其实这个ds只需要继承一个接口,首先来看看接口是什么样子的:<br /><br />package com.ibatis.sqlmap.engine.datasource;</p><p>import javax.sql.DataSource;<br />import java.util.Map;</p><p>/**<br />&nbsp;* Interface to provide a way to create and configure a DataSource for iBATIS<br />&nbsp;*/<br />public interface DataSourceFactory &#123;</p><p>&nbsp; /**<br />&nbsp;&nbsp; * Simple method to initialize/configure a datasource<br />&nbsp;&nbsp; *<br />&nbsp;&nbsp; * @param map - the configuration information<br />&nbsp;&nbsp; */<br />&nbsp; public void initialize(Map map);</p><p>&nbsp; /**<br />&nbsp;&nbsp; * Returns a datasource<br />&nbsp;&nbsp; *<br />&nbsp;&nbsp; * @return an implementation of DataSource<br />&nbsp;&nbsp; */<br />&nbsp; public DataSource getDataSource();</p><p>&#125;<br /><br />目的是很明确,只需要解决初始化和get两个方法,第一个是真正的参数初始化方法,后一个是系统得到ds对象的方法,目标明确了,这样下一步操作就简单了,看我写的:<br /><br />public class C3p0DataSource implements DataSourceFactory &#123;<br />&nbsp;/**<br />&nbsp; * Logger for this class<br />&nbsp; */<br />&nbsp;private static final Logger logger = Logger.getLogger(C3p0DataSource.class);</p><p>&nbsp;private DataSource ds;</p><p>&nbsp;private static final String DB_URL = &quot;JDBC.ConnectionURL&quot;;</p><p>&nbsp;private static final String DB_USER = &quot;JDBC.Username&quot;;</p><p>&nbsp;private static final String DB_PASS = &quot;JDBC.Password&quot;;</p><p>&nbsp;private static final String DB_DRIVER = &quot;JDBC.Driver&quot;;</p><p>&nbsp;private String dbUrl;</p><p>&nbsp;private String dbUser;</p><p>&nbsp;private String dbPass;</p><p>&nbsp;private String dbDriver;</p><p>&nbsp;public C3p0DataSource() &#123;<br />&nbsp;&nbsp;logger.info(&quot;start for c3p0 ds&quot;);<br />&nbsp;&#125;</p><p>&nbsp;@Override<br />&nbsp;public DataSource getDataSource() &#123;<br />&nbsp;&nbsp;// TODO Auto-generated method stub<br />&nbsp;&nbsp;return this.ds;<br />&nbsp;&#125;</p><p>&nbsp;@Override<br />&nbsp;public void initialize(Map map) &#123;<br />&nbsp;&nbsp;// TODO Auto-generated method stub<br />&nbsp;&nbsp;this.setDbUrl(String.valueOf(map.get(C3p0DataSource.DB_URL)));<br />&nbsp;&nbsp;this.setDbUser(String.valueOf(map.get(C3p0DataSource.DB_USER)));<br />&nbsp;&nbsp;this.setDbPass(String.valueOf(map.get(C3p0DataSource.DB_PASS)));<br />&nbsp;&nbsp;this.setDbDriver(String.valueOf(map.get(C3p0DataSource.DB_DRIVER)));<br />&nbsp;&nbsp;try &#123;<br />&nbsp;&nbsp;&nbsp;Class.forName(this.getDbDriver());<br />&nbsp;&nbsp;&#125; catch (ClassNotFoundException e) &#123;<br />&nbsp;&nbsp;&nbsp;// TODO Auto-generated catch block<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&#125;</p><p>&nbsp;&nbsp;try &#123;<br />&nbsp;&nbsp;&nbsp;this.ds = DataSources.unpooledDataSource(this.getDbUrl(), this<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getDbUser(), this.getDbPass());<br />&nbsp;&nbsp;&nbsp;this.ds = DataSources.pooledDataSource(this.ds);<br />&nbsp;&nbsp;&#125; catch (SQLException e) &#123;<br />&nbsp;&nbsp;&nbsp;// TODO Auto-generated catch block<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&#125;<br />&nbsp;&#125;</p><p>&#125;<br /><br />测试已经能正常工作了^^准备休息,累了...</p>
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/597/</link>
<title><![CDATA[听许巍的歌]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[生活心语]]></category>
<pubDate>Sun, 26 Oct 2008 18:43:54 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/597/</guid> 
<description>
<![CDATA[ 
	听许巍的歌可以让你感觉到安宁<br />听许巍的歌可以让你感觉感动就是那么简单<br />听许巍的歌可以感动你心中最底层的心灵<br />听许巍的歌让你感觉到平淡无奇和心底的火花<br />听许巍的歌...<br /><br />喜欢就是喜欢....<br /><br /><img class="insertimage" src="attachment.php?fid=79" border="0" width="500" height="665" /><br /><br />许巍-<span style="color: #c60a00">难忘的一天</span><br />作词:许巍作曲:许巍<br /><br />阳光正温暖<br />一直照进我心里<br />如果没有你<br />怎么会有我今天<br /><br />有时我会想起<br />和你经历的故事<br />那些情景在飞扬<br />甜蜜又伤感<br /><br />再次走过熟悉的地方<br />如今的你不知在何方<br />你曾给我的温暖感觉<br />依然在我心<br /><br />如果再见你<br />又是怎样的情景<br />会不会将你<br />再次拥进我怀里<br /><br />阳光真温暖<br />一直照进我心里<br />往事已遥远<br />一年又一年<br /><br />竟然在这一天<br />在不经意之间<br />人群拥挤的街头<br />你走过我身边<br /><br />风吹起的青色衣衫<br />夕阳里的温暖容颜<br />你比以前更加美丽<br />像盛开的花<br /><br />这是我<span style="color: #c60a00">难忘的一天</span><br />在隐忍和冲动之间<br />看着你渐渐的远去<br />消失人海中<br /><br /><br />
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/596/</link>
<title><![CDATA[lucene 2.4的变化]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[技术私语]]></category>
<pubDate>Wed, 22 Oct 2008 00:16:23 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/596/</guid> 
<description>
<![CDATA[ 
	今天乘机升级了所有的lucene平台,很顺利没有遇到太多问题.但lucene确实有些变化,至少我能看到的就是, 他把hits这个类给杀掉了,hits这个类以前也说过,可以说他就是缓存结果的最大障碍,但这个问题不难解决,只要记住:一切query都是filter就可以了.不过如今lucene废掉了hits这个类和他连带的方法,今后query只有topdocs了,这样的变化让我引起一些兴趣,稍稍研究后,再做汇报.
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/595/</link>
<title><![CDATA[memcached的性能极限]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[技术私语]]></category>
<pubDate>Thu, 09 Oct 2008 23:40:28 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/595/</guid> 
<description>
<![CDATA[ 
	最近测试memcached的并发查询效率(并非连接效率),基本上在每秒100次,超过之后性能下降非常严重.测试中当查询超过100之后,memcached进程的cpu占用率可达到平均35%(8线程cpu)左右,并且速度效率下降非常明显,因此在memcached使用需要注意:<br />1 控制socket连接数,连接数大量增加会导致机器负荷上升,因此建议使用连接池,我测试使用的连接池最大连接数才15<br />2 控制缓存使用颗粒度尺寸,不适宜过小的颗粒度,基本保持在30次/s查询比较好
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/594/</link>
<title><![CDATA[PHP我不说你是垃圾真对不起祖师爷...]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[PHP日记]]></category>
<pubDate>Wed, 01 Oct 2008 04:25:59 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/594/</guid> 
<description>
<![CDATA[ 
	早上在编译PHP的是发现了一个PHP的bug...<br /><br />早上编译php 5.2.6总是说我的mysqlclient没有装,我很奇怪,然后就去找了发现/usr/lib64下确实有.so啊为什么? 后来想想是不是愚蠢的php不知道/usr/lib64啊(因为操作系统是64位版本) 于是我把lib64下的so cp到lib下居然发现一切ok了!!!<br /><br />实在要鄙视PHP这东西的,早就说过了php用过了就会有冲动自己写脚本编译器去的,事实很多次证明了这东西,但是这么垃圾的东西还有那么多人用(包括自己)实在想不通,看来生命就是在于折腾啊...呵呵
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/592/</link>
<title><![CDATA[IndexReader的reOpen彻底研究]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[技术私语]]></category>
<pubDate>Sun, 21 Sep 2008 14:00:05 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/592/</guid> 
<description>
<![CDATA[ 
	一直觉得lucene的reopen有问题,今天特地研究了下,顺便熟悉了整个IndexReader的结构体系<br /><br />IndexReader是一个体系,他是search的核心io之一<br /><br /><span style="word-spacing: 0px; text-transform: none; color: #000000; text-indent: 0px; font-family: 微软雅黑; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0" class="Apple-style-span"><h2><span>rg.apache.lucene.index</span><span class="Apple-converted-space"> </span><br />Class IndexReader</h2><pre><a href="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html" title="class or interface in java.lang">java.lang.Object</a>&nbsp;&nbsp; <strong>org.apache.lucene.index.IndexReader</strong> </pre><dl><dt><strong>Direct Known Subclasses:</strong></dt><dd><a href="org/apache/lucene/index/FilterIndexReader.html" title="class in org.apache.lucene.index">FilterIndexReader</a>,<span class="Apple-converted-space"> </span><a href="org/apache/lucene/index/MultiReader.html" title="class in org.apache.lucene.index">MultiReader</a>,<span class="Apple-converted-space"> </span><a href="org/apache/lucene/index/ParallelReader.html" title="class in org.apache.lucene.index">ParallelReader</a><br /><br />先来看看IndexReader下面的类体系我们平常会使用的三个派生: FilterIndexReader MultiReader ParallelReader<br /><br /><br />下面来看看我犯错误的reopen:<br /><span style="word-spacing: 0px; text-transform: none; color: #000000; text-indent: 0px; font-family: 微软雅黑; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0" class="Apple-style-span"><pre>public <a href="org/apache/lucene/index/IndexReader.html" title="class in org.apache.lucene.index">IndexReader</a> <strong>reopen</strong>()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws <a href="org/apache/lucene/index/CorruptIndexException.html" title="class in org.apache.lucene.index">CorruptIndexException</a>,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://java.sun.com/j2se/1.4/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</a></pre></span>之前为什么我错了,我以为这个方法是自省的(根本没有注意它的返回不是void的道理么...),所以我怎么写的?<br /><br />iSearch.getIndexReader().reopen(); <br /><br />误以为这样就可以reopen,结果总是被投诉没有更新,所以一直觉得更新有问题,实际上是我用法的问题,应该是这样的.<br /><br />if (iSearch != null) &#123;<br />// 新修改的reopen方法<br />try &#123;<br />IndexReader irOld = this.reOpen(iSearch);<br />// isearchMap.remove(searchBean.getIsearchName());<br />isearchMap.put(searchBean.getIsearchName(),<br />new IndexSearcher(irOld));<br />&#125; catch (Exception e) &#123;<br />e.printStackTrace();<br />&#125; finally &#123;<br />// 注意要关闭掉原来的iSearch<br />iSearch.close();<br />iSearch = null;<br />logger.info(&quot;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;one search has been reopen:&quot;<br />+ searchBean.getIsearchName());<br />&#125;<br />&#125;<br /><br />上面是从程序里截取的看看意思就好了.<br /><br />但后来发现这样还是不对的,看源码上的说明:<br />If the index has not changed since this instance was (re)opened, then this<br />* call is a NOOP and returns this instance. Otherwise, a new instance is <br />* returned. The old instance is &lt;b&gt;not&lt;/b&gt; closed and remains usable.<br /><br />如果没有改变的话,他会返回null的,这样不得不判断一下,所以代码要这样:<br /><br />if (iSearch != null) &#123;<br />// 新修改的reopen方法<br />try &#123;<br />IndexReader irOld = reOpen(iSearch);<br />if (irOld != null) &#123;<br />// isearchMap.remove(searchBean.getIsearchName());<br />isearchMap.put(searchBean.getIsearchName(),<br />new IndexSearcher(irOld));<br />// 注意要关闭掉原来的iSearch<br />iSearch.close();<br />iSearch = null;<br />&#125;<br />&#125; catch (Exception e) &#123;<br />logger.error(e);<br />&#125; finally &#123;<br />logger.info(&quot;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;one search has been reopen:&quot;<br />+ searchBean.getIsearchName());<br />&#125;<br />&#125;<br /><br />这样可以在索引不变下不产生更多io消耗,那么我们可以这样理解reopn的实质:<br /><br />首先判断 lastmodify时间,如果被更新了则, new 一个IndexReader, 否则就直接返回null,而操作方法都扔给了用户. 所以官方所谓的reopen能减少消耗说法并不准确,它做的只是在改变时重新连接,但这个他官方文档所说的只更新更新部分有很大不同,现在只是选择性地降低了io,但是如果每次探测时索引都变了就变得没有意义,这样的好吃是,索引的跟踪可以变得更频繁,也不再需要程序过多干预了.<br /><br />但是目前这个方法写得不够成熟,至少我认为应该更&quot;傻瓜&quot;而不是把那么多细节都扔给开发者.<br /><br />好了reopen这个新兴方法应该算是彻底搞明白了,原来看似吹嘘的很神的新东西,还是老瓶子装新酒呀,呵呵....<br /><br />末了,代码再完善下:<br /><br />if (iSearch != null) &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;// 新修改的reopen方法<br />&nbsp;&nbsp;&nbsp;&nbsp;Boolean isNew = false;<br />&nbsp;&nbsp;&nbsp;&nbsp;try &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IndexReader irOld = reOpen(iSearch);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (irOld != null) &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isNew = true;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// isearchMap.remove(searchBean.getIsearchName());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isearchMap.put(searchBean.getIsearchName(),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new IndexSearcher(irOld));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br />&nbsp;&nbsp;&nbsp;&nbsp;&#125; catch (Exception e) &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.error(e);<br />&nbsp;&nbsp;&nbsp;&nbsp;&#125; finally &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (isNew) &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//保证关闭掉资源,否则连接数一多把机器io挂死<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iSearch.close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iSearch = null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.info(&quot;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;one search has been reopen:&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ searchBean.getIsearchName());<br />&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br /><br /><br /><br /><br /></dd></dl></span>
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/591/</link>
<title><![CDATA[lucene 的 reopen的问题]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[技术私语]]></category>
<pubDate>Tue, 16 Sep 2008 05:32:33 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/591/</guid> 
<description>
<![CDATA[ 
	按照文档说明reopen可以解决更新索引的问题,但试用下来有几个问题:<br /><br />1 无法真正reopen,索引往往没有更新,原因不详,需要查lucene的源代码<br />2 lucene的实例id不会改变,原来以为里边的版本id标识会变,现在似乎不变,这直接导致了,我的缓存标记无法得到更新而读取了老的缓存.<br /><br />另外在使用memeched时,大家一定要用:<br /><br /><a href="http://bleu.west.spy.net/~dustin/projects/memcached/"><a href="http://bleu.west.spy.net/~dustin/projects/memcached/" target="_blank">http://bleu.west.spy.net/~dustin/projects/memcached/</a></a><br /><br />另外一个链接池有很大问题,导致大访问量出现链接死锁问题.<br /><br /><br />另外jdk方面觉得可以直接放弃sun的了,用它的套壳版本: oracle的 jrmc 或者 jrrc都行,性能和设置都比sun的jdk简单.<br /><br />
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/590/</link>
<title><![CDATA[wordCamp 2008 ]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[小资情调]]></category>
<pubDate>Sat, 13 Sep 2008 03:10:15 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/590/</guid> 
<description>
<![CDATA[ 
	<img style="width: 450px; height: 80px" src="http://china.wordcamp.org/files/2008/09/wcc_sh_450_sealed.png" border="0" width="450" height="80" /><br /><br />虽然我不用wordpress但是身边好友或多或少在用,所以报名参加了这样一次小活动,也许也会有所收获...
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/589/</link>
<title><![CDATA[多年以前]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[生活心语]]></category>
<pubDate>Sat, 06 Sep 2008 01:41:56 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/589/</guid> 
<description>
<![CDATA[ 
	今天在家整理东西准备扔掉一些东西,却突然发现了早年在上课时的作品,突然间想起了很多很多...<br /><br /><img class="insertimage" src="attachment.php?fid=77" border="0" width="750" height="500" /><br /><br />那时的欢笑,那时的忧伤,又仿佛想起来点什么,只是那张上面默默地记录了很多.想起来现在总是说小朋友们读书不好好上都谈朋友了,我上课不也在...记得这是最最难的通讯原理,当然也是最无聊的,课间无聊居然抓起铺子来,还记得超载,还记得 现在到永远 ,永远到底在哪里,在奔去的未来吗?我不清楚,那虽然只是铅笔写的随性之物但依然让我淡淡地想起了很多.自动上次硬盘事故,早年录音的分轨早就不在了,当年的事还依稀,人却不同了许多,记得上次同学聚会的时候,真的发现大家都变了,而这个变化只是短短几年.淡淡的记忆,就让这张画面定格在我的储藏室里说不定哪天我会再拿出来看.
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/588/</link>
<title><![CDATA[天下网站一大抄,SNS也不例外]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[IT快语]]></category>
<pubDate>Sun, 03 Aug 2008 03:16:56 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/588/</guid> 
<description>
<![CDATA[ 
	最早在公司发起了玩开心网的热潮,接着昨天又连续注册了 海内和校内,其实本来对开心感觉还不错,但当我注册校内和海内之后就完全变了,原来sns也是一大抄袭. sns网站在技术上算是相对复杂的站点,从三家站点构架来看 海内和校内都是java平台,并且有完善的api机制(当然这是抄袭facebook的),开心网则基于php,而且它的系统构架和海内和校内比起来差距非常之大.<br /><br />难怪公司有人可以信誓旦旦地称,业务是不能复制的,但是产品可以,于是这就成为了没文化还很拽的理由.表面看起来的确如此在中国这样的抄袭环境下, 任何产品技术只要是新的就会被迅速复制,而且复制得非常像(我说是非常像,不是一样).其实往往这样就带来很多错觉,觉得我们可以毫无止境地抄袭只要有好的东西. 事实上并不完全如此,总需要自己的东西的,就像海内和校内一样,他们最终只能活下一个吧,可是这是谁造成的,是他们自己,自己要走向死亡又有谁能拯救他们,拯救他们的只有他们自己.
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/587/</link>
<title><![CDATA[F1 匈牙利站排位赛成绩分析]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[小资情调]]></category>
<pubDate>Sat, 02 Aug 2008 14:47:06 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/587/</guid> 
<description>
<![CDATA[ 
	首先看成绩表:<br /><br /><table border="0" cellspacing="1" cellpadding="1"><tbody><tr bgcolor="#dcdcdc"><td align="center">名次</td><td align="center">车手</td><td align="center">差距</td><td align="center">第一节</td><td align="center">第二节</td><td align="center">第三节 </td></tr><tr bgcolor="#ffffff"><td align="center">1</td><td align="center">汉密尔顿</td><td align="center">1.523</td><td align="center">1:19.376</td><td align="center">1:19.473</td><td align="center">1:20.899</td></tr><tr bgcolor="#ffffff"><td align="center">2</td><td align="center">科瓦莱宁</td><td align="center">1.66</td><td align="center">1:19.945</td><td align="center">1:19.480</td><td align="center">1:21.140 </td></tr><tr bgcolor="#ffffff"><td align="center">3</td><td align="center">马萨</td><td align="center">2.123</td><td align="center">1:19.578</td><td align="center">1:19.068</td><td align="center">1:21.191 </td></tr><tr bgcolor="#ffffff"><td align="center">4</td><td align="center">库比卡</td><td align="center">1.505</td><td align="center">1:20.053</td><td align="center">1:19.776</td><td align="center">1:21.281 </td></tr><tr bgcolor="#ffffff"><td align="center">5</td><td align="center">格洛克</td><td align="center">2.08</td><td align="center">1:19.980</td><td align="center">1:19.246</td><td align="center">1:21.326 </td></tr><tr bgcolor="#ffffff"><td align="center">6</td><td align="center">莱科宁</td><td align="center">1.97</td><td align="center">1:20.006</td><td align="center">1:19.546</td><td align="center">1:21.516 </td></tr><tr bgcolor="#ffffff"><td align="center">7</td><td align="center">阿隆索</td><td align="center">1.882</td><td align="center">1:20.229</td><td align="center">1:19.816</td><td align="center">1:21.698 </td></tr><tr bgcolor="#ffffff"><td align="center">8</td><td align="center">韦伯</td><td align="center">1.686</td><td align="center">1:20.073</td><td align="center">1:20.046</td><td align="center">1:21.732 </td></tr><tr bgcolor="#ffffff"><td align="center">9</td><td align="center">特鲁利</td><td align="center">1.885</td><td align="center">1:19.942</td><td align="center">1:19.486</td><td align="center">1:21.767 </td></tr><tr bgcolor="#ffffff"><td align="center">10</td><td align="center">皮奎特</td><td align="center">2.24</td><td align="center">1:20.583</td><td align="center">1:20.131</td><td align="center">1:22.371 </td></tr><tr bgcolor="#ffffff"><td align="center">11</td><td align="center">维泰尔</td><td align="center">红牛二队-法拉利</td><td align="center">1:20.157</td><td align="center">1:20.144</td><td align="center">- </td></tr><tr bgcolor="#ffffff"><td align="center">12</td><td align="center">巴顿</td><td align="center">本田</td><td align="center">1:20.888</td><td align="center">1:20.332</td><td align="center">- </td></tr><tr bgcolor="#ffffff"><td align="center">13</td><td align="center">库特哈德</td><td align="center">红牛-雷诺</td><td align="center">1:20.505</td><td align="center">1:20.502</td><td align="center">- </td></tr><tr bgcolor="#ffffff"><td align="center">14</td><td align="center">波尔戴</td><td align="center">红牛二队-法拉利</td><td align="center">1:20.640</td><td align="center">1:20.963</td><td align="center">- </td></tr><tr bgcolor="#ffffff"><td align="center">15</td><td align="center">罗斯伯格</td><td align="center">威廉姆斯-丰田</td><td align="center">1:20.748</td><td align="center">无成绩</td><td align="center">- </td></tr><tr bgcolor="#ffffff"><td align="center">16</td><td align="center">海德菲尔德</td><td align="center">宝马-索伯</td><td align="center">1:21.045</td><td align="center">-</td><td align="center">- </td></tr><tr bgcolor="#ffffff"><td align="center">17</td><td align="center">中岛一贵</td><td align="center">威廉姆斯-丰田</td><td align="center">1:21.085</td><td align="center">-</td><td align="center">- </td></tr><tr bgcolor="#ffffff"><td align="center">18</td><td align="center">巴里切罗</td><td align="center">本田</td><td align="center">1:21.332</td><td align="center">-</td><td align="center">- </td></tr><tr bgcolor="#ffffff"><td align="center">19</td><td align="center">费斯切拉</td><td align="center">印度力量-法拉利</td><td align="center">1:21.670</td><td align="center">-</td><td align="center">- </td></tr><tr bgcolor="#ffffff"><td align="center">20</td><td align="center">苏蒂尔</td><td align="center">印度力量-法拉利</td><td align="center">1:22.113</td><td align="center">-</td><td align="center">- </td></tr></tbody></table><br /><br />其实麦克拉伦采用了超轻载油,当然鉴于麦克拉伦的技术优势,不能说他这是为了排位赛而排位赛的,要看具体战术,看他和法拉利之间进站差距吧.
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/586/</link>
<title><![CDATA[dz你这也叫程序? 你在侮辱我的智商]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[PHP日记]]></category>
<pubDate>Sun, 13 Jul 2008 05:56:00 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/586/</guid> 
<description>
<![CDATA[ 
	<p>diszus估计是目前最流行的论坛了, 他的程序自然是大家都觉得还不错的, 可是事实呢? 不客气讲这也叫程序? 估计大群粉丝要开始骂我了,包括那些热衷于收购dz论坛的vc们,呵呵,那就来举个例子看看吧.<br /><br />大家都知道最简单的就是通用登录,有人说了他不是有usercenter么?usercenter?我不敢用也不会用,你能保证你的程序也是php吗?他就没有考虑这点,其实解决这个问题太简单了,做一个数据网关就好了,如此简单的思维都没有,dz的构架师是要付全部责任的,特别是这样一个2007年开始发展的项目.<br /><br />好了,回过来继续,那么uc这条路不通,我又搞不懂dz这个写得那么好的uc范例,那么直接调用吧,dz里负责这些事情的地方叫logging.php,这个文件打开之后就目瞪口呆了:<br /><br />if($action == 'logout' &amp;&amp; !empty($formhash)) &#123;<br />...<br />&#125;<br /><br />所有所谓的动作就是这样通篇ifelse出来的,换句话说如果我要include你都没办法调用你,而它的所有逻辑都在这个代码里,我的妈呀!我忍不住又重复一次,你这也叫程序?你侮辱我了,真的.最起码的你要写一个类里边放些static方法吧,也好歹可以装B下叫做focade模式,可你这个算什么?换句话说我include一点没有价值,而这种思路我坦白说在我们公司的程序里也比比皆是,只要一个改动就完全没有办法调试,调试效率低下到了极点.<br /><br />可是我又真的不想重构你,因为你的程序经常升级不太想改除了模板以外的部分,但这意味着某些时候我要妥协你了,当然妥协很简单,只要参数和你一直就好了,伪装下.<br /><br />前几天我闹了笑话,我一直以为$_GET是一个只读变量但是在PHP5.2.5下居然可写的,实在令我无法理解php.net的思路,这样的做法只会把php带去一个更不需要讲求封装的低级世界,真可怕.<br /><br />震惊过了,牢骚过了,该做的还得继续,但这不断让我膨胀的自满感,对我绝对不是一件好事,因为真实水平远远没有独孤求败,只是环境有些低而已,世界在进步,你进步慢就是退步了,呵呵,要自我清醒才行.</p>
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/585/</link>
<title><![CDATA[lucene中的filter器群组及其缓存大盘点]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[技术私语]]></category>
<pubDate>Thu, 03 Jul 2008 06:08:39 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/585/</guid> 
<description>
<![CDATA[ 
	lucene中的filter其实并不起眼,大家对其对性能的影响也不是很关注,但实际上filter是除了单纯搜索以外,其他搜索附加功能的必选组件,其性能很大程度上会直接影响搜索的性能,之前我一直认为filter的性能比query高,但事实说明并不完全如此(这里所说的负荷是指io消耗并不是cpu),实际上在lucene中充满着各种io流,也就是说很多东西都无法从根本上保存,这也给缓存带来了很大难度(这个问题看似简单,但是在超复杂的组合查询下,缓存可能会几乎无用,原因就是key怎么把握)<br /><br />首先来看看filter的接口定义:<br />public abstract class Filter implements java.io.Serializable &#123;<br />&nbsp; public abstract BitSet bits(IndexReader reader) throws IOException;<br />&#125;<br /><br />简单明了从reader中知道哪些记录是可以读出来的用true false放在bitsets中,然后再用这去和总集合做and操作得到剩余记录数,然后再通过query查询.原理知道了,下面来考虑下它的缓存:<br />&nbsp;缓存filter本身,由于他是序列化对象,那么已经具备了缓存的条件,但是这是一个错误,因为你缓存了这个类,而当你把参数reader拿出来依然会和机器产生io,因此这是极其不恰当的方法,应该缓存它的结果.<br />在lucene中有这么几个和filter有关的类:<br />CachingWrapperFilter<br />CachingSpanFilter<br />RemoteCachingWrapperFilter<br />FilterManager<br /><br />其实我想质疑前两个,为什么呢,请看他的源码:<br />&nbsp; protected transient Map cache;<br /><br />他放置缓存的map居然是transient的,这意味着即使你把它实例在static中这个变量依然会每次要new的,这样的缓存有意义吗?我看不出他怎么缓存的<br />&nbsp; /**<br />&nbsp;&nbsp; * A transient Filter cache.&nbsp; To cache Filters even when using <a href="mailto:%7B@link">&#123;@link</a> org.apache.lucene.search.RemoteSearchable&#125; use<br />&nbsp;&nbsp; * <a href="mailto:%7B@link">&#123;@link</a> org.apache.lucene.search.RemoteCachingWrapperFilter&#125; instead.<br />&nbsp;&nbsp; */<br />上面这句注释总算明了了,呵呵.<br />那么其实RemoteCachingWrapperFilter才是真正的cache类,他的实现借助于filterManager,这个类是我们平时能理解的那种cache结构<br />&nbsp; public BitSet bits(IndexReader reader) throws IOException &#123;<br />&nbsp;&nbsp;&nbsp; Filter cachedFilter = FilterManager.getInstance().getFilter(filter);<br />&nbsp;&nbsp;&nbsp; return cachedFilter.bits(reader);<br />&nbsp; &#125;<br /><br />但这个还不够,第一他的性能我心里没谱,遇到上万的访问怎么办?所以还是要用第三方的缓存,我使用的是memcached,这个东西不介绍了,只有一个问题,就是必须要求对象是可序列化的,这个不难理解,要想网络传输只能治么搞.<br />我的缓存策略:把最细胞的filter用memached缓存他的结果集,而他的组合fliter用自带的filtermanager管理就好了.filter怎么合在一起上次写过一个,看这里: <a href="post/572/"><a href="http://www.edwardpro.com/post/572/" target="_blank">http://www.edwardpro.com/post/572/</a></a><br /><br />而我这样的道理也是基于filtermanager的key是reader的hashcode,因此他是对应不同的索引的.那么肯定有朋友问怎么刷新呢?太简单了啊,你的key只要有reader或者search的hashcode就可以了,你一旦更新的源hashcode就变化了.(如果你的search和reader的hash不是固定的那么你肯定承受不了100以上的并行访问,io会高得惊人.)<br /><br />另外一个技巧,是关于rangefilter的,这个东西不错,但是有一点难,在哪里呢?因为他的查询似乎效率不高,因此一定要缓存! 但是key呢?比如我常用的key是timestamp,但是实际中就会发现如果用毫秒的timestamp那么key几乎无用,因为很少相同的,经过改进,我把时间可以用月做单位,查询也是如此,如果你的要求高我觉得做到天就ok了,如果你数据再多用到小时肯定也够了吧,这样filter的缓存会带来极大的性能提升.<br /><br />那么实际效果呢,在原来使用时候2台集群机(nginx作为前端代理,后部用resin作为应用服务器)io平均1.xx 现在加了缓存之后常年保持在0.2左右!性能得到了几乎5~6倍的提升.而一般查询一个十万当量的+ 5个关键字 + 3个filter 时间大约是&lt;10ms 非命中时大约是 70~80ms 这个速度如果得到同样结果的数据库至少要放大1000倍的时间.<br /><br />由于我memcached没有做集群是独立的(事实也应该如此,因为你两台机器的reader的hashcode肯定是不一样的,放一起也是这样的结果,这样也没有不好,当一台机器出现问题或者需要更新代码可以用时间差来保证负荷平稳过渡,不像以前一台机器每次重启都是有点怕怕的,只能找空闲时间才敢这么做.<br /><br />最后要讲的query,其实前面我说了半天没有提到query,query的缓存呢? 其实在lucene中有这么个类:<br />QueryFilter<br />这个类简单说就是把query变成filter,那干什么呢?很简单啊,这样任何查询都会变成filter的,所以所有的缓存都是filter!那么从缓存中取出来的filterquery怎么用?<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;MatchAllDocsQuery matchAll = new MatchAllDocsQuery();<br />&nbsp;&nbsp;&nbsp;&nbsp;result = isearch.search(matchAll, filter, sort);<br />filter是用我的合成filter组合的,这样消耗就更低了,当然不建议无限制增加系统负荷,因为那样就几乎无法重启了,呵呵.好了基本说到这里,其实最后我想说我的核心思想: 任何query都是filter,lucene就是filter查询,事实是如此的,呵呵.<br /><br />大家有什么其他方案也可以讨论和交流一下,呵呵.
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/583/</link>
<title><![CDATA[其实有些东西很简单]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[生活心语]]></category>
<pubDate>Mon, 30 Jun 2008 05:14:02 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/583/</guid> 
<description>
<![CDATA[ 
	上个月买了包普洱,当时送了一个放茶叶的钢丝小漏斗,但是口径比较小,所以一直觉得不好用.今天想了个主意,既然正不行,那么就翻扣在底部,这样一样可以保证茶叶渣不漏出来了么?是的,事实的确如此,真是简单,为什么没有想到呢?<br /><br />这就是典型的思维定式,把思维限定死了,结果就是这样,有时候工作也是,如果换换思路呢?也许问题很容易就解决了只要反过来扣就行了,呵呵.
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/581/</link>
<title><![CDATA[用工具不能解决你心里的懦弱]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[技术私语]]></category>
<pubDate>Thu, 26 Jun 2008 05:51:51 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/581/</guid> 
<description>
<![CDATA[ 
	<p>具体今天看到一个帖子:<br /><br /><a href="http://www.javaeye.com/post/584415?page=1"><a href="http://www.javaeye.com/post/584415?page=1" target="_blank">http://www.javaeye.com/post/584415?page=1</a></a><br /><br />有个朋友问某个东西spring怎么实现.<br /><br />我一看这就是思路问题,他的类调用和过程模式完全一样,或者说完全没有套路,但是接下来的讨论就令我很惊讶了,很多人居然能给出解决之道.我的承认我对spring的使用水平还停留在1.x上,2.0的特性基本没用过.但我想说的是这种过度的滥用对自己没有好处,后面还有个朋友说了,为什么spring好啊,因为spring动态管理对象解决了内存泄漏!我的妈,人家是帮助你构建构架的,现在变成了你用来屏蔽水平问题的工具,这到底是可悲还是可喜呢?</p>
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/580/</link>
<title><![CDATA[柯达相机事件看中国法律在保护什么?]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[生活心语]]></category>
<pubDate>Thu, 26 Jun 2008 04:36:17 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/580/</guid> 
<description>
<![CDATA[ 
	今天报纸报道了,控诉柯达相机质量缺陷要求退货赔偿的19名第一批用户全部败诉,这到底是法律的胜利还是悲哀?<br />事件大致这样,ls443相机大规模出现了黑屏现象,共有343名用户参加了和柯达的调解会,但会上柯达提出的方案是换购,而且原来相机只能算500元,而同样的相机在台湾柯达承认了质量缺陷因此做了召回,因此才有了官司.<br /><br />下面给两个相关法律的link:<br /><br />消保法: <a href="http://www.gdgs.gov.cn/cyfg/XFZQYBHf.htm"><a href="http://www.gdgs.gov.cn/cyfg/XFZQYBHf.htm" target="_blank">http://www.gdgs.gov.cn/cyfg/XFZQYBHf.htm</a></a><br />质量法: <a href="http://www.chinawater.net.cn/guifan/cpjlf.htm#1"><a href="http://www.chinawater.net.cn/guifan/cpjlf.htm#1" target="_blank">http://www.chinawater.net.cn/guifan/cpjlf.htm#1</a></a><br /><br />先来看看法院的最后陈述中的一些话:<br /><br />法院认为，消费者购买达海公司生产的LS443型数码相机，该相机生产出售前经有关部门检验合格准许上市销售。而兵器工业照相机质量检测中心不具有数码相机的质量检测资质。法院还认为，对于相机存在质量瑕疵，消费者应先予报修，现19起案件中有13位消费者从未报修，另有2位消费者在保修期内只进行过一次维修，而且也没有提供证据证明该相机已无法修理，另有2人买的相机并非是达海公司生产，1人起诉的相机系公司购买而非其本人所有，1人在相机发生故障后柯达公司已为其更换了其它型号数码相机，因此19起案件均未获支持。<br /><br />1 所谓的质量合格,在质量法中规定,相机的耐用性是由厂商自行测试自行承诺的,如果出现问题并不能成为质量法中的缺陷在上市时技术条件无法判定进行免责.<br />2 法院认定质检单位没有资质,那么按照质量法也应该由控诉方提出法院协调指定检验单位.并不能作为驳回理由<br />3 而质量缺陷和没有维修没有本质联系,没有维修和是否有资格提出赔偿并没有联系,因为质量缺陷和产品故障维修三次未好是完全两个概念,法院偷换了概念(也就是默认否认了柯达相机的质量问题,台湾的同款相机同原因召回是有CCTV报道的)<br />4 1人属于公司购买,那么按照适用法律,就算不适用消保法,也应适用质量法,难道中国企业买了东西就没有保障了?<br />5 而柯达公司更是在法庭辩称,此相机是国内工厂生产不是柯达生产,和柯达无关,那么这家厂做的柯达相机是假的?你怎么不去告呢?<br /><br />而事实上柯达律师毫无顾忌地说出了中国法律没有召回制度,因此我们不需要仿造台湾的做法,无语了,每年人大开那么多会,无数&quot;精英&quot;这个法那么难立?<br /><br />就算立的法质量又如何呢?大家可以参观下消保法全文,可以这么说,全文空洞,毫无实际操作价值,仅仅是泛泛之谈,没有手段,没有明细.怎么能不让别人钻空子呢?
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/579/</link>
<title><![CDATA[又买了原版书]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[技术私语]]></category>
<pubDate>Tue, 24 Jun 2008 11:06:05 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/579/</guid> 
<description>
<![CDATA[ 
	这次是restful webservice 这本书评价不错可以一看,问题是中文版50+,英文版32块钱,一咬牙为了20块买了本硬骨头看看...物价涨逼着自己要节约了,呵呵.<br /><br />不过说实话上次买的高效stl编程(第二版)看得我一场噩梦,这次不知道咋样了,我清楚记得我每天都会抱着书睡着,但是每天只能看几页,唉...不过不管咋样英文不好不好吃饭,还是要耐着性子看,而且这本书文字相对会通俗些,多少有点信心,呵呵.
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/578/</link>
<title><![CDATA[被逼写一下hk攻略]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[生活日志]]></category>
<pubDate>Sat, 21 Jun 2008 06:09:01 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/578/</guid> 
<description>
<![CDATA[ 
	f某位想去hk的同学天天逼我写攻略,其实我去也是半只脚,经验是学习来的,算了,既然要我卖弄一下就卖弄吧.<br /><br />一达到篇:<br />众所周知的三种方案: <br />1 火车. 我没做过但是个人觉得如果有时间做火车是最省钱的,软座 5xx很合算,因为火车是到九龙的,这点很importance后面会讲到为什么.<br />2 飞机直达.这是大家众所周知的方案,买张飞机票就好了,推荐大家做港龙航空,价格还算可以只是燃油费最近涨了,我当时查过现在去来回要596块相当的贵.<br />3 飞机到深圳,然后转到罗湖.这是我这次去的方案,个人认为比第二种方案性价比高很多,一来飞机票折扣多我这次去来回+税费一共1420 如果稍微早点肯定可以拿到来回3折票的,那更可以再便宜300.飞机下来在门口坐K568 小巴(在宝安机场B楼门口),20块直达罗湖口岸,时间大约40分钟(穿过深圳市区会堵车).顺便yy下宝安机场我随便看了看管理比较混乱,尤其行李,没有人管,拿了之后行李票都不看,很容易丢东西,大家安检一定不能把贵重物品托运.,当然如果你想赚回机票钱可以等等有谁会晚来拿行李的,也许有意外收获哦(此内容不可相信)<br /><br />二 过关篇:<br />直达的兄弟可不看,因为我也不知道hk airport是怎么过的.只说罗湖.罗湖过关是个大楼,大楼后面就是罗湖(这不是废话!)是一条红色的泥浆小河,通过大楼大厅,远处可看到hk的电网(这到底是不是我们国家!居然对国民用电网).忘记说了,过关前最好换好hk dorlers,罗湖口岸里有国营银行的我去的时候换的111:100的还可以的,回来的时候已经涨到114:100了! 里边的所有通道都是分开的,持hkid和持护照and通行证是不一样的,大家注意标识牌,走左边的通道,那是中国内地居民通道(非常小,只有1/3宽度,2/3是香港公民的,有一种二等公民感觉,很不爽.)先过中国的海关,过程很简单看一眼在你的通行证上敲一个图章,记住一定要直视海关同志,即使对方太帅太好看,你心动也一定要看着对方,否则被拉到边上office里聊天喝茶就不好玩了.再走一段就是香港海关了过程一样,一般不会和你说话,如果和你说用英语回答,当然如果你粤语水平ok也无所谓,同样要直视对方,不然后果是一样的.<br /><br />这样你就已经站在资本主义世界的门口了,恭喜你,接下来要做几件事情:<br />1 到711超市(seven eleven )买一张pccw(盈科电讯)的电话卡,有两种 68的打国内加拨0060后不要idd费用打一个hk电话.25 短信.20 另外一种48的没有打国际优惠,但是打本地电话.12,自己选择,卡里金额都是60元.<br />2 到火车站大厅买八达通 150港币,所以你在到港之前一定要换港币,这里没有兑换点,人家不收人民币,所以没有港币你就自己走路吧.150港币里边50押金 100车费,这个卡很有用,路边咖啡机 麦当劳 kfc 所有公交 都可以用.而且可以欠钱很多,我回来的时候卡里0.1进站的最后卡里-30了,呵呵.<br /><br />三 行路篇<br />接下来没什么选择坐上九高铁,往九龙坐,这里要说一下,由于香港鄙视内地居民and保护hk纳税人利益,因此它从罗湖出来地铁非常贵的,我做到九龙换乘点就要30块港币! 但是据说只要不是罗湖上来的就会减半18好像,这是一种歧视,顺便抗议下.香港地铁很发达,但是很贵,但是他的公交更贵,下面说几点tips:<br />1 不要随便坐短途坐公交.香港的公交都是很长线路的,但是它又是一票制.所以上去可能会花到10块 20块港币,如果你坐一站两站就亏死了还不如打车呢(特别注意这里不能过海的,过海出租就要+100的.).它的站程都非常短,所以你一辆站千万不要随便上公交,除非你钱很多.<br />2 建议大家在港岛和其他一切有有轨电车的地方做有轨电车,因为这个只要2元港币,而且随便做,速度在堵车的市中心比飞机慢和汽车差不多,当然你开的是萨博尼斯(在香港bmw就是上海大众,马路上随便看看的,5系7系就别号称自己开的是别摸我了,唉...)可能会比它快点,当然前提是你不怕被超速罚款,这里罚款都是k为最小单位的大家注意.<br />3 如果短途又不想走路,可以做地铁,香港地铁4站大概是5元(市中心),从港岛做到油麻地是10.xx元(八达通卡是有折扣的),顺便说下,上海的8号线站内布局设计和香港的地铁是完全一样的,无语了都.欠缺的是人家的刷卡机可以执行很多不同折扣,我们的刷卡机程序太差,相比起来绝对豆腐渣工程.<br />4 千万不要在忙时坐texi,除非你真的很有钱,我提醒你了,如果你执迷不悟不要到时候被人家扣留.<br />5 不能在地铁里吃东西和喝水,我第一天就是拿了水在车上喝,结果所有人看着我,我不知道为什么,后来才知道原来这里地铁喝水被拍到要罚3k港币!人家一定想这个大陆仔真tmd有钱啊!这点大家一定要记住,异国土地不要乱扔不要乱吐不要乱吃不要乱喝,否则后果很严重.<br />6 香港其实很小,它的地图比例尺非常小,看看一长路,走走20分钟,这样说如果按照我军战术要求,全负荷行军的话从北角出发到上环应该在30分钟内完成,否则肯定是不合格的,一般正常人我觉得1个半小时ok,沿途走走省钱and有风情.<br />7 passport带身上,有问题可以找到中国领事馆help(应该叫 china administrator house)<br /><br />四 游玩篇<br />其实这个问题我也不知道怎么回答,因为香港给我的感觉除了新鲜并不怎么好玩,因为到底是大城市,只是异国有种不同的风情罢了.不过我还是推荐几个地方吧:<br />1 赤柱,这是一个渔村,看海的地方,请大家带好泳衣,那里下水游泳不要钱,但是赤柱沙滩的杀质量不好,呵呵,水是蓝色的很好看,大家可以去happy,坐车可以坐65 6x 6a还有一些小巴,终点站就是赤柱.那边有很多小摊可以买东西,不过那里吃饭太差,贵又不好吃,如果你讲究的就吃mc吧,这个全世界一样,呵呵.<br />2 九龙地区,这里是购物区域,大家可以地铁到油麻地然后向南走,如果不知道南,请大家在佐敦道上向门牌小的方向走.这里购物基本上可以看看这些:山东道上电子商品和化妆品 女人街的衣服价格我看看一般般,而且没有什么好看的男人衣服,波鞋街,不过这里东西也不便宜吧,我这么觉得.<br />3 上环 中环 湾仔 这是一条线路,大家可以随便走走,这里附近有很多老房子(注意不要沿着jennessy大道走)要纵向穿越,如果不太明白这个意思请参考蛇的行径规则.上环可以看到去大奥的码头和很多古老的房子,中环是商业区,是香港白领战斗的地方,但这里两侧有很多著名地方: 王力宏走过的石板街,你可以用上海话喊中国不能亡!不要用国语,这里用国语是要遭到鄙视的,这个后文再说. 可以看看后面的兰桂坊,这些都是hk老百姓的地方你可以看到很多和上海大街小巷一样的感觉,其实再发达还是有穷人的.湾仔: 湾仔两个地方要去的1 缆车要坐 33港币return票, 2 香港公园要看的free! 有时间可以造访下香港大学和著名的富人区域----半山区.<br />4 还有大屿山之类的这次我没有去<br />5 海洋公园,我没去推荐大家一下,感觉很好<br />6 迪斯尼,这个地方比较俗,大家愿意俗可以去,我不太喜欢.<br />7 香港湿地公园,地方小,但是风景可以<br />8 香港博物馆 艺术博物馆,周三免费,大家注意<br />9 星光大道,大家可以坐star ferry然后走星光大道,star ferry很便宜2.2港元,而且很有味道,沿途摄影很不错,星光大道么就那样,你有恋星情节可以过去甲亢一下,没有的可以拿着相机等黄昏华灯初放,太美了!<br /><br />五 购物篇<br />大家去hk肯定买东西的,这里有点小提示给大家:<br />1 化妆品这里肯定便宜,建议大家带空箱过去采购绝对可以回去后把路费挣出来.<br />2 电子商品不算便宜,如果你去买行货,那么推荐大家这些地方: citicall 丰泽 百老汇.如果你英语ok可以去旺角电脑城和298电脑特区.我买了一个罗技v220鼠标 198港币很合算.<br />3 这里买东西有很多买1送1之类的套餐推荐大家买这个,除非你很有钱.<br />4 这里有很多时候会有样品折扣!我走的那天看到九龙的tomlee music的korg 88键合成器样品1.1万太超值了.但是这里正价价格一般我看到卡西欧nc30p电钢(76key) 3200港币和国内差不多.<br />最后和大家说说体会,我去之前盛传香港东西便宜,但实际上并非如此,如果没有打折真的感觉不便宜,如果你和我一样买比较低价格的东西也不会觉得便宜最多拿个汇率而已,但是这里打折起来很厉害,我买的佐丹奴快干衬衫50块港币 褶皱衬衫 60块...<br /><br />六 人文篇<br />1 香港人其实不算好客,但是人的素质很不错,但是这里有一样大家一定要注意,如果你没有问题开口请用english,否则感受二等公民就是你自己的问题了.而且香港40+的人基本听不懂普通话看不懂简体字,所以大家不要期望什么了,赶快听美国在线吧.<br />2 出门要谦让,随口要sorry,这里人很多也很容易撞到,但是一定要说sorry,不要怪我没有提醒<br />3 吃饭付钱请拿order过去到帐台,这里不接受叫买单的,我第一天就被一个老伯鄙视了,唉...当然如果你想遣送回国可以试试吃霸王,提醒下这里有黑社会的.<br /><br />七 吃饭篇<br />香港以吃为贵,一般不上馆子吃拍档和小店人均40港币,饭馆好点的1k+,所以不要充自己很有钱跑到中环的高级餐馆去,除非你想被遣送.但这里吃的很特色,推荐大家吃吃鱼丸粉 猪油渣面 还有很多小食.记住一定要吃套餐,可以便宜许多,比如主食+饮料可以便宜8块等等.如果你没钱又觉得去小馆子吃很没有脸面,那么你可以吃大家乐,这里的大家乐秒杀国内的,这里大家乐东西便宜量又足,我3天午饭吃的这个,烧味双拼饭+冻奶茶是我的最爱 32 港币.另外香港kfc没有人气,所以东西比国内不知道便宜多少,我看到很多黑鬼都吃这个,最近有个28.5的套餐 有大汉堡1个 鸡翅两对 薯条*1 玉米*1 鸡块*2 +可乐大杯.<br />超市里的东西其实也贵,但是看看国内飞涨的物价和飞涨的汇率你会觉得还可以,比如6元一斤的黄瓜啦,呵呵,不过这里南亚水果便宜,大家爱吃香蕉 芒果 荔枝 榴莲的可以上,价格比国内便宜一半去(已经折合人民币)<br />超市里的水果蛋糕(超市里的!)10块一个,国内我看到tesco也是10元一个,大家有兴趣可以去吃,推荐去的超市:wellcome(惠康).<br /><br />大致这些吧.我觉得足够你出行用了,呵呵.
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/577/</link>
<title><![CDATA[领导人应不应该道歉]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[生活心语]]></category>
<pubDate>Fri, 20 Jun 2008 03:06:50 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/577/</guid> 
<description>
<![CDATA[ 
	今天看到韩国总统向国民道歉的消息.前些日子,韩国放开了进口牛肉的限制,遭致大批国民反对,最后的结果是政府屈服,今天还放出了李明博公开道歉的消息.当然是件本身来说总统并没有错,他这么做也是因为迫于连任压力,他的支持率上任开始一直在下滑,不得不用一些态度来表明自己.<br /><br />其实报道中的含义很清楚,这是一种猎奇,在我们的思想里领导都是对的,错的也是对的.提倡什么服务型政府,不知道是怎么服务的.最近中国经济一塌糊涂,这种情况下也没有见到人来道歉.空降部队准备伞降灾区,但下去15人之后发现如果是圆顶伞根本无法跳下去,导致任务取消,而下面15人在很艰苦的条件下坚持着,这样的指挥失误难道不应该向全军指战员道歉吗?这样的事情比比皆是,但我们的领导态度是我没错,是执行的错了.宏观经济的问题国务院没有责任吗?就把他推到了央行和证券市场.让我们来回顾下CPI事件吧.<br /><br />大概是去年的上半年,突然猪肉开始疯狂涨价,至于原因哭笑不得吧:<br /><br /><a href="http://news.xinhuanet.com/fortune/2007-06/12/content_6232348.htm"><a href="http://news.xinhuanet.com/fortune/2007-06/12/content_6232348.htm" target="_blank">http://news.xinhuanet.com/fortune/2007-06/12/content_6232348.htm</a></a><br /><br />这里是新华网的报道,我来总结下:<br />猪肉涨价是因为 去年猪肉太便宜(那前年 再前年呢? 为什么市场经济下出现了全国农民养猪齐亏损?) 然后今年上涨是因为去年没赚钱,而且今年饲料涨价了,加上猪疫情(疫情席卷全国猪了?) 所以开始大幅涨价,听起来很有道理.可恰恰中了心理学上的因为所以惯性而已.<br />请大家理性分析下:<br />文中提到了涨价原因首先是因为农产品涨价,因为去年国际小麦玉米都涨价了,所以饲料也涨价了.那么请问,我们国家的农产品有多少和国际价格挂钩的,退一步讲,又有多少农产品是国际挂钩的,蔬菜挂钩吗? 显然不会. 玉米呢?我们的玉米价格比美国高很多! 不知道这什么挂钩? 小麦呢? 如果真的挂钩倒是可以大幅涨价了,可是我们国家粮食进口本来就不多,出口也不多,这根本不可能挂钩,大米也是,因为我们是自给自足的.那么到底什么是涨价的因素呢?是市场吗?所有的粮食都是国家控制的,并没有多少市场因素,那么到底什么原因呢?显而易见了.<br /><br />而之后抛起了一阵全国涨价风潮,但新闻每天都在报道,坚决抵制涨价,但是价格还是涨上来了,不知道,有句笑话知道不? 现在100元都不敢进超市了.物价上涨是显而易见的,而且是全面上涨,哪里来的控制得到?人民生活不受影响?不受影响的代价是我们的恩格尔指数在不断上涨中,国家统计局敢报这个数据吗?<br /><br /><a href="http://www.stats-hb.gov.cn/tjj/article.do?type=category&amp;articleid=8252"><a href="http://www.stats-hb.gov.cn/tjj/article.do?type=category&amp;articleid=8252" target="_blank">http://www.stats-hb.gov.cn/tjj/article.do?type=category&amp;articleid=8252</a></a><br /><br />看看这篇无耻到极点的批判恩格尔系数的文章吧,都不想去辩驳了.<br /><br />最后价格上涨成了市场调节的最终产物,那么市场调节早干嘛去了?我们不是市场经济好多年了么?真是说来可笑的事情!说到底国家是推动涨价的最终动力,但没有人会说这个词,因为我们只有一种声音,在这么高的cpi下我们居然还能报道人民安居乐业,生活幸福,收入水平远高于物价上涨!这么可笑的报道居然出自我们国家的一级媒体新华社,真的是听累了,听傻了.<br /><br />今天国家上调了电价和油价,但文中说民用电不调,想说明什么?想说明抑制价格上涨因素吗?这恰恰又是一个文字游戏,难道上调工业用电就不会导致工业品价格上升了? 还说炼油企业亏损厉害,那么中国石油去年不是缴税大户么? 还缴了很多暴利税,既然是巨亏缴什么暴利税?不说了,就当看笑话吧,这样挺好,给工作减压.
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/576/</link>
<title><![CDATA[来看看党的领导人简历吧]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[生活心语]]></category>
<pubDate>Thu, 19 Jun 2008 15:24:50 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/576/</guid> 
<description>
<![CDATA[ 
	<span style="font-size: x-small">黄奇帆，男，汉族，1952年5月生，浙江诸暨人，大普，工商管理硕士，研究员，1968年9月参加工作，1976年3月加入中国。重庆市委常委，市ZF副市长、党组副书记，市委企业工委书记（兼）。 1968.09-1974.09 上海焦化厂焦炉车间工人； 1974.09-1977.09 上海机械学院仪器仪表系自动化仪表专业学习； 1977.09-1983.07 上海焦化厂设备科技术员、助理工程师、工程师； 1983.07-1983.12 上海焦化厂副厂长； 1983.12-1984.04 上海市委整党办公室联络员； 1984.04-1987.01 上海市经委综合规划室副主任； 1987.01-1990.06 上海市经济信息中心主任（副局级，1988.09获副研究员职称1988.12-1993.09上海市第六届青年联合会副**）； 1990.06-1993.01 上海市浦东开发办公室副主任； 1993.01-1994.09 上海市浦东新区管委会副主任（1993.12明确为正局级，获研究员职称）； 1994.09-1995.04 上海市委副秘书长兼市委研究室主任（1994.10-1995.05借调中央办公厅工作）； 1995.04-1995.07 上海市委副秘书长； 1995.07-1996.03 上海市委、市ZF副秘书长； 1996.03-1998.04 上海市委、市ZF副秘书长，市体改委副主任； 1998.04-1998.05 上海市委、市ZF副秘书长，市经委主任，市工业工作党委副书记； 1998.05-2001.10 上海市ZF副秘书长，市经委主任，市工业工作党委副书记（1998.02-1999.12在中欧国际工商学院在职高层管理人员工商管理硕士课程班学习，获工商管理硕士学位）； 2001.10-2002.05 重庆市副市长； 2002.05-2002.10 重庆市委常委、副市长； 2002.10- 重庆市委常委，市ZF副市长、党组副书记，2002.11兼任市委企业工委书记。 九届全国人大代表，市二次党代会代表。<br /><br />能看出什么?<br /><br /><em>1968.09-1974.09 上海焦化厂焦炉车间工人； 1974.09-1977.09 上海机械学院仪器仪表系自动化仪表专业学习<br /></em><br />这段时间是什么?中国的文革10年,那个年代大学是不会公开招生的,能进去的无非这么几种:1 官宦子弟 2 四人帮培养对象;我不知道这个人是什么来路,更倾向于后一种,文革是什么?一场政治高层风波引发的全国灾难,而这样的人能在那个社会作为优秀人才,那么他在干什么呢?不用联想,可以肯定就是工农兵带头人了,炒家,大字报,烧杀抢掠,而就是这样的人获得学习机会,那个时代对学历还是有一种单纯崇拜的,这个同志果然开始扶摇直上了,洗去了文革侩子手的称号,他似乎轻松不少哟.<br /><br /><em>1998.05-2001.10 上海市ZF副秘书长，市经委主任，市工业工作党委副书记（1998.02-1999.12在中欧国际工商学院在职高层管理人员工商管理硕士课程班学习，获工商管理硕士学位）；<br /><br /></em>这是具有决定性的,一个侩子手变成了高学历的人才就这么简单,拿薪学习,呵呵这就是中国特色吧.来看看美国吧.bill gates他大学没有毕业,最后MIT给了他一个名誉博士的称号,什么叫名誉,呵呵就是号称而已,实际上只是一个空虚的头衔而已,但在中国却去掉了荣誉二字,那就完全变了.这些人恬不知耻地在自己的学历栏填上了master,呵呵.</span>
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/575/</link>
<title><![CDATA[我加入苹果团了]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[生活日志]]></category>
<pubDate>Tue, 17 Jun 2008 17:24:41 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/575/</guid> 
<description>
<![CDATA[ 
	偶然的机遇买了台苹果最便宜的产品 ipod shuffle 没想到第二天便被我扔进洗衣机洗了,等我发现的时候已经甩干了...心想这下完了...拆开来发现里边没什么水,估计是甩干了...吹了一个晚上,今天晚上试验上电,没有想到居然神奇地好了,虽然电池明显有些问题,但问题不会太大大不了去换电池就好了,心里很开心,没有损失太大,下次要小心了,这东西太小是优点又是缺点,别在衣服上我居然直接就扔进洗衣机了唉...<br /><br /><img class="insertimage" src="attachment.php?fid=76" border="0" width="400" height="600" /><br /><br />但这次终于验证了苹果的电子设计能力真是超级赞,不佩服都不行了.
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/574/</link>
<title><![CDATA[对guice的盲目评价]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[技术私语]]></category>
<pubDate>Thu, 12 Jun 2008 15:57:23 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/574/</guid> 
<description>
<![CDATA[ 
	guice很火热,大家都说好,并且把它和spring相提并论了,带着对google无比的崇敬我开始了我的guice之旅.声明目前还不能算对它有研究我总共就看了2小时的文档外带几个例子,还算不上了解,只是知道而已.但我看完之后总觉得有点不一样的感觉.<br /><br />如果说guice是一个应用框架我觉得还差一点,实际上不管实现如何,最后总能对应一些东西,很明显它的Module就是spring的applicationcontext.但两者是完全不能对等的guice是一个接口,而application是一个工厂.如果application理解为一个虚工厂的实例的话,那么module就是他的工厂类的接口描述.换句话说guice在入口上是空的,那么有朋友要反驳我了,不是呀,这个module要自己实现的写绑定类的,这样就等于把guice推向了和脚本语言类似的地方,但是别忘记java需要pre-complie的这样这种方法就很不灵活,而spring恰恰用配置解决了这个问题,我个人认为guice的前端依然可以很轻易地套上一个spring或者自己写个简单的配置读取,这样等于把guice拉到了spring的老路上.当然目前我不知道guice有没有什么自动化功能,因为不清楚,如果有,请大家告诉我,那么这点问题就不是太大.<br /><br />但是guice本身来说它规定了一种模式,但是实现几乎需要你来实现,实际上这是很双刃的,一方面它自由,可以随心所欲,另外一方面它又不能在不进行二次开发情况下达到生产级标准,而且个人的实现会不同,下面写两种我对guice的模式设计:<br />1 将module工厂化,然后对应每个类的植入都对应一个annoation方法这个方法共同继承了一个来自自己设定的配置虚类,把植入的配置传入就可以直接联系到,而且这样我们会看到如果植入的service对会对应它的一个植入配置类,这个类需要自己维护.<br />2 学习spring加一个配置就好了,至于别的代码侵入性其实不大,我不认为写@有多大的侵入性这些代码就算移植也能用,当然不能移植到1.4上,呵呵.<br /><br />当然guice我会继续关注,看看它到底怎么回事,至少现在我还不应该说什么的,因为我根本就不懂,只是想提一些想法和大家共勉.
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/573/</link>
<title><![CDATA[单纯的民主]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[生活心语]]></category>
<pubDate>Wed, 11 Jun 2008 02:49:34 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/573/</guid> 
<description>
<![CDATA[ 
	早上利用不在长城防火墙系统控制下的网络看了部64的纪录片.当离开一个国家的时候走在他国的土地上,你会有一种自由的感觉,我也感觉到了.有位同学提醒过我,你只是待在一个不需要用护照只需要用类似签证东西就可以去的地方是一个国家,这种言论很危险.我到不这么认为,所有的东西只是一种说辞,是一种面子,事实上还是两个国家,事实如此.<br /><br />片中除了那些血腥和震撼,它也详细地讲述了整个故事,从2月份到6月份,事件在不断升级中.但是片中最令我记忆深刻的是当年的几位组织者反思,他们承认了在决策上的幼稚和失误才造成了后面那么大的伤亡,自己和几个领导者都是有责任的.<br /><br />而另外一种声音,自古革命都是用自己来换来的,无论哪次革新只能用自己来换,没有这种勇气就不用去参加了,你不够格的.而19年前的这场事件正是在绝食中不断升级.<br /><br />其实很多事件在它的背后是复杂的,就像民主一样,民主有那么单纯吗? 民是人民的民,主是主人的主,那么多年看到的并不是这样,没有真正的民主.任何人任何人只要有了这个权利它一定会变得和历史上的所有相关人物类似.而这些问题也同样出现在了运动中,纪录片的后期开始描述到了他们内部的权利斗争和混乱,就和所有的农民运动一样,自认为素质很高的大学生们,其实都是一样的,在权力和利益面前谁都会毫不犹豫地迷失,这是很值得人们思考的.什么是民主?全民选举是民主吗?显然不是,也没有任何一个国家拥有过真正所谓的民主,美国是全民大选,但不是每个人都有权利选的,这点我说过很多次,请那些自以为美国是民主国家的同学去重新学习一下,你们要的民主是要出大乱子的,历史已经证明了.<br /><br />柴玲在片中不断忏悔有些行为,但是她已经无法控制,到了后期大量涌来的不知道具体情况的学生加入,使得队伍在流动,但人数没有减少,但是那些后来者只是一腔热情,但什么都不懂,加上一些外部的支持使得这场单纯的运动带上了政治色彩,那是悲哀的,也注定了他的悲惨命运,这是宿命,并没有值得同情的地方,了解历史只是让我们更好地学习过去的经验,对于我们这些都是必须的.<br /><br />很多东西只能用历史来证明,他们所想改变的在今天没有得到任何改变,而当年的人和信念已经完全消逝,现在没有再多的热情了,就不久之前一些自发的爱国行为,又一次看到了那种血腥,可是血腥是单纯和优质的,又能怎样?我们从来都是爱国的,可是除此之外呢?<br /><br />看着看着不断在哭,止不住地掉泪,很难解释这种感觉也许国内太压抑了.就像很多天以前看到地震的报道一样,我们的军队和士兵都是伟大的,但又能怎样,他们改变不了社会的走向,我们在走向哪里,相信大家都清楚,已经不是再呼喊民主能做到的,不相信政治,不相信民主.<br /><br />我从来说的一句话就是:没有枪请不要拿出你的政治理想来,毫无意义.<br /><br />最后说一句,强烈鄙视政府对youtube的封锁,自封只能带来负面效应,只有开放让别人看到别人在说什么,我相信所有的人都会用自己的世界观辨别出是非来,何必用封闭呢?那些无耻的诬赖有多少人会相信?你没有错为什么要害怕,而你表达的害怕只能起到另外一种反作用!还得弹簧的故事吗?你越压就会越反抗,就是这样的,强烈要求政府开放所有youtube内容!
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/572/</link>
<title><![CDATA[共享一个filter合并类]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[技术私语]]></category>
<pubDate>Wed, 04 Jun 2008 10:23:12 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/572/</guid> 
<description>
<![CDATA[ 
	<p>正好在用随便写了一个,把很多filter合并,不是很完善.<br /></p><p>import java.io.IOException;<br />import java.util.ArrayList;<br />import java.util.BitSet;<br />import java.util.List;</p><p>import org.apache.lucene.index.IndexReader;<br />import org.apache.lucene.search.Filter;</p><p>/**<br />* @author edward pro<br />* <br />*/<br />public class MultiFilter extends Filter &#123;</p><p>/**<br />* <br />*/</p><p>private List&lt;Filter&gt; filterList = new ArrayList&lt;Filter&gt;();</p><p>public List&lt;Filter&gt; getFilterList() &#123;<br />return filterList;<br />&#125;</p><p>public void setFilterList(List&lt;Filter&gt; filterList) &#123;<br />this.filterList = filterList;<br />&#125;</p><p>public MultiFilter() &#123;<br />// TODO Auto-generated constructor stub<br />&#125;</p><p>/*<br />* (non-Javadoc)<br />* <br />* @see org.apache.lucene.search.Filter#bits(org.apache.lucene.index.IndexReader)<br />*/<br />@Override<br />public BitSet bits(IndexReader reader) throws IOException &#123;<br />// TODO Auto-generated method stub<br />BitSet bits = new BitSet(reader.maxDoc());<br />for (Filter filter : this.filterList) &#123;<br />BitSet tBits = filter.bits(reader);<br />bits.and(tBits);</p><p>&#125;<br />return bits;<br />&#125;</p><p>public void addFilter(Filter filter) &#123;<br />this.filterList.add(filter);<br />&#125;</p><p>&#125;<br /></p>
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/571/</link>
<title><![CDATA[六一 二零零八]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[小资情调]]></category>
<pubDate>Sat, 31 May 2008 14:16:33 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/571/</guid> 
<description>
<![CDATA[ 
	越长大就越希望自己变成孩子该多好,没错,所以即使对节日那么无所谓的我也会去关注下孩子的节日,虽然儿童节的初衷稍微高尚了点,但是粗俗的我可以不理,今天就是我的节日!<br /><br /><img style="width: 300px; height: 450px" src="http://img.blog.onlylady.com/user/0000/0042/7301/1212239240_1572255946.jpg" border="0" width="300" height="450" align="middle" /><br /><br />来看看今年的六一特别照片,今天选择了红领巾,记得小时候我是六一节入团的,所以一定要带红领巾.好吧,看看我认真学习的好样子吧(道具齐全没有办法,呵呵)<br /><img style="width: 400px; height: 600px" src="http://img.blog.onlylady.com/user/0000/0042/7301/1212240603_1371577443.jpg" border="0" width="400" height="600" /><br /><br />带上红领巾申请果然不同了,呵呵,可惜多了作秀的感觉...<br /><img style="width: 600px; height: 400px" src="http://img.blog.onlylady.com/user/0000/0042/7301/1212240730_1255887300.jpg" border="0" width="600" height="400" /><br /><br />最后来一张搞笑的:<br /><br /><img style="width: 600px; height: 400px" src="http://img.blog.onlylady.com/user/0000/0042/7301/1212240641_966604209.jpg" border="0" width="600" height="400" /><br /><br />最后来点正常的照片吧:<br />岸边有人玩遥控船,很专业,我暗暗的说这东西比我的本本+相机都归啊,乖乖,那么就catch it.怎么样我的手动对焦有没有小白的速度了?小小地自满一下,呵呵(明显自我感觉太好,偷偷说,这其实是固定对焦拍摄的,呵呵)<br /><br /><img style="width: 600px; height: 400px" src="http://img.blog.onlylady.com/user/0000/0042/7301/1212240618_333748440.jpg" border="0" width="600" height="400" /><br /><br />出门的时候一辆车特别美拍下来吧...<br /><img style="width: 400px; height: 600px" src="http://img.blog.onlylady.com/user/0000/0042/7301/1212241170_1317528020.jpg" border="0" width="400" height="600" /><br /><br />总结:今年六一过得很有特色,充满创意,期待明年的!唯一的遗憾照片居然全部iso400!唉...大意了大意了...
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/570/</link>
<title><![CDATA[一些有意思的回复]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[生活日志]]></category>
<pubDate>Thu, 29 May 2008 18:36:45 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/570/</guid> 
<description>
<![CDATA[ 
	前些天针对一些发自抵制法国这样的反中国政府和公开抵触北京奥运的行为作出很多激进行为的人和许多好事者,我的本意只是想提醒大家不要行为国家爱国有度,不想来了很多好事者开始谩骂,我来回应一下吧.<br /><br /><div id="blogcomment114619"><div class="commentbox"><div class="commentbox-title"><em>孤月 </em><a href="http://so.bmforum.com/ip/?ip=222.70.163.215" target="_blank"><em><img src="post/549/template/blackwhite/images/ip.gif" border="0" alt="IP" title="IP: 222.70.163.215" width="47" height="30" /></em></a><em> </em><div class="commentbox-label"><span style="color: #666666"><em>2008/05/25 23:55 </em></span><a href="javascript: showadminreply('com_114619');"><span style="color: #333333"><em>[添加/修改回复]</em></span></a><span style="color: #666666"><em> </em></span><a href="javascript: showdeladminreply('114619');"><span style="color: #333333"><em>[清除回复]</em></span></a><span style="color: #666666"><em> </em></span><a href="javascript: showdelreply('114619', '549');"><span style="color: #333333"><em>[删除评论]</em></span></a><span style="color: #666666"><em> </em></span><a href="javascript: showblockreply('114619', '549');"><span style="color: #333333"><em>[屏蔽评论]</em></span></a></div></div><div class="commentbox-content"><em>法国一个市政府是不代表法国人民的，就像一些法国人，以为的达赖喇嘛什么被迫害要求ZD这样的人，莫须有就觉得中国怎么怎么，莫须有就因此反对我们的奥运一样<br /><br />但是，我们怎么给那些人上一课，也是要考虑考虑的，不能只给中国人上课啊</em> <br /><div id="replied_com_114619" class="quote" style="display: none"></div></div></div></div><div id="blogcomment114618"><div class="commentbox"><div class="commentbox-title">-------<br />不是上课只是提醒一下,怎样才能不过激,我们的国家现在太需要安定了.<br /><br /><br /><br />topcuicui <a href="http://so.bmforum.com/ip/?ip=222.70.163.215" target="_blank"><img src="post/549/template/blackwhite/images/ip.gif" border="0" alt="IP" title="IP: 222.70.163.215" width="47" height="30" /></a> <div class="commentbox-label"><span style="color: #666666">2008/05/25 23:54 </span><a href="javascript: showhidediv('com_114618');"><span style="color: #333333">[添加/修改回复]</span></a><span style="color: #666666"> </span><a href="javascript: showdeladminreply('114618');"><span style="color: #333333">[清除回复]</span></a><span style="color: #666666"> </span><a href="javascript: showdelreply('114618', '549');"><span style="color: #333333">[删除评论]</span></a><span style="color: #666666"> </span><a href="javascript: showblockreply('114618', '549');"><span style="color: #333333">[屏蔽评论]</span></a></div></div><div class="commentbox-content">没有粗俗的中国人，怎么体现出你的高雅与一尘不染......<br /><br />如果可以，我也想好好的粗俗一番.....<br /><br />建议你一边照镜子，一边写 <br /><div id="replied_com_114618" class="quote" style="display: block"><div class="quote-title">---------------------------------------------------------<br />&nbsp;回复于 2008/05/30 02:12</div><div class="quote-content">如果想激进请携带武器去炸掉戴高乐机场吧,谢谢.</div></div></div><div id="com_114618" style="display: none">马丁叔叔 <a href="http://so.bmforum.com/ip/?ip=222.70.163.215" target="_blank"><img src="post/549/template/blackwhite/images/ip.gif" border="0" alt="IP" title="IP: 222.70.163.215" width="47" height="30" /></a> </div>马丁叔叔 <a href="http://so.bmforum.com/ip/?ip=222.70.163.215" target="_blank"><img src="post/549/template/blackwhite/images/ip.gif" border="0" alt="IP" title="IP: 222.70.163.215" width="47" height="30" /></a> </div></div><div id="blogcomment114617"><div class="commentbox"><div class="commentbox-title"><div class="commentbox-label"><span style="color: #666666">2008/05/25 23:16 </span><a href="javascript: showadminreply('com_114617');"><span style="color: #333333">[添加/修改回复]</span></a><span style="color: #666666"> </span><a href="javascript: showdeladminreply('114617');"><span style="color: #333333">[清除回复]</span></a><span style="color: #666666"> </span><a href="javascript: showdelreply('114617', '549');"><span style="color: #333333">[删除评论]</span></a><span style="color: #666666"> </span><a href="javascript: showblockreply('114617', '549');"><span style="color: #333333">[屏蔽评论]</span></a></div></div><div class="commentbox-content">我们来看看这件事情的本质都是法国政府的问题？<br />搞笑！正因为法国政府是民选出来的，它才最有资格代表法国人民。 <br /><div id="replied_com_114617" class="quote" style="display: none"></div></div></div></div><div id="blogcomment114616"><div class="commentbox"><div class="commentbox-title">--------------------------------------<br />这位同学对民主的理解还是有些偏颇的,如果民主真是民意,恐怕国家就打成一片了,请仔细参看美国宪法和美国的选举过程我相信你一定会对所谓的民主国家的&quot;民主&quot;有深刻的认识.如果还是坚持己见,欢迎探讨.<br /><br /><br />安达小麦 <a href="http://so.bmforum.com/ip/?ip=222.70.163.215" target="_blank"><img src="post/549/template/blackwhite/images/ip.gif" border="0" alt="IP" title="IP: 222.70.163.215" width="47" height="30" /></a> <div class="commentbox-label"><span style="color: #666666">2008/05/25 23:08 </span><a href="javascript: showhidediv('com_114616');"><span style="color: #333333">[添加/修改回复]</span></a><span style="color: #666666"> </span><a href="javascript: showdeladminreply('114616');"><span style="color: #333333">[清除回复]</span></a><span style="color: #666666"> </span><a href="javascript: showdelreply('114616', '549');"><span style="color: #333333">[删除评论]</span></a><span style="color: #666666"> </span><a href="javascript: showblockreply('114616', '549');"><span style="color: #333333">[屏蔽评论]</span></a></div></div><div class="commentbox-content">说实话 老讨厌那些自命清高把爱国者和流氓划等号的酸人 到关键时刻 他们未必比FQ更具建设性 四川地震 Y都干啥去了？天天在博客里耗口水不是 <div id="replied_com_114616" class="quote" style="display: block"><div class="quote-title"><a href="post/549/user/1/" target="_blank" title="查看他/她的资料"><span style="color: #333333">edwardproAdmin</span></a> 回复于 2008/05/30 02:18</div><div class="quote-content">那你干啥去了?你去救灾了?还是去添乱?还是去打劫物资了?呵呵</div></div></div><div id="com_114616" style="display: none"><br /><br /><br />&nbsp;</div>面包 <a href="http://so.bmforum.com/ip/?ip=222.70.163.215" target="_blank"><img src="post/549/template/blackwhite/images/ip.gif" border="0" alt="IP" title="IP: 222.70.163.215" width="47" height="30" /></a> </div></div><div id="blogcomment114614"><div class="commentbox"><div class="commentbox-title"><div class="commentbox-label"><span style="color: #666666">2008/05/25 22:44 </span><a href="javascript: showadminreply('com_114614');"><span style="color: #333333">[添加/修改回复]</span></a><span style="color: #666666"> </span><a href="javascript: showdeladminreply('114614');"><span style="color: #333333">[清除回复]</span></a><span style="color: #666666"> </span><a href="javascript: showdelreply('114614', '549');"><span style="color: #333333">[删除评论]</span></a><span style="color: #666666"> </span><a href="javascript: showblockreply('114614', '549');"><span style="color: #333333">[屏蔽评论]</span></a></div></div><div class="commentbox-content">LZ不知道抵制家乐福是因为传言他们支持藏独<br /><br />没人说看到了全法兰西共和国人民都在反对奥运，也没人说要抵制什么货吧？<br /><br />LZ也显然没听过星星之火可以燎原这句话<br /><br />兴许他们的爱国热情是过火了点，不过我觉得他们比LZ这般担心国外媒体的评价而指责同胞的人可爱多了 <div id="replied_com_114614" class="quote" style="display: none"></div></div></div></div><div id="blogcomment114597"><div class="commentbox"><div class="commentbox-title">-----------------------------------------------------------<br />我不知道这种激进行为算什么星星之火,大概是让别人更深刻误解我们的星星之火吧.<a href="post/549/user/1/" target="_blank" title="查看他/她的资料"><span style="color: #333333"><br /></span></a><div id="replied_com_114597" class="quote" style="display: none"></div></div></div></div><div id="blogcomment114596"><div class="commentbox"><div class="commentbox-title"><br />sk <a href="http://so.bmforum.com/ip/?ip=222.72.228.115" target="_blank"><img src="post/549/template/blackwhite/images/ip.gif" border="0" alt="IP" title="IP: 222.72.228.115" width="47" height="30" /></a> <div class="commentbox-label"><span style="color: #666666">2008/04/18 10:29 </span><a href="javascript: showadminreply('com_114596');"><span style="color: #333333">[添加/修改回复]</span></a><span style="color: #666666"> </span><a href="javascript: showdeladminreply('114596');"><span style="color: #333333">[清除回复]</span></a><span style="color: #666666"> </span><a href="javascript: showdelreply('114596', '549');"><span style="color: #333333">[删除评论]</span></a><span style="color: #666666"> </span><a href="javascript: showblockreply('114596', '549');"><span style="color: #333333">[屏蔽评论]</span></a></div></div><div class="commentbox-content">too simple,sometime naive<br />寥寥驳你几句：<br />&ldquo;你抵制法国一个超市对法国的影响力有多大？&rdquo;<br />只要有影响力就足够了！<br />&ldquo;更不能代表法国人民&rdquo;<br />切，自欺欺人，欧美的愚民们在多年洗脑后，早已经行将就木。他们的政府正是他们自己选出来的！<br />&ldquo;1 家乐福在法国算什么档次的企业？2 家乐福在中国又有多重要？&rdquo;<br />家乐福毫不重要，它只是一个比较容易接触到的抵制对象罢了。这个抵制也并非以消灭法国为最终目的，只是表明一种态度。<br /><br />(L)Chinat同样也是一种态度，连个symbol都唧唧歪歪，搞什么从长计议。<br /><br />爱国与本国政府无关，我爱的是这片土地，捍卫的是我民族的尊严。 <br />-------------------------------------------------------------------------------------<br />关于西方选举,请参看别人的选举进程,切不可把全民选举理解成民意选举,别忘记了,我们的人大代表都是人民一层层推举出来的,我可以很负责告诉你自我成年来我从未选举过任何人代表我的民意,那是不是这个政府就是非法的呢?呵呵,看来大家的问题都在于怎么理解西方世界的民主和西方世界的选举上,还是这句话没知识真可怕.<br /><br />如果表明态度应该是政府不是百姓,无论人民怎么说最终都应该由政府去采纳民意去表明态度,我们外交部态度有足够强硬吗?<br /><br />msn的标志是一种态度是没错,可是这种态度是由一个商业组织操控的那又怎么说,本质已然变质又谈何态度?<br /><br />民族尊严其实我们已然得到了,中国人民自发的在法国当地的护火行动已经让别人看到了我们的尊严,又何须用一些毫无意义的激进行为去捍卫所谓的尊严,怕就怕那些打着爱国旗号实则发泄情绪的群众和一些不明真相的群众.</div></div></div>
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/569/</link>
<title><![CDATA[尊重科学,尊重知识]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[生活日志]]></category>
<pubDate>Thu, 29 May 2008 18:09:20 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/569/</guid> 
<description>
<![CDATA[ 
	今天看了NHK的关于四川大地震的纪录片,其中让我感到震惊的是日本以及其他国家对于本次地震的专研程度?请不要抱着别人是来看热闹的态度.别国也是真诚帮助我们的,但是他们对于地震关注依然超出了我的预期.日本为此专门出动了卫星进行24小时跟踪,他们绝不是为了获取中国二炮基地的位置,而是把这次地震当作了,自己国家防地震的一次最良好的实地素材,他们出动了最精英的专家进行资料收集,甚至对看到的本国问题立即做出了响应,这才是一种科学的态度,一种专业的精神.我们的&quot;专家&quot;呢?大家一定还记得地震当天cctv坐镇的那位地震专家,一口咬定大震之后不会有余震的荒谬言论,这是小学写在自然常识课本上的常识!<br /><br />对比NHK专业的报道和对地震知识的专业全面解释,再来看看我们的cctv吧:<br /><br />1 请问你被压在下面疼不疼?某记者的现场报道对压在下面的人问这样的问题,请问经过大脑思考吗?<br />2 一位cctv记者对着一位正在喷洒消毒药水的士兵问:请问您喷洒的这种消毒药水是干什么用的?有什么作用?<br /><br />够了,够了,我觉得如果再多说,连我都会感受到耻辱,正像韩寒说的,如果你真的爱国,那么请下辈子继续选择做中国人,这是不是单纯的嘲讽,有那么一点无奈,对比别人的媒体,我们的媒体究竟在干什么呢?<br /><br />请尊重知识,尊重科学.不要敌视别人对我们的轻蔑,因为我们的确没有做得很好.特别是作为国家媒体的cctv,我觉得每个工作人员都应该去看看NHK的这部片子,看看别人是怎么报道的怎么说的.我们的专家是不是也在低调地研究地震,别忘记这是一次灾难,但是这也是一次难能可贵的活体素材,请不要浪费它.<br /><br />为什么外国媒体热衷报道?请不要理解为是幸灾乐祸,他们报道是为了更好对自己国家的国民进行正确的防灾教育和心理预警,别人对我们的灾难同样表示了同情,HNK的画面中充满了温情,我们应该有这样的态度.看看那些超女随便就哭了,我们的媒体究竟在进行什么样的宣传,人的心理如此不堪一击,灾难来了怎么办?我们的媒体缺乏大量的灾难教育只知道和谐,那是要人命的,必须让所有国民知道世界的残酷才能使我们在遇到困难时更坚强,暖棚中的花蕾风一吹就倒掉了.当然这次在开放报道上我们的政府做得还是很到位的,这是一次突破值得表扬和赞赏.<br /><br />我们的军队也应该在这次实战中获得更多的教训,什么叫机动化部队?什么样的装备才是合适现代化战争的,连迷雾的山头都飞不上去还打什么仗?还以为现在是冷兵器时代吗?跳伞前居然没有对空投地区做研究,装备都会带错,如果这是一次战斗,那15名跳下去的士兵只能成为冤魂,好在这只能算是一次实战演习,这些人民军队的精英不会因为错误的指挥而白白损失,我们应该庆幸,也应该反思,战争的信息化和机动化,我们的差距还有多少?<br /><br />为什么媒体一开始报道说无法将重装备运上去,我就说美军可以空投一个整编机械化步兵师,我们为什么不能?当时就有同学职责我这是崇洋内外,说我这是鸡蛋挑骨头,事实又如何呢?几天前空军开始用米-26战机吊装大型挖掘机到山区了.没文化很可怕的.顺便再说说公司的事情,据说又收购了某网站原因是因为据说它能有千万营业额,但是当你打开那网站看到的只是一套dz论坛程序的时候,我只能给予轻蔑的笑声,究竟是技术和业务并举还是只看业务?这个问题和今天的主题无关我不想展开,我只想说如果还要以大老粗自居,那么今天的教训只能继续成为明天的教训,公司历史上收购失败例子比比皆是,为什么还会天真地犯同样的错误呢?<br /><br />当我无数次看到四川震区的报道而掉下眼泪的时候,周围没有人明白我在干什么我在想什么.我哭泣的只是未来,假若我们真的遇到了战争,我们的子弟兵有多少会牺牲在差劲的装备和愚蠢的指挥上,不要再拿5x年前的战争来说明自己有多能耐,时代不同了,尊重科学尊重知识,用开放的心去学习去进步才是真.这次地震我们真的应该学到很多了.
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/568/</link>
<title><![CDATA[杭州行照片一]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[小资情调]]></category>
<pubDate>Tue, 27 May 2008 14:33:41 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/568/</guid> 
<description>
<![CDATA[ 
	这次才匆忙了,虽然带上了所有装备,但身体在炎热的疲劳下不是很好,照片拍得也稀里哗啦,大家随便看看.<br /><br /><img class="insertimage" src="attachment.php?fid=70" border="0" width="600" height="400" /><br /><br /><img class="insertimage" src="attachment.php?fid=71" border="0" width="400" height="600" /><br /><br /><br />
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/567/</link>
<title><![CDATA[zend select小议]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[小资情调]]></category>
<pubDate>Sat, 24 May 2008 23:05:28 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/567/</guid> 
<description>
<![CDATA[ 
	因为最近一直在做zend ext的工作,因此花了不少时间读了zend framework的代码,也比较深入地在使用这个东西.下面有些小小的个人体会.<br /><br />首先是select对象的一些小问题.select中有很多组语句的函数,但这些函数却不会判断是否传入是空字符串,导致输出变成两个单引号,这就要求开发人员在自己的函数里判断,这点不是太灵活.<br /><br />接下来select的毛病是不支持外连接,实际上这个有些让我意外,意外的原因是居然不能支持,而从目前zend的机制来看它对于这个的支持是非常良好的,因为它已经加入了lazy概念也就是在1:n中常使用的一种性能优化模式,也是外连接支持的一个必备因素,这点很有点问题.但是当你仔细看看你会发现这个东西是一个半成品.实际上要做到无限联级的首要就是,必须把数据表映射成代码中的数据对象,虽然在php中没有pojo这个概念,但实际上你可以理解一个具有数据表所有功能的对象为数据表实体(entity bean).但zend目前的db构架显然还不是太完全,它给我的感觉更多的是把db作为了一个颗粒,也就是数据库或者叫做数据连接,这个颗粒度的分层我认为是有问题的.当然你完全可以封装上去,但是这意味着我们需要抛起zend的很多东西,也许这就是zend framework本身开放性带来的弊端.我说过,zf是一个本身完全oo但是可以让开发者完全不用懂oo也能写出好的php分层结构的东西,这就注定了它会具有很多弊端.<br /><br />另外我发现zend的fetchrow有性能问题,虽然他返回第一个结果集,但实际上他没有对数据库查询做优化,也就是说当你传入一个select * from user 那么在zend里用fetchall和fetcherow性能本身差别不大,而理想的做法是在前面的语句中加入limit 1这样才会对性能有本质提高,否则这个方法的存在意义就不大了.<br /><br />另外在数据层它没有预留cache接口,实际上大量的实践证明要提高php低下的io能力只能用缓存技术,否则任何一种主流语言的数据库连接性能都可以秒杀php.而cache接口没有预留意味着我们又要很费劲地在外面包上一层,这也是我在我的zend ext中所干的活.
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/566/</link>
<title><![CDATA[侠客行-阿里巴巴第二届网络侠客大会记]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[小资情调]]></category>
<pubDate>Sat, 24 May 2008 22:45:50 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/566/</guid> 
<description>
<![CDATA[ 
	<table border="0" style="table-layout: fixed"><tbody><tr><td><div class="cnt"><p>5月24日一个人独自来到了杭州目标只有一个阿里巴巴的开发者论坛活动,一早出发就不顺利,没有买到d字头车票结果坐了慢车,到了那边已经中午,活动差不多结束,正好是google研究院在介绍他们的新东西,这个东西有点意思,感觉OEM可以效仿,后面再说.首先看看照片吧.</p><p><img src="http://img.blog.pchome.net/user/0000/0008/1347/1211630350_1527726753.jpg" border="0" width="400" height="600" /></p><p><img src="http://img.blog.pchome.net/user/0000/0008/1347/1211630359_348689965.jpg" border="0" width="400" height="600" /></p><p>google的新东西还是很多的,这次基本上也是google在主导他们的产品,其实我本来对google的手机平台很感兴趣,但是看着看着发现它的最大核心居然不是开源的也没有独立项目,就是它的java虚拟机别小看这东西,这东西号称可以秒杀sun的jdk,但是这东西由于核心技术原因不是开源的!而手机平台的其他部分是一个组件合成的东西,有点像sun的soloris的味道.而且目前来看它的开发ide还不够成熟,这块产品需要很长一段时间来磨练的.</p><p>但是google另外一个东西就很灵了,这是一个基于rss和atom的组件,它把各种信息资源组成widget,然后利用这些资源widget来组成你自己的主页,呵呵这东西有点意思,想想到时可以和oem系统结合结合,我们现在oem还是基于机器人思想的那么致命的问题就是远程调用其实是很麻烦的事情,虽然现在看起来我们用得很好,但是灵活性和扩展性=0,而如果利用google类似的技术那么就...而且google有一个open social server这个东西就是一个返回xml的代理机器,利用这个就可以实现我们的oem需求了,而且使用起来更简单,系统灵活性也很好.</p><p>最后马云上台了,他话不多,但是有几句话还是很在理: 我不懂技术,我是来学习的,虽然我不懂技术但是我尊重技术人员,我一直认为技术是互联网的支柱,但是我不会在公司提技术是第一生产力(这句话我倒是一直挂在嘴边).当年我怀着一颗梦想,终于把阿里巴巴做起来了,现在我要带领更多的技术去成就亚洲的互联网技术中心,这也是我们这个论坛的目标,希望有更多的开发者加入进来.马云其实上台的时候绝对是众星捧月的,公司无数人也对他极其敬仰,但是这个人看起来并不是那么有距离感.我想说的是一个伟大的领导者他需要的是号召力而不是距离感.</p><p>中午吃了知味观,哈哈,看来我每次来都会吃一次,呵呵...下午继续,由于这次会议的限制我只能选择一个分会场,我选择了开放平台,有三个部分都是google的系统,最后是阿里巴巴的saas.</p><p><img src="http://img.blog.pchome.net/user/0000/0008/1347/1211630368_523776819.jpg" border="0" width="600" height="400" /></p><p>第一部分是手机平台的前面说过了,后面是google的open social这个东西其实在我看来提出了一个很好的分层应用概念,这个概念实际上我在上次zend框架里已经提过,我设想把ajax服务从zend里剥离出来变成一个独立产品,开发时不再需要继承于controller基类,这样少了很多麻烦,而前端全部由js完成这样又可以rest(当然这种rest上不了wap呵呵),这个分层应用技术并不复杂也很容易用,但是它的优秀在于他的设计概念,其实我对这个应用没有太大兴趣,因为我写一个简单的就能用,而这个独立的玩具很重,现场演示时就看到了非常麻烦的一面,而且相对来说对开发者的js要求非常高,否则对于一般人没有意义.<br /><br />google code一直在致力做一些他们的框架,让开发者从痛苦中解脱出来,但这种东西对于开发者的提高没有太多好处,所以我可能并不会去用很多,而我感兴趣的是他们本身,一个优秀的框架它本身更令人值得学习,像google的open social里的很多机制和控制的理念是值得学习的,这个也许对一个开发人员更有帮助,就好像我们要理解hibernate的机制其实最基本的就是要深刻地理解sql语言,hibernate本身不会让这种能力退化,反而是在这种数据建模中得到更大的体会,这才是google code的魅力所在.<br /></p><p><br /><img src="http://img.blog.pchome.net/user/0000/0008/1347/1211630373_500610598.jpg" border="0" width="600" height="400" /><br /></p><p><br />最后是这位阿里软件首席构架师,他才26岁,羡慕下,年轻真好!.不过回到阿里的saas平台,虽然我一直不知道saas意味着什么,但是通过他的介绍我终于有了点概念,不过我个人觉得阿里的saas在开发api上还是不太成熟,首先是他的api使用简单但是对于原有代码有一定的破坏性,别忘记了,写得好的spring代码对于spring是不依赖的,因为他是完全基于ioc的(当然你有权利写成耦合的),而目前来说基于阿里的平台能做的大概就是旺旺工具以及卖家服务,应用面还是比较狭小的,因此虽然概念是好的,但是开篇依然需要有一次那个技术,阿里的saas我认为还不是成熟,离工业生产还是有点差距的.</p><p><img src="http://img.blog.pchome.net/user/0000/0008/1347/1211630389_980319143.jpg" border="0" width="600" height="400" /></p><p>最后放个mm照片,这个mm是我们那个会场的摄影,看着她抖花花的抱着小白就...看来大家吃饭都不容易哦...不过不和谐的一幕是某人听着睡着了,呼噜声惊了全场!连阿里的人都怒了.</p><p><img src="http://img.blog.pchome.net/user/0000/0008/1347/1211630391_176414964.jpg" border="0" width="600" height="400" /></p><p>最后谈谈体会,其实互联网正在革命而且这种革命几乎都是地下的,但是等你发现你已经死了,这就是未来的web-app时代的真正方向,呵呵,不过说实话阿里请的人名气响,却大多不会演讲,整个下午说得比较空洞,难怪人家睡着了,呵呵,不过我们真的要看了,不能以大老粗自居啊,不会不要惊不能不学我一直这么说的,可是现实的环境真糟糕,不过我觉得未来还是好的,既然有人喜欢去死,那么就去啦,我不会陪你的.</p><p><br />虽然说是技术论坛,但对于从事这个行业的商务同学也有必要来听听,有些只是概念,了解概念才能了解发展的未来,而不会在原地还觉得自己在发展,这点很重要,不仅能解决自己的前途问题,还能让自己去提升.<br /><br />最后给它一个小建议,由于这次的分会场是不能交叉的,这点不太灵活既然开始和结束时间差不多,而中间我认为可以串场才更好,希望下次能多改进.</p></div></td></tr></tbody></table>
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/565/</link>
<title><![CDATA[谈谈PHP为什么不支持重载和多态]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[PHP日记]]></category>
<pubDate>Mon, 19 May 2008 12:03:22 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/565/</guid> 
<description>
<![CDATA[ 
	突然又想到了，这个问题，不要说我为什么老是用别人的标准来衡量它，道理很简单，因为我要用，最近在对zend framework做一次构架改造，遇到了需要覆盖成员和重载的难题，但是很可惜php是不支持的，只能写很多不同名方法，这看起来也不错，但是仔细想想这样代码的冗余度是极高的，也不利于接口应用。<br /><br />说道这个问题，就要说说我很早以前发现的php bug，最后的结论php具有执行的不确定性，当它找不到默认构造的时候的时候（也就是写入一个参量不存在的php构造方法），这个时候php依然执行了它的默认无参数构造，而这在程序中会引起很大的问题。这个问题我当时从php的bug report得到的回答这是对的，我是错的，我不知道我对对象的理解是否有问题，我只知道它执行了一个我不期望的方法，但这被认为是对的，原因就是当在没有重载概念时当然是对的，为什么不对？因为只要参数不违法就能执行，php似乎对参量控制都很松（这种松是我无法忍受的），php最大的问题就是false是没有值，不是null就是空，这是一个很奇妙的问题，等于在php中机会不会出错的，这也就能解释为什么它不能重载，因为当他发现方法没有时他根本无法判断这到底是不存在还是类没有初始化，因为他们得到的结果都是一样的！而我不知道为什么这么一个愚蠢的问题为什么得不到修正，至少我知道的语言里没有这样false不知道是啥的语言，php就是这样的。牢骚就不说了，写点难看的具有php特色的代码去。
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/564/</link>
<title><![CDATA[悼念汶川死难同胞]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[生活心语]]></category>
<pubDate>Mon, 19 May 2008 01:34:07 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/564/</guid> 
<description>
<![CDATA[ 
	<div align="left" style="text-align: center"><img class="insertimage" src="attachment.php?fid=69" border="0" width="400" height="200" /><br /><br /><br /><br /><br />2008年5月12日一个需要纪念的日子，我们的同胞遭受了巨大的损失，但我们要记住所有参与了救灾的同志们。我们的军队在没有良好组织和集结准备的情况下就第一时间出发了，在没有装备的情况下，士兵冒着生命危险徒手抢救伤员，向我们的解放军全体士兵和一线军官致敬。我们的受灾群众不畏自然刚从死神口中逃出就就地参与救援的行动。感谢参与这次救援的国外救援队，你们专业的素质专业的设备专业的精神都给我们留下的深刻的印象，感谢你们为这些为挽救这些和你们毫不相干的群众的生命作出的努力。<br /><br /><br /><br /><br /><br /></div>
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/563/</link>
<title><![CDATA[军队建设]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[生活心语]]></category>
<pubDate>Thu, 15 May 2008 23:53:13 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/563/</guid> 
<description>
<![CDATA[ 
	救灾时刻不应该说不和谐的，人民在期待军队救援，可是有时候真的很悲哀。每次看到说解放军如何如何努力的时候都会掉泪，为什么又是这样，昨天买了份晨报看着看着就掉泪了，赶紧收起来，并绝对从今天开始不买报纸了，这样在地铁上被人看到很傻，一个大男人。但我今天要说的我们的部队装备。<br />1 调动能力，首先我不想怀疑国家的努力程度，但是这样的调动速度是令人无法接受的。美军的目标是在未来24小时内打击全球任何一个地方，我们呢，如果按照这个标准我们现在大约在2～3天内能组织一只轻武器部队赶赴国内某个地方（我们是防御型部队）这样的速度是无法接受的，不要忘记，轻武器部队在空军火力面前时毫无意义的，掩体变得很脆弱，人家只要用综合爆破弹就全死。看看我们的对手，美军可以在24小时内集结一个整编全机械化空降师，并在24小时内赶到战场，请注意这是全机械化空降师，至少能空投17顿的轻型坦克，以及一些单兵重武器。<br />2 机降部队这么不堪一击吗？山区下雨了，而且从实战价值来说，四川的地形绝对不合适高空伞降，那不是平原，高空伞降会散落一地，但是地势差很大，往往不小心下到山谷上都上不来只能等救援。那么只有直升机机降了，实际上在海湾战争中美军大部分也是采用了特种部队机降+重装备伞降的方式。但我们的报道却说下雨无法进入。就单看目前的主流攻击直升机，ah-64或者卡-52都已经在雷雨天气低空飞行，即使是山区也没有问题当然得比较小心地势，本次地震灾区应该是1300米到2000米不等的海拔，这个高度和天气状况对直升机的影响不大。但我军却还没有这样的运送飞机。试想如果真是要作战，居然无法运送人员和补给这有多悲哀，不要用人的意志来补充这是两码事，意志是意志，我们的人民和伟大，装备是装备，为什么在可以有条件做到的情况而不能呢？原因很简单，我看到cctv的报道，这些直升机貌似是苏军的米-8为原型的飞机，但电子设备很落后，我粗看了下居然没有看到雷达和定位系统只有罗盘，这样的飞机当然在下雨的时候无法飞行了，看不清楚又没有导航设备怎么飞？这也是第一天想机降而无法做到的原因。看看美军，美军不仅能全天候即将还可以在黑夜通过准确的电子导航进行准盲飞，这样的差距，也就是说如果美军利用强大的空中火力压制地面力量，然后组织一支团级编制的机械化机降部队就可以在12小时内轻松占领上海。别忘记地震的时候天气虽然不好，但是地面没有火力，有火力不是更。。。不敢想了，士兵的生命要得到尊重，讲牺牲讲奉献不是让士兵去填炮灰的，否则干嘛不组织人肉团？当然人肉团在现代战争是渺小的，人只要一颗综合步兵弹就可以干掉一整连的步兵！<br />3 机降部队居然没有足够的伞，第二天开始机降了，结果发现环境复杂必须使用翼伞，但我军翼伞储备不够，或者储备不够多，不敢拿出更多战略储备，最后没有跳下去，这是对军人的一种羞辱，我感到悲哀。我们的子弟兵是最伟大的，我们的装备呢，请不要再提朝鲜战争。随便举个例子，上甘岭如果在2008年复制一次上甘岭，当你美军f22投下石墨炸弹的时候还能长期一条大河吗，恐怕已经全军覆没了。战争的条件早就变了，我们需要改变，枪和步兵已经不是战争的主潮流，空军和装甲部队才是主力！我们拥有世界最好自己研发的自动步枪，前几天和朋友聊到97式步枪，这把枪无论从设计还是构架都是非常好的，射击稳定，携带方便绝对是单兵武器的典范，虽然在材料上我认为如果再使用更多非金属材料会更好。看看我们的重装备呢？<br /><br />军队建设任重道远，今天不是想不和谐，四川人民还在苦难中煎熬，我们的国家已经作出了几乎最大的努力，这次真的要感谢党的，没有军队真的完了，但是军队建设的差距已经非常明显。最后再说说救援设备，国外的团队已经来了，人家带来了主动红外仪找人，这种装备是美军特种部队的常备，单兵都有在黑夜和城市作战很有用处，但我军却没有。。。不说了说下去很难过了。
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/562/</link>
<title><![CDATA[六一的礼物准备好了]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[生活心语]]></category>
<pubDate>Thu, 15 May 2008 23:27:21 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/562/</guid> 
<description>
<![CDATA[ 
	越活越小了，唉，无奈也，反正明年就不是法定青年了，咋只能违法一记了，嘿嘿。<br /><br />六一节的礼物：<br />1 奥迪 212系列遥控车。遥控车小时候很喜欢家里条件不好从没买过，只看人家玩过，以前小时候开过几次烧油的遥控车，那个太贵了，呵呵，这个是奥迪比较好的系列，有差速器速度也能达到10km/h不错了，过过瘾。<br />2 红领巾，今年一定要带红领巾，以前的找不到了，那就买几条吧<br />3 想了好多年的经典图书，因为价格蛮贵又是比较理论的，一直没下手买，但是真的很想看，那就借着春风买吧：《<a href="http://www.amazon.cn/mn/detailApp?qid=1210891999&amp;ref=SR&amp;sr=1-1&amp;uid=168-2441322-3853841&amp;prodid=zjbk134791" class="medium">expert one-on-one J2EE Development without EJB中文版</a> 》 虽然还没有看，但是作为程序员或者有志向的同学，这些书不能不看，对思路的把握很有好处，语言有不同，但是思路是相同的，虽然最近一直用php，但我心里的鄙视只能带来更大规模的探索，构架和思想需要不断学习，既然长大了，那么买点不再孩童的礼物吧，哈哈，这个是跟风了，呵呵<br /><br /><br />这点礼物不错了，去年好像买了个cd吧，今年已经腐败很多大东西了，相机 镜头 电脑 接下来还有笔记本，2008真是花钱的大年啊，得好好工作努力多赚点钱吧。
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/561/</link>
<title><![CDATA[ 过了头就有点恶心了]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[生活心语]]></category>
<pubDate>Wed, 14 May 2008 13:59:49 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/561/</guid> 
<description>
<![CDATA[ 
	大地震，举国悲痛。但是cctv的节目开始越来越恶心了。<br /><br />救人救人救人！不要搞什么政治宣传了，求你了，不要秀了，知道你是央戏的自费生，行了。
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/560/</link>
<title><![CDATA[今日看病趣多多]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[小资情调]]></category>
<pubDate>Wed, 14 May 2008 04:11:19 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/560/</guid> 
<description>
<![CDATA[ 
	生病是个痛苦的事情，可是今天却不同。。。一不小心拉肚子了，早上还强撑着上班去，结果一身冷汗，不得不回来，目标长海医院。<br /><br />肠道科一般都会在角落里一个阴森的大楼我走了进去，心了一寒，哪能有731部队的感觉呢，大楼有点潮湿，而且灯光昏暗，医生大概因为病人不多，都懒懒地，我叫了半天才出来一个挂号的。可是看病之后却完全不同了。<br /><br />今天是一个40多的老医生，看起来有点凶，但是在我无敌搞笑地带动下突然就变了以下摘录经典对话：<br /><br />医生：发烧嘛？<br />我：发，<br />医生：多少？<br />我：不知道。<br />医生：那量一下吧。<br />（接过体温计是老式的水银管）<br />医生：放腋下。<br />我：嘎高级。<br />医生：那当然，我们是肠道科。<br /><br />我：我好像轻度脱水了。<br />医生：你拉了几次？<br />我：早上两次，中午晚上没吃，没事，晚上又拉了2次<br />医生： 3 4次怎么可能脱水，我看看<br />医生：嗯，发热是发的，这个脱水。。。<br />我：哦，可是我没力气，腿软。<br />医生：你有热度我看你也许感冒了，回家吃点感冒药，年轻人动不动就没力气<br />我：哦。。。<br /><br />医生：感冒药你有的我就不开了你自己吃，其他的要我给你开。<br />我：哦。<br />我：我一天没吃了。<br />医生：那怎么行，你不吃东西我就要给你吊葡萄糖。<br />我：哦。。。那我现在饿了，马上去吃。<br />医生：那就对了，拉肚子，饭一定要吃的，不吃就让你在这里吊针<br />我：哦。。。<br /><br />
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/559/</link>
<title><![CDATA[让我们每天都感恩吧]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[生活心语]]></category>
<pubDate>Tue, 13 May 2008 15:23:51 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/559/</guid> 
<description>
<![CDATA[ 
	自认是一个很冷漠的人，至少别人的生死在我心中不会引起多少涟漪。可是我错了，一场突如其来的地震，这种感觉却如此震撼。今天有很多照片，每次看，心里的感觉都。。。终于还是忍不住微微地哭了，没有人会明白这点为了什么，这不是懦弱，说不清楚。<br /><br />突然觉得自己很开心，生活的地方很安全，每天都可以上班吃饭，尽管也有很多不快，但那些已经不重要了，如果比较起来，看着那些脸庞你还敢说你是不幸福吗？<br /><br />回来之后心情很低落，看着星空，看着安静的小区，又一次落泪了。。。感谢上天给了我们这样的环境，不要再渴求什么，知足者是长乐的。
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/557/</link>
<title><![CDATA[从 method_exists 说起]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[PHP日记]]></category>
<pubDate>Sat, 10 May 2008 04:50:22 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/557/</guid> 
<description>
<![CDATA[ 
	周五要用 method_exists 这个函数，当然如果再源头说用这个函数都是无奈，在别的语言我完全可以依靠try catch来解决问题，但是在php我却不敢这么做，原因是它的除错很有可能先die了，这会导致严重的问题，而try是无法捕捉这个错误的，原因是它的执行不是堆栈的或者说它的执行不是程序所看到的堆栈流程，于是php里多了很多服务于try操作的函数，比如 method_exists。其实用这个函数很简单不会出问题，但我今天想说说更深层次的东西。<br />首先看看这个函数的定义：<br />bool <strong class="methodname"><span style="color: #ffffff; background-color: #0a246a">method_exists</span></strong> ( object object, string method_name )<br /><br /><span class="php_000000"><span style="font-family: Courier New">Just a note that the behaviour of this function changed between version 5.0.x and 5.1.x when using static member functions<br /><br />Using this code:<br /></span><span style="font-family: Courier New"><span class="php_0000BB">&lt;?php<br /></span><span class="php_007700">class </span><span class="php_0000BB">a </span></span><span style="font-family: Courier New"><span class="php_007700">&#123;<br />&nbsp;&nbsp; static function </span><span class="php_0000BB">test</span><span class="php_007700">() &#123;return </span><span class="php_DD0000">&quot;A&quot;</span></span><span style="font-family: Courier New"><span class="php_007700">;&#125;<br />&#125; <br />if(</span><span class="php_0000BB"><span style="color: #ffffff; background-color: #0a246a">method_exists</span></span><span class="php_007700">(</span><span class="php_DD0000">'a'</span><span class="php_007700">,</span><span class="php_DD0000">'test'</span></span><span style="font-family: Courier New"><span class="php_007700">))<br />&nbsp;&nbsp; print </span><span class="php_0000BB">call_user_func</span><span class="php_007700">(array(</span><span class="php_DD0000">'a'</span><span class="php_007700">,</span><span class="php_DD0000">'test'</span></span><span style="font-family: Courier New"><span class="php_007700">));<br />else<br />&nbsp;&nbsp; print </span><span class="php_DD0000">&quot;Nothing&quot;</span></span><span class="php_007700"><span style="font-family: Courier New">;<br /></span></span><span style="font-family: Courier New"><span class="php_0000BB">?&gt;<br /></span>PHP 5.1.x returns &quot;A&quot;<br />PHP 5.0.x returns &quot;Nothing&quot;<br /><br />Im not sure of a workaround for PHP 5.0.x yet.</span></span><span style="font-family: Courier New"> <br /><br />看到没有，这个函数表现变了，因为5.1的时候发现如果方法是static的时候（也就是没有实例的域操作）无法判断了，我一开始也遇到了这个问题原因是我只看了定义，呵呵。而在5.1中它扩展了这个函数使得能够判断static 函数了，这从侧面折射出php是一种相当不成熟的语言，很显然在5.0时没有考虑这个需求，但实际上这个需求5.0肯定存在，但为什么存在呢？这是显而易见的。。。php社区的核心程序员思想是老旧的（这不是什么出言不逊，如果要明证这点，我还有很多例子，有人说你不要对php的oo提那么高的要求，问题是我不提，它的所有竞争对手都在这方面秒杀了php，php的前景黯淡，至少我是这么认为的）<br /><br />对于php的oo我想我没有要求了，只要你正确就好了，语法支持我再要求一个重载就好了，其他的不提了。但我渐渐开始思考php究竟怎么发展，走标准oo意味着它必须抛弃所有的过去，也就是完全和老版本不兼容这个东西在python上是看到了3.0是不支持2.0的就是这样，这样才能大踏步的往前因为这样没有包袱。但php不同，php的优势在于众多的历史项目，如果抛弃了它，那么意味着更多人抛弃php，这不是太现实，因为它有很沉重的历史负担。那么究竟应该怎么发展呢？我想完全可以依靠标记，也就是annation，这是一个好东西，这种编程方式就像写附注一样，而且有很简单。<br />比如上述的我们可以这样考虑<br />class test&#123;<br /><br />static $cmd=&quot;xxx&quot;;<br />@catch::NoMethodException 就是说抓住下面的错误如果抛出了nomethodexception<br />@catch::NullPointedException<br />static initSystem()&#123;<br />....<br />&#125;<br /><br />static function target()&#123;<br />....<br />&#125;<br /><br />这只是一个猜想的例子，我也觉得这样不是最合适的，呵呵，当然我们可以寻找更好的模式来，这是借鉴了java的模型。<br /><br />这种语言更接近于脚本的习惯，而在编译器端也是很好开发的（这点已经被java所证明了），而这种语法的好处是，即使php不支持它大不了可以忽略这些语句，也就是程序会可能变得不够强壮，但不会不能使用，这就是它的妙处，而这样也就有效解决了语言的继承关系又不失它的oo规范，既然一条路走不通我们就应该走另外的道路，php也是，但目前来说，我看到的php依然固我，这是很令人失望的。<br /><br />在亚马逊的统计上也看得到php的份额正在不断失去，它还在吃老本，但是当对手始终可以秒杀你的时候，你靠吃老本也会很快耗完，赶快醒悟吧。</span>
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/556/</link>
<title><![CDATA[午夜了]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[生活心语]]></category>
<pubDate>Thu, 08 May 2008 17:02:24 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/556/</guid> 
<description>
<![CDATA[ 
	很晚了，自从上大学以来都期望着这样的生活因为晚上的安静让我特别凝静，刚又喝了一杯咖啡，这是我买了咖啡壶之后的连续第三天了，赶紧补钙，呵呵。<br /><img class="insertimage" src="attachment.php?fid=68" border="0" width="400" height="600" /><br /><br />今天下班稍微早了点走，因为昨天和前天的灵异事件（这个等我研究出头绪了和大家share是关于lucene应用的）折腾到我2点才睡，这两天有点累，所以下班早点回家。地铁上遇到了工作后认识的要好朋友，但是许久不见面了，我一如往常的招呼方式，却瘾瘾地让我觉得有些陌生，虽然我还是这样在说话，但我依然觉得很陌生，距离变远了，于是人也会变得陌生。这是一种非常可怕的感觉，但又不得不承认这种感觉的真实存在。人和人之间其实都是很脆弱的，经历过风雨的才能扎实，但大多数情况是，经历风雨之后就分飞了。昨天中午老大和我们几个吃饭，聊到人的问题，笑谈到要是那么计较还活什么？可是事实是真正没有计较的人还是不存在的，这也注定了马克思的不是理论是妄想。我也有计较的时候，我有自己的原则，我也希望别人谅解，但很可惜也许我的方法一直有问题，从来没成功过。车很快就到了，因为都只坐一站，我按照自己的常规路线走北通道，和两位朋友道别，他们是去吃饭的，也许我是一个超级铭感的人吧，看着他们远去的身影，我低下了头，走吧，带上耳机，mp3的歌曲已经好多月份没有换了，没关系的，把我和空气隔离就行了，那种感觉很美。<br />其实今天晚上并不算安静，因为下雨的关系滴滴答答的，但是我依然很安详，好了准备做点事情，明天还有很多事情要做，最近老是觉得时间不够用，呵呵，这不是好事，因为我最炫耀的就是小学到初中回家几乎不做作业，当然都是在学校做好了的，所以成绩也一直不算太出色，因为我剩下的时间都用在早睡上了，很少有孩子初三照样8点半睡觉吧，我就是，呵呵。今天好像回忆多了点，中午滴滴请客，panpan同学又开始我的童年讲座系列了，开始只是源于，滴滴说她的儿子下周要去入学面试，还特别制作了简历，这是一个疯狂的社会，其实只要真能学会思考的方法，那么学东西都不难的，但是折射的社会畸形真可怕，也难怪每天看到职校门口的学生都打扮很奇异，他们期待什么呢？在这个人满为患的城市，所以他们只能用这种方式来寄托他们的社会的理想，不要说他们，我能理解那种叛逆的体验，我也曾经叛逆过，话说过来谁又没有过呢？<br />夜深的时候我会看些别人的blog，看看那种感受和体验，分享别人的感觉这是很美的，只要你能open，打开自己去看别人，有时候那个真的很美的。好了开工了吧，呵呵，今天开心的是把书架做好了，我的书都上去了，还富余很多地方，呵呵。
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/555/</link>
<title><![CDATA[为了纪念的纪念]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[生活心语]]></category>
<pubDate>Sun, 04 May 2008 14:14:59 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/555/</guid> 
<description>
<![CDATA[ 
	今天是5月4号一个平凡的日子，但是1919年的5月4日，中国的先锋革命开始萌芽，俗称的54运动，于是后人为了纪念那群人，把5月4日定为青年节，因为54是历史上第一次大规模的学生潮。<br /><br />从今年开始54更是提升到了国定假日的标准，规定18岁到28岁的青年可以放半天假，掐指一算，我赶上了末班车，呵呵，我们这代人赶上了很多末班车。读小学，我们从6年变成5年。初中时教改我们是最后一代，所以我们的教材是混编的。到了大学我们又遇到了扩招。到了工作时又发现中国经济完全变了，很多变革都是我们在尝试，当然也是我们在付出着代价。<br /><br />如今过节我也赶上了末班车，呵呵。不过说起来，幸运也是不幸运，不幸运也是幸运吧。不过突然觉得有点没落，因为明年就被强制划出青年的行列了，这个好像没有道理，我们哪里不年轻了？而事实是54运动也不是全部由学生组织的，只是学生参与而已。看看学生组织的失败的64就知道了，没有点战术素养谈何容易啊，革命是那么好革的？<br /><br />还是有点感觉的，虽然放假在家有些许的无聊，想想明年只能在窗外看着人家，这是什么感觉呢？社会加快了速度不代表淘汰加快，我们还年轻，为了纪念的纪念，今天写下来，明年还要过节的，今年还要过61还要过得好，为什么不可以呢，哈哈，为了纪念的纪念，节日只是一个幌子，一个休息而已，自己完全可以照顾自己的，不是吗？
]]>
</description>
</item><item>
<link>http://www.edwardpro.com/post/554/</link>
<title><![CDATA[一个穷唱文明戏的悲者]]></title> 
<author>edwardproAdmin &lt;edwardpro.zhu@gmail.com&gt;</author>
<category><![CDATA[生活心语]]></category>
<pubDate>Fri, 02 May 2008 09:22:26 +0000</pubDate> 
<guid>http://www.edwardpro.com/post/554/</guid> 
<description>
<![CDATA[ 
	刚看了下蒋雯丽演的《立春》感受良多。<br /><br />蒋雯丽扮演的是一个相貌丑陋但却有异常声乐天赋的女人，但这个人桀骜不驯，却有着平凡女人的性情，在乡村教音乐，本来平平淡淡快快乐乐，她却有成为一流演员的梦想，为了这个梦她始终坚持着自我，她只欣赏她的艺术，甚至不屑于收钱教人唱歌。而在她的生命中遇到了一个又一个过客，她是悲惨的，电影最后一幕，她带着收养的女儿在北京天安门广场上，远处一群小朋友唱着歌，她抬头看了看，还是那种感觉，但她最终接受了一个又一个现实。<br /><br />看完之后感触良多。导演想说的故事主题其实挺简单，理想和现实到底接受什么，片中除了王彩霞都接受了现实。片中导演并没有给出接受现实还是忠于理想的优劣，他只是用一个第三者的身份把王和他们的故事表达了出来，在这种矛盾的空间之后的想象空间全部留给了观众。诚然导演用电影批判了那些现实主义者的内心悲哀，又表达了忠于理想只能带来同社会主流远离的悲惨。<br /><br />想起这个杀手不太冷的末尾，小女孩把leon的花埋在了校园里，远处坐着一帮流氓打扮的女学生，这就是那个所谓的校纪严格培养精英的地方，这个杀手不太冷，同样用一个非主流人群的故事严肃地批判了社会的阴暗，又同时用结局揭示了即使阴暗不服从的悲惨后果，两部片子在理想和现实上有着异曲同工之妙。<br /><br />最后说个电影小bug：王第一次去找黄的时候，给了他一本书，可是导演太不专业了，那本书是白