洛阳铲的日志

2011年03月28日

unknown filesystem type ‘ufs’

Filed under: 生活小札 — 洛阳铲 @ 15:55

这只是系统迁移碰到的一个小插曲,因为要访问FreeBSD格式的磁盘(UFS),但是出现错误:

danqiuzi syslog-ng # mount -t ufs -o ufstype=ufs2  /dev/sdb  /mnt/ufs
mount: unknown filesystem type ‘ufs’

自2.6.5之后,内核开始只读支持ufs,到现在已经进入实验阶段的读写同时支持阶段。
但是内核默认情况下,是不会启用支持UFS文件系统的,为了让gentoo可以支持UFS,
需要重新编译内核,编译的时候打开在: File System->Miscellaneous filesystems -> UFS file system support
中打开UFS支持就可以,在

2011年03月14日

MyBB Plugin Hook系统分析

Filed under: 生活小札 — 洛阳铲 @ 15:48

MyBB支持的hook有两类:不带参数的hook(无参hook)和带参数的hook(有参hook)。

无参hook

无参hook看起来想这个样子:

$plugins->run_hooks("global_end");

global_end是hook名,在插件中使用该hook,在自己的插件代码顶部加入

$plugins->add_hook("global_end", "foo_functionname");

这样,每当加载页面的时候执行global_end的时候,foo_functionname也会一起执行,这样利用hook,可以执行任意的自己的代码。

add_hook同时还接受另外两个参数: $priority=10$file=""。在inc/class_plugins.php中add_hook的定义如下:

	function add_hook($hook, $function, $priority=10, $file="")

当一个相同的hook中加有两个或者两个以上的自定义函数的时候,可以指定$priority参数来安排执行顺序,这样$priority=0的钩子函数会

先于 $priority=10的钩子函数。

$file参数,指定执行钩子函数之前需要require_once的文件。

有参hook

有参hook看起来,像这样:

$contents = $plugins->run_hooks("pre_output_page", $contents);

这样$contents是作为foo_functionname 的参数传入,即要求foo_functionname声明如下:

function foo_functionname ($contents)

MyBB中提供大量的hook给插件开发者使用,完整的hook列表参见:MyBB Plugin Hooks

hellow_World,hook

随着发行版发布的inc/plugins/hello.php,给了我们一个hook的范例。为了避免命名冲突,要求hook的激活、禁用、安装函数必须位于插件文件中,比如hello.php插件的激活函数命名为: hello_activate。 禁用函数命名为: hello_deactivate。另外一个插件的info函数命名为:hello_info()。 而hello_info需要返回一个数组供AdminCP显示使用,数组中的"compatibility"用CSV格式指示出该插件的兼容性,比如:"141,142,143"表示兼容1.4.1,1.4.2,1.4.3三个版本。而"14*"则表示兼容1.4的任意版本,"*"则表示兼容任意版本。Mybb插件系统支持安装、激活、禁用4个动作来管理插件,同时提供是否激活两个函数来检查插件状态。他们分别是:

  1. hello_install
  2. hello_uninstall
  3. hello_activate
  4. hello_deactivate
  5. hello_is_activated

插件状态时候,最好调用函数: rebuild_settings();来重建系统设置。

所有的plugins都位于inc/plugins/下面,并且关于plugin本身的一些管理函数:

1. plugin自我介绍函数(XXX_info)、

2. 安装函数(XXX_install)

3. 卸载函数(XXX_uninstall)

4. 激活(XXX_deactivate)

5. 禁用函数(XXX_deactivate)

6. 状态查询函数(XXX_is_activated)

必须是php文件名加下划线打头的。比如写了一个扩展foo,该扩展源代码文件名是foo.php,那么激活函数应该是:foo_activate, 禁用函数则必须为:foo_deactivate

image_thumb[1]

Hook到底如何工作?Hook其实是PluginSystem的一个实例$plugins,其run_hooks($hook, $arguments="")方法负责调度真正执行hook的调度,比如首页决定提供’index_end’这个hook时,只需要调用$plugins->run_hooks("index_end"); run_hooks会从系统已安装的hook表搜索出’index_end’ hook 链,来一个一个执行’index_end’链中的每一个hook,而各个’index_end’ hook,只需要关注自己的功能

即可和整个MyBB系统进行完整的交互了。

参考资料:

1. MyBB的Hook系统运作原理分析

2. MyBB可用PluginHook

3. http://wiki.mybb.com/index.php/Authoring_Plugins

参考资料:

  1. The Hook System
  2. MyBB Plugin Hooks

comodo邮件证书申请step by step

Filed under: 生活小札 — 洛阳铲 @ 12:38

