作者文章: Fenng

期望之后的失望-小评侯捷的《Word排版艺术》

侯捷的《Word排版艺术》出版了,前一段时间据说还在西单图书大厦签售,颇有一些明星出书的味道,可惜那天实在太忙,否则近在咫尺(我上班的公司就在西单图书大厦旁)一定要去看看热闹场面喽。

因为这本书的先声夺人,所以到侯捷的站点上去下载了样章来看,第一感觉真是不错的,看后自己还写了一点不为人注意的感想。

期待之语

对侯捷《Word 排版艺术》的期待
因为自己基本不会编程,所以侯捷先生的那些备受好评的大作也只能是浅尝辄止了,在翻看这些图书的过程中,留下了一个很深刻的印象:排版都做得很棒。后来看侯捷的网站,居然提及这些书都是用Word排版的。再后来看到侯先生说要出版一本关于Word排版的图书,可真的勾起了我的兴趣了。

侯先生写过多少经典的程序我并不清楚,但是他出版了很多书籍我是了解一点的。更为重要的是:这些图书据说都是由自己排版制作的。想想看,30多本图书的排版下来将会积累多少宝贵经验。虽然,Word的所见即所得让不少人以为已经明白了排版是所谓怎么回事,但是实际上我们看到的排版格式风格良好的文档是少而又少。文档的重要性是不言自明的,不过,有的时候对越简单的东西的掌握往往不得要领,这的确是个苦恼的事情。所幸的是,《Word 排版艺术》即将出版了。

  我对这本书充满期待。

直接印象

当然没有调查就没有发言权,以上也仅仅是我自己的一点感慨而已。上个周四,中午恰好有空,特地跑到西单图书大厦去,想买这本书,老实说,自打从网站上看到这本书的封面之后就感到不是很舒服,用隶书做书名在IT书籍里面似乎不是很多,希望出版社倒是用过不少,可能给我留下了太糟糕的印象吧。

到了书店,一路寻到那本书面前,迫不及待的翻看了一会,兴致已经大减:虽然是一本关于排版艺术的书,但是里面似乎并没有多少艺术的成分,好多地方用的居然是”隶书”字体,对侯捷的这个做法很不理解,他在书中也说宋体是最为人接受的字体,但是对自己采用了那么多隶书居然没有什么解释,难道仅仅是因为个人喜欢?

继续阅读

如何用APT维护Red Hat Enterprise Linux (RHEL)

Linux系统维护中令管理员很头疼的就是软件包之间的依赖性了,往往是你要安装 A 软件,但是编译的时候告诉你X软件安装之前需要 B 软件,而当你安装 Y 软件的时候,又告诉你需要 Z 库了–好不容易安装好 Z 库,发现版本还有问题……可能很多朋友都有过这个经历。其实开源社区早就对这个问题尝试进行解决了,不同的发行版推出了各自的工具,比如Yellow Dog 的 YUM ,Debian的 APT (Advanced Packaging Tool)等。而这些软件也被开源软件爱好者们逐渐移植到别的发行版上。

Redhat 企业版 Linux 的的升级往往给管理员们带来不少问题:网站下载速度太慢,不够安全……当然了,更多的人是无法更新的–版权问题。经过一段时间的比较 ,感觉使用APT维护RHEL有着特殊的便利性。(有的朋友可能会说,YUM 也不错阿!是的,YUM 在很多时候表现的确不错,不过如果使用的Linux是RHEL的话,很难找到适合 YUM 的资料库,”巧妇难为无米之炊”。) 现在把具体方法介绍给大家作为参考。

继续阅读

书写历史的甲骨文–ORACLE公司传奇

按:这是这篇文章在 2009 年年底修订的版本,从成稿以来的第三次修订,补充了若干新发现的信息。仅供参考,如有谬误,敬请指正。所有信息来自公开资料,恕不负责信息准确性。

1. ORACLE公司之起源

很难想象,ORACLE 公司的这一段传奇居然要从 IBM 公司开始。

