February 2006 Archives

墨菲定律与 DBA

| 12 Comments

今天参加培训的时候胡思乱想,忽然间想起来墨菲定律(Murphy's Law)这个有趣的话题. 西方文化中,有很多所谓的"定律", 墨菲定律应该算是一则比较著名的"定律"了.什么是墨菲定律? 最简单的表达形式是"有可能出错的事情,就会出错(Anything that can go wrong will go wrong)"。

爱德华·墨菲、约翰·保罗·斯特拉普和乔治·尼克斯凭这条定律居然还得到了搞笑诺贝尔奖(IgNobel)奖。而墨菲定律的一些衍生版本也的确有趣.比如"东西久久都派不上用场,就可以丢掉;东西一丢掉,往往就必须要用它",再比如"你出去买爆米花的时候,银幕上偏偏就出现了精采镜头".

抛开 Murphy's Law 衍生出来如此多的版本不谈,说一下墨菲定律和 DBA 之间的关系。Anything that can go wrong will go wrong, 这句话对 DBA 来说,应该是引起注意的, 甚至作为金科玉律也不为过,一般来说,没有哪一个人管理的数据库是完美无缺的,但是如果你发现了数据库的缺限置之不理,存在侥幸心理,那么最后往往会发生你最担心的问题。我就曾经亲生经历过几起类似的事件,事后总结的时候想 "如果我...如何做" 就好了. 但是已经发生的事情就不允许假设了.

Blog 的招聘广告尝试

| 17 Comments

最近站点作了点新的尝试: 新推出了一个招聘页面, 我把这个看作一个实验,时间是一个月.

这是我考虑很久做的决定. 招聘信息, 对一些读者还算是有用的. 也或许某个网友正在寻找工作,通过这个页面, 如果能给他带去一点点有用的信息, 可能要比阅读我 10 篇 Blog 对他的帮助更大. 我知道,如果首页放上去一个大广告 Banner ,肯定会有一些读者或是 Blogger 会排斥这个"商业"行为. 但是有趣的是, 大多数 Blogger 实际上都是不排斥商业的, 至少国内有独立域名的 Blogger 都在做 Google 的 Adsense. 而 Blogger 对自身站点的推广(比如 Trackback、留言、 链接等等)也可以算是一种广告行为。

Keso 前一段时间的 广告引来了不少网友的争议(如果他是第一个尝试吃螃蟹的, 那我是不是可以算是第二个啦?) . 最近一些传统媒体也都在讨论 Blog 的现象,CCTV《老徐的博客值多少钱》节目记者采访Keso,问他 Blog 上的贴片广告的价格, Keso 笑笑, "也就刚过四位数吧", 看来,做一个独立 Blog 养活自己有可能, 但在当前的环境下,还有些不现实. 至少, Jason Kottke 已经失败了.

本周言论 之 移动球门

| 6 Comments

实在怀疑在(Google)黑板报上露脸的工程师们,难道都是一群诗人?...”
--来源

我们并没有移动球门...我们的要求是微软应执行欧盟2004年3月的判定,白纸黑字写的清清楚楚。
--欧盟发言人托德(Jonathan Todd)对微软指责欧盟反垄断当局总是在“移动球门”,又一直执意拒绝清楚描述如何才能让他们满意作出回应。

我非常希望韦尔奇这样的怪物快点死掉,传统企业只是压榨员工的体力和时间。而韦尔奇的企业用成功的光环引诱你,迫使你变成一个你自己都不认识的人,彻底换掉你的思维和性格,而且是在一种完全“自觉自愿”的情况下发生,在一种叫做“先进管理”的名义下进行。后工业社会已经发展到如此残暴的地步,在“企业文化”的脉脉温情的面纱下,彻底异化人类,使之成为活跃而高度同质的工业齿轮。《黑客帝国》并非是一种远景幻想,它就发生在我们身边。杰克.韦尔奇就是里面的黑衣史密斯先生。
--和菜头评《杰克・韦尔奇自传》.来源

Oracle Database XE 推出正式版

| 8 Comments

最近的 Oracle 产品消息:Oracle Database XE 推出正式版。正式版本在 32-bit 的 Linux 和 Windows 上可用.

  • Installs using native installers
  • English (single byte character set) and International (Unicode) versions available with support for 10 major languages
  • Supports up to 4GB of user data
  • May be installed on a multiple CPU server, but only executes on one processor in any server
  • May be installed on a server with any amount of memory, but will only use up to 1GB RAM of available memory
  • Fully upgradeable to other Oracle Database 10g editions
  • Oracle Text for efficient text-based searches

这个免费版本可以直接平滑升级到 Oracle 的其他版本,而且部署简单,能让开发人员迅速入手。不得不让人深深感到 Oracle 为了争夺客户煞费苦心.

理想与生命

| 8 Comments

车东 Ping 了我一下,提了三个问题:

1 你小时候的理想是什么?
我小时候的似乎没甚么理想(理想这个词太大了),印象中有一次和小学班主任(我遇见的最好的一个好老师)在课堂上,老师问我长大了要做什么,我支支吾吾了憋了半天,有些不好意思的说长大了要做一个科学家. 不过这不算真的理想。我那个时候就是想整天玩, 疯跑,闹。
顺便说一下,那个时候心目中的科学家、教授,是十分伟大的称号. 这些儿时的想象到了大学之后被我看到的一举击溃,原来大学教授们不过尔尔阿

2 你现在的理想是什么?
我现在的想法用崔健的两句歌词来说是:
钱在空中飘荡/我们没有理想 / ...突然一个念头/不再跟着别人乱走

3 如果你的生命只有 3 天时间,你最希望完成的 3 件事情是什么?
如果生命中有如果, 那我这三天还是按照正常的生活吧.

好长时间没怎么看 Oracle 技术文档了,今天阅读了一篇 Oracle Response Time Optimization with Method R. 这是 Optimizing Oracle Performance 经典图书这本经典图书的主旨方法。R 代表响应时间(response time).具体的定义如下:

  • 1. Target the tasks that are critical to the business.
  • 2. Collect properly scoped, un-aggregated profile data for each task while the task is exhibiting the behavior you want to record.
  • 3. React with the candidate repair that will have the greatest net payoff to the business.
    a. Stop if the cost of the repair exceeds the cost of the problem.
  • 4. Go to step 1.

这里面的核心元素是 Profile .Profile 要提供应用程序到最终用户的响应时间的详细描述.体现到 Oracle 数据库这一层,就是要得到扩展的 SQL Trace 数据。

是不是感觉有些"虚", R 方法和一些我们已知的数据库优化方法颇一些相似之处,但是 Cary Millsap 宣称 R 方法是目前已知 Oracle 优化方法中的最优秀的、最全面的。我们来看看一些简单比较:

招聘信息及求职建议

| 12 Comments

注意到年后是不少 DBA 朋友找工作的时候, 干脆做一个页面把一个猎头招聘信息贴出来,方便一下那些求职的朋友.

职位列表:

在此之前的一个月内,已经替公司找到了一个不错的 DBA .上一个招聘信息还是有点价值的.这段时间也收到了不少朋友的简历.这里对那些求职的搞技术的朋友们一点小小的建议(主要针对 DBA):

简历应该有针对性.很多朋友对简历似乎都不怎么上心.很大一部分朋友都是直接用那些招聘站点的简历模板,也不修改就直接发出来.应聘产品 DBA 也是这个简历,应聘开发 DBA 也是这个简历.我的建议是,每一份简历最好有针对所应聘的职位有具体的能力描述,没错,定制后的内容,同时把那些不必要的内容考虑去掉.应聘 DBA 的时候如果你的简历中写着大量的熟悉 HTML 、熟悉 Java 开发之类的话是没什么用的.

给招聘者足够多的技术信息.招聘者是迫不及待的要知道你的相关技术信息的。最好在简历中能说一些体现自己技术能力的地方,那怕是网络上的能够体现自己观点的技术讨论也好。如果有个个人技术积累的 Blog,那么无疑会让人眼前一亮,当然,你的 Blog 最好不要堆满了 Copy 来的文章.

节省资源,包括招聘者的时间.网络招聘者一般会留下 MSN 等 IM 联系工具,尽量珍惜你同未来雇主的交流效率,千万别半个小时还在交流什么"我叫什么名字,以前在什么公司工作的事情"之类的废话,尽量先用 email 把要说的话说掉,然后问自己疑虑的东西足够了.

最近 Oracle 频繁收购开源厂商, 也有消息说 Oracle 也曾经试图收购 MySQL 未果, 一连串的事情引起了开源界的恐慌,估计也让不少开源爱好者都很闹心,今天居然在 CSDN 头条上看到了没有了MySQL,我们使Linux还能干什么这样的观点:

我宁可看到微软收购 Redhat、Mandrake等,也不愿看到 MySQL 被收购,因为在这之后将可能是 PostgreSQL 的覆灭,到了那时,我们还有什么理由继续使用 Linux 呢?

没错,这居然是 CSDN 的头条新闻. 这不知道这位开源爱好者怎么会作出这个有些可笑的结论.有必要讨论一下了。
 
被收购并不意味着会修改软件许可证方式.假定现在 MySQL 现在已经被某个大厂收购, 那么并不意味着这家收购方会冒天下大不韪,收购方可能会继续采用当前的许可模式,这样对那些期待免费使用的最终用户来说没甚么影响; 开源运动的实际推动者还是那些千千万万的软件爱好者,这一点不是以某个公司的意志能转移的。

修改软件许可方式不一定不是免费的. 我不知道那些 MySQL 的爱好者与使用者是重点关心软件价格的免费还是代码的开放, 据我的观察, 国内的 MySQL 最终用户中,直接因为某项功能而 Hack MySQL 源代码的少之又少,更多的都是直接拿来应用. 如果我的这一判断出入不大,那么 MySQL 被收购后不再开源,用户未必就一下子跑光了。

MySQL 不是唯一的开源数据库. 放眼望去,PostgreSQLIngresFireBird等等优秀的开源数据库产品还有很多; 除了流行程度, 软件功能和 MySQL 相差都不大; 即使收购方扼杀了 MySQL; 广大开源用户还是有的"吃"。

MySQL 本身的血统并不那么高贵. MySQL 本来就是由商业公司在背后运作, 甚至本身的技术也多少依赖于开源软件界。如果说他被更大的商业公司收购的话,只能说他的商业运作成功,修成正果而已。咱何必奢求?

更多厂商的推出免费数据库. Oracle 推出了免费的 Express Edition DB, IBM 紧跟对手推出免费的 DB2 Express-C, SybaseEnterpriseDB 等厂商也都有免费或开源的 DB 产品推出, 即使没有了 MySQL,我们的选择只会更多. "死了张屠户,也不用吃混毛猪".

如果这些理由还没有解除你的顾虑, 现在我们看看数据库之外的东西。

如果要想迅速的得到 Linux 环境中的日志报告信息, Logwatch 是一个很好的工具.

一般的 Linux 系统中可能都默认安装了这个工具.几乎不需要额外的配置就可以简单的用起来.

# logwatch --print

这条命令将会把昨天的日志信息简要的打印出来. 比如用户登录失败信息、SSH 登录信息、磁盘空间使用等.

单独查看某个服务,比如 SSH 登录信息:

# logwatch --service sshd --print

这条命令可以查看使用说明:

# logwatch --help

最新版本的 LogWatch 默认有 70 多种 Log 的配置信息. 如果要对自己的特殊 Log 做监控, 定制也是比较容易的。简单记录一下:

刚才和田春峰聊的时候,他说:

据说 Google 中国的黑板报 也使用的 Dreamhost...

我特地去查了查,真的呀.Whois.有意思. 但是 GoogleChinaBlog.net 的域名似乎被网友抢注了 :)

