正在查看: 2009年09月日志归档(第 1 页 / 共 6 篇)

Location-aware Query Processing

这是我今天做的一个关于Location-aware Processing的Presentation,立此存照。

Location-aware是近5年来,业界发展最迅猛的一个新兴概念和技术。Google Maps on Mobile就是这一技术的典型应用。

PPT看这里

服务器正在升级

难怪前些天我总感觉服务器不稳定(经常掉包,反映缓慢),原来是真的出问题了。今天IXWebhosting发邮件告诉我,下周可能对我目前博客所在的服务器做迁移,以提供更好的服务。

国外的IDC服务客户服务真的是没话说,就算是他们的问题,你也很难找出埋怨的理由。国内大部分IDC就比较无良了,我用过很多IDC的主机服务,大部分给我的感觉就是:交款前你是他的上帝,交款后他是你的上帝。

We have been alerted to the fact that life on your server has not been so great. Load times are slower than they should be, some downtime may be experienced, or uploading content to your sites is not the quick and easy process it once was. If you have no idea what I'm talking about, that's great...but you may become acquainted with these symptoms soon if we don't do something about it now.

What we have decided to do is migrate accounts away from your server in order for the quality of life to improve across all accounts. Your account may be migrated (and if it is, what to expect is outlined below) or you may remain on your current server. Either way, you should notice a marked improvement in performance!

Migrations will begin on Monday, September 21st and continue through Friday. If your account is one of the ones being migrated, you will receive a ticket in the helpdesk informing you that the process has been initiated and what to expect.

These changes are being made so that you may experience much higher-quality service levels – the service levels you signed up for.

建议国内的IDC们学习下这种24*7无缝无掉线的客户服务吧。

22周岁

这是我第一个在海外度过的生日,虽然没有什么特别活动,但仍然收到了家人、朋友和众多同学的祝福,真的是非常感谢和感激。

这让我觉得,虽孤身一人求学,但却并不孤独。

PHP中插件机制的一种实现方案

这篇文章的出发点是我对插件机制的理解,及其在PHP中的实现。这套插件机制已经在你目前看到的这个博客程序中的重构代码中实现(我定名为STBlog),由于尚未开发完毕,所以目前暂不开发源代码。但文章会涉及到核心思想和部分实现代码。

插件,亦即Plug-in,是指一类特定的功能模块(通常由第三方开发者实现),它的特点是:当你需要它的时候激活它,不需要它的时候禁用/删除它;且无论是激活还是禁用都不影响系统核心模块的运行,也就是说插件是一种非侵入式的模块化设计,实现了核心程序与插件程序的松散耦合。一个典型的例子就是Wordpress中众多的第三方插件,比如Akimet插件用于对用户的评论进行Spam过滤。

一个健壮的插件机制,我认为必须具备以下特点:

  • 插件的动态监听和加载(Lookup)
  • 插件的动态触发
  • 以上两点的实现均不影响核心程序的运行

要在程序中实现插件,我们首先应该想到的就是定义不同的钩子(Hooks);“钩子”是一个很形象的逻辑概念,你可以认为它是系统预留的插件触发条件。它的逻辑原理如下:当系统执行到某个钩子时,会判断这个钩子的条件是否满足;如果满足,会转而先去调用钩子所制定的功能,然后返回继续执行余下的程序;如果不满足,跳过即可。这有点像汇编中的“中断保护”逻辑。

某些钩子可能是系统事先就设计好的,比如之前我举的关于评论Spam过滤的钩子,通常它已经由核心系统开发人员设计进了评论的处理逻辑中;另外一类钩子则可能是由用户自行定制的(由第三方开发人员制定),通常存在于表现层,比如一个普通的PHP表单显示页面中。

可能你感觉上面的话比较无聊,让人昏昏欲睡;但是要看懂下面我写的代码,理解以上的原理是必不可少的。

下面进行PHP中插件机制的核心实现,整个机制核心分为三大块:

  • 一个插件经理类:这是核心之核心。它是一个应用程序全局Global对象。它主要有三个职责:
    • 负责监听已经注册了的所有插件,并实例化这些插件对象。
    • 负责注册所有插件。
    • 当钩子条件满足时,触发对应的对象方法。
  • 插件的功能实现:这大多由第三方开发人员完成,但需要遵循一定的规则,这个规则是插件机制所规定的,因插件机制的不同而不同,下面的显示代码你会看到这个规则。
  • 插件的触发:也就是钩子的触发条件。具体来说这是一小段代码,放置在你需要插件实现的地方,用于触发这个钩子。

