暂时停止更新。

由于奥运频道主要就我一个人开发,且到奥运会开幕倒计时一周年只有9天的开发时间,所以这一阵不再更新Blog.

下一次更新,可能是8月15号之后。

PHP 装上APC之后的问题:

APC由于能够缓存文件上传进度,因此算是解决了一直以来困挠PHP开发人员的一个老大难,所以我也特别喜欢他了。如果对php实现文件上传进度条有困 难,可以看这里
不过今天发现,APC宣称的加速功能,其实也是一种缓存,而不是对编译方式,编译过程什么的进行了优化.
原因是,我把两个程序目录名称对调,结果发现,程序报错了.但是让人郁闷的是,错误提示是在一个已经不存在的文件的109行。后来不管怎么刷新,都是这个结果.后来只好重启web服务器了事.
看来,APC是把编译好的php文件存放在共享内存中,以后是每过一段特定时间才重新编译一次.对于已经运行的应用,这个将大大节省你的CPU占用(虽然PHP的编译已经非常非常地快了,开启APC缓存后,仍能大副度地加速你的PHP,因为php源文件不需要在每次调用时都要编译了).从原理上说,PHP已经被改造成了Jsp式的静态脚本.只是PHP+APC的组合比Jsp的还要快,因为JSP在运行时会不断检测JSP源文件是否已经被更新,不断检测XML配置文件是否被更新.
但是,调试期间可能需要重启Apache.
目前没有在Lighttpd下检测以FastCGI方式运行时加入APC对PHP性能的影响。

Hust牛人之"郭启睿"(awflasher)