不过 Google 黑板报的页面代码似乎就是拼凑的. 虽然好像也用了 Blogger.com 的模板,但页面代码结构非常糟糕. CSS 是随便嵌进去的, 很多内容都是直接用 font 标记做格式化. Site:www.googlechinablog.com , 结果只有一条. 稍稍有点丢人哦. 或许 Google 都是程序天才,不屑于设计 HTML 页面的。

如何比较两个 Schema 的异同

| 2 Comments

有的时候, DBA 需要迅速找出来同一个 Oracle 数据库上或者不同数据库的两个 Schema 的差异.这种情况应该比较常见,比如测试数据库发布到产品数据库的时候,需要 DBA 做频繁的检查。

应对的办法之一是通过 Toad 这样的 GUI 工具来查找.具体操作应该是很简单的。Oracle 自带的 OEM 工具也有这样的功能( Oracle 变化管理工具包,不过不是免费的)。对于不喜欢图形工具的 DBA 来说, 用手工的方式更容易接受一些。如果已经建立了 Database Link ,可以通过类似如下的 SQL 简单的发现一些差异:

select * from user_tables@a
minus
select * from user_tables@b;

可以考虑先从 用户的 objects 入手,然后表->字段->索引 等等.

在 AskTom 上有一个关于 Schema 比较的讨论,以及一些参予讨论的人提交的 SQL 脚本。

