Monthly Archives: August 2007

一地鸡毛

这段时间心情很不好,不痛快。

昨天夜里一直做梦,梦见这里系统出问题,那里出问题,工作几年来,总摆脱不了焦虑状态。以前做梦总梦见考试,高考考数学,而且,肯定还会想到自己还没有复习呢,这可如何是好? 最近一两年这梦的内容也逐渐改变了,总梦见系统故障,还都是零零碎碎的故障。早晨起来,想想这些事情,一天下来心里都不痛快。

好像突然一觉醒来,游戏规则全变了,你想要的东西,都他妈的是别人的了,剩下的都给你。想抱怨,可是不知道该抱怨谁。

想起了崔健的《投机分子》,下面这段歌词我很喜欢:

机会到底是什么,一时还不太清楚
可行动已经是雷厉风行,而且严肃

我们根本没有什么经验,我们也不喜欢过去
可是心里明白干下去,一定会有新的结果
不知生活真地需要手段还是生活就该苦干
反正事情已经重新开始就不能够怕乱

噢......我们有了机会就要表现我们的欲望
噢......我们有了机会就要表现我们的力量

这样干下去,一定会有新的结果。

今天终于忍不住在 Blog 上又写了个人的这点鸡毛蒜皮的事情,其实也好,过了一两年谁还能记得我这个时候心里不痛快呢? 给自己生活也算划个印,回头好能找到这里。

EOF

MT4 升级经验谈(之三) 留言篇

上周留言突破了 5000 条,很不容易。谢谢这些在我的 Blog 上不辞辛劳留言的朋友们。

自从正式迁移到 MT 4 ,到我发这篇为止,我一共收到了一则垃圾留言,只有一则垃圾留言。相对原来每天成百上千条的拉机信息轰炸,这下子总算眼前清净了许多。

MT 4 支持两类评论方式:验证或者是匿名评论。

匿名评论需要输入有效的邮件地址,并且需要写对下面的验证字。对不起,我起用了我也很讨厌的验证字,也是无奈之举。

验证支持 OpenID、TypeKeyLiveJournal、Vox 以及 Movable Type(也就是在本地 Blog 上注册的,我暂时关闭了注册)。MT 4 内建支持 OpenID 验证,其他几个验证方式都是自己家的产品(不巧的是有两个都被阻尼了)。我喜欢用 TypeKey (我的 Profile)。

经过验证后的评论是不需要审核的,直接发表。而匿名评论我设为需要审核才可以发表。

对于常来的朋友,最好不要用匿名评论,我都觉得有些麻烦。而且,匿名评论附带的网址是得不到 PageRank 的,暂时是这样设置。

EOF

Oracle 11g SQL*Plus 新特性: Error Logging

oracle11g_logo.gif

这是我的 Oracle 11g 系列的文章之一.

Oracle 11g SQL*Plus 也有不少新功能,这个 Error Logging 的新功能很有趣,也比较实用。当激活该功能后,可以记录 SQL*Plus 操作相关错误信息到具体的数据库表里面,对于以后追查很方便。激活的语法如下:

SQL> set ERRORLOG ON
SQL> desc SPERRORLOG
Name Null? Type ----------------------------------------- -------- ---------------------------- USERNAME VARCHAR2(256) TIMESTAMP TIMESTAMP(6) SCRIPT VARCHAR2(1024) IDENTIFIER VARCHAR2(256) MESSAGE CLOB STATEMENT CLOB

激活的时候会自动创建这个表。然后即可存储 ORA、PLS 与 SP2 类型的错误信息。

SQL> drop ttt ;
drop ttt
*
ERROR at line 1:
ORA-00950: invalid DROP option
SQL> select username,timestamp,message from SPERRORLOG;
USERNAME TIMESTAMP MESSAGE
---------- ------------------------------ ----------------------------------------
SCOTT 25-AUG-07 02.22.09.000000 PM ORA-00950: invalid DROP option

除此之外,亦可自行定制表,进一步定制存储错误信息。

默认情况下该选项是关闭的。另外,为避免递归调用错误记录, internal 错误不被记录.

EOF

MT4 升级经验谈(之二) 插件篇

上一篇谈到了升级到 MT4 之前需要考虑的事情。这一篇谈谈安装后插件的配置情况。MT 4 新集成了不少插件,但不是每个人对每个插件都能用上,而且有的编辑器插件真有点画蛇添足,我写 Blog 都是直接写 HTML 代码,其实只需要熟练掌握少数几个代码即可把 Blog 格式的可读性控制的很好。

我眼里的唯一的一个亮点就是 Feeds.App Lite 终于能支持中文了。以前用过几次,遇到中文就把整个页面都变成了乱码。这次通过这个插件把我的 del.icio.us 内容显示到首页了。看来今后也可以考虑把 Twitter 集成过来。

出于性能考虑,能不用的默认插件最好禁止掉。非默认的插件我用了如下几个:

MTRelatedEntries ByKeyword 插件用来显示相关文章

好多朋友都问我单篇归档上的相关文章是用什么做到的? 答案就是这个 MTRelatedEntries ByKeyword 插件。把该插件下载到 MT 的 Plugin 目录下,最好创建一个单独目录放置文件(个别 Beta 版本不能识别直接放在 Plugin 下的内容). 然后在模版管理的地方创建一个 Widget ,内容如下:

<ul class="widget-list" >
<MTRelatedEntriesByKeyword>
<MTEntries lastn="8">
<li class="widget-list-item">
<a href="<$MTEntryPermalink$>"><MTEntryTitle></a>
</li>
</MTEntries>
</MTRelatedEntriesByKeyword>
</ul>

这段显示关键字类似的 8 篇文章。在相关地方引用这个 Widget 即可。这个插件对 dbanotes.net 来说是不可或缺的。

对于相关文章显示,其实还有另外一种实现方法,也就是在 MT 邮件列表里大家讨论的 Tag Supplementals。这个是依赖 Tag 的,而我的 Blog 基本上用 Tag 对文章”分类”的,关键字贴近文章属性,所以我还是用老方法。

缩写词插件(Acronym Plugin)

插件是干啥的? 鼠标放在 MT 上看看效果就知道了。配置与使用都很简单,参考Acronym Plugin 首页的介绍。我很早就在使用这个插件,对这个插件的词库做了一点扩充,感兴趣的朋友可以在本地下载. 这个插件倒不是不可或缺的,只是有的时候我喜欢用一些术语缩写,该插件的提示让读者更容易理解。这也就是所谓的提高用户体验吧.

Paged Archives 插件对过长归档页面分页

原以为 MT 4 会默认带有分页功能,希望落空,还要自己想办法。Paged Archives 是否完全兼容 MT 4,还没有得到确认,插件作者说得也比较模糊。经过我的尝试,勉强可以用。还有 Bug 存在。要注意起用的时候,在模版中有两个地方都要添加 <MTPAEntry> 与 <MTPAEnd> 标记。还没有完全用灵活,具体经验随后分享吧。

使用新插件需要考虑的事情:该插件简单易用么? 是否需要修改现有程序,强调是”程序”,如果修改程序的话,以后每次升级 MT ,都要考虑到这个事情,会带来很多后续的工作量。此外要考虑是否需要修改数据库? 插件需要额外修改数据库的也比较麻烦,很可能会带来比较严重的性能问题。

EOF