写这篇,压力挺大。
老覃毕竟比我大一点点,而且老覃的经历可以说还是带一点偶然性。aw就比我小了,在他面前,压力大得多了。
aw的简历在这里.aw的学习成绩比我好,这就不说了。我一向不肯承认学习成绩比我好的人:( 但是做东西确实不错。
大学的时候,aw在校园门户网站做flash,开始学习UI/UE,而我了无生气地在混日子。我大学唯一认真过的时间有两段,一段是泡在图书馆里看了一学期的书,当然这一学期不怎么上课的教训也是惨痛的,我挂了两科,还有几科险挂。这段日子我在图书馆里看得最多的书是java类的,但是当时没电脑,没机会实战,所以到现在为止看java程序我没问题,但让我写我还是什么都不会。我知道用ruby,用open(“file”,”r”).read()就可以读入文件,但是java我没概念。
另一段日子,是做毕业设计。当时的课题是用Ansys做有限元分析,因为国内相关资料奇缺,所以只好求助于网络。图书馆里弄到了几本书,但是可气的就是,全部是翻译的这个软件自带的帮助文档。翻译得好也就算了,问题在于,这帮人不仅翻译水平不咱的,照着人家帮助手册抄命令也抄错。我很卖力地啃了一些英文文档,还四处整理出来一些。后来觉得这些东西放我硬盘里可惜,就用Dreamweaver用三天时间借自动生成代码功能弄出一个小文章系统,把这些资料放了上去。你永远想不到,这类资料是多么受欢迎,网站放出来没多久,访问人数哗哗哗地上涨。那时Google adsence上,Ansys的每次点击能给站长带来的广告费是1美元。可惜网站以使用的动网论坛数次被黑,最后域名被抢注而结束。
这两段日子以后,我的大学是一处空白。
而aw同学的生活则比我好得多,因为某件事件的打击,aw结束了我那样的晃荡日子,玩命地学。未出校园,aw已经在Flash圈出小有名气。

当然说aw牛,不光是指他的flash造诣。作为他的同学和朋友,我知道他有两方面是不错的:
1. 非常极力。而且,肯投入。4月20号,我和老覃,途牛的CEO于敦德一起去长城玩。aw来的时候,疲惫不堪,眼圈发黑。他老人家原来是头天晚上干活到四点,早上6天就又出发来陪我们。并且,作为他们公司的UI/UE组的team leader,他经常要自己为公司付出许多,帮新同事解决住地之类的事啦,自己掏腰包解决团队住宿问题什么的事情他都干。所以,雇到他的公司,都是幸运的。
2.善于个人品牌,信用的建设。在个人能力上,aw从来不低调。aw的人脉不错,他的博客现在人气也挺旺,不仅google adsence有收入,ms还接了一个分类信息网站的广告。注重个人品牌建设的,aw是我见到的做的最好的。
aw唯一缺的是,时间。再过三年看看。

Hust牛人之"覃健祥"

Hust牛人之”覃健祥”
之所以写这一段,是因为看到覃总的邮件合并入门.我本来早打算写一写老覃这个人的,到google去搜一份他的正式简历,结果却搜到他的这个教程。看过之后,我深感不如。老覃做事,就是比较细致。比如office系列,跟他比,我就是啥都不会!太汗颜了,枉我还从来不屑于在简历上写会用Office.该自己打自己一下。
老覃人之可贵,在于:
1.极其坦诚.老覃去年曾”五顾芍药居”,要拉我和他一起创业。可怜我那时一心想要把我的职业经历弄漂亮一点,没跟他走。后来他跟我说,不得不承认,我当时也有忽悠你的成分。坦诚之至。
2.事不分大小,不管是不是需要那样尽力,做起来都特尽力.在某最早一批牛B起来的BSP,老覃做为创业元老,后来不得不离职,再后来辗转到某社区门户,几个月未领到一分钱工资。老覃只好出来自谋职业。当时我问他,都最后一天了,何必还这么忙?玩一天办个离职就走吧!老覃说,他要站好最后一班岗。未料及,后来不幸言中,离职之后,该”web 2.0新锐”再也不承认拖欠工资一事。另一哥们也在此列,郁闷之至,msn改名为”我要到天an门喝血碧”.(我那会也被拖欠工资,不过比现在好一点).奇的是老覃忙碌之于,还勤于烹饪,总是乐呵呵地邀一帮人去他家蹭饭。我也厚着脸皮经常去骗吃骗喝。这篇文章,也正表现出来。以他在网站架构方面的能力,他完全可以对老总说,报表啊打印之类的事,就文秘之类的做就行了。他来整这事,不是太浪费了么?(自己自责一个,我总是会这么说:这东西啊,你直接叫小*打印一下不就行了么?我这忙着呢!内心世界在说:没搞错啊,让我去打印啊,你这份文档成本很高呢!一副得瑟样。以后多提醒自己向老覃学习).
老覃是我的师兄,华中科技大学,生命科学院,04级毕业。大我一届.现在老覃在做CMS,可以看看.他还喜欢做些绿色软件,比如曾经带好多人走上php编程工作的greenAMP,web调试工具Fiddler的绿化等。

我的一个师弟,也写了一篇。见这里.下一次就写这个师弟。

优酷星期二是个打牌的好地方

今天去了优酷星期二(地点:丰联广场B座15层),又见到tiny跟她老婆。

人差不多还是那些人,不过我还没有都混熟。跟tiny聊了会儿技术,然后突然想到一个好主意:下次来的时候可以带一副扑克过来,人又多,大家打打牌,多好,又有空调,地方又宽敞,美女又多,还有免费酒水。真是不可多得的好主意!

写博客,也要长尾+马太效应+(人际、口碑营销):

博客怎么才能更多人访问?
1.第一步:
抓住搜索引擎.当然你的博客初开张,是没有什么人来的,热门关键词是轮不到你的.那好,咱做长尾,针对冷门关键词做文章.比如,技术类的,不要老是写 PHP,perl吗,你写Lua,ruby,像我就抓紧写VirtualBox,Fedora,Afterstep.要更有机会展现嘛.这就是长尾。虽然搜这些词的人少一点,但是毕竟开始有人能看到你的小窝了嘛.
2.第二步,有一定数量的文章后,开始做营销工作,把你的好友的博客都加上,然后死皮赖脸地让他们在博客上把你的链接也加上.呼呼,虽然这样帮助不大,但是细水长流嘛.
3.第三步:开始口碑营销,做热点啦.推荐大家向aw同学(博客地址:awflasher blog)学习.只要一有什么热门事件,马上第一时间打开电脑,针对这件事写博客…呼呼,然后在baidu,google搜一下对应关键词,看看你的博客是不是已经排名到第一页了?到了这个份儿上,你的博客就自然会有人盯上你,主动给你加链接,给你推介….雪球已经开始推起来了,你等着就行了….很快,你的博客也就成为名博了(别忘了请我吃饭哈,如果你愿意成为名人的话..)

离谱的抄袭,再加色情诱惑?

可以看看这两扁博客:

diandiandian.net为家乡加油
为家乡加油””
居然是刘老大同志推荐的.
先不说又是抄袭了。这次抄的还有点离谱,有了进步。

好了,抄,咱们不说,中国互联网不都抄国外的吗?
离谱的是在点击那个”点这儿”按钮时,下面还会出来一些诗。再多点几下,多点!

myGod!还会出来一些AV照啊。
真是太有才了.
原来多点击了是有奖励的。不知道点击多少次能让下载一部*片呢?

ps:后来再看某大牛的blog,原来出彩的主意,还是他出的….

社区全文检索引擎Hyper Estraier 学习笔记

今天突然想起霍炬曾告诉过我的一个日本人开发的全文检索引擎,于是找他问了,并下载下来看了看。
晚上去优酷去混脸熟,主讲的是讲品牌营销的,我不感兴趣,于是在下面打开电脑,学习Hyper Estrainer的文档,现在趁着没忘,做个笔记:

1.Hyper Estraier是一个用C语言开发的全文检索引擎,他是由一位日本人开发的.工程注册在sourceforge.net(http://hyperestraier.sourceforge.net).
2.Hyper的特性:
高速度,高稳定性,高可扩展性…(这可都是有原因的,不是瞎吹)
P2P架构(可译为端到端的,不是咱们下大片用的p2p)
自带Web Crawler
文档权重排序
良好的多字节支持(想一想,它是由日本人开发的….)
简单实用的API(我看了一遍,真是个个都实用,我能看懂的,也就算简单了)
短语,正则表达式搜索(这个有点过了,不带这个,不是好的Full text Search Engine?)
结构化文档搜索能力(大概就是指可以自行给文档加上一堆属性并搜索这些属性吧?这个我没有实验)

3.Hyper Estraier的安装
安装分两步进行:安装QDBM,再安装Hyper estrainer.
Hyper Estraier 需要QDBM来做数据库驱动.为什么不用Mysql/PGSql/Oracle?….想想吧…..我们要的是速度..速度..速度..
QDBM是与NDBM,SDBM,GDBM,TDB,TinyCDB,Berkeley DB相类似的一个,这一些驱动中有些功能欠缺,有些速度慢,作者认为,这其中,QDBM做到了一个较好的平衡.
另外…QDBM的作者也是Mikio Hirabayashi。(开始我以为Ruby的作者也是他,后来查了查Ruby programming,发现是Yukihiro Matsumoto,a.k.a “Matz”.难怪,日本人的英文名字看起来都一样的怪..
首先安装QDBM,安装完以后,再开始Hyper Estrainer的配置.Hyper Estrainer对其他组件的依赖性比较少,config,make过程都很快.一般的问题都是出在没有事先安装QDBM,或是找不到QDBM的头文件。QDBM一般个人很少直接用,所以推荐就默认安装,这样方便Hyper Estrainer 找到它的头文件.

4.Hyper Estraier的文档分为五部分:
a.简介
b.用户指南
c.编程指引
d.P2P架构主法
e.Web蜘蛛

5.使用:
find ./ -name “*.txt” -type f|estcmd gather -cl -fm -cm testdb –
这一命令,将查找当前目录下的所有txt文件,并用Hyper Estrainer索引.索引的数据库名字是testdb.
estcmd search -vx -max 10 testdb ‘Fedora core’
这一命令在testdb库中检索Fedora core,结果用xml给出,列出10个结果.

我认为最重要的就是索引文件(estcmd gather)和检索(estcmd search)这两步了.其他的可以运行estcmd 看说明.

6.p2p架构:
Hyper Estrainer 可以多组实例同时运行,不同的Node之间是可以互相通信的.当然,这一组组的node server都可以进行一个node master进行管理.不同的Node server之间可以互相通信.在查询时,可以通过任何一个node server进行查询,这个node server与其他node server间通信,将各个node server之前的search result 组合起来按某个权重排序并返回给Query 用户。同时,不同的node server可以指定不同的priority.
运行
estmaster init testdb

可以产生一个testdb配置目录.然后运行

estmaster start testdb

可以按这个配置来运行一个node master.
发果你没有修改testdb/_config中的服务器地址,那现在可以打开firefox,进入http://localhost:1978/master_ui进行管理。注意默认的用户名密码是admin/admin (我猜这个写程序的大牛一定是1978年生的,人家只比我大5岁,就能写Full-text search engine了).在这个webpage你可以进行node,managers的管理操作.
estmaster命令用来进行node master的管理,estcall 则可以对任一一个node server进行管理,比如

//该例子来自hyperestrainer.sourceforge.net网站
#file data002.est
#
@uri=data002
@title=Liberian Girl

Liberian girl
You came and you changed My world
A love so brand new

Then, register document using:
# file data002.est结果.
在命令行中运行
estcall put -auth clint tnilc http://localhost:1978/node/test2 data002.est
就直接将tile=Liberian Girl,uri=data002这样一个文档添加到test2这个node的索引中去了.

7.Web 蜘蛛
Hyper Estrainer还自行实现了一个蜘蛛。简要介绍其用法:

estwaver init testdb

将建立一个初始目录。咱们看一个testdb/_conf文件:

1 seed: 1.5|http://hyperestraier.sourceforge.net/uguide-en.html
2 seed: 1.0|http://hyperestraier.sourceforge.net/pguide-en.html
3 seed: 1.0|http://hyperestraier.sourceforge.net/nguide-en.html
4 …..

这里就设定了小蜘蛛要开始抓的网页的地址了.你可以改成你的博客啥的。

estwaver crawl testdb

这个命令将要抓取.

然后检索呢?其实与前面的用法一样,只不过数据目录变成了testdb/_index了:

estcmd search -vs casket/_index “hyper estraier”

怎么样?心动了吧?这样一套好用的东东,还是以LGPL协议发面的,商业应用起来很爽。偶都打算在我的老台式P3上用他来跑一个搜索引擎,打败Google(……你小子就做梦吧….)

社区全文检索引擎Hyper Estraier 学习笔记[1]
社区全文检索引擎Hyper Estraier 学习笔记[2]
社区全文检索引擎Hyper Estraier 学习笔记[3]