今天测试了一个 Perl 脚本 Schemadiff, 这个工具分两个部分组成,一个执行 Perl 脚本加上一个配置文件。配置文件比较简单。看看就可以清楚。比较结果能够输出为 ASCII 文本与 HTML 两种格式。文本的结果比较类似 Unix 命令 diff 的输出.相对来说,比较直观的了.需要说明的是,使用这个脚本需要安装 DDL::Oracle 包。间接拒绝了对 Perl 不熟悉的朋友.

出卖隐私的网络传播

| 6 Comments

昨天看到一篇对 Digg 创始人的访谈,其中有这么一段:

2005年3月,网站获得了长足的进步,还是一次事件的引发出来的,那就是Paris Hilton在手机上自拍的裸照泄露出来,用户首先在Digg上帖出来,然后是用户没日没夜地进行评论、跟帖,Digg 由此排上了 Yahoo! 和 Google 的搜索排行,这带来的大批量的新用户...

居然是美女 Hilton 裸照事件给了 Digg 一个契机,一跃成为和 SlashDot 平起平坐的新闻评论站点.

回过头来看看近几年类似的重大隐私事件,大致可以分为如下三类:

本周言论 之 软件特性

为一个程序调不出来,为一个隐蔽故障不能发现,要死要活...那种劳累是难以形容的,比我现在到外头做做报告,人大开会要累得多。
--"当代毕昇"王选

A lot of people complain about the Firefox "memory leak(s)". All versions of Firefox no doubt leak memory -
it is a common problem with software this complicated.What I think many people are talking about however with Firefox 1.5 is not really a memory leak at all. It is in fact a feature.
--Ben Goodger( Firefox 项目主程序员) 把 Firefox 的内存泄漏问题解释为“软件特性”

Digg是第一次让科技新闻的读者决定那些新闻是每天重要的,而不是编辑。
--Digg的创始人Kevin Rose

图形工具是 DBA 的敌人?

| 4 Comments

最近 AnySQLITPub 上发了一个帖子: 多少DBA能离开OEM/TOAD/PLSQL Dev来工作? , 引来了很多人的讨论. 整理一下大家的观点,大致分为如下几类:

  • 工具能提高效率, 为啥不用?
  • 坚决不用;
  • 用不用都成; 解决问题就成;
  • 用来学习; 查看一些 SQL 很方便;

真是个仁者见仁,智者见智的问题. 图形化工具对于一个合格的 DBA 来说, 很多时候还是有缺点的,