原理讲了一大堆,下面看看我的实现方案:

»阅读全文

Tags: php,stblog,插件

CodeIgniter上传类库的一个Bug

这几天重构博客程序的时候,发现了一个CodeIgniter默认上传类的BUG。很奇怪的是,一直到前些天CI官方最新发布的1.7.2,此BUG仍未修正,特此记录。

症状:只能上传图片后缀的文件,其他类型文件(比如.zip,.tar.gz)无法通过验证,就算你将这些类型添加进了$config['allowed_types']。

涉及到的CodeIgniter版本:1.7.1;1.7.2。

原因:Upload Class中的is_allowed_filetype()方法有逻辑错误。

解决方案

1、如果你不想动CI的系统源码,那么就将除图片类型之外的其他后缀,放到图片类型之前,比如:

$config['allowed_types'] = 'zip|gz|png|gif|jpg';(正确)

$config['allowed_types'] = 'png|gif|jpg|zip|gz';(错误)

请注意以上暗红色部分的位置。

2、对Upload.php开刀并修改is_allowed_filetype()的判断逻辑,解决办法在这个帖子里面:

http://codeigniter.com/forums/viewthread/113029/

这个BUG在BUG Tracker存在了那么久,开发者竟然不采纳的……What can I say?

胡言乱语之一

这是我的胡言乱语系列的开篇文章,主要记录自己日常中因为某些事件而“触发”的一些想法。如果有人赞同,那固然很好;如果没有,权当练习写作和思维;若干年之后看这个系列应该会感觉很有意思。

总之,欢迎拍砖与探讨。版权的,没有;拷贝的,欢迎。

#1 寂寞的中国互联网

国内现在有个很搞笑的现象,当国内媒体热衷报道国外的创新性互联网产品如Twitter时,郁闷的网民却发现这些网站根本就访问不了。于是乎,此类新闻就彻底沦为炒作和噱头,只是不知道这些炒作的对象是谁?

不过这还是有好处的,至少它给了一小撮模仿起家的翻墙精英以机会。因为只有他们,能够第一时间翻过墙去,COPY那些国外的先进理论。然后就有了非死不可中国版人人网,推特中国版(现在仍然被维护)的饭否们。

国家一直鼓励创新,尤其是在互联网这个人才辈出的新兴行业。但在目前这个并不开放的互联网大环境下,何以创新,以何创新?或许,大部分创新已经都被扼杀在了它们的初级阶段了。

没有一个开放的环境,在我看来,很难出现百花齐放的创新性互联网。

#2 没落的博客

志勇兄博文《流量》一文再次引发了我对国内独立博客未来的思考。我这里所谈到的博客,是指独立架设博客,非第三方BSP新浪博客之流,那里是炒作、绯闻以及“名人”之间骂战的起源地。当然不能一棍子打死一船人,但总的来说,我给新浪博客下的定义是“名人博客”:80%的草根给20%的“名人”捧场吆喝。这又一个墨菲法则的典型案例。

在国内写博客真的是一件吃力不讨好的事情。首先,你很难因此赚到钱,就算赚到钱也很难以此糊口。其次,你需要时不时担心自己的某些文字是否触犯了神秘机构“有关部分”的潜规则,进而被悄无声息的拔掉网线?就算你将服务器迁至国外,你也要承担被GWFed的风险……

在我看来,这都不是目前博客没落的最大杀手;最大杀手是对版权的藐视,这可以说是中国互联网的特色之一。想必大多数写博客的人都碰到过这样的情况:你花了大半天写完了一篇博客文章,第二天却欣喜的发现这篇文章只字未改的出现在某知名网站上,只是作者变了个人。

于是乎,博客作者们仅剩的一点动力也被无情的扼杀了。所以,下次你发现一个博客几年没有更新,千万别惊讶。

开放与尊重,是博客价值体系的基石,破坏了它,想不没落都不行。

»阅读全文

Tags: 胡言乱语