Archive for June, 2005

Upgrade to WordPress 1.5.1.3

WordPress.org昨天宣布放出了最新的WP版本-1.5.1.3,这个版本主要是解决一个潜在还没有被公开的安全漏洞(应该与XMLRPC有关,如果你无法马上升级,可以删除xmlrpc.php文件来保证安全性)。WordPress.org宣布他们正在实现其它一些令人兴奋的Feature,不知会是什么:-)。 升级过程非常简单,备份原有文件,包括: WP-Config.php 安装的Plugin文件 安装的Theme文件 以及其它修改过的文件(比如Index.php) 删除老版本的WP文件,使用新的WP代替,并将备份文件安装。然后执行“/wp-admin/upgrade.php”即可。如果试验没问题,就会更新Xerdoc Together。

Web Calendars Booming

我在SUN一直从事协同办公软件的研发工作,比如说Ximian(被Novell收购)的Evolution(一个类Outlook的Linux下的协同工作的解决方案)和OpenOffice Glow(Pure Java Calendar Client)。Outlook、Evolution、Glow中的Calendar部分都是桌面的Calendar应用,而在Web应用大兴其道的今天,自然也有很多Web形式的Calendar应用。 1)Laszlo Calendar Laszlo Calendar只能用一个字来形容,那就是“酷”!页面 是基于Flash来做的,看起来非常舒服,用户体验也很好。Laszlo Calendar提供“Day View”、“Week View”、“Month View”三种视图,也能添加简单的Event。虽然是一个简单的Sample,但还是能通过它来体会到用Flash做Web应用带来的客户端的良好体验。 2)Hula Project Hula是Novell公司主导的一个Web based Collaboration项目,包括Mail,Calendar,Addressbook这三个协同工作软件最重要的三个部分。如果你想试用,可以给gpatterson@novell.com发信申请帐号,没有帐号也可以通过这里来看到一些截图。与Laszlo Calendar类似,Hula也试图创造良好的客户端用户体验,不过用的是截然不同的两种技术 – Hula的客户端基于AJAX。Hula有很多有趣的关于Calendar的想法,比如与IM的协同、SMS短信通知、以及RSS支持等,这张充满Idea的涂鸦的草图很有意思。 Hula还有很多有趣的地方,比如:Hula的全文搜索准备基于Lucene,URL的设计也很费心思(对于一个设计良好的Web应用,简单、美观、方便记忆的URL确实非常重要),以及用Tag,Label取代Folder等等。 看的出,Hula受Gmail的影响很深,无论是从AJAX的客户端体验上,还是从RSS、Tag等新技术的使用上。 BTW:Nat最近(8 July 2005)的Blog上,“AJAX”和“GMail”两个字眼比较引人注目: We are opening a couple of positions in the Hula team for people who are interested in building next-generation web applications. If you think you’re a hot-shot Ajax/DHTML [...]

怀念爷爷

6月26日,今天是爷爷一周年的忌日。清晨,蒙蒙细雨中,和爸爸妈妈一起去八宝山为爷爷扫墓。 现在还能清晰的回忆起去年的这个时候。爷爷有点儿肺炎,我们送他去友谊医院看病,本来爷爷的肺一直不好,每次只要输液就消炎就可以好过来,可是那天的那个可恶的医生,他说没事儿,不顾我们的再三请求,开了点儿药,就把爷爷硬生生的从医院推了出来,我现在仍然能回忆起他的那副丑恶的嘴脸。到后来,父亲节的时候,爷爷再到医院,已经处于昏迷状态了。住院后的主治医生还是他,而他竟然没有丝毫的愧疚,态度依然冰冷麻木。我只想对那个医生说:“你面对的是一个个血肉之驱,不要对我说你见多了,不要对我说你的职业习惯,如果你不适合,请你滚开!”。 爷爷去世后,放弃了投诉那个医生的想法,因为爷爷一生的与人为善,我想他也希望这样吧。 这几天,那段时间的点点滴滴总出现在脑海中,我对自己说:珍惜身边人,珍惜奶奶、姥姥姥爷、爸爸妈妈,以及一切我爱的人。

Tags

My WordPress Plugins