一个图形化工具慢慢把 DBA 工作大众化了.这样作为一个DBA用图形化工具被人家看到了,显得不那么专业: 都是图形化的工具,普通开发人员随便点击几下子鼠标,不也成了 DBA 了? Oracle 10g 大大加强了 OEM 的功能, 很多人惊呼 Oracle 数据库管理员下岗的日子快到了. 在我看来,这恰恰是一个好消息。图形化工具上手容易,不可避免的很多人会浅尝辄止不去研究系统细节的问题,正是真正的 DBA 提高身价的好时候 :)

二是, 对图形化工具一旦产生依赖性, 应付突发事件的时候会有些局促感, 直观的东西隐藏了太多细节,而作为一个 DBA 更多的时候是要主动发现细节内容体现出来的问题; 这一点在讨论中很多人也提到了,一看没有安装 Toad ,就没法子上手了。



问题可能还有其他的,但是不是说 GUI 工具一无是处了,也不能说有这些问题就坚决不用 GUI 了。有的时候,开发人员依赖于 IDE 的, 就遇到的问题咨询 DBA ,不显得自己 IDE 用的很熟练的样子还真的说不过去; 再比如,抽取 DDL 语句这样的日常操作, GUI 工具的便利性还是有一些的。

还是针对图形化工具可能给我们带来的问题来说吧。"工具善其事,必先利其器", 这个"器"可不是 GUI 工具哦. 建立一套针对自己的跨平台工具包是必须的,很多 DBA 都有一套适合自己的工具包. 当然,光有工具没有用,适当的提高一下记忆力也有必要,至少,再参加面试的时候可以唬主考官一下。

参见 AnySQL 的Blog上的PR

--
一句题外话:作为一个 DBA ,你是希望合格的 DBA 多一些还是少一些好呢?

小技巧一个:在一个开发环境中,可以考虑把用户的SQL执行计划历史也收集进来.很简单,但是对开发 DBA 会很有帮助, 根据 HASH_VALUE 查询相关过去某个时间段内的 SQL 执行计划.一共两步:

1 Statspack 的 level 6 收集所有的统计和执行计划. 用 level 6 收集快照(Snap)信息:

SQL> execute statspack.snap (i_snap_level=>6);

2 运行 $ORACLE_HOME/rdbms/admin/sprepsql.sql 脚本抽取特定 HASH_VALUE 的 SQL 信息:

Oracle 最近喜欢上了对产品项目改名字, 继 Oracle HTML DB 更名为 Oracle Application Express 之后, Raptor 项目也更名为 Oracle SQL Developer .

Raptor 项目发展迅速, 不到三个月时间的时间内, 已经从 Early Adopter release 1 发展到了 Early Adopter release 4 .

Oracle 承诺在 06 年第一季度发布正式版本.并且,该软件将一直免费. 这样 Oracle SQL Developer + Oracle Database 10g Express Edition 构成了一套免费的 Oracle 开发环境.

Statspack使用中存在的几个误区

| 3 Comments

Statspack 是 Oracle 提供的一个实例级的Tuning工具。很多DBA都喜欢用这个工具来进行数据库的优化调 整。不过在交流中发现很多朋友对这个工具的的运用还有一些 问题。下面就其中比较容易出问题的几个方面进 行一下简单的分析。

快照的采样时间间隔问题

我们知道,Statspack的report实际上也就是对比两个快照 (Snapshot,也就是数据库当前状态 ) 得出的结 果。

一般情况下,专家建议生成Statspack报告的快照时间间隔为15-30分钟。

试想,一个人去医院看病,医生对其测量体温,一般也就是5-10分钟左右就可以了, 为什么是这麽长的时间? 因为5-10分钟这段时间基本可以近似的得到你的体温。如果时间过短,可能达不到既定的目的,测到的体温会 偏低,时间过长,甚至长达几 个小时的话(假设有这种情况),病人可能都昏迷几次了 ;) 。

对生成Statspack报告的快照时间间隔也是这样,如果两个Snap Time时间过短,数据 库的一些主要周期性 事务可能还没有运行,信息收集不完全。如果间隔过长,数据一样会有偏差。

假设如下的情况:系统一直正常,但是最近几天有用户反映,在A时间段应用程序执行 很慢。B时间段正常,而 A时间段有一个主要的事务X运行(也是用户使用到的事务)。 B时间段有另外一个比较消耗资源的事务Y在运 行。A和B时间段的跨度比较大。本来你的 快照如果覆盖A时间段内就已经能够的收集到比较准确的数据了,但 不巧的是,你的Report 所用的两个Snap ID的时间跨度太长,从而把B时间段内的统计数据也收集了进来。 Statspack 经过比较,“认为”事务Y是对系统有主要影响(这也会在Report上体现出来),而你,经过分析,认 为Y才是罪魁祸首,接下来,你不遗余力的对Y进行了tuning......

问题出现了!调整了B之后,用户继续报告,A时间段内系统不但没有变快,反而变得更慢,甚至不可忍受。这 种情况是很危险 的,可能会对系统造成不同程序的损害。在比较严格的环境中,这已经构成了一次比较严重的 事故。

或许你也要承认,Statspack的快照的采样时间间隔还真需要重视呢......

