2006 年 10 月

升级到wordpress 2.0.5

升级到了wordpress 2.0.5,轻车驾熟,前后不到2分钟就完工.据说wordpress 2.0.5是2.0.x系列中的最后一个版本,这次也修复了50个bug之多,建议所有的wordpress用户升级到这个版本.
下载
wordpress 2.0.5
BTW:前几天试用了wordpress multiuser,这个版本真让人瀑布汗,bug之多就不说了.对多用户的处理方式也是很奇特,每新建一个blog就会新建10个左右的table,这样查表也许有些好处,但是用户一多对磁盘IO还真是一个巨大的考验,想想都觉得可怕:)

评论 (6)

Memcache的分布式应用

早就听说memcached是一个不错的分布式内存缓存系统,做了些功课想把这memcache用到实际当中来.因为一个好的缓存系统,能给web应用带来不小的性能提升.做了一些功课之后,做了下面几点总结:

memcache适合与web server安装在同一server上
memcache可以在n个端口开n个进程,如果和web server在同一机器的话,还能减少网络开销.
配置简单,启动一个进程就行了,免去了配置文件

我更关心的是,memcache的分布式应用应该如何部署.带着这个问题,我在各搜索引擎上做了进一步的功课.最初找到的办法是,首先启动n个memcache进程,这些进程可以在不同的server的不同端口上.
然后使用perl的api可以方便的一次链接多个memcache,存储读取机制不明.不久找到php的一个MemcachedClient类,基本上就是perl里api的再实现.它使用的fscokopen或者socket系列function来直接读取memcache----这说明只要清楚memcache的网络协议,你甚至不用装什么php的memcache extenstion.看了这个类的实现,基本上弄清楚,它的分布式应用差不多就是将不同的key保存在不同的memcache daemon,不会保留多个副本,也就不存在多memcache同步的问题了.
过了不久俺又有发现,在最新的php手册上找到了memcache::addServer()这方法,它就是为分布式应用而产生的,有了这个支持的话,php的代码就更简单:
PLAIN TEXT
PHP:

<?php

   $memcache_obj = new Memcache;

   $memcache_obj->addServer('memcache_host', 11211);

   $memcache_obj->addServer('failed_host', 11211);

   

   $stats = $memcache_obj->getExtendedStats();

   print_r($stats);

?>

看来php手册也要与时俱进啊,最好是能够直接使用英文版,否则也不会走这么多弯路了:)
官方站点
http://www.danga.com/memcached/

评论 (4)

Embeder - 把php脚本编译成可执行文件

Embeder是一个命令行工具,可以将php脚本编译成windows下的可执行文件。从介绍上来看,它目前支持php5,所以也可以用来编译php-gtk2的程序文件。
使用前提

把下面列出来的脚本全部复制一遍,并放在同一个目录
php5ts.dll必须在path下,或者在当前目录
php_win32std.dll必须安装在php的extension目录下(见php-embed.ini的配置)
embeder.exe也需要和上述文件在同一目录

测试文件
make.bat
@echo off
embeder.exe new myapp
embeder.exe main myapp main.php
embeder.exe add myapp include.inc
include.inc
PLAIN TEXT
PHP:

<? function hello() { echo "Hello people !"; } ?>

main.php
PLAIN TEXT
PHP:

<?

function _f($file) { return defined('EMBEDED')?'res:///PHP/'.md5($file):$file; }

 

 

include _f('include.inc');

hello();

?>

其实解压后就可以运行test目录下的make.bat做一个编译试验,上面所列文件已经存在。
参考文档
http://wildphp.free.fr/wiki/doku.php?id=win32std:embeder

评论 (4)

MU 1.0 and bbPress

WordPress新近发布了WordPress Multi-user 1.0和bbPress 0.72.
WordPress MU
WordPress MU是wordpress的一个官方分支,这个版本的wordpress也是目前wordpress.com正在用的。按照我的理解,这个版本应该会受到一些BSP的青睐,它是专为多用户多虚拟主机而设计的,经过一年来的这方面强化开发,相信是一个不错的版本。
download it on the WordPress MU site.
bbPress
bbPress是wordpress新近开发的论坛程序,顾名思义,是bbs+wordpess的结合体,所以它还带着一些wordpress的影子,有一些挺有趣的特性,比如tag,RSS feeds,Akismet spam,Ajax交互,目前而言应该还是比较简陋但值得一试。
downloading bbPress

评论 (4)

Pear::Pager和AJAX的整合应用

作为一个PHP开发人员来说,大概很让人受用的一个东东就是Pear的类库了。我们知道,Pear::Pager是专门处理分页的,而Pear::HTML_AJAX则是Ajax应用的一些类库。但是Pager也不仅仅是只能用于html的分页链接,它已经为比超女还红的Ajax做好了准备,下面看看这两个包如何整合应用。
Pager and Javascript
现在走出第一步,Pager已经能够构建出javascript的链接了,和Ajax整合,理论上应该也是能够实现的,下面是Pager和javascript分页的一个例子:
PLAIN TEXT
PHP:

require_once 'Pager/Pager.php';

$data = range(1, 100); //an array of data to paginate

$pager_params = array(

    'mode'     => 'Sliding',

    'append'   => false,  //don't append the GET parameters to the url

    'path'     => '',

    'fileName' => 'javascript:revealDiv(%d)',  //Pager replaces "%d" with the page number...

    'perPage'  => 10, //show 10 [...]

评论

检测javascript的内存泄漏

Javascript的内存泄漏,不是太可怕。它只会悄悄的,慢慢的把你的浏览器拖的巨慢无比,让你愤怒的拍案而起,大骂微软出品的破烂浏览器危害社会。这一切有可能并不是浏览器的错,可能只是因为网页上有些javascript的内存泄漏罢了。
在科技日益发达今天,我们有必要武装自己,以及自己的浏览器,这样万一浏览器倒下了,还能知道到底是死在谁家的网页上面。下面这个Firefox插件是推荐给那些UI设计者或者开发人员的:
Leak Monitor
This extension pops up an alert dialog to warn chrome and extension developers about one particular type of leak. It warns when chrome windows close but leave other code pointing at their JavaScript objects.
Works with:
Firefox 1.5 - 3.0 ALL
Thunderbird 1.5 - 3.0 ALL
在你访问一张网页的时候,如果有javascript内存泄漏,这个extension就会啪的一下给你弹出一张内存泄漏的清单。就拿现在用的wordpress后台来说吧,Leak Monitor也是毫不客气的给弹了一个窗口,主要是因为使用了大名鼎鼎的prototype.js...
下载
https://addons.mozilla.org/firefox/2490/

评论 (4)

google相册里的图片引用

很想弄清楚,google的picasaweb相册是不是也能够在外部直接引用图片呢?虽然它有一些“Embed in Blog/MySpace”之类的选择,但是那样图片无疑是太小了。
首先试试引用缩略图
缩略图的url象是这样:
http://lh3.google.com/viewccom/RTOSLKKnABI/AAAAAAAAAE4/7NHubzpCCpc/image00333.jpg?imgmax=288
如果下面的图片是叉叉,那说明引用是不成功的。

大图的引用
手工改了一下大图的url,当时应该是能够显示的,但是以后能不能显示,谁知道呢?
http://lh3.google.com/viewccom/RTOSSyjMABI/AAAAAAAAAFg/Esmo6emSIWw/s800/image00888.jpg
下面是不是叉叉?

google相册的图片引用,除了“Embed in Blog/MySpace”,难道就没有其它选择了么?

评论 (14)