1970年的6月,IBM 公司的研究员埃德加·考特 (Edgar Frank Codd) 在 Communications of ACM 上发表了那篇著名的《大型共享数据库数据的关系模型》(A Relational Model of Data for Large Shared Data Banks)的论文。这是数据库发展史上的一个转折。要知道,当时还是层次模型和网状模型的数据库产品在市场上占主要位置。从这篇论文开始,拉开了关系型数据库(RDBMS)软件革命的序幕。

虽然早在1970年就诞生了关系模型理论,但是市场上迟迟不见关系型数据库管理软件的推出。主要原因是很多反对者认为关系型数据库速度太慢,比不上当时的层次式数据库。值得好笑的是 IBM 虽然1973年就启动了System R的项目来研究关系型数据库的实际可行性,也没有及时推出这样的产品,因为当时IBM 的的 IMS(著名的层次型数据库)市场销路不错,如果推出关系型数据库,牵涉到 IBM 很多人的自身利益。再者,IBM 庞大复杂的官僚机构处在决策上远不那么灵活。

1977年6月,Larry Ellison 与 Bob Miner 和 Ed Oates 在硅谷共同创办了一家名为软件开发实验室(Software Development Laboratories,SDL)的计算机公司(ORACLE公司的前身)。那个时候,32岁的Larry Ellison,这个读了三家大学都没能毕业的辍学生,还只是一个普通的软件工程师。公司创立之初,Miner是总裁,Oates为副总裁,而Ellison,因为一个合同的事情,还在另一家公司上班。没多久,第一位员工Bruce Scott(用过ORACLE数据库软件的人都知道有个Scott用户的吧?没错,就是这个Scott,至于Scott用户的密码Tiger,那是Scott的女儿养的猫的名字。Scott工号是4)加盟进来,在Miner和Oates有些厌倦了那种合同式的开发工作后,他们决定开发通用软件,不过们还不知道自己能开发出来什么样的产品。Oates最先看到了埃德加·考特的那篇著名的论文连同其他几篇相关的文章并推荐Ellison和Miner也阅读一下。Ellison和Miner预见到数据库软件的巨大潜力(跟着 IBM 走,没错),于是,SDL开始策划构建可商用的关系型数据库管理系统( RDBMS )。

Oracle Company Gang of Four, Oracle公司创始人
图1 左起 Ed Oates、Bruce Scott、Bob Miner、Larry Ellison

很快他们就弄出来一个不太像样的产品,或者具体的说,更像一个Demo。根据 Ellison 和 Miner 他们在前一家公司从事的一个由中央情报局投资的项目代码,他们把这个产品命名为 ORACLE。因为他们相信,ORACLE(字典里的解释有”神谕, 预言”之意)是一切智慧的源泉。1979年,SDL 更名为关系软件有限公司(Relational Software,Inc.,RSI),毕竟”软件开发实验室”不太像一个大公司的名字。1983年,为了突出公司的核心产品,RSI再次更名为ORACLE (全称为Oracle Systems Corporation)。

Oracle_Company_Building.jpg
图2 美国 Oracle 公司总部一瞥

关于第一版和第二版的开发过程,现在能知道的是 Bob Miner 负责数据库引擎的部分,而 Scott 负责 SQL 的部分。Oracle V1 是在 PDP-11 上开发的,用的 PDP 汇编语言,机器有着”高达 128 KB” 内存。Oracle V2 也是在类似的开发环境下写出来的,编译后的文件有 … 100K 之巨。那是个内存稀缺的年代。

未完待续…


注:关于 Oracle 最初和 CIA 合作的项目,根据 Bruce Scott 的回忆,项目代号是” ORACL”,没有字母 “E”。

Updated:Bruce Scott, the co-founder of Oracle says, “I remember him very distinctly telling me one time: Bruce, we can’t be successful unless we lie to customers.” And adds: “All the things that you would read in books of somebody being a leader, he wasn’t. But he was tenacious; he would never give up on anything.”