这是一个Oracle 8.1.7.0.1 版本下的Statspack报告:

                      Snap Id          Snap Time Sessions                  
                   ------- ------------------ --------   
Begin Snap:            637 04-Aug-03 11:59:33       25     
End Snap:              646 04-Aug-03 16:29:06       25      
Elapsed:                        269.55 (mins)  

从中可以看到快照637和快照646之间为269.55 (mins)。这么长的时间跨度,即使数据库在一定时间间隔内 有问题,在这里的体现也会有偏差。
下面的这个Statspack 报告的时间有点不靠谱了:

	                                                                Snap Length
Start Id  End Id              Start Time  End Time                (Minutes)    
--------  --------  --------------------  --------------------  -----------        
     314  1053        11-Dec-03 18:07:13  19-Dec-03 10:53:02      11,085.82 
       

11,085.82分钟? 这么长时间内的数据采集分析,怕是绝大部分内容都是不能相信的了。

还要注意的是,我们说的时间间隔,是Begin Snap和End Snap之间的间隔,而不是相邻两个Snap 之间的 间隔。对于Snap收集的间隔,建议以不要影响性能为准,收集的太过于频繁,会对性能和 存储都造成压力。 对于所谓的15-30分钟,不能墨守成规。具体的环境下应该加以调整。

以偏概全

Statspack从本质上说,是对系统的性能统计数据进行采样,然后进行分析,采样,就会有偏差。如何消除偏 差?统计学指出差值随样品个数的增加而降低。所以,只凭借一个Report文档就断定数据库的性能问题出 在某处,是比较武断的做法(个别情况除外)。需要DBA创建多个Report,包括不同时间段,对比进行分析, 这样才会起到很好的效果。在寻求技术支持的时候也最好能够多提交几份Report,便于支持人员迅速帮助解决问题。

WikiWiki! Google

| 11 Comments

无数 Blogger 在向更多的人传递一个消息: Google 中国黑板报。但不知道给 Google 这个黑板报提意见的有多少? 我去了一封邮件建议提供留言评论功能,不到 1 秒种就收到了回信--自动回复的.不用激动,信是乱码! 当然我用的是 Gmail 发送的邮件. 现在我用 Gmail 还经常有这种乱码的现象发生.

作为 Google 的一个忠实用户,多么希望 Google 的一些产品能够快速改进阿.随便列举两个:

1 Gtalk 的文件传输功能。我曾经不止一次地和朋友说过,如果 Gtalk 能提供文件传输的功能,其他大部分 IM 都可以不用了.但是这个功能就是迟迟不见,怎么不让人着急?

2 Google Adsense 的收入用来做 Google Adwords 广告,或者广告收入可以直接汇入在线支付工具.对于一些小网站来说,这个"以网养网"更有效; 这样就节省了从银行走帐了,支票对广大用户来说太麻烦.

注意到在 DBA Wiki 的 Apache Error Log 里面有这样一条信息频繁出现:

http:[Thu Feb 12 22:16:11 2006] [notice] cannot use a full URL in a 401 
ErrorDocument directive ---ignoring

在 bin 目录下的 .htaccess 我定义了 401 错误的重定向.检查了一下.原来 Apache 下不能用 URL 路径.必须要本地路径才可以.修改为如下:

# File to return on access control error (e.g. wrong password)
# By convention this is the TWikiRegistration page, that allows users
# to register with the TWiki. Apache requires this to be a *local* path.
ErrorDocument 401 /bin/view/TWiki/TWikiRegistration

修改之后该错误不再出现.记录一下.或许对别人也有用.

有朋友问我在 DreamHost 上配置 TWiki 的情况.下面简单说说我的安装过程.

TWiki 最近发布了 4.01 版本.相对 4.0 有了性能上的改进. 首先通过 SSH 登录到自己的帐户上.准备好合适的目录之后,下载并解压缩文件.

$ wget http://twiki.org/p/pub/Codev/Release/TWiki-4.0.1.tgz
$ tar -zxvf TWiki-4.0.1.tgz 

进入该目录后.

$ cp bin/LocalLib.cfg.txt bin/LocalLib.cfg
$ vi bin/LocalLib.cfg

编辑该文件.把 $twikiLibPath 指向实际的路经(要绝对路径).

然后

$ cp lib/LocalSite.cfg.txt lib/LocalSite.cfg
$ chmod +w lib/LocalSite.cfg
$ vi lib/LocalSite.cfg

编辑这个文件.修改对应的一些路径变量.都由英文说明.注意有的是相对路径.有的是绝对路径.这个地方写错了问题倒也不大,后面还有纠正的机会.

在 bin 目录下创建 .htaccess 文件.加入如下三行:

Options +ExecCGI
SetHandler cgi-script
Allow from all

然后在浏览器中输入 http://www.YourDomain.com/twiki/bin/configure 查看. 如果幸运的话.应该可以看到配置页面出现了.如果得到了一个 500 错误.很可能是你的 .htaccess 文件权限有问题,确保有读取权限.通过查看你的 Apache Error Log 应该可以看到更多的提示信息.比如:

tail -f /home/Your_User_Name/logs/Your_Domain_Name/http/access.log