个人邮件证书使用业界个人的PKI体系,来实现签名和邮件的加密传输。邮件证书的申请可以在comodo完成, comodo 这个公司相当的不错,极长的安全产品线,杀毒软件、防火墙、邮件加密、系统维护、安全证书(SSL、Email)、备份恢复应有尽有:
comodo产品线

对于个人邮件证书,只需要申请免费的邮件证书就可以: 
image

如下填写表格:

image

1. 一定要选中Exportable,这样通过导出导入的方式,可以在支持邮件证书的其他软件中使用邮件证书
2. Revocation Password是当邮件证书可能被窃取的时候,可以用这个密码撤销/作废当前不安全的邮件证书。

提交表单后,会出现一个安全提示,点击是,系统便会进行邮件证书的申请

image

几秒钟之后,邮件证书便申请成功并发送到邮箱:

image

邮件中直接点击“Click & Install Comodo Email Certificate”即可安装邮件证书到系统,

image

安装证书的时候,系统会有安全提示,点击“是”即可

image

OK,证书安装成功。

image

,此处有一点需要因为证书是通过浏览器安装的,如果使用IE安装,要在Thundbird中使用或者使用Firefox安装要在
outlook中使用,还需要一个步骤就是把证书进行导出导入操作:浏览器中导出、邮件客户端中导入。
下面的实例是IE安装证书然后在thundbird中导入为例:

IE的工具->“internet选项”中,内容选项卡,选择"证书",可以查看刚刚申请的证书:

image

image

image

image

image

image

image

image

image

选择"View Certificates"(查看证书),然后选择Import准备导入证书:

image

选择上面备份的证书,完成证书导入。导入后可以在账号设置的安全选项中选择刚刚导入的证书作为签名和加密证书:

image

之后发送邮件,即可进行签名或者加密:

image

2011年03月13日

离线博客协作工具试用报告

Filed under: 生活小札 — 洛阳铲 @ 10:29

之前一直喜欢用Raven发布博客,是python写的,作为python爱好者,当初第一次使用的时候,可谓欣喜若狂,一般
Python的东西,扩展性和可定制性都比较强,但是随着使用深入,不支持扩展和插件,略显臃肿和呆板,
当然如果稳定的话,还是值得使用的。但是经历过两三次的异常关闭,博文丢失之后,知道弃用它的时间到了,
毕竟谁也不希望辛苦的写作结果,付之东流。

后来,寻找寻找了一个替代品:Windows Live Writer洪波也曾经推荐过,说实话对MS的产品,历来是臃肿笨拙,
可以远离就远离,使用Live Writer也有无奈的成分,聊胜于无,使用下来,和Raven相比,多了扩展性外,
其他只在Raven之下,特别是已发Post和草稿管理可谓简陋:

去年微软宣布关闭Space,可以预计Windows Live Writer也会在不久的将来跟着下线,看来这个简陋的工具也用
不了多少时间。试用了一下很多人提到的BlogDesk,下载已发布post的时候,MetaWeblog API的xml结果解析
出现错误,猜测也许是历史悠久的中文支持的缘故,试用体验以失败结束。

杯具的是另外一个博客离线协作工具:w.bloggar 也出现类似的错误。

好在无意中找到了国产的一个软件:菊子曰试发博客,是我使用过的几个blog离线编辑器中最棒的:
仿office界面,国人开发,自然对中文支持也是最好的,下面就是编辑本文时的截图,文中的那个错误提示不是
菊子曰的,而是blogdesk的。

菊子曰是免费的,但是使用过程中提到激活以及VIP,

在官网溜达一圈,似乎是说每次升级都会要求激活,换句话说免费版本在10次升级之后就不再免费了。
当然可以直接购买VIP服务,一年一个博客账号12元,折合1元/月。这个价格其实还是可以接受的。
还可以在官网上面发帖赚菊瓣、菊豆(已经没有耐心研究是什么东东了)……。

不过看到下面这个声明,还是觉得菊子曰是个负责的产品,是个值得推荐的产品。

后来看到有地方介绍Thingamablog,其官方网站上面提到:不要求有第三方的PHP/CGI,实际使用是:
利用ftp或者sftp把本地的html上传到远程空间,可以理解为是一个dreamwaver+ftp客户端工具的结合体。

update: 可以修改博文的标题,是菊子曰另外一个长处是,window live writer的话,会觉得这是一个新文章,
重新发布一次。update :  最近基本保持每周一次升级,菊子曰的开发相当活跃,而且可以免费升级激活下去:

之前扰人的那个菊豆、菊瓣,现在看来也不是问题,而且这么优秀的产品,老实说我还是愿意掏钱购买的,
况且一年12元,并不贵。

Powered by WordPress