终于下定决心从MT牵移到WordPress,原因有二:免费、开源。 牵移过程非常简单,首先从MT导出数据,然后用WordPress中的“import-mt.php”脚本导入就可以了。详细过程可以参考《Moving from movable type to WordPress》。 周五晚上用了2个小时做了一个和原来用MT时候一样的模板,整理一下会共享出来。:-) 一直听说WordPress的插件非常强大,事实证明,确实如此。闲下来一定要好好研究一下。我目前装的WordPress的插件主要有: 1) Google Sitemap Generator for WordPress Google推出Sitemap协议来简化爬虫的工作,更好的进行网站的索引。利用Sitemap协议,网站的更新可以自动的Ping到Google,Google只需要订阅这些信息源,这样可以更好的收录网站的内容。这个过程很像我们订阅RSS信息源,把随意的信息获取变为信息的主动推送。 MT和WordPress对Sitemap都有很好的支持。MT中比较好的是《Google Sitemaps using Movable Type》,只需新建一个模板,然后每次Rebuild的时候重新生成Sitemap.xml文件。 我用的WordPress的Sitemap插件是《Google Sitemap Generator for WordPress》,最新版本是2.5。这个插件非常强大,而且安装简单,只需把下载的文件解压放到Plugin目录下,然后激活插件,就可以看到在Option下多了一个Sitemap选项。在这个选项中,我们可以设定Sitemap生成的一些选项,比如站点文件范围、更新频率等等,甚至还能够直接Ping到Google,通知更新。 2) WordPress FeedBurner Plugin 我使用Feedburner来烧制了我的RSS,在用MT时只是在页面上显示了FeedBurner的RSS源。这个插件可以把页面Link Meta中的各种RSS源,包括RSS0.9、RSS2.0、RDF、ATOM都通过URL重写来定位到你在Feedburner的Feed地址。 Update(2005.07.01):任何中心化的服务都由其固有的风险,其自身的服务运营能力是一方面,我们的大墙又是另一个因素:(。搞IT的都知道,任何问题都可以通过增加一层的抽象和Wrapper来解决问题,Feedburner的Wapper可以方便的帮助我们隐藏实际的Feed的细节,那么,我们也可以再来Wrapper一下:)。 Feedburner Plugin的原理就是一个重定向,因此,无需任何Hack,只要把你在Feedburner Plugin里面重定向的URL变成你的再次加工的Wrapper URL即可,对于我来说,就是输入:http://feed.mengyan.org/(feed.mengyan.org这个子域名指向了Feedburner,今后可以指向其它的地方)。 3) StatTraq StatTraq是一个强大的WordPress日志分析插件,可以非常详细的分析你Blog的访问情况(比如浏览量,访问人数,搜索引擎关键字,反向链接等)。安装过程非常简单:下载最新版本的插件,解压后放到你的WP安装目录中(包括一个插件以及一个“wp-stattraq”的文件夹)。首先运行/wp-stattraq/stattraq-install.php来完成一些必要的数据库建表操作,然后删除此文件。最后进行插件激活就可以运行了(http://yoursite/wp-stattraq/index.php)。 Update (2005.06.30): 开始我的日志中无法看到详细的PageView,只是简单的Mix Post和Feed,很奇怪,于是Hack了一下StatTraq,最后发现他是ArticleID来记录访问的单个日志。因此,如果你希望有详细的PageView,你的Permalinks中必须包含PostID(宏%post_id%)。 Update (2005.08.30): Hack一下,增加对Baidu、Sogou这两个中国搜索引擎的支持。 4) Jerome’s Keywords 网站支持Tag绝对是非常必要的,Tag有利于我们更好的组织、搜索以及分享自己的文章。Jerome’s Keywords其实是一个WordPress的Tag插件,它可以: 方便的为你的文章添加关键字(其实就是Tag) 利用关键字来进行站内搜索 被Blog搜索引擎Technoratis搜索(在Atom [...]

Another Delicious

Are you the user of del.icio.us? Yes, I am the fan of it. Besides it’s powerful features, I was really impressed by it’s domain name. It’s the first time I saw such domain. Last week , I found de.lirio.us, a website like del.icio.us. It’s also for Social Bookmarking, Tagging… Interesting, right? Delirious : A state [...]

Opening Day

As you may have noticed, June 14, 2005 – the OPENING DAY for the OpenSolaris project. Don’t hesitate, check detail informations here: SUN.com OpenSolaris.org And there’s so many "OpenSolaris" tags on the planet, check here: Technorati del.icio.us Flickr

难道又是一个循环?

黄建祥说:“如果说因为不是周末而没有观看这场转播的球迷朋友们一定会非常遗憾,因为他们错过了中国国字号球队近年来少有的一场经典的比赛。”没错,这句话说到了心里。被领先、扳平、反超、罚下一人、被扳平、少一人的情况再次反超,天哪,做了中国球迷这么多年,真的是第一次感觉这么爽。 上一次也是国青,沈祥福的超白金一代,世青赛前的香港四国赛。又是国青,又是世青赛。 希望不会又是一个循环。突然觉得,浮夸、浮躁、拜金的中超,某些程度上也像我们的IT业,呵呵,不是么?