最近又有一条 Oracle 的新闻吸引了不少人注意, 那就是 Oracle 准备收购开源厂商(Oracle's Open-Source Shopping Spree).目标锁定JbossZendSleepycat 这三家.

从目前的一些消息看, 收购 Zend 似乎是已成定局. 对 Oracle 来说, PHP 的开源动力是一块肥肉, PHP 也俨然成为 Java/.net 之外的第三股开发力量. Oracle 过去也在 PHP 上投入了不少资源, 早在 2004 年 8 月就在 Application Server 中提供对 PHP 的支持(参见:Oracle 联手 Zend 推 PHP), 与 Zend 的合作看来感觉不错,所以财大气粗的 Oracle 还不如直接把 Zend 纳入麾下更加痛快。

收购 Jboss, 动机还是比较明显: 抢夺 BEA 与 IBM 的中间件产品。我一直比较奇怪, Oracle 为什么不收购 BEA ? BEA 的产品与客户都是 Oracle 比较垂涎的, 不过如果拿下 Jboss, BEAIBM 的中间件产品市场相信会受到一定打击。间接的达到了目的。Oracle 这一步棋和收购 InnoDB 来断掉 MySQL 的后路有异曲同工之妙 .

本周言论 之 Google依然要交学费

我们希望在所有领域成为第一名。这并不是没有道理。如果你不是第一名,你就不会赚很多的钱
--甲骨文首席执行官拉里-艾里森

对于发展中国家而言,类似手机的设备要比笔记本电脑来得有用,因为这些地方的无线通讯服务需求相当大,而且持续增强中
--微软副总裁及首席技术官Craig J. Mundie针对100美元PC的评论.微软没有加入到这一计划中.

电视晚会应当遵循其特有的艺术规律,为了给电视观众最完美的效果,有时候必须采取一些必要的手段......有一点可以肯定,就是春晚所有演唱都是真唱,不存在假唱的问题
--狗年春晚总导演郎昆

Google在中国没戏,雅虎在中国交了七八年的学费,我觉得Google依然要交学费。
--拿着搜狐2005年第四季度及未经审计的2005全年财报,有了底气的张朝阳

推出 Wiki 服务

| 6 Comments

经过一段时间的测试后,本站推出测试版的 Wiki 服务: wiki.dbanotes.net. 内容将针对 Oracle 常用文档的维护. 也欢迎感兴趣的朋友们加入! TWiki 入手稍难一点,要有点耐心才好 :)

这段时间先后测试了 MediaWiki ,Trac, TWiki. 分别说说一点感受:

  • MediaWiki: 不太喜欢 MediaWiki 的页面风格,虽然通过 CSS 可以重新定值; 基于 PHP , 我对 PHP 不太熟悉. 需要 MySQL 数据库,日后的迁移什么的都会有问题; 优点:在现在的 DreamHost 主机上安装比较容易;
  • Trac安装复杂, 出了问题找不到相关文档,可定制化不那么灵活, 基于 Python, 修改代码不容易; 没插件;
  • TWiki: 虽然速度稍稍慢了一点,新的 4.01 对性能作了一定的改进; 文档齐全, 基于 Perl( MT 也是基于 Perl),用户数多, 出了问题也便于求助. 不需要数据库,有插件;

更多参考:
TWiki DakarRelease安装备忘
Wiki发布系统的选型

经过衡量,决定采用 TWiki. 虽然现在的内容还不是很多, 不过这是一个好的开始. Wiki 的世界, 我来了!

谈谈选用个人软件的标准

| 7 Comments

又有一个常用软件 WinRAR 从我的笔记本中被替换掉了.原来我用的是汉化版本, 其实就是盗版了. 新安装的软件是 7-zip.WinRAR 我能用到的功能 7-zip 都具备.当然, 更主要一点是, 7-zip 是在GNU LGPL 版权下发布的.

说一下我的个人软件选择主观上的策略:

  • 如果开源工具功能满足使用需求,则用开源工具--很多商业工具功能强大,但是实际上可能我只用了5%的常用功能;
  • 如果开源工具有定制过的 Portable 版本,则用之,我的 Firefox 就是用的 Portable Firefox;
  • 如果免费软件捆绑了流氓软件,则坚决不用.最近就砍掉了暴风影音
  • 不用汉化过的软件.很多汉化过的软件都捆绑了广告或者是流氓软件;
  • 安全工具坚决不用 Crack 过的版本;
  • 如果商业软件可以得到免费版,可以考虑使用.我的 DivX 就是用的开发商赠送的 License ;
  • 不用有间谍软件的共享软件.试用版也不用;
  • UI 会影响我的选择;
  • 如果客观条件不允许,则上述规则不适用

昨天访问 LiveJournal 的时候,偶然间注意到 中文字体看起来很舒服[效果图]. 虽然不是那么尽善尽美,但是作为一个 Web 2.0 英文站点, 已经很难得了.简单查看了一下,基本上是 Verdana + Arial 字体混用.不由得让我捉摸起一些站点的字体问题.国外很多 Web 2.0 的服务也都有了中文化的版本,但是水平有些参差不齐.