“甲骨文这个译名来自台北故宫博物院,当时看到中国的甲骨文英文译名是oracle,考虑到,甲骨文是中国最早的文字,是用来占卜的,这和用户利用关系型数据库存储数据,并预测未来有隐喻的类似之处。不过,发展到今天,企业IT更趋向一种精确的占卜工具”。来自 @刘松

书写历史的甲骨文–ORACLE公司传奇(3)

经受挫折

ORACLE第6版于1988年发布。由于过去的版本在性能上屡受诟病,Miner带领着工程师对数据库核心进行了重新的改写。引入了行级锁(row-level locking)这个重要的特性,也就是说,执行写入的事务处理只锁定受影响的行,而不是整个表。这个版本引入了还算不上完善的PL/SQL(Procedural Language extension to SQL)语言。第6版还引入了联机热备份功能,使数据库能够在使用过程中创建联机的备份,这极大地增强了可用性。同时在这一年,ORACLE开始研发ERP软件。

公司发展看上去比较顺利,不过,噩梦才刚刚开始。

由于过去对软件测试重视的程度不够–那个时候公司规模小,基本上都是客户帮助免费测试的。在第六版刚发布之后,很多迫不及待开始使用的用户就怨声载道。这是个根本就没有测试好就进行发布的产品(也怪Ellison,大话总要说在前头,只好自尝苦果)。用户开始对ORACLE大肆抨击,ORACLE的一些对手也开始落井下石,针对ORACLE产品的一些弱点进行攻击。开发人员一面应付愤怒的用户,一面加班加点地对程序进行接连不断的修正,最后,总算得到了一个比较稳定的版本,暂时平息了用户的愤怒。

但是,实际的问题并不在这里,几年来高速增长的同时也给公司带来了巨大的隐患,1990财年第三季度报表的公布引爆了一切。财务人员发现了1500万美元的坏帐,并且公司利润距离预期相差甚远。接下来的时间里,大公司病的诸般症状接踵而来,面对股东的指控,股票一落千丈,公司前景暗淡,甚至面临破产。一度靠贷款来维持自己的奢华生活也不变卖股票的Ellison也快撑不住了。公司下大力气整顿财务(财务主管杰夫·沃克,Jeff Walker ,从某种程度上解救了公司)。公司宣布削减开支,裁退大量销售人员,同时聘用了专门的管理人才,Jeff Henley(CFO) 与 Raymond Lane (COO) 加盟 Oracle。

噩梦延续到ORACLE第七版的推出而结束。这个公司已经空谈了好几年的新版本(一度被讥讽为不过是Ellison的故计重施而已),直到1992年6月才终于闪亮登场,这一次公司吸取了第六版匆忙上市的教训,听取了用户的多方面的建议,并集中力量对新版本进行了大量而细致的测试。该版本增加了许多新的性能特性:分布式事务处理功能、增强的管理功能、用于应用程序开发的新工具以及安全性方法。ORACLE7还包含了一些新功能,如存储过程、触发过程和说明性引用完整性等,并使得数据库真正的具有可编程能力。还有一点必需要说明的是,这个版本在原有的基于规则的优化器(RBO)之外引入一种新的优化器:基于开销的优化器(Cost-Based Optimizer , CBO)。CBO根据数据库自身对对象的统计来计算语句的执行开销,从而得出具体的语句执行计划。在以后的几个重大版本中,ORACLE的工程师们逐步对这个优化器进行改进,CBO逐渐取代了RBO。

ORACLE 第七版是ORACLE真正出色的产品,取得了巨大的成功(笔者使用最早的版本就是就是第七版)。这个版本的出现真是好时机,当时Sybase公司的数据库已经占据了不少份额,ORACLE借助这一版本的成功,一具击退了咄咄逼人的Sybase。公司的销售人员这次算到了给用户兑现空头许诺的时候。公司经过两三年的治理,终于摆脱了种种麻烦,重新开始健康发展,销售额也从92年的15亿美元变为四年后的42亿美元。

未完待续…


人物发展:

  • Jeffrey O. Henley 从 2004 年开始担任Oracle 公司 Chairman 。
  • Raymond Lane,后来被赶出 Oracle,也得到了财富。从事风险投资。