上周修改了一个MT的模板,根据我在SUN的Blog中的一个叫做Metal的模板。 开始Blog快有1年的时间了,第一个Blog就是“MengYan @ SUN”。SUN的Blog基于Roller,有很多漂亮的模板支持。上周偶尔选了一个“Metal”的模板,觉着很漂亮,于是把它修改了一下,用在我的MT的Blog上,感觉不错。本着创作共用的原则,放个下载包在这里。:-)。 别忘了,这个模板的原始作者是Bryan Bell .

Xerdoc网站静态化备忘

那天在看Xerdoc网站统计的时候突然发现,Google的机器人每次来了只索引了了几个页面,内容很少。突然想起,Google的机器人似乎不索引这些带有Get参数的URL,这就意味着这些URL、包括这些页面涉及的URL都不会被索引,这就导致了整个网站被索引的量很低。 这是因为普遍认为互联网上静态页面的价值大于动态页面-尤其是这些带有参数的动态页面,其它搜索引擎也大多如此。 因此,面向搜索引擎来设计网站的一个很重要的方式就是网站的页面静态化。静态化通常有两种方式:一种是通常CMS支持的,将内容真正以静态的方式发布,这种方式的典范是MovableType,它的面向搜索引擎的设计堪称经典;第二种方式是用“静态化的URL”(URL美化)来替换这些动态的URL,其实就是“骗骗”这个Google的小机器人,让他认为我们的URL是一个静态页面。 用URL美化来提高搜索引擎的友好度主要有两种方式:1)URL Rewriting;2)PATH_INFO,车东和John Coggeshall在这方面都有很好的文章。 Search Engine Friendly的URL设计 – 车东 Search Engine Friendly PHP Pages – John Coggeshall URL Rewriting主要是利用Apache中的rewrite_module来实现URL的重写(IIS中也有相应的模块,具体见此)。简单的说,该Module就是一个采用正则表达式进行分析,替换的Filter,来实时的改变用户请求的URL。改写的规则可以定义在服务器范围内(httpd.conf)、目录范围内(.htaccess),因为一般的虚拟主机不允许我们修改httpd.conf,所以我们只能来修改每个目录内的.htaccess文件了。但是从效率上来说,httpd.conf内定义的规则只在Apache启动的时候进行加载,所以效率很高,而.htaccess中定义的规则,在每次URL访问的时候都要重新访问此文件,大大的降低了效率。 利用URL Rewriting进行静态化的效果非常好,比如,Xerdoc中的静态化就是这样: home.html -> shell.php?pos=home 竹笋炒肉的《Apache的Mod_rewrite学习》详细的介绍了 rewrite_module工作的原理,如果您感兴趣,可以看看。 另一种进行URL美化的方式就是采用PATH_INFO。PATH_INFO是一CGI的标准,一般的虚拟主机都有支持(在没有PATH_INFO支持的情况下,可以试试这样得到PATH_INFO: $PATH_INFO= substr($_SERVER['REQUEST_URI'],strlen($_SERVER['SCRIPT_NAME']), strlen($_SERVER['REQUEST_URI'])); )。PATH_INFO的主要原理是:当Server访问的页面或者目录不存在的时候,会依次访问“/”前面的文件,直到找到能够访问的文件为止。Web Server同时会创建一个名位 $PATH_INFO的变量,来记录除此文件外的其它URL信息。比如: shell.php/pos/home 这个URL,最后访问的实际文件是 shell.php,而PATH_INFO的值是 /pos/home 这样,在PHP脚本中,可以解析这个PATH_INFO的值,得到相应的参数。 周六正好有时间,于是用静态的URL重构一下网站,来提高搜索引擎的友好度。(最近还有一个想法是重新用XHTML标准重构一下网站,完全用CSS来定义风格,忙完这阵子和曹飞商量一下)。 Xerdoc的服务器架设在name2host.com上,服务很是一般。本来想当然的以为不会支持rewrite_module来进行改造,就开始尝试PATH_INFO来进行改造。 像前面介绍的那样,在代码中解析PATH_INFO,然后再利用解析后的参数进行查询。比如 shell.php/pos/home 这个URL,PATH_INFO的值为 /pos/home,然后可以得到每个参数。 list($dummy, $first, $last) = explode(‘/’, $PATH_INFO) 这里需要注意的是,第一个参数为空,所以我们用dummy来存。 过程很简单,不过出现了意料之外的问题-相对路径(Relative Path)的问题。 [...]