这方面做得好的当属微软, MSN Space 中文版本字体的属性设置非常符合中文用户的习惯,Tahoma((英文 Windows 默认字体是 Tahoma,中文 Windows 默认字体则是宋体:Simsun, 英文就看起来很"瘦")大量运用使得 Web UI 和 Windows UI 字体一致,很符合用户观感. 这恐怕也和微软一贯以来注重用户体验有关吧.

Yahoo! 360°相对来说则不那么入乡随俗, Georgia + Arial 字体混用.不要忘了汉字是方块字,Georgia 中英文字体的高是不一致的.Yahoo! 的 CSS 控制中也大量了使用 6px,10px 这样小的字号,而这些字号显示中文的时候会出现毛边.

昨天尝试在 Dreamhost 上搭建 Trac.经过一番折腾,终于能 "Run" 起来了.下面说一下安装过程的注意事项,供一些准备在 Dreamhost 搭建 Trac 的朋友参考.

虽然 Dreamhost 现在已经可以做到一键安装 Subversion, 但是还做不到一键安装 Trac . 不过还好,Dreamhost 的 Wiki 提供了一篇比较详尽的安装指导:Installing Trac without Debian packages on a shared host(以下简称'指导')

安装过程会依次涉及到安装 Python 2.3.5(因为要使用Clearsilver,所以需要单独安装一份自己的 Python,虽然 Dreamhost 已经在系统中安装了 Python 的几个版本), ClearSilver(功能强大的 HTML 模板系统), SQLite(Trac 用到的数据库.Trac 支持 SQLite 与 PostgreSQL), pysqlite(Python 调用SQLite的接口), SWIG(Simplified Wrapper and Interface Generator ),(Subversion--我最后没安装而用系统预安装的版本),所以需要先决定这些软件的安装目录.我是把这些工具安装在当前用户的默认目录($HOME)下.如果你准备安装到默认目录下的特定目录,需要注意一下环境变量的设定.

安装过程比较繁琐, 如果不是特别肯定, 我都不安装相关软件的最新版本.我用的版本号会注明.

好了, 参考'指导'开始安装 Python ,注意当前操作的 Shell 用户要有足够的空间.接下来一系列的编译操作会占生成很多临时文件并占用很多磁盘空间.

安装 Python 完成后,Clearsilver 的安装需要做一点修改,以便于能够找到刚才安装的 Python 环境.对 clearsilver-0.9.14.tar.gz 解压缩之后,修改 scripts/document.py 的第一行为 #!/usr/bin/env python .然后按照'指导'的操作进行编译并安装.

然后安装 SQLite 会很顺利, 安装 pysqlite (2.0.7) 需要修改一下 setup.py 文件的 include_dirs 与 library_dirs 要分别指向我们特定的目录,'指导'有示例.然后安装 SWIG (1.3.24).问题不大.

入选成为 CSDN 的 10 佳技术 Blog

| 19 Comments

一件值得高兴的事: 本站 Blog 获得了CSDN 《程序员》杂志的 "软件中国 2005 年度风云榜" 的 "10 佳技术 Blog" 称号. 第二个居然就是 DBA notes, 第一则是车东的 Blog. 我作为主编之一的《Oracle数据库性能优化》也当选"10佳开发类图书" , 有意思的是,我经常访问的 Oracle 技术论坛 ITpub.net 也入选《程序员》杂志的十佳技术站点.

一直把写 Blog 当成自己的一个业余爱好来进行,从来没有想到一直写下去会是什么样子,得到这个奖真的比较意外,也比较惶恐--比我写的好的技术 Blogger 还有很多. 下午在公司参加 Kickoff 会议,眼看着台上发出去一堆奖项,自己连抽奖的机会都没有.得到了这个,多少自我满足一下.

谢谢一直支持本站的读者们和那些热心给我提意见的朋友们! 谢谢CSDN和《程序员》杂志的编辑们! 也谢谢给我提供了实验平台的 DreamHost!

站点故障

晚上的时候,我正在 DreamHost 虚拟主机上编译 Subversion, 突然系统把我踢了出来,尝试重新登陆,没有返回响应信息. 这个时候浏览本站的也面也不可以.登陆到 DreamHost 客服系统,提交了一条请求信息,没过几分钟,收到了邮件.原来是电源故障:

Outage verified: We are actively looking into resolving it.
       (2006-02-07 03:17:42 PDT, 0 secs ago)
Outage first reported.
       (2006-02-07 03:09:24 PDT, 8 mins 18 secs ago)

反应倒是够迅速的,不过因为是硬件问题,过了将近一个小时才解决.

接着又遇到了第二个问题.

The parameter list is too long

| 3 Comments

非常常见的一个 Unix/Linux 命令错误信息: The parameter list is too long.

$ find /backup/* -ctime 2
ksh: /usr/bin/find: 0403-027 The parameter list is too long.

find: 0403-027 The parameter list is too long 这个错误信息很让人迷惑: 难道该目录下文件太多了么? 其实不是的, 问题出在那个 "*" 上,Korn Shell 默认把 * 作为 Metadata 处理,进行了扩展,进而这条语句备错误的解析.我的操作平台是 AIX 5.3. 我不确定这是和这个平台的 Korn Shell 有关.

使用 ls / grep / find 等命令时侯因为通配符的使用, 一不小心就会遇到这样的错误.可以通过对对象添加引号来禁止扩展

以下为 2005 年本站迁移到 DreamHost 提供的虚拟主机上之后,建立起来的 Awstats 抓到的近三个月左右的统计数据.不同的搜索引擎的"贡献度"如下:

转介参观者到本站的搜索引擎网页数百分比文件数百分比
Google2989862.8 %2993557.6 %
Baidu1463730.7 %1695832.6 %
QQ6791.4 %6951.3 %
Google (Images)6251.3 %8841.7 %
MSN4030.8 %20653.9 %
37213730.7 %3730.7 %
Yahoo3200.6 %3200.6 %
SoGou1760.3 %1760.3 %
YiSou1330.2 %1330.2 %
NetEase1230.2 %1230.2 %
ZhougSou460 %460 %
Unknown search engines400 %1020.1 %
Sina270 %270 %
Alexa170 %170 %
iask160 %160 %
21CN70 %70 %
Netscape70 %70 %
Dogpile50 %50 %
A9.com50 %60 %
MetaCrawler (Metamoteur)50 %50 %
Tom40 %50 %
Excite40 %50 %
Ask Jeeves30 %30 %
Kvasir30 %30 %
AOL20 %20 %
WebCrawler10 %10 %
Hotbot10 %10 %
Mamma10 %10 %
AOL (de)10 %10 %
AltaVista10 %60 %
metacrawler.de10 %10 %
Looksmart10 %10 %
Sohu10 %10 %
Rambler10 %10 %
China10 %10 %

VMWare Server 也将免费

| 4 Comments

根据 NewsForge 消息, 继 EMC 旗下的 Vmware 公司发布免费的 Vmware Player 之后,最近又将发布一款入门级的 VMware Server,面向 x86 与 x86-64 服务器, 用以吸引潜在的客户。Vmware Player 相对 Vmware Workstation 只具有有限的功能,而即将发布的 Beta 版本的 VMware Server 功能上不打折扣的:包括监控特性 与 Intel 的 Virtualization Technology (VT) 以及虚拟 SMP 技术.但是不会包含 VMware ESX Server 具有的高级管理工具.

Vmware 此举恐怕也是不得已而为之:竞争对手太多了.

开源的有 XEN. 已经得到 SuSE 这样的 Linux 厂商明确支持.新版本的 OpenSuSE 已经捆绑了 XEN. OpenVZ (SWsoft 企业级产品的 Virtuozzo 开源版本) 最近也逐渐得到一些厂商的支持,比如 RedHat 和同样支持 XEN 的 Novell.

非开源软件,Vmware 要面对微软的 Virtual PC以及 SWsoft 的 VSWsoft irtuozzo . 在 Windows 平台也有实现.(最近发现 SWsoft 已经杀入中国市场.并且发展的有声有色)

前天, 我提到过 Google T4 工具条"增强了扩展能力. 可以添加第三方扩展 Button". 今天就看到 SixApart 官方 Blog 发布了一则 Googlify your Movable Type Blog, 教用户如何定制针对自己 Blog 站点的 Google T4 Button. 当然,前提是用户必须使用 MT . 相信用不了多久,针对 WordPress 的也会有的.

操作起来比较简单,第一步,建立一个模板:toolbar_button.xml. 然后Rebuild . 这个模板是 Niall Kennedy 创建的. 请参见完整的模板源代码

第二步,点击这个连接添加:点击测试添加 Google 工具条按钮

小强历险记

| 3 Comments

炒的沸沸扬扬的《小强历险记》终于可以通过 BT 或者 HTTP 方式下载了。原来的费力不讨好的通过什么专用阅读器观看方式估计让 三表 闹心坏了,也导致很多人声称拒看这部据说会有趣的电影。

还好,200M 大小的文件一会儿就通过 Azureus 拉回来了。片头的记者采访调侃味道虽然浓,但看起来很虚、很生硬、很无聊,也似乎告诉我们电影里面将会有更多的影射。果不其然,不到一个小时的片子里面几乎全是大量的损人损事的"段子"。小强其实没怎么"历险",不过是去派出所耍了一圈儿贫嘴而已。这些喉舌(参演的大部分都是圈里的人吧?)借助这部小电影终于"口Y"了一把。估计是平时的稿子总被砍,这下算是借电影中的小人物之口出了一口恶气、鸟气。

真后悔自己先看了三表的剧本蓝本,要不估计还可以笑几声。

简单用了一下 IE 7 Preview

| 5 Comments

看到不少站点放出来的新闻说微软公开发布 IE7 Beta2,正好想测试一下自己的 Blog 在 IE 7 下面的表现能力. 就下载了一个.

没想到结果比较糟糕, Banner 部分的横向列表居然显示到该层的外面去了[截图].找了半天的原因,最后发现只要我把页面代码中的第一行的 DOCTYPE 声明去掉就可以正常显示.感觉很不好.

第二个不舒服的地方是 IE 7 默认把浏览器内的 Cleartype(字体平滑处理)打开了.老实说,这个平滑处理我在液晶上从来不用,对英文用户是个很好的帮助,但是对中文处理有的时候是发虚的.如何关掉这个平滑处理? 在 IE 右上角菜单右边选择 Tools -> Internet Options -> Advanced -> MultiMedia 部分反选 "Use ClearType" .

关于这篇归档

This page is an archive of entries from February 2006 listed from newest to oldest.

January 2006 is the previous archive.

March 2006 is the next archive.

Find recent content on the main index or look in the archives to find all content.