本月关注

今天是三月的第一天,也差不多过来了第一年,计划继续。也许要掌握一种移动技术:J2ME OR FLASH Lite。最近在开始在当当买书了,买了《长尾理论》和《人体使用手册》。还有:

Firefox3 Alpha3

ZendFramework 0.9

Ubuntu 7.04 Beta

PDT 0.7 

激战游戏公测

Notebook

Birthday

哈哈,这个月还是有很多要关注的东西的。 

使用google.com

前一段时候开始,访问google.com会被重定向到google.cn上面。不过通过几步设置可以避免这个问题。在www.google.cn的首页中,选择Google.com in English,这样会跳到www.google.com的页面,但页面信息是英文的。这时,点击Preferences,在Interface Language选择chinese(simplified)。然后保存就OK了。每次进google.com的时候就不会跳到google.cn去了。 

终于修好了

今天在公司加班的时候,把事搞完了。就开始tweak。原来是生成cache的时候的问题。我想使用url作为缓存的id,我使用$_SERVER['PHP_SELF']来获得URL,在本地尽然是对的。但在服务器上面返回的是index.php。于是我换REQUEST_URI就好了。ZendFramework现在基本功能已经稳定了,现在发现设计模式确实很有趣。 

等待

头痛!前天是感冒头痛!昨天在公司还好好的,但回来就开始头痛了。这不,今天早上才好点。

终于把笔记本买了,HP3239。感觉还不错,现在还处于测试区,等以后几天再写写看法。

由于下这星期有个项目要上线,所以这个星期有点忙。如果一个团队管理的好的话,应该不至于这么糟吧。尽然在最后几天作大的变动。。。。。

ZendFramework 0.9.1也发布了。但现在这种程序有点问题,我也没时间改了。等等吧。。。还有工作没搞完。。。。 

Firefox3的中头痛的问题

Firefox的nightly版中,已经是Firefox3 Alpha3的预览版了。由于我现在的电脑只有256M内存,跑一会Firefox2会,就占很多内存了,由于想先用用Firefox3版看看。虽然,占用内存并不明显,也并不能确定是否有改进,当然离正式版还有很长时间。

由于Firefox3采用了新的渲染页面的方式,基于名叫Cairo的2D矢量图形库。具体有什么好处可以在网上找一下。

像我这种英语不好的人,所以开个金山词霸很常见。但在Firefox3中,好象不能自动取词了。。。不知道是bug还是因为新的渲染方式造成的。。。。 

ZendFramework Beta版发布

ZendFramework Beta版终于发布了,这个版本最显著的变化就是把Zend.php拆分成几个部分:Zend_Debug、Zend_Loader、Zend_Registry、Zend_Version。所以,升级后报错是正常的,只要替换一下就OK了。这次拆分最让我舒服的是Zend_Registry,原来的register和registry方法被,set()和get()替换了。因为这两个单词很像,不好区分。

如果你要使用Zend_Db_Table的话,那就要注意一下,有个小bug。一种方法是使用svn中的版本,或者自己把Zend/Db/Table/Row/Abstract.php中加上'<'号,因为丢失了这个符号,所以不是一个合法的php文件了。从NEWS.txt来看这一版本对Db的改进还是挺大的。而且其它部分也得到了强化和bug修理。

官方预计会在5月10号发布ZendFrameowrk 1.0GA版。哈哈,估计快要爆发了。 

理解观察者模式

当我在IBM developerWorks 中国上看到五种常见的 PHP 设计模式这篇文章的时候,我才开始注意设计模式的。其中这个观察者模式,我当时实在是没看懂到底是什么意思,昨天在看ZendFramework中的Zend_Filter组件的例子的时候,才突然发现原来是这么回事。

在0.8版中, Zend_Filter提供一种过滤链的机制,这种设计就是使用了观察者模式。代码如下:

$filterChain = new Zend_Filter();
$filterChain->addFilter(new Zend_Filter_Alpha())
            ->
addFilter(new Zend_Filter_StringToLower());

// Filter the username
$username $filterChain->filter($_POST['username']);

所有过滤器都实现Zend_Filter_Interface接口,然后通过Zend_Filter对象的addFilter注册被观察者对象,也就是这些过滤器。最后调用Zend_Filter的filter方法,遍历被观察者的对象,并执行Zend_Filter_Interface中实现的的filter操作。

Zend_XmlRpc_Client无法传参?

这几天我想实现MetaWeblog API,在Zend Framework中已经实现了Xmlrpc的服务端和客户端,拿过来直接用就是了。当我调用一个没有参数的方法时,可以正常显示结果。但我调用必需要传参数的方法时,Zend_XmlRpc_Client丢出了一个异常,“Calling parameters do not match signature”。不知道是怎么回事Innocent

在邮件列表中也看到有人提出类似的问题,也是抛出个这个异常信息。不解。。。 

Xdebug不错的php扩展

前一段时间听说xdebug是个不错的php扩展,可以查找程序进行的详细过程和使用的时间。昨天,把这个扩展装了一下,非常不错。

这里一篇文章说的非常详细,包括:安装,使用。

这个扩展修改的报错信息的显示方式,加了些样式。由于在ZendFramework中,所以的操作都被指向index.php这个文件,所以在WinCacheGrind看的时候,也只有index.php一个而已。而且可以非常详细的显示出程序执行的过程。还有一个问题就是当在ZendFramework中抛出异常的时候,Xdebug会在异常前面显示报错信息。如果不是debug的时间,最好注释该扩展。

总之,Xdebug是非常的赞!Laughing

我在干什么?

就这二天吧,让我感到很恐慌。我还要继续这份工作吗?我还要这样做什么时候?为什么只有256M的电脑怎么这么慢?刚开始学习vim感觉他并不能帮我更好的工作?为什么有些英文文档就是看不懂?为什么设计放在那里我却不实现它?为什么我的生活质量不能提高?

现实中,我还有许多问号,等待我去解决。或许我应该休息一下,旅游也许是个不错的选择。