<?xml version="1.0" encoding="gb2312"?>

<!-- RSS generated by oioj.net on 4/16/2004 ; 感谢LeXRus提供 RSS 2.0 文档; 此文件可自由使用，但请保留此行信息 --> 
<!-- Source download URL: http://blogger.org.cn/blog/rss2.asp       -->
<rss version="2.0">

<channel>
<title>mix的博客</title>
<link>http://blogger.org.cn/blog/blog.asp?name=mix</link>
<description>mix的博客</description>
<copyright>blogger.org.cn</copyright>
<generator>W3CHINA Blog</generator>
<webMaster>webmaster@blogger.org.cn</webMaster>
<item>
<title><![CDATA[[zz]Java开发人员书房必备]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=mix&amp;id=5388</link>
<author>mix</author>
<pubDate>2005/4/29 8:36:16</pubDate>
<description><![CDATA[
<DIV class=postTitle><A href="http://blog.csdn.net/java_editor/archive/2005/04/28/366208.aspx">[ZT]Java开发人员书房必备</A>
<SCRIPT language=javascript>document.title="[ZT]Java开发人员书房必备 - "+document.title</SCRIPT>
 </DIV>
<DIV class=postText>
<P>首发于CU <BR>笔者这两年陆陆续续的看了几位专家有关Java开发人员需要阅读的好书籍介绍，现在又看到XP专家Roy Miller有关Java开发人员必备书籍的介绍，觉得有必要将几位专家的意见综合一下，选出几本公认的书来，供各位朋友们参考。专家的意见，见下表： 
<TABLE style="WIDTH: 869px; HEIGHT: 956px; TEXT-ALIGN: left" cellSpacing=2 cellPadding=2 border=1>
<TBODY>
<TR>
<TD style="VERTICAL-ALIGN: top"><BR></TD>
<TD style="VERTICAL-ALIGN: top">书名<BR></TD>
<TD style="VERTICAL-ALIGN: top">Kevin Taylor</TD>
<TD style="VERTICAL-ALIGN: top">Brian Marick</TD>
<TD style="VERTICAL-ALIGN: top"><SPAN class=f16>Harshad Oak</SPAN></TD>
<TD style="VERTICAL-ALIGN: top">Roy Miller<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">1<BR></TD>
<TD style="VERTICAL-ALIGN: top">Thinking in Java, 3rd edition</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">2<BR></TD>
<TD style="VERTICAL-ALIGN: top">Java In Nutshell</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">3<BR></TD>
<TD style="VERTICAL-ALIGN: top">Effective Java: Programming Language Guide</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">4<BR></TD>
<TD style="VERTICAL-ALIGN: top">Java Examples in a Nutshell</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">5<BR></TD>
<TD style="VERTICAL-ALIGN: top">Swing, Second Edition</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">6<BR></TD>
<TD style="VERTICAL-ALIGN: top">Java Servlet Programming, 2nd Edition</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">7<BR></TD>
<TD style="VERTICAL-ALIGN: top">Enterprise JavaBeans</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">8<BR></TD>
<TD style="VERTICAL-ALIGN: top">Expert One-on-One J2EE Development without EJB</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">9<BR></TD>
<TD style="VERTICAL-ALIGN: top">Concurrency: State Models &amp; Java Programs</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">10<BR></TD>
<TD style="VERTICAL-ALIGN: top">Concurrent Programming in Java<SPAN class=prod_subtitle2>: Design Principles and Patterns</SPAN> </TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">11<BR></TD>
<TD style="VERTICAL-ALIGN: top">Refactoring: Improving the Design of Existing Code</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">12<BR></TD>
<TD style="VERTICAL-ALIGN: top">Design Patterns Explained</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">13<BR></TD>
<TD style="VERTICAL-ALIGN: top">UML Distilled: A Brief Guide to the Standard Object Modeling Language</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">14<BR></TD>
<TD style="VERTICAL-ALIGN: top">The Pragmatic Programmer: from Journeyman to Master</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">15<BR></TD>
<TD style="VERTICAL-ALIGN: top">Test-Driven Development: By Example</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">16<BR></TD>
<TD style="VERTICAL-ALIGN: top">Design Patterns: Elements of Reusable Object Oriented Software</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">17<BR></TD>
<TD style="VERTICAL-ALIGN: top">Extreme Programming Explained: Embrace Change</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">18<BR></TD>
<TD style="VERTICAL-ALIGN: top">Agile Software Development</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">19<BR></TD>
<TD style="VERTICAL-ALIGN: top">Lessons Learned in Software Testing</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">20<BR></TD>
<TD style="VERTICAL-ALIGN: top">Programming Perl</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">21<BR></TD>
<TD style="VERTICAL-ALIGN: top">Working Effectively With Legacy Code</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">22<BR></TD>
<TD style="VERTICAL-ALIGN: top">Structure and Interpretation of Computer Programs</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">23<BR></TD>
<TD style="VERTICAL-ALIGN: top">Ivor Horton's Beginning Java 2</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">24<BR></TD>
<TD style="VERTICAL-ALIGN: top">A Programmer's Guide to Java Certification</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">25<BR></TD>
<TD style="VERTICAL-ALIGN: top">Mastering Enterprise JavaBeans</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">26<BR></TD>
<TD style="VERTICAL-ALIGN: top">Head First EJB: Passing the Sun Certified Business Component Developer Exam</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">27<BR></TD>
<TD style="VERTICAL-ALIGN: top">The Career Programmer: Guerilla Tactics for an Imperfect World</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">28<BR></TD>
<TD style="VERTICAL-ALIGN: top">Google Hacks</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">29<BR></TD>
<TD style="VERTICAL-ALIGN: top">Joel on Software</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">30<BR></TD>
<TD style="VERTICAL-ALIGN: top"><SPAN class=atitle3>The Java Programming Language</SPAN></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">31<BR></TD>
<TD style="VERTICAL-ALIGN: top"><SPAN class=atitle3>Expert One-On-One J2EE Design and Development</SPAN></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">32<BR></TD>
<TD style="VERTICAL-ALIGN: top">Patterns of Enterprise Application Architecture</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">33<BR></TD>
<TD style="VERTICAL-ALIGN: top">Peopleware: Productive Projects and Teams</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR></TBODY></TABLE>表1，4位专家推荐的书籍，y代表推荐的书。<BR>从专家推荐的33本书中我们选出至少有两位专家推荐的书，见下表：<BR>
<TABLE style="WIDTH: 845px; HEIGHT: 284px; TEXT-ALIGN: left" cellSpacing=2 cellPadding=2 border=1>
<TBODY>
<TR>
<TD style="VERTICAL-ALIGN: top"><BR></TD>
<TD style="VERTICAL-ALIGN: top">书名<BR></TD>
<TD style="VERTICAL-ALIGN: top">Kevin Taylor</TD>
<TD style="VERTICAL-ALIGN: top">Brian Marick</TD>
<TD style="VERTICAL-ALIGN: top"><SPAN class=f16>Harshad Oak</SPAN></TD>
<TD style="VERTICAL-ALIGN: top">Roy Miller<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">1<BR></TD>
<TD style="VERTICAL-ALIGN: top">Thinking in Java, 3rd edition</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">2<BR></TD>
<TD style="VERTICAL-ALIGN: top">Effective Java: Programming Language Guide</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">3<BR></TD>
<TD style="VERTICAL-ALIGN: top">Concurrent Programming in Java<SPAN class=prod_subtitle2>: Design Principles and Patterns</SPAN> </TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">4<BR></TD>
<TD style="VERTICAL-ALIGN: top">Refactoring: Improving the Design of Existing Code</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">5<BR></TD>
<TD style="VERTICAL-ALIGN: top">UML Distilled: A Brief Guide to the Standard Object Modeling Language</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">6<BR></TD>
<TD style="VERTICAL-ALIGN: top">The Pragmatic Programmer: from Journeyman to Master</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">7<BR></TD>
<TD style="VERTICAL-ALIGN: top">Test-Driven Development: By Example</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">8<BR></TD>
<TD style="VERTICAL-ALIGN: top">Design Patterns: Elements of Reusable Object Oriented Software</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">9<BR></TD>
<TD style="VERTICAL-ALIGN: top">Extreme Programming Explained: Embrace Change</TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR></TBODY></TABLE>表2，至少有两位专家推荐的书<BR>下面我们按推荐度排列一下，再加上Jolt奖这一项，因为Jolt奖也是由几十位专家级的人物评出的，见下表：<BR>
<TABLE style="WIDTH: 900px; HEIGHT: 284px; TEXT-ALIGN: left" cellSpacing=2 cellPadding=2 border=1>
<TBODY>
<TR>
<TD style="VERTICAL-ALIGN: top"><BR></TD>
<TD style="VERTICAL-ALIGN: top">书名<BR></TD>
<TD style="VERTICAL-ALIGN: top">Jolt奖<BR></TD>
<TD style="VERTICAL-ALIGN: top">Kevin Taylor</TD>
<TD style="VERTICAL-ALIGN: top">Brian Marick</TD>
<TD style="VERTICAL-ALIGN: top"><SPAN class=f16>Harshad Oak</SPAN></TD>
<TD style="VERTICAL-ALIGN: top">Roy Miller<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">1<BR></TD>
<TD style="VERTICAL-ALIGN: top">The Pragmatic Programmer: from Journeyman to Master</TD>
<TD style="VERTICAL-ALIGN: top"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">2<BR></TD>
<TD style="VERTICAL-ALIGN: top">Refactoring: Improving the Design of Existing Code</TD>
<TD style="VERTICAL-ALIGN: top"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">3<BR></TD>
<TD style="VERTICAL-ALIGN: top">Thinking in Java</TD>
<TD style="VERTICAL-ALIGN: top">1998/2002<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">4<BR></TD>
<TD style="VERTICAL-ALIGN: top">Effective Java: Programming Language Guide</TD>
<TD style="VERTICAL-ALIGN: top">2001<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">5<BR></TD>
<TD style="VERTICAL-ALIGN: top">Concurrent Programming in Java<SPAN class=prod_subtitle2>: Design Principles and Patterns</SPAN> </TD>
<TD style="VERTICAL-ALIGN: top"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">6<BR></TD>
<TD style="VERTICAL-ALIGN: top">UML Distilled: A Brief Guide to the Standard Object Modeling Language</TD>
<TD style="VERTICAL-ALIGN: top">1997<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">7<BR></TD>
<TD style="VERTICAL-ALIGN: top">Test-Driven Development: By Example</TD>
<TD style="VERTICAL-ALIGN: top">2002<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">8<BR></TD>
<TD style="VERTICAL-ALIGN: top">Design Patterns: Elements of Reusable Object Oriented Software</TD>
<TD style="VERTICAL-ALIGN: top">1994<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top">9<BR></TD>
<TD style="VERTICAL-ALIGN: top">Extreme Programming Explained: Embrace Change</TD>
<TD style="VERTICAL-ALIGN: top">1999<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center">y<BR></TD>
<TD style="VERTICAL-ALIGN: top; COLOR: rgb(0,153,0); TEXT-ALIGN: center"><BR></TD></TR></TBODY></TABLE>表3，按推荐度大小排列的书<BR>看了上述的排列有何感想，最为专家推崇的是未获的Jolt奖的，1999年出版的，The Pragmatic Programmer: from Journeyman to Master，是不是有点意外？笔者总结前可是真没想到，看起来Jolt奖也不是百分百正确无误的，当然The Pragmatic Programmer的Pragmatic Starter Kit Series还是获得了14届Jolt奖也算是对The Pragmatic Programmer: from Journeyman to Master这本经过时间考验的好书的补偿吧！好了不多讲了，上述9本书可以作为Java开发人员书房必备的经典图书予以推荐。另外，再补充3本得Jolt奖的Java图书作为参考“：<BR></P>
<UL>
<LI>Better,Faster, Lighter Java by Bruce A. Tate andJustin Gehtland(O'Reilly) 
<LI>Java Developer's Guide to Eclipse, Second Edition by Jim D'Anjou, Scott Fairbrother, Dan Kehn, John Kellerman, Pat McCarthy (Addison-Wesley Professional) 
<LI><I>Core Java 2, Vol. 1: Fundamentals (6th edition),Cay Horstmann and Gary Cornell </I></LI></UL>参考资料：<BR><A href="http://www-128.ibm.com/developerworks/java/library/j-javares.html">The essential Java language library</A><BR><A href="http://java.about.com/od/advancedjava/tp/mustreadjava.htm">Top 10 Must-Read Java Programming Books</A><BR><A href="http://java.about.com/od/advancedjava/tp/mustreadsoftdev.htm">Top 5 Must-Read Software Development Books</A><BR><A href="http://www.testing.com/cgi-bin/blog/2005/03/03#top-ten">Ten most influential computer books of the past ten years</A><BR><A href="http://www.pragmaticprogrammer.com/ppbook/index.shtml">The Pragmatic Programmer</A> <BR></DIV>]]></description>
</item><item>
<title><![CDATA[为什么Java中继承多数是有害的]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=mix&amp;id=5387</link>
<author>mix</author>
<pubDate>2005/4/29 8:33:02</pubDate>
<description><![CDATA[<P><STRONG>
<TABLE cellSpacing=0 cellPadding=0 width=620 border=0>
<TBODY>
<TR>
<TD class=title1 align=middle width=600><B>为什么Java中继承多数是有害的</B></TD></TR>
<TR>
<TD align=middle height=30><FONT color=#999999>(2005.04.28)&nbsp;&nbsp; </FONT></TD></TR>
<TR>
<TD align=middle height=10></TD></TR>
<TR>
<TD bgColor=#999999 height=1></TD></TR>
<TR>
<TD></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=600 border=0>
<TBODY>
<TR>
<TD height=20>&nbsp;</TD></TR></TBODY></TABLE></STRONG></P>
<P><STRONG>大多数好的设计者象躲避瘟疫一样来避免使用实现继承(extends 关系)。实际上80%的代码应该完全用interfaces写，而不是通过extends。“Java设计模式”一书详细阐述了怎样用接口继承代替实现继承。这篇文章描述设计者为什么会这么作。 <BR><BR>　　Extends是有害的；也许对于Charles Manson这个级别的不是，但是足够糟糕的它应该在任何可能的时候被避开。“JAVA设计模式”一书花了很大的部分讨论用interface继承代替实现继承。 <BR><BR>　　好的设计者在他的代码中，大部分用interface，而不是具体的基类。本文讨论为什么设计者会这样选择，并且也介绍一些基于interface的编程基础。 <BR><BR>　　接口（Interface）和类（Class）? <BR><BR>　　一次，我参加一个Java用户组的会议。在会议中，Jams Gosling（Java之父）做发起人讲话。在那令人难忘的Q&amp;A部分中，有人问他：“如果你重新构造Java，你想改变什么？”。“我想抛弃classes”他回答。在笑声平息后，它解释说，真正的问题不是由于class本身，而是实现继承(extends) 关系。接口继承（implements关系）是更好的。你应该尽可能的避免实现继承。 <BR><BR>　　失去了灵活性 <BR><BR>　　为什么你应该避免实现继承呢？第一个问题是明确的使用具体类名将你固定到特定的实现，给底层的改变增加了不必要的困难。 <BR><BR>　　在当前的敏捷编程方法中，核心是并行的设计和开发的概念。在你详细设计程序前，你开始编程。这个技术不同于传统方法的形式----传统的方式是设计应该在编码开始前完成----但是许多成功的项目已经证明你能够更快速的开发高质量代码，相对于传统的按部就班的方法。但是在并行开发的核心是主张灵活性。你不得不以某一种方式写你的代码以至于最新发现的需求能够尽可能没有痛苦的合并到已有的代码中。 <BR><BR>　　胜于实现你也许需要的特征，你只需实现你明确需要的特征，而且适度的对变化的包容。如果你没有这种灵活，并行的开发，那简直不可能。 <BR><BR>　　对于Inteface的编程是灵活结构的核心。为了说明为什么，让我们看一下当使用它们的时候，会发生什么。考虑下面的代码： <BR><BR></P>
<P>
<TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf border=1>
<TBODY>
<TR>
<TD>f()<BR>{ <BR>　LinkedList list = new LinkedList();<BR>　//...<BR>　g( list );<BR>}<BR><BR>g( LinkedList list )<BR>{<BR>　list.add( ... );<BR>　g2( list )<BR>}</TD></TR></TBODY></TABLE></P>
<P><BR>　　假设一个对于快速查询的需求被提出，以至于这个LinkedList不能够解决。你需要用HashSet来代替它。在已有代码中，变化不能够局部化，因为你不仅仅需要修改f()也需要修改g()（它带有LinkedList参数），并且还有g()把列表传递给的任何代码。象下面这样重写代码: <BR><BR></P>
<P>
<TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf border=1>
<TBODY>
<TR>
<TD>f()<BR>{<BR>　Collection list = new LinkedList();<BR>　//...<BR>　g( list );<BR>}<BR><BR>g( Collection list )<BR>{<BR>　list.add( ... );<BR>　g2( list )<BR>}</TD></TR></TBODY></TABLE></P>
<P><BR>　　这样修改Linked list成hash，可能只是简单的用new HashSet()代替new LinkedList()。就这样。没有其他的需要修改的地方。 <BR><BR>　　作为另一个例子，比较下面两段代码： <BR><BR></P>
<P>
<TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf border=1>
<TBODY>
<TR>
<TD>f()<BR>{ <BR>　Collection c = new HashSet();<BR>　//...<BR>　g( c );<BR>}<BR><BR>g( Collection c )<BR>{<BR>　for( Iterator i = c.iterator(); i.hasNext() )<BR>　　do_something_with( i.next() );<BR>}</TD></TR></TBODY></TABLE></P>
<P><BR>　　和 <BR><BR></P>
<P>
<TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf border=1>
<TBODY>
<TR>
<TD>f2()<BR>{<BR>　Collection c = new HashSet();<BR>　//...<BR>　g2( c.iterator() );<BR>}<BR><BR>g2( Iterator i )<BR>{ <BR>　while( i.hasNext() )<BR>　　do_something_with( i.next() );<BR>}</TD></TR></TBODY></TABLE></P>
<P><BR>　　g2()方法现在能够遍历Collection的派生，就像你能够从Map中得到的键值对。事实上，你能够写iterator，它产生数据，代替遍历一个Collection。你能够写iterator，它从测试的框架或者文件中得到信息。这会有巨大的灵活性。 <BR><BR>　　<B>耦合</B> <BR><BR>　　对于实现继承，一个更加关键的问题是耦合---令人烦躁的依赖，就是那种程序的一部分对于另一部分的依赖。全局变量提供经典的例子，证明为什么强耦合会引起麻烦。例如，如果你改变全局变量的类型，那么所有用到这个变量的函数也许都被影响，所以所有这些代码都要被检查，变更和重新测试。而且，所有用到这个变量的函数通过这个变量相互耦合。也就是，如果一个变量值在难以使用的时候被改变，一个函数也许就不正确的影响了另一个函数的行为。这个问题显著的隐藏于多线程的程序。 <BR><BR>　　作为一个设计者，你应该努力最小化耦合关系。你不能一并消除耦合，因为从一个类的对象到另一个类的对象的方法调用是一个松耦合的形式。你不可能有一个程序，它没有任何的耦合。然而，你能够通过遵守OO规则，最小化一定的耦合（最重要的是，一个对象的实现应该完全隐藏于使用他的对象）。例如，一个对象的实例变量（不是常量的成员域），应该总是private。我意思是某段时期的，无例外的，不断的。（你能够偶尔有效地使用protected方法，但是protected实例变量是可憎的事）同样的原因你应该不用get/set函数---他们对于是一个域公用只是使人感到过于复杂的方式（尽管返回修饰的对象而不是基本类型值的访问函数是在某些情况下是由原因的，那种情况下，返回的对象类是一个在设计时的关键抽象）。 <BR><BR>　　这里，我不是书生气。在我自己的工作中，我发现一个直接的相互关系在我OO方法的严格之间，快速代码开发和容易的代码实现。无论什么时候我违反中心的OO原则，如实现隐藏，我结果重写那个代码（一般因为代码是不可调试的）。我没有时间重写代码，所以我遵循那些规则。我关心的完全实用?我对干净的原因没有兴趣。</P>
<P><FONT size=3><STRONG>脆弱的基类问题 <BR><BR></STRONG>　　现在，让我们应用耦合的概念到继承。在一个用extends的继承实现系统中，派生类是非常紧密的和基类耦合，当且这种紧密的连接是不期望的。设计者已经应用了绰号“脆弱的基类问题”去描述这个行为。基础类被认为是脆弱的是，因为你在看起来安全的情况下修改基类，但是当从派生类继承时，新的行为也许引起派生类出现功能紊乱。你不能通过简单的在隔离下检查基类的方法来分辨基类的变化是安全的；而是你也必须看（和测试）所有派生类。而且，你必须检查所有的代码，它们也用在基类和派生类对象中，因为这个代码也许被新的行为所打破。一个对于基础类的简单变化可能导致整个程序不可操作。 <BR><BR>　　让我们一起检查脆弱的基类和基类耦合的问题。下面的类extends了Java的ArrayList类去使它像一个stack来运转： <BR><BR></FONT>
<TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf border=1>
<TBODY>
<TR>
<TD>class Stack extends ArrayList<BR>{<BR>　private int stack_pointer = 0;<BR><BR>　public void push( Object article )<BR>　{<BR>　　add( stack_pointer++, article );<BR>　}<BR><BR>　public Object pop()<BR>　{<BR>　　return remove( --stack_pointer );<BR>　}<BR><BR>　public void push_many( Object[] articles )<BR>　{ <BR>　　for( int i = 0; i &lt; articles.length; ++i )<BR>　　　push( articles[i] );<BR>　}<BR>}</TD></TR></TBODY></TABLE><BR>　　甚至一个象这样简单的类也有问题。思考当一个用户平衡继承和用ArrayList的clear()方法去弹出堆栈时： <BR><BR>
<TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf border=1>
<TBODY>
<TR>
<TD>Stack a_stack = new Stack();<BR>a_stack.push("1");<BR>a_stack.push("2");<BR>a_stack.clear();</TD></TR></TBODY></TABLE><BR>　　这个代码成功编译，但是因为基类不知道关于stack指针堆栈的情况,这个stack对象当前在一个未定义的状态。下一个对于push（）调用把新的项放入索引2的位置。（stack_pointer的当前值），所以stack有效地有三个元素-下边两个是垃圾。（Java的stack类正是有这个问题，不要用它）. <BR><BR>　　对这个令人讨厌的继承的方法问题的解决办法是为Stack覆盖所有的ArrayList方法，那能够修改数组的状态，所以覆盖正确的操作Stack指针或者抛出一个例外。(removeRange()方法对于抛出一个例外一个好的候选方法)。 <BR><BR>　　这个方法有两个缺点。第一，如果你覆盖了所有的东西，这个基类应该真正的是一个interface，而不是一个class。如果你不用任何继承方法，在实现继承中就没有这一点。第二，更重要的是，你不能够让一个stack支持所有的ArrayList方法。例如，令人烦恼的removeRange()没有什么作用。唯一实现无用方法的合理的途径是使它抛出一个例外，因为它应该永远不被调用。这个方法有效的把编译错误成为运行错误。不好的方法是，如果方法只是不被定义，编译器会输出一个方法未找到的错误。如果方法存在，但是抛出一个例外，你只有在程序真正的运行时，你才能够发现调用错误。 <BR><BR>　　对于这个基类问题的一个更好的解决办法是封装数据结构代替用继承。这是新的和改进的Stack的版本： <BR><BR>
<TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf border=1>
<TBODY>
<TR>
<TD>class Stack<BR>{<BR>　private int stack_pointer = 0;<BR>　private ArrayList the_data = new ArrayList();<BR><BR>　public void push( Object article )<BR>　{<BR>　　the_data.add( stack_poniter++, article );<BR>　}<BR><BR>　public Object pop()<BR>　{<BR>　　return the_data.remove( --stack_pointer );<BR>　}<BR><BR>　public void push_many( Object[] articles )<BR>　{<BR>　　for（ int i = 0; i &lt; o.length; ++i ）<BR>　　　push( articles[i] );<BR>　}<BR>}</TD></TR></TBODY></TABLE><BR>　　到现在为止，一直都不错，但是考虑脆弱的基类问题，我们说你想要在stack创建一个变量， 用它在一段周期内跟踪最大的堆栈尺寸。一个可能的实现也许象下面这样: <BR><BR>
<TABLE borderColor=#ffcc66 width="90%" align=center bgColor=#dadacf border=1>
<TBODY>
<TR>
<TD>class Monitorable_stack extends Stack<BR>{<BR>　private int high_water_mark = 0;<BR>　private int current_size;<BR><BR>　public void push( Object article )<BR>　{<BR>　　if( ++current_size &gt; high_water_mark )<BR>　　　high_water_mark = current_size;<BR>　　　super.push( article );<BR>　}<BR><BR>　publish Object pop()<BR>　{<BR>　　--current_size;<BR>　　return super.pop();<BR>　}<BR><BR>　public int maximum_size_so_far()<BR>　{<BR>　　return high_water_mark;<BR>　}<BR>}</TD></TR></TBODY></TABLE><BR>　　这个新类运行的很好，至少是一段时间。不幸的是，这个代码发掘了一个事实，push_many()通过调用push()来运行。首先，这个细节看起来不是一个坏的选择。它简化了代码，并且你能够得到push()的派生类版本，甚至当Monitorable_stack通过Stack的参考来访问的时候，以至于high_water_mark能够正确的更新。</P></STRONG>]]></description>
</item><item>
<title><![CDATA[关于JAVA中连接各类数据库的代码及其补充说明]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=mix&amp;id=4895</link>
<author>mix</author>
<pubDate>2005/4/12 14:21:11</pubDate>
<description><![CDATA[<P>关于JAVA中连接各类数据库的代码及其补充说明&nbsp;&nbsp;&nbsp; <BR>&nbsp;<BR>&nbsp;补充说明：在实际的项目开发过程中需要将各类数据库的JDBC驱动包（XXX.jar）放到项目的WEB模块下的LIB文件夹（推荐）也可以放到应用服务器的COMMON/LIB下面。这两个位置都会被服务器自动搜索到。不推荐在通过修改环境变量CLASSPATH来找到这几个包。因为在实际的项目开发当中当然是越少修改项目之外的配置越好。维护起来要方便很多。</P>
<P>此文中的代码主要列出连接数据库的关键代码，其他访问数据库代码省略。主体部分也是在网上找到的一些资料，并非原创。</P>
<P>1、Oracle8/8i/9i数据库（thin模式） <BR>Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); <BR>String url="jdbc:oracle:thin:@localhost:1521:orcl"; <BR>//orcl为数据库的SID <BR>String user="test"; <BR>String password="test"; <BR>Connection conn= DriverManager.getConnection(url,user,password); </P>
<P>2、DB2数据库 <BR>Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); <BR>String url="jdbc:db2://localhost:5000/sample"; <BR>//sample为你的数据库名 <BR>String user="admin"; <BR>String password=""; <BR>Connection conn= DriverManager.getConnection(url,user,password); </P>
<P>3、Sql Server7.0/2000数据库 <BR>Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); <BR>String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb"; <BR>//mydb为数据库 <BR>String user="sa"; <BR>String password=""; <BR>Connection conn= DriverManager.getConnection(url,user,password); </P>
<P>4、Sybase数据库 <BR>Class.forName("com.sybase.jdbc.SybDriver").newInstance(); <BR>String url =" jdbc:sybase:Tds:localhost:5007/myDB"; <BR>//myDB为你的数据库名 <BR>Properties sysProps = System.getProperties(); <BR>SysProps.put("user","userid"); <BR>SysProps.put("password","user_password"); <BR>Connection conn= DriverManager.getConnection(url, SysProps); </P>
<P>5、Informix数据库 <BR>Class.forName("com.informix.jdbc.IfxDriver").newInstance(); <BR>String url = <BR>"jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver; <BR>user=testuser;password=testpassword"; <BR>//myDB为数据库名 <BR>Connection conn= DriverManager.getConnection(url); </P>
<P>6、MySQL数据库 <BR>Class.forName("org.gjt.mm.mysql.Driver").newInstance(); <BR>String url ="jdbc:mysql://localhost/myDB?user=soft&amp;password=soft1234&amp;useUnicode=true&amp;characterEncoding=8859_1" <BR>//myDB为数据库名 <BR>Connection conn= DriverManager.getConnection(url); </P>
<P>7、PostgreSQL数据库 <BR>Class.forName("org.postgresql.Driver").newInstance(); <BR>String url ="jdbc:postgresql://localhost/myDB" <BR>//myDB为数据库名 <BR>String user="myuser"; <BR>String password="mypassword"; <BR>Connection conn= DriverManager.getConnection(url,user,password); </P>
<P>&nbsp;</P>]]></description>
</item><item>
<title><![CDATA[[zz]张小娴的经典句子]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=mix&amp;id=4712</link>
<author>mix</author>
<pubDate>2005/4/8 13:47:23</pubDate>
<description><![CDATA[<P>世上最遥远的距离,不是生与死的距离,不是天各一方,而是我就站在你面前,你却不知道我爱你。 <BR>&nbsp;<BR>我爱你....为了你的幸福，我愿意放弃一切---包括你。 <BR>&nbsp;<BR>失望，有时候也是一种幸福，因为有所期待所以才会失望。因为有爱，才会有期待，所以纵使失望，也是一种幸福，虽然这种幸福有点痛。 <BR>&nbsp;<BR>世上最凄绝的距离是两个人本来距离很远, 互不相识, 忽然有一天, 他们相识, 相爱, 距离变得很近。 然后有一天,不再相爱了, 本来很近的两个人, 变得很远, 甚至比以前更远。 <BR>&nbsp;<BR>爱情使人忘记时间，时间也使人忘记爱情。 <BR>&nbsp;<BR>孤单不是与生俱来，而是由你爱上一个人的那一刻开始。<BR>&nbsp;<BR>喜欢一个人，是不会有痛苦的。爱一个人，也许有绵长的痛苦，但他给我的快乐，也是世上最大的快乐。 <BR>&nbsp;<BR>两个人一起是为了快乐，分手是为了减轻痛苦，你无法再令我快乐，我也唯有离开，我离开的时候，也很痛苦，只是，你肯定比我痛苦，因为我首先说再见，首先追求快乐的是我。 <BR>&nbsp;<BR>凡事皆有代价，快乐的代价便是痛苦。 <BR>&nbsp;<BR>开始的时侯，我们就知道，总会有终结。 <BR>&nbsp;<BR>爱情还没有来到，日子是无忧无虑的；最痛苦的，也不过是测验和考试。当时觉得很大压力，后来回望，不过是多么的微小。 <BR>&nbsp;<BR>有些人注定是等待别人的，有些人是注定被人等的。 <BR>&nbsp;<BR>缘起缘灭，缘浓缘淡，不是我们能够控制的。我们能做到的，是在因缘际会的时侯好好的珍惜那短暂的时光。 <BR>&nbsp;<BR>曾经相遇，总胜过从未碰头。 <BR>&nbsp;<BR>为什么要那么痛苦地忘记一个人，时间自然会使你忘记。如果时间不可以让你忘记不应该记住的人，我们失去的岁月又有甚么意义？ <BR>&nbsp;<BR>我以为爱情可以克服一切，谁知道她有时毫无力量。我以为爱情可以填满人生的遗憾，然而，制造更多遗憾的，却偏偏是爱情。阴晴圆缺，在一段爱情中不断重演。换一个人，都不会天色常蓝。 <BR>&nbsp;<BR>爱情要完结的时候自会完结，到时候，你不想画上句号也不行。 <BR>&nbsp;<BR>同一个人﹐ 是没法给你相同的痛苦的。 当他重复地伤害你﹐那个伤口已经习惯了﹐ 感觉已经麻木了﹐ 无论在给他伤害多少次﹐也远远不如第一次受的伤那么痛了。 <BR>&nbsp;<BR>爱情, 原来是含笑饮毒酒。 <BR>&nbsp;<BR>爱一个人很难，放弃自己心爱的人更难。 <BR>&nbsp;<BR>当爱情来临，当然也是快乐的。但是，这种快乐是要付出的，也要学习去接受失望、伤痛和离别.从此,人生不再纯粹。 <BR>&nbsp;<BR>我们也许可以同时爱两个人，又被两个人所爱。遗憾的是，我们 只能跟其中一个厮守到老。 <BR>&nbsp;<BR>爱上一个人的时候，总会有点害怕，怕得到他；怕失掉他。 <BR>&nbsp;<BR>你曾经不被人所爱，你才会珍惜将来那个爱你的人。 <BR>&nbsp;<BR>不能见面的时候，他们互相思念。可是一旦能够见面，一旦再走在一起，他们又会互相折磨。 <BR>&nbsp;<BR>只想找一个在我失意时可以承受我的眼泪;在我快乐时，可以让我咬一口的肩膊。 <BR>&nbsp;<BR>如果我不爱你，我就不会思念你，我就不会妒忌你身边的异性，我也不会失去自信心和斗志，我更不会痛苦。如果我能够不爱你，那该多好。 <BR>&nbsp;<BR>别离，是为了重聚。 <BR>&nbsp;<BR>爱火，还是不应该重燃的．重燃了，从前那些美丽的回忆也会化为乌有．如果我们没有重聚，也许我僣带着他深深的思念洽着，直到肉体衰朽；可是，这一刻，我却恨他．所有的美好日子，已经远远一去不回了。 <BR>&nbsp;<BR>感冒原本是一种很伤感的病。 <BR>&nbsp;<BR>追求和渴望，才有快乐，也有沮丧和失望。经过了沮丧和失望，我们才学会珍惜。你曾经不被人所爱，你才会珍惜将来那个爱你的人。 <BR>&nbsp;<BR>如果情感和岁月也能轻轻撕碎﹐ 扔到海中﹐ 那么﹐ 我愿意从此就在海底沉默... 你的言语﹐ 我爱听﹐ 却不懂得﹐ 我的沉默﹐ 你愿见﹐ 却不明白...<BR>　<BR>爱情本来并不复杂，来来去去不过三个字，不是“我爱你”,“我 <BR>恨你”,便是“算了吧”、“你好吗？”、“对不起”。 <BR>&nbsp;<BR>相爱却不能相恋，相恋却不相爱。 <BR>&nbsp;<BR>我也相信爱可以排除万难；只是，万难之后，又有万难。这是我更相信的。<BR>&nbsp;<BR>你的心就是我的海角和天涯，我不能去得更远。我们此生共赴天 <BR>涯海角，不是游走半个地球，而是人间相伴。 <BR>&nbsp;<BR>你爱我吗?已经爱到危险的程度了.危险到什么程度? 已经不能一个人生活。<BR>&nbsp;<BR>相逢,不是恨晚,便是恨早。<BR>&nbsp;<BR>爱情是风花雪月的事，失意的人是玩不起的。 <BR>&nbsp;<BR>无法厮守终生的爱情﹐ 不过是人在长途旅程中﹐ 来去匆匆的转机站﹐ 无论停留多久﹐ 始终要离去坐另一班机。 <BR>&nbsp;<BR>离开之后，我想你不要忘记一件事：不要忘记想念我。想念我的时候，不要忘记我也在想念你。 <BR>&nbsp;<BR>爱情不是避难所,想进去避难的话，是会被赶出来的。 <BR>&nbsp;<BR>如果没法忘记他，就不要忘记好了。真正的忘记，是不需要努力的。 <BR>&nbsp;<BR>在爱情的世界里，总有一些近乎荒谬的事情发生，当一个人以为可以还清悔疚， 无愧地生活的时候，偏偏已到了结局，如此不堪的不只是爱情，而是人生。 <BR>&nbsp;<BR>爱一个人，你是会自爱的。 <BR>&nbsp;<BR>承诺本来就是男人与女人的一场角力，有时皆大欢喜，大部份的情况却两败俱伤。 <BR>&nbsp;<BR>爱情不是避难所，想进去避难的话，是会被赶出来的。 <BR>&nbsp;<BR>最厉害的病毒，是爱和谎言。 <BR>&nbsp;<BR>我们害怕岁月，却不知道活着是多么的可喜。我们认为生存已经没意思，许多人却正在生死之间挣扎。甚么时候，我们才肯为自己拥有的一切满怀感激？ <BR>&nbsp;<BR>忘掉岁月，忘掉痛苦，忘掉你的坏，我们永不永不说再见。 <BR>　 <BR>人生的大部份时间里，承诺同义词是束缚，奈何我们向往束缚。 <BR>&nbsp;<BR>爱火，还是不应该重燃的。重燃了，从前那些美丽的回忆也会化为乌有。如果我们没有重聚，也许我会带着他深深的思念活着，直到肉体衰朽；可是，这一刻，我却恨他。所有的美好日子，已经远远一去不回了。 </P>
<P>爱情从希望开始，也由绝望结束。死心了，便是不再存在着任何我曾经对你有过的希望。 </P>
<P>爱上了你，我才领略思念的滋味、分离的愁苦和妒忌的煎熬，还有那无休止的占有欲.为什么你的一举一动都让我心潮起伏？为什么我总害怕时光飞逝而无法与你终生厮守？ </P>
<P>为什么要那么痛苦地忘记一个人，时间自然会使你忘记。如果时间不可以让你忘记不应该记住的人，我们失去的岁月又有甚么意义？ </P>
<P>明知会失去自由，明知这是一生一世的合约，为了得到对方，为了令对方快乐，也甘愿作出承诺。恋爱旳一个追求不自由的过程，当你埋怨太不自由了的时候，就是你不爱他的时候。 </P>
<P>孤单不是与生俱来，而是由你爱尚上个人的那一刻开始。 </P>
<P>喜欢一个人，是不会有痛苦的。爱一个人，也许有绵长的痛苦，但他给我的快乐，也是世上最大的快乐。 </P>
<P>人生的大部份时间里，承诺同义词是束缚，奈何我们向往束缚。 </P>
<P>爱情，是自身的圆满，我不再缺少些甚么了。 </P>
<P>爱情也是一种发明，需要不断改良。只是，这种发明跟其他发明不一样，它没有专利权，随时会给人抢走。 </P>
<P>暗恋最伟大的行为，是成全。你不爱我，但是我成全你。真正的暗恋，是一生的事业，不因他远离你而放弃。没有这种情操，不要轻言暗恋。 </P>
<P>爱，从来就是一件千回百转的事。不曾被离弃，不曾受伤害，怎懂得爱人？ 爱，原来是一种经历，但愿人长久。<BR>&nbsp;<BR>&nbsp;</P>
<P>&nbsp;</P>]]></description>
</item><item>
<title><![CDATA[小百合史记[zz from donggua's blog]]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=mix&amp;id=4698</link>
<author>mix</author>
<pubDate>2005/4/8 8:46:42</pubDate>
<description><![CDATA[<P>
<TABLE class="fixedTable blogpost" cellSpacing=0 width="100%" border=0>
<TBODY>
<TR>
<TD class=ellipse><SPAN class=bvTitle id=subjcns!1prDPRJlDaaV4bjxVk6mzC6A!125><STRONG>小百合史记[zz from donggua's blog]</STRONG></SPAN></TD></TR>
<TR>
<TD class=bvh8><STRONG></STRONG></TD></TR>
<TR>
<TD id=msgcns!1prDPRJlDaaV4bjxVk6mzC6A!125>
<P>今天绝大多数在小百合上快乐地生活和灌水的虫虫已经不记得小鸟这个名字了，只是他们偶尔还会发问，小百合这个名字从何而来？关于小百合年代久远的历史，虫虫们只是从精华区的记录中可以找出一点蛛丝马迹，大部分或许来自于大佬们的回忆或者只是道听途说罢了。 <BR>很遗憾，早期的小百合经历了很多重大的变故和灾难，而且由于技术原因，至今没有寻找到真正翔实的历史资料。根据BBS考古学家Henry的调查，目前发现的最早的资料是西元1998年之后的。早期小百合的创始人是在非常简陋和艰苦的条件下披荆斩棘，建立起这片乐土，他们在创造世界的同时，并没有刻意地记录自己的活动，或许是他们并没有意识到他们的工作若干年后会影响到如此多人的生活，也许，他们只是在创造的时候获得了快乐。 <BR>因此，从资料的角度，太史公把小百合分成三个时代：神话时代，传说时代和信史时代。</P>
<P>神话时代的故事只是通过大佬们的口头传承得以保存，由于年代过于久远和多人的流传，这些故事已经有很多偏差，并且不得考证。太史公本人也没有生活在这个年代，只是在后来和小鸟等人的交流中听到很多的故事。对于虫虫们来说，生活在那个年代的很多大佬具有非凡的个人魅力，所以神话时代实际上也是神的年代。神话中这个年代的人物：歪歪鱼，xing,向日葵,arc,小丹尼，子龙等等，他们在小鸟创立的这个世界中演绎着第一批故事。 </P>
<P>经过了改天换地的变化和惨痛的经历，小百合进入了传说时代，太史公本人经历了这个时代的大部分时间，目睹了百合从小到大的过程。这个时代的大部分资料可以寻找到，很多人物还没有淡出江湖，所以现在的虫子对这个时代还不算特别陌生。在这个时代中，众多的不具神的魅力的人物开始进入小百合，他们中的很多人物都曾在神的光芒的照耀下幸福地生活。譬如当大家在1996年代看到小鸟的第一个个人主页时无比震撼。在神和人的共同努力下，小百合迎来了第一个黄金年代，所以，传说年代实际上也是英雄的年代。虽然小鸟逐渐退出了江湖，但子龙成为这个年代的旗手。 <BR>再往后的年代就是大多数大佬开始闯荡江湖的年代，在第一个黄金年代的浪潮冲击下，百合的虫虫迅速增加，站规开始趋于完善和成熟，专业化的分工更加合理，百合开始进入信史年代。同时这也是一个平民的年代，神和英雄或者退出江湖，或者光环淡去，在一片汪洋大水中消失。小百合上不再有光荣与梦想，但却有了更便利的条件，更流畅的信息，更健全的保障和更多的朋友。 <BR>太史公早年曾以海盗之名号混迹江湖，后与小鸟，歪歪鱼共事多年，对小百合所知不可谓少，在即将离开的时候，愿把自己所知道的神话和故事编纂成水，美其名曰：小百合史记。 </P>
<P><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 没有小鸟就没有小百合 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --太史公 </P>
<P>小鸟，祖籍山东，在南京长大，毕业于南京大学电子系，小百合的创始人和第一任站长。 小鸟在1996年来到南大网络中心，当时网络在刚刚兴起，大家对于这个新生事物投注了巨大的热情。而小鸟正是一个技术狂人。所以他很快就建立了自己的个人主页。虽然以现在的标准看来这个主页很简陋，信息也不多，但是在当时给予大家的震撼是巨大的，我还清晰地记得首页上转动的坦克，我还在那个主页上看完了《射雕英雄传》。 <BR>当时国内高校的BBS主要有科大和清华，小鸟第一次看到BBS就立刻着迷了。这个技术狂人偷偷研究了BBS的源码。很快，在不为人知的情况下建立了一个BBS系统，在1996年底对外开放。 </P>
<P>最早的BBS是参照科大的Powerbbs的体系结构，建立在一台HP Pentium 133服务器上，内存32MB，硬盘1.2GB,域名是mbbs.nju.edu.cn .这是因为这台机器同时还做邮件服务器。但不久改名为pbbs.nju.edu.cn 。 <BR>为这个新生的BBS起一个名字令小鸟苦恼了很久，原先暂且叫做南大BBS，但最终选择了一个ppmm在科大BBS的帐号：Lily，从此奠定了小百合的民间性质。详细的资料还属于保密，很抱歉，没有获得有关部门的批准，无法公开。BBS考古学家Henry在内部文献《小百合的起源考证》中详细论述，但遭到了小鸟的封杀。目前江湖来流传很多小百合创始时代的谣言，太史公都不打算予以评价。 <BR>小百合的第一个帐号是Lily,第二个是bird。小鸟为小百合倾注了大量的时间和精力。那时侯他除了工作就是BBS，不断的编写代码，完善BBS的功能，还到处转文章。当时的网络还比较落后，能出校的不多，外面的速度也慢，转贴文章是一种造福大家的好事情。最初的小百合只有一二十人上线，最高曾经达到40人，但由于硬件的限制难以继续上线，小鸟若干年后还津津乐道此事。小鸟对小百合的贡献其实并不止创建和维护，他为此付出了许多牺牲。早期的小百合由于政治的原因曾经多次关闭，当时的管制比现在严格的多。小鸟因为维护BBS经常遭到上级的批评，有的相当严厉。如果不是一个勇敢，坚忍的人，早就放弃了。后世的虫虫都应该感谢小鸟。 <BR>真实世界中的小鸟是个围棋的高手，获得过无数的荣誉。在经历了太多的喧嚣和动荡后，他最喜欢做的事情就是静静地下围棋。小鸟的感情世界并不完整，早年他把过多的精力倾洒在小百合上，如今，还在寻找自己的另一半。小鸟为人随和，有很多朋友，还以慷慨好客著称，早期的虫虫想必都还记忆犹新。小鸟是个内向的人，随着BBS的壮大，他也慢慢淡出了江湖。在传说时代的相当长的时间里，他曾经一度消失，可能是因为巨大的伤痛和疲惫。如今他以chenj的ID重新注册成一个普通的虫虫，担任njuftp版的斑竹。 所以，如果有一天，你在网上和他相遇，千万不要不相信自己看到了创造世界的神。<BR>神，无处不在。 </P>
<P><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 诸神世家（1） </P>
<P>神话时代自创世纪开始，经历了1997年底从PBBS到Firebird BBS的转变，其神话的光芒逐渐淡去，这是因为BBS考古学家发现的资料开始增加。1998年6月，古代小百合关闭，大红花接过了小百合的旗帜，神话时代结束了，英雄时代开始了。 </P>
<P>早期小百合的用户主要是南大计算机系，物理系，电子系等和科大的用户。由于第一代百合大老很多都是混迹于科大BBS，所以早期两个BBS的关系非同寻常。小鸟也选择了科大的PBBS系统。据向日葵，当年两个BBS曾经进行过互访。科大的钟灵玉秀、红炉一点雪、惠子等一度担任多个版的斑竹，为小百合最初的建设立下汗马功劳。钟灵、红炉、惠子、美美、老叶、老鬼、探险等科大虫子曾来访小百合，歪歪鱼、聪明猪、小鸟还进行了回访，但具体的内容和时间以不可考。 <BR>小百合的第一批用户已经不太清楚都有哪些，在神话中存在的人物有向日葵，歪歪鱼，南宫，西瓜霜，聪明猪，nina,阿可，农夫，xing, star，小丹尼等等,但大部分没有具体的事迹流传，很遗憾，希望有更多的BBS考古爱好者进行考证和研究。不过，可以确知，古代小百合是个天堂般的乐园。那时侯还没有很多约束，可以说是一个小国寡民的理想社会。大部分虫子经常在聊天室中活动，关系非常融洽。常常一声吆喝，不管认识不认识，都聚集到一个地方吃饭。那时侯报告频繁，聚会众多。而且很多虫虫在这种新奇的生活方式刺激下开始互相追逐，上演了很多爱情悲喜剧，如今，有些人已经幸福地生活在一起了，也有些人受尽折磨，郁郁而去。据说曾经有过一个天长地久协会，是在西瓜霜、瀑布、迈克、阿可等虫子的倡导下成立的，由阿可出任主席。其活动内容尚不清楚。 </P>
<P>古代小百合的灌水运动已经初现端倪，但当时灌水的意义和现在决然不同。早期还没有掀起原创运动的时候，有条件的人转载很多作品和新闻，同时大家还讨论很多东西，但是大部分讨论都是很认真的，而不是一两行的水。 </P>
<P><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 诸神世家（2） </P>
<P>校园网的历史和MUD，BBS的历史是不可分割的。在BBS盛行之前，MUD已经开始流行了，古代小百合的很多网虫先前也是MUD（新东方故事II）的高手。据山烟寺早期圆字辈弟子圆猫回忆，当时有团团，瀑布，阿可，乐凯等，他说："当初那里才是校园网最火爆的地方，还曾有过一两次比武大赛。MUD不久，小百合建立，人气渐旺。但一般也就二三十人左右，远较清华冷清。但当年我也曾在深夜于百合上遭遇若干网络大虾，比如方舟子，那个新东方故事和北美《新语丝》的创建者。RA战争……得以与百合共同成长。于97年夏发展到顶峰。顶尖高手首推MAC(聪明猪)，及瀑布，VAST等，而向日葵、磊儿、tiger、圆猫等等，只能算是菜鸟。" </P>
<P>在大家的共同努力下，古代小百合开始趋于繁荣。据yoyo回忆说："虫子们已经不满足于键盘与手指相撞的快感，他们把视线看向现实的生活，从某种程度上完成了网外---网内---网外的螺旋非线性回归。其中有在医学院举行的"接触真实的生命"的活动，还有周末形成定式的娱乐活动（优秀电影的观摩、蹦的、溜冰等）等，还借报告、踢球之名互相见面，在Mac猪和乐凯的大力倡导下，百合分别于列日炎炎的夏天和寒风飕飕的冬日举办了两届网虫足球赛，"重在参与"成为了足球赛的精神，球赛活跃了思维，开阔了视野，使平时只见其文，不见其人的各位虫子互相见了面，由感性的相知迈向了理性的交往。" <BR>随着百合的发展和壮大，在技术上迫切要求采取更先进的系统。1997年12月，小鸟在202.119.32.15建立了小百合Firebird BBS系统的试验站点。1998年1月 ，开始启用全新的小百合BBS站，由bird，qingdi，afour担任站长。老站也于同时被关闭了。 </P>
<P>但在此时，悲剧发生了，由于在小百合的发展方向和管理理念方面出现了重大分歧，古代小百合的元老们发生了分裂。保守派希望走"小家碧玉"路线，保持一个圈子内朋友的休闲场 ，排斥异己人士；改革派则希望逐渐打破旧圈子，开拓新天地。最终由于改革派占据技术和人数上的优势，战胜了对手，奠定了小百合今日的基调。但是，胜利的代价是小百合失去了一些功劳卓著的元老和朋友间的反目。所以多年之后他们都不愿意回忆这段经历，结果使得事实更难以考究。 </P>
<P>这次分歧反应了小百合在管理方面的重大缺陷，靠技术和感情维系一个小的，封闭的BBS是可以的，但当BBS壮大的时候，必须使管理规范化和法制化。同时，三大势力（计算机、物理、电子）要求获得平衡的权力。于是，第一届正规的站务小组成立了，这就是后世所称的"站长会议"。小鸟仍然担任了最高站长，技术方面由小鸟，qingdi，afour负责；版务管理由arc （阿可），charming（叮当）， daniel（小丹尼），paul（小米罗），yoyo（悠悠的YOYO）负责。 <BR>同时，以小丹尼为首的一个小组开始制订站规，主要参照了清华的站规，初稿在1998年5月18日在yoyo的实验室商讨，并最终出台了南京大学小百合信息交换站管理条例。站规的出台，意味着古代小百合的成熟。小百合摆脱了科大BBS的影响，开始走上独立发展的道路。 </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 诸神世家（3） </P>
<P><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 企图描述神的面目是不可能的。 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --太史公 </P>
<P>由于年代的久远，古代小百合的人物的形象都已经模糊了，单纯凭借后来的回忆使得人物的线条很粗，而且常常充满了矛盾，难以取舍。所以我希望把史记变成一个开放式的结构，大家也可以回忆，评论，争论，如果我有时间就会整理修改。开始我只能简单记述一些人物。歪歪鱼是古代小百合的重要人物，她在1997年9月开始辅佐小鸟，成为小百合历史上第二位站长。歪歪鱼早年以机智、活泼的形象出现，曾经一度使大家怀疑她的性别，其实她是一个不折不扣的PPJJ，所以西瓜霜和向日葵见到她的时候，腿立刻软了。早期的歪歪鱼擅长以精短的小文吵架，反应机敏，大概只有向日葵可与之媲美。歪歪鱼与南宫大的爱情也很经典，应该属于第一批"网恋"。爱情的结局对小百合来说是不幸的，幸福的歪歪鱼和南宫渐渐淡出了江湖，去过神仙的生活了。 <BR>歪歪鱼给现在的小百合留下的有Girls版的精华区的结构和原始的部分，大家从这个精华区可以前辈的才华和勤劳。在歪歪鱼的领导下，Girls版一度成为小百合最优秀的版面，多大侠云集，好文不断，讨论热烈，精华区整理得井井有条。可惜，歪歪鱼之后就逐渐洪水泛滥了。 </P>
<P>生活中的歪歪鱼也是位活泼可爱，乐于助人的姐姐，如今她仍然留在小百合上，偶尔回一些文章，只是不见当年歪歪大侠的风采了。 <BR>向日葵是位全才，也是位怪才。在小百合早期和中期的历史上都留下很多故事。他是最早的ID之一，积极组织和参加了早期BBS的众多活动，灌水，聊天，打游戏也热情饱满。</P>
<P>向日葵可能是小百合灌水的"祖宗"，几乎可以在所有版块活动，但其灌水之精良和今日之纯水不可同日而语。在争论中，其机智和敏锐无人出其右，且出手狠毒，是很有争议的人物。但另一方面向日葵却文笔流畅，感情细腻，其文章曾令年轻时的海盗动容。虽然向日葵曾经在早期担任站长，但从本性上来说，他的自由精神太强烈，喜欢我行我素，所以并不适合这个职位。从后来发生的很多事件可以看出这一点，譬如当年关于麻将版的争论。在小百合的中期，尚可见向日葵或挑起争端，或慨然应战，不过自他参见了为谁心动之后，慢慢也淡出了江湖，原因不可考。传闻说时常见他与一ppmm同时出现。生活中的向日葵是位高大威猛的汉子，颇有大侠之风，所以深得MM青睐。xing可能是小百合第一个原创作家，但是有人说是农夫。目前还没有找到农夫的作品，xing的《让岁月白发苍苍去吧》到是流传甚广。农夫这个人物没有太多的资料，据说跟向日葵是死党，其唯一事迹是在医学院举行了一次别开生面的尸体展示大会，让大家开了眼界并puke不断。 <BR>Xing比同期的网虫年长，南大物理系博士。当年为小百合的原创事业挑灯夜书，对夫人谎称彻夜战斗于科研第一线，终在实验室的RA隆隆战声中诞生此柔情绝唱。随即喜得贵子，开始了一手怀抱公子一手键盘的生涯，Xing的公子可以说是老百合上最年幼的虫子。生活中的xing玉树临风，谈吐儒雅，海盗两年前曾得见一面，激动不已。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 诸神世家（4） </P>
<P><BR>小丹尼是个闲云野鹤式的人物，在小百合上活动不多，但不能回避他在神话时代的功绩。很奇怪，小丹尼竟然起草了第一个站规，这与其性格和记录颇为不相符，按理说他可能并非一个喜欢秩序和权力的人物。在第一次选举站长的会议中，他拒绝了大家的推选。虽然他属于计算机系，但游离于势力范围之外。所以这种身份也使他可以在小百合分裂时期维持小百合的运作。也许是因为对百合的强烈责任感，促使他接受了制订站规的任务，其中的奥秘好有待当时的站长们揭开。 </P>
<P>小丹尼的首要身份应当也是位原创作家，其《为了忘却的记忆》是古代小百合的代表作之一，可能也是篇幅最长的小说。其中复杂的情节和跌宕的故事非常吸引人，很多关于社会生活的描写使人怀疑小丹尼的身份和生活经历。海盗对文学知之甚少，但可以肯定在任何人写的小百合文学史中都不可回避小丹尼的小说。生活中的小丹尼是计算机系博士，才华横溢，是计算机系后辈中的顶尖人物，在学术上颇有建树，俨然已是大家风采。Arc的活动自远古时代开始，穿过中世纪，直到今天仍可看到她在food版活动。她是位奇怪的姐姐，海盗第一次看见她就发现她的气质与众不同，从性格上来讲她必然属于双子座。有时候她表现得相当冷漠，但有时候很热情活泼，使人捉摸不透。早期的arc收到很多人的爱慕，但似乎未见结果，毕竟，一个双子座是不好对付的。作为一个女博士，其机智和多才也令人印象深刻，在感性和休闲类别的版面中常常看到她的大作。不过她并非一个作家，而是热衷于百合的各种社会活动，主要是报告。可以说她是百合的报告祖宗，称之为Lily CEO(Chief Eating Officer,hehe)也不为过。<BR>Arc也曾经做过站长，但那已经是中世纪的事情了，在英雄时代的纷争中，她和afour作为仅存的神，颇能服人。但是人总有厌倦的时候，当同时代的人物都已经淡去的时候，arc的活动也日见减少。 </P>
<P>红炉一点雪是个模糊的人物，从现存的资料看，他可能是个诗人，可以找到诸如《雨忆》，《昨夜的爱》，《原谅我的错》等诗。此外唯一的记忆是经过众多的"报告"，他的名字成为一道菜的名称。 </P>
<P>还有很多第一代的人物，但海盗难以全部描绘，诸如西瓜霜，yoyo,charming,sting,lina,baby,speed,jetty,star,hare,含羞草等等，我希望有能力的网友写这些内容。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 英雄列传（1） </P>
<P>大红花已经存在很久了，但她一直在小百合旁边默默无闻，将近一年之后，我们才发现，大红花的存在原来是这么重要。在BBS开始流行的年代，校园网中曾经有过很多的实验系统，一方面是技术狂人自娱，一方面也是为内部人员提供一个小田地。大红花的国度正是这样一个系统。大红花是计算机系的人成立的，域名是ace.nju.edu.cn。afour可能是创立者，至少也是早期的管理者。硬件上是一台P133机器，32M内存，2G硬盘。Ne2000网卡,同时还提供该科研组的其他一些网络服务。大红花成立的时间可能在1997年8-11月间，最初只能同时5人上线，用户很少，只有少数人在上小百合的同时上大红花看文章。大红花也采用FBBS系统，中间可能经过了变故，海盗感觉是这样的，因为当1998年海盗注册现在这个帐号的时候，还只有不到20个ID，也许中间曾经失去了一批注册资料，也许是太不引人注目的缘故。总之此时没有人能预见到大红花会被载入历史。应该说大红花的突起是历史的偶然，但其中也不应该抹杀afour等人的功绩。1998年6月，由于不可抗拒的原因，小百合被迫关闭，小鸟为此痛心疾首。虫虫们也失去了自己的家。很幸运，此时大红花已经颇为完整，虽然连接速度很慢，用户数目太少，但对虫虫们来说，仍然是一个绝佳的，尚待开垦的处女地。而且afour等人也愿意把这个BBS公开并为之承担责任，这表现了子龙等人的开发性思维和勇敢的精神。从此，大红花成了虫子们暂时的家，afour也成为BBS的精神领袖。 <BR>当时的ACE BBS系统中bbsnet服务被取消了，由于学校采用了proxy代理制度,不支持telnet协议，使得多数校内用户无法通过telnet访问外校bbs站。1998年7月，早期小百合的cloud在202.119.36.97开通bbsnet，提供外校bbs穿梭服务。1998年10月，afour试图申请合法计算机系bbs身份，可惜未能如愿。同月，ace开放bbs2www服务,只能浏览，不能发文。<BR>很快，古代百合的虫虫们开始大举进入大红花的过度。而且此时已经是98年中期，校园网络的条件改善了很多，94和95级同学开始大量上网，BBS的用户数目大量增加。此时的资料开始完善，期间虽然也有动荡，但站长们有意识地保存了珍贵的资料，所以小百合的第二个时期事件的可信度大大上升，神秘色彩减少了，可称之为传说时代。</P>
<P>&nbsp;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 英雄列传之二 </P>
<P>大量新人的进入，他们急需创造新的世界并建功立业，这和老一辈虫虫延续的热情相结合，小百合&amp;大红花几乎是立即迎来一个黄金年代。大量的新版成立了，很多新老虫虫在各种版块写了大量有意义的文章，灌水运动也开始兴起，虽然水的质量已经开始参差不齐，但纯水还比较少见每当一个组织出现大发展的时候，必然产生新的矛盾，某些的旧的东西将成为制约的瓶颈，新的力量必须冲破这样的瓶颈才能获得更大的发展。在早期小百合已经发生了在管理方面的瓶颈。此时大黄金年代同时导致了三个严重的危机。 第一个危机是技术上的。大红花所在的机器本来是一个组内部使用的小型的服务器，其容量和速度都不足以满足BBS的发展，因此必须寻找新的机器。Afour等人曾经一度试图以计算机系BBS的计划向官方申请设备和合法性的身份，但都没有成功。但不久强化部帮助解决了这个问题，dida是第一个时代的人物了，但此前并不很著名，他代表强化部解决了BBS了的技术困境。1998年12月初，BBS迁移到了dii.nju.edu.cn,这是一台PPro180 + 160M RAM + 2X2 SCSI + 8G IDE + 3COM 3c597的机器，但也有人说是一台双P3-450 CPU，512M内存的机器。一共可以让 20236 人注册使用，可同时上线512人，而此时还只有3453 个注册帐号。 <BR>第二个危机是精神上的。最初大家只是把大红花当作一个暂时的家，老百合们总以为还会回去，因为他们的根在百合。但是6个月过去了，看起来恢复小百合的机会已经非常渺茫了，而一批新的虫虫加入进来，很多只知大红花不知小百合，大红花才是他们最初开始的地方。于是，当BBS迁移到DII的时候，第二个危机立刻爆发了。对小百合怀有深厚感情的一派要求恢复小百合的正统地位，而新一代虫虫则认为改朝换代是不可避免的。于是在乔迁后的第二天就举行了一次投票，这是第一次对BBS的命运进行的投票，但是很幸运，或者说对小百合很幸运，保守派实际上一开始就占据了上风，因为新的BBS暂且使用的名字就叫作小百合，而且此时老一代的虫虫大部分还奋斗在第一线，而且怀旧的心理使他们更加团结，新一代虫虫并不具有这些优势。同时，保守派把持了管理机构，他们还精心设计了投票的策略，除了小百合这个名称外还有13种名称。结局使老家伙们喜笑颜开，小百合获得了正好50%的选票，其他名称最多只有10%。于是历史只记住小百合。 <BR>实际上，今天的BBS在技术构造上是继承了大红花，最关键的是其注册用户的资料是来自大红花。但是另一方面，其文化则是继承了古代小百合的文化，因为大红花只是在古代小百合的虫虫们加入后才真正繁荣起来，他们从小百合带来了精神传给了一代又一代的人。</P>
<P>&nbsp;</P>
<P>可以说大红花只是小百合在一段时间内的载体，但小百合的文化是一直延续的，今日之小百合和古代的小百合是连续的。精神和文化上的纽带弥补了时间上的断裂。</P>
<P><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 英雄列传三 </P>
<P>第三个危机是管理上的。和早期的管理危机不同，此时游戏规则已经初步确立，但大红花的私人性质导致管理的混乱。当时几乎所有ACE组的人都有站长的权限，混乱的程度是前所未有的。而在迁移的同时，也要求权力的重新分配和规范。于是不久就进行了新的选举。由afour, dida,arc,tim, yoyo,sting, friend, lina,lg 担任站务管理。显然，这个站长会议实际上考虑了三部分人的权力：计算机系，尤其是ace组，强化部和百合的元老。站长依然是精英内部的指定而不是选举。但考虑到当时百合的不成熟，把小百合交给元老和精英总比没有经验的新人好的，毕竟，BBS不是民主的试验田。不完善的站规已经很久没有修订了，因此friend等着手对站规进行了系统的修订。同时为了提高裁决的公正性和公平性，引进合理的监督机制。公开提名并选举了第一届纪律委员，5名纪委（aha，hare，htb，tree，zxf）1999年1月正式上任，没有候补委员。纪律委员会的出现标志着小百合的管理走上了新的阶段，虽然仍然无法摆脱精英和元老的阴影，但显然他们也有意识得把权力分散化，创造一个公平和公正的环境，这保证了小百合的进一步发展。 </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 英雄列传4 </P>
<P>实际上历史的演进是缓慢而连续的，所以小百合的各个时代之间并没有严格的界限，并不是说神话时代在1998年6月突然结束了，传说时代突然开始了。三个时代之间的界限是非常模糊的，基本上这只是一种感觉，中间往往存在长时间的过度。明显的，从传说时代到信史时代并不是很明确的，因为资料的保存和考察也是渐进的，所并没有办法说某个时代具体开始和结束的时间，而且，假如5年后丢失了很多资料，而10年后有人写站史，那很可能我们所处的年代就变成传说了。 </P>
<P>大黄金年代实际上从古代小百合的晚期已经开始了，其标志是海鳗领导的中文系创作活动的空前热烈。小百合的黄金年代里，很多版都空前活跃，众多有才华的虫虫尽情释放他们的能量，原创作品层出不穷，很多都留在了各个版的精华区。众多很有意义的讨论热烈进行着，讨论的深度，严肃性，广度和文笔都非今日之百合可比。版面的建设开始趋于完善，大部分主要的版面都在这个时期建立起来，斑竹也全部配备齐全，虫虫们积极地参与了百合的各种事务。很多现在的著名大佬都是这个时期加入百合的，包括文学，技术，情感，足球，管理，军事，哲学等方面都有所建树。但是，黄金年代的小百合已经不是神话时代的乐园，这个开放的年代在创造的同时也充满了争斗。古代小百合大佬们之间那种亲密的关系已经不存在，小百合开始更象一个社会而不是家庭。各色人等在这个舞台上表演，这是一个英雄时代。 </P>
<P>但此时的小百合还不是现在的庞大规模，所以用户之间的沟通比现在充分的多，一般在线的用户不超过100人，只是在58事件期间才超过这个数目。这个时代的英雄们之间还是比较熟悉的，此时的出名往往是全站性的，而当代由于用户的数量过于庞大和兴趣的分散性， 导致了所谓的名人开始具有地域性，即在某些版，很难再有全局意义上的名人了。老一代的虫虫afour ,arc, haiman,dida ,yoyo,xrk, hare,pp, castertroy等仍然活跃在第一线，新一代的虫虫也开始成熟，piggy,bear,aha,suber,Nikon,zhch,west,chinablue, jshen等等，这个英雄时代人物众多，难以一一记述。在更晚的时候，genie,Gerald,pearl,kitty, mint,fool等等加入其中，推动了黄金时代最后的高潮。这个时代大约在世纪交替之际，渐渐逝去。 </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 英雄列传5 </P>
<P>在这个大发展的年代，站长们也勤奋地工作着，一方面他们不断在技术上改进硬件和软件，使小百合有更好的外部空间，一方面也在资料整理，版务和帐号管理方面做了很多有意义的工作。 </P>
<P>Dida本人是小百合服务器的管理员，所以他义不容辞的担任了技术主管。后来zhch也加入小百合技术队伍，直到今天成为技术主管，tim也是技术队伍中的重要成员，他对BBS系统的代码进行了很多改进。1999年1月15日，dida将bbs系统对外的线路有10M升级到100M，1月26日，zhch在dsl.nju.edu.cn上开通了对dii的远程bbs2www服务。1月28日，dida开通了本地bbs2www和emailpost服务。1999年4月，dida为bbs开通了bbspop3服务，并增加ssh服务。 </P>
<P>站务方面也蓬勃发展，版面超过100个,并且合并了以前老小百合的精华区，使得我们现在还可以看到1998年关站前精华区的内容。 </P>
<P>但是正如前文所言，这个时代的小百合不是一个平静的乐园，虽然前面指出的三个危机已经不存在了，但是比危机次一等的矛盾依然很多，这是小百合痛苦的成长过程，没有必要隐晦不提。这些矛盾大部分是管理上的原因。 </P>
<P>首先BBS始终有其局限性，因为它必须寄托在某台服务器上，机器的管理员们和站长的关系就显得暧昧，这很大程度上要靠自律。但是没有道德完善并且始终理智，计算精确的人，后来在技术上和管理上发生的一系列事件证明了这一点。 </P>
<P>&nbsp;</P>
<P><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 英雄大对抗 </P>
<P>Dida是强化部的学生，小百合服务器的管理员，自然成为站长，技术主管。他本人在技术工作上很勤奋，但并非深思熟滤，于是悲剧在1999年5月7日发生，dida恢复了bbs系统自动删文的功能时，由于失误，把文章上限设定太低（2个月），导致各版面大量文章被删。<BR>其实这件事不能完全把错误归咎于dida，因为两个月在常规条件下是个比较合理的设定，但问题是当时的小百合还处在大发展的时代，大发展的同义词往往是混乱，有很多新成立的版和新任命的斑竹，因此精华区和版面资料都没有得到很好的整理。站长们刚刚决心抓版面建设，可是自动删文程序扫荡了所有的版面，造成了无可挽回的损失。作为当时军事版的斑竹，偶很荣幸，没有丢失什么重要资料。Dida也意识到这是严重的问题，立即请罪，斑竹们炮轰了他。所幸第二天爆发的历史性事件挽救了他，他没有遭到体无完肤的批判，但此后仍然被要求引咎辞职，不过在站长们的要求下，dida作为BBS服务器的管理员留任，继续为该系统服务至当年8月因出国而离职。 </P>
<P>但是仅仅一周之后，在Universities版爆发了有史以来最严重的站长和小虫的冲突，这反应了小百合管理的混乱和人心的离散。事情的起因是Fulcrum等人发的关于80分的文章被所谓的代理斑竹gerald删除，此外他还删除了很多其他文章。当时的gerald显然还是个新手，不知道如何把握尺度，并且没有意识到Fulcrum是个很难对付的人物，战斗的难度甚至超过了早期的向日葵，当然他们的风格并不相同。本来战斗的形势还是比较清晰的，zhch越权任命了gerald为这个重要的版块的斑竹，没有通过正当程序上台的斑竹大量删除了文章，用反对派大将justwin的话说是"看到gerald在疯一样的删文章"，虽然说gerald在删文之前勤劳地整理了版面，mark了一千多篇文章，但按照规则来说他应该被解除职务，但是dida在此时不冷静的加入使形势复杂化了。Dida首先指出这些文章是灌水文章，应该删无赦。以今天的标准来看，实际上这些文章并非纯水，他们还是认真地讨论了80分的规则问题，但在当时，这基本上属于摸棱两可的文章，可删可不删。但是dida企图转移话题的做法并没有让反对派上当，他们直击站长们的弱点，就是gerald上台的不合法，于是他们占据了主动。 <BR>其次，dida错误地指责反对派是少数几个人用多个帐号来造势，这更加剧了自己的不利形势。最后，dida的语气很冲动，并带有威胁的意味，显然他又上了反对派的当，被激怒了，而冲动的言语反而削弱了他的力量，反对派获得了更多普通虫虫的同情，因为他们都不希望站长们过于专权。于是冲突演变成BBS的管理者与普通用户的阶层对立，也清楚地表明，小百合已经不再是小国寡民的乐园，这里包括形形色色的人等，他们的思想，做派，目的差别太大，更象一个社会，甚至是混乱的社会。这时候只能以完整的规则，完全而坚决的照章办事才能最大限度得维持秩序。所以从长远来看，这样的冲突对百合的发展是有利的，人们意识到规则有很多漏洞，而且规则没有得到完全的执行。更深入的，大家开始考虑BBS自由的有限性，但这一点要在后来更多的冲突中得到深入的探讨，直到今天也没有一个令人满意的答案。 <BR>7．15事件的解决最后完全以来afour的个人魅力，在对立的双方矛盾进一步升级前，他进行了大量的斡旋，很幸运，反对派大部分是子龙的同学，依靠他的威望，双方获得了妥协，因为他们都意识到继续战斗下去局势将失控，他们都得不到自己想要的东西。 从历史的角度看，这是普通用户对管理者的挑战，他们要求自己的权利和自由得到保障，不希望站长，斑竹过分侵犯他们的利益。因此这次平民和精英的分裂和古代小百合精英们的分裂同样具有重大的历史意义。尽管卷入冲突的人的动机都不单纯，但最终的结果都是推动了百合的发展。从此，百合加强了规则的制订，站长们也受到了约束，越权和肆意作为都减少了，规则开始受到尊重。 </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 英雄列传7 </P>
<P>但是这个夏天并不只是一个充满了争吵的季节，还发生了令人激动和感动的事情，也是小百合历史上重要的时刻，就是58事件。 <BR>1999年5月8日，美国飞机轰炸了我国驻南斯拉夫使馆，消息在bbs上迅速传播。BBS这个地方其实是最容易让人冲动的地方。到处充满了热血沸腾的文章。在线人数飞涨.之前通常在线100人左右，5.8期间突然涨到超过了170。出现了系统满载而无法登录的情况。很快就有人呼吁进行游行，立即得到响应。站长们小心翼翼地向官方请示，因为这种政治性事件非常敏感，他们不希望小百合再次遭殃。在得到批准后，5月8日晚上，第一次游行展开。由于是夜间，而且缺乏经验和组织，游行分多个队伍在多个方向展开。第二天继续进行了游行。百合还组织募捐，印刷传单和签名活动，但是公安部分阻止了传单的印刷活动。此时的小百合被激进思潮笼罩着，大家都非常悲愤，反美情绪也开始高涨，发表了很多感人肺腑和情绪激昂的文章。两年后再读这些文章，很多东西依然令人感动，振奋，但感觉缺乏有深度的理性分析，尤其是阅读自己的文章，感觉那时侯还是太冲动，同时，也缺乏知识和理性分析。但不管怎样，这次事件也体现了小百合的团结和爱国精神，是小百合力量的一次大检阅。经过5月的喧嚣，小百合稍微平静。不久，新的站规通过了。6月间，站长们在小浪淘沙开会，检讨前面的问题，倒霉的dida报告了大家，结果他仍然被解除职务但保留两个月，aaaaaa接替了他做系统维护，技术支持tim, zhch, 版面设计lxyou,tim, 身份认证LG, genie, 纪律管理afour .afour仍然是站长会议的核心，新秀大老妖受次入选。不过令人不解的是纪律委员会与站长一起开会，有同流之嫌。纪律委员会制度本身是不错的构想，不过在实施中往往运转不灵，因为他们往往跟站长过于熟悉，结果在冲突时立场自然倾向于站长一方。所以在715事件中它没有发挥任何作用，最后子龙只好关闭了university版，并亲自出马摆平了双方。 </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 英雄列传8修正版 </P>
<P>当年的7月16日，高瞻远瞩的海盗有感于715大对抗，提出了修订小百合历史的建议，不为见响应。因为当时海盗缺乏资料和经验，所以只能保留这个想法。两年后由于机缘巧合，又由海盗来撰写详细的小百合历史，这是题外话了。这时候捣蛋分子开始增加，很多人或者发漫骂性文章，或者发骚扰信件，于是站长们毫不留情得砍了几个人的帐号，如oldstyle等。但是更严重的事件还是发生了，有人发了一篇攻击政府的政治性文章，遭到了官方的追查，小百合于7月22日被勒令关闭，直到10月7日才重新开放。 </P>
<P>在失去小百合的日子里，校园内BBS群雄并起，最著名的站点有计算机系的信息潮，电子系的石头城，秘密花园等。信息潮的发展很快，而石头城则历史久远，直到今天还继续存在。但是，历史没有给他们机会能和大红花一样崛起，暑假后小百合很快就重新开放，所以他们没有机会取代。经过各方面协商，最大的信息潮和石头城的资料都合并到小百合中，所以他们也算小百合的支流了。 </P>
<P>10月间新开张的小百合立即又爆发了争吵，站长LG成为这次的焦点。起因是站长会议决定接管university版,LG负责此事，但是很奇怪，他首先说这个版是很敏感的，所以由站长接管，这就足够了，但他有说斑竹darling工作不怎么样，即使不接管一个月后也要按照新规则被撤职。后面一条捅了马蜂窝，至少在某些虫虫看来，darling还是个不错的斑竹，于是他们开始质问站长，而darling本人的自杀更刺激了群众，两名老鸟sauber,fulcrum立即挺身而出，使形式复杂化，最终演变成又一次站长和群众的对立，某些人又把冲突上升到民主自由的境界。最后站长会议在压力下虽然保持了团结，并不退让，但权威受到了严重的影响。LG的工作方法缺乏考虑，随后还发生的和Marvin的冲突了这一点，容易陷入冲动，年底他辞职了。这次冲突还表明需要对站长更有力的监督，并提供一个申诉和争论的场所，university版这时候已经证明是一个制造混乱的场所，必须开辟专门的版块，否则university版很容易失控。 </P>
<P>月底，为了总结关站的教训和处理&nbsp; LG事件，并修订有关规则，进行了站务扩大会议，会议形成了宣言和4个附件。其中附件1是官方确认的小百合历史，附件2是总结LG事件的。附件3是关于纪律委员会的新规则，附件4是关于纪律委员会选举工作的。但是很奇怪，目前精华区里只存在三个附件，附件2莫名其妙得在sysop和announce版消失了。这次会议最重要的成果是明确了纪律委员会的权力，并成立了申诉版，可以说纪律委员会获得了新生。随后进行的纪委选举中，此前只在MUD上成名的vicky出人意料的获得了最多的票数，成为所谓的联络员或首席纪委，aha,piggy,sellie,bigeye为委员，并首次设立了候补纪委。zxf,suncat,hbsam成为候补委员。这次站务扩大会议和纪委的选举基本上奠定了今日的小百合管理的框架。此后的历史就是当代小百合历史了，传说时代逐渐远去，信史时代开始了。 </P>
<P>&nbsp;</P>
<P><BR>未完成的故事 </P>
<P>大家都努力忘记的事情，我为什么要努力记住？ </P>
<P>大家都默默离去的地方，我为什么要苦苦坚持？ </P>
<P>大家都熄灭期望的时候，我为什么要燃起希望？ </P>
<P>企图为小百合写一部历史，是我四年来做的最傻的一件事情。我知道了太多不该知道的秘密，伤害了自己；我揭开了太多不该再动的伤疤，伤害了许多人。 </P>
<P>小百合根本不需要记住什么，根本不缺少谁，也根本没有希望。 </P>
<P>所以只是我太傻，没有必要为她痛苦，那么就这样结束吧。 </P>
<P><BR>如果一定要祝福的话，那么我只好说：越堕落越快乐！ <BR>&nbsp;<BR></P></TD></TR></TBODY></TABLE></P>]]></description>
</item><item>
<title><![CDATA[本BLOG新域名启用]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=mix&amp;id=4683</link>
<author>mix</author>
<pubDate>2005/4/7 17:54:16</pubDate>
<description><![CDATA[<P><A href="http://mix.china-pub.com/">http://mix.china-pub.com/</A></P>
<P>china-pub提供的二级域名，方便一些了</P>]]></description>
</item><item>
<title><![CDATA[你会用Google？估计你会用一半就不错了！]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=mix&amp;id=4662</link>
<author>mix</author>
<pubDate>2005/4/7 8:51:33</pubDate>
<description><![CDATA[<P>
<TABLE class=fixedTable cellSpacing=0 width="100%" border=0>
<TBODY>
<TR>
<TD class=ellipse><SPAN class=bvTitle id=subjcns!1pIQdwR7r8Ia_-fLhtLB7a8g!143><STRONG></STRONG></SPAN></TD></TR>
<TR>
<TD class=bvh8><STRONG></STRONG></TD></TR>
<TR>
<TD id=msgcns!1pIQdwR7r8Ia_-fLhtLB7a8g!143>你会用Google？估计你会用一半就不错了！ 
<DIV>
<UL>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;来源: 转载 &nbsp;&nbsp;&nbsp;&nbsp;日期：03-23 09:43 &nbsp;&nbsp; 阅读数：<FONT class=pageview> 10359</FONT> </LI></UL></DIV>
<DIV class=content id=Zoom>
<P>　　google检索引擎因其准确和快速的检索服务而深受广大网民欢迎，成为他们手中查询信息的必备工具，Google检索引擎本身也不辜负网民的期望，不断推出新的检索功能，除了为帮助人们更精确查找信息而常用的网站内容(site)、网页链路(inurl)、网页标题(intitle)、各种格式文件(filetype)和被链接(link)等检索功能之外，最近，还推出了一系列新的检索服务，总体来说，这些新的检索功能更加人性化，更贴近人们的日常生活和需要，因而很容易被用户接受和使用。<BR>　　1。　汉语拼音输入检索<BR>　　为了方便使用中文的用户在网上搜索，Google允许用户直接在键盘上输入汉语拼音来检索相关事物，例如：<BR>　　输入　shanghaishikebiao<BR>　　检索结果提示：您是不是要找：　上海时刻表　<BR>　　这正是我们需要查找的关键词，用户可以据此浏览相关结果，这包括上海地区的各种交通工具的时刻表。如果需要查找更详细的资料“上海飞机航班时刻表　”，则只要在原来的检索结果“上海时刻表”中间输入feijihangban　，例如：<BR>　　上海feijihangban时刻表<BR>　　Google的这项新功能，可以免除用户在中文和拼音输入方面的互相转换。用户在输入拼音时，不要留有空格，否则Google会误认为英文。Google把拼音与常用的字或者词组一一对应，因此，过于生僻的字或词组不适合于用这个方法查找。</P>
<P>　　2。　中英文字典<BR>　　经常使用计算机的用户手头上自然会有一、两个字典软件，用于查找和翻译中英文的词义。作为一种使用频率较高的工具，Google也提供了一个中英文字典，很方便使用。用户可以按照下列方法查找词义查找英文的中文词义则输入　　fy　　computer　查找中文的英文词义则输入　　翻译　　计算机</P>
<P>　　3。　天气查询<BR>　　天气情况也是人们经常要查询的信息之一，Google　提供的天气查询来自于一个更新及时的中文气象网站，适合中国人使用。用户输入中文和英文都可以查询，例如要了解奥运会期间雅典的天气情况，可以按照下列方法输入：<BR>　　雅典　天气　　athens tq　返回的查询结果中会在第一条出现一个　“雅典天气预报”，用户点击后就可以看到当天雅典的天气情况。如果地名相同者，用户还需要进行一次选择。</P>
<P>　　4。　股票查询<BR>　　查询股票的网站已经很多了，Google提供的股票查询只是更方便一些而已，用户可以按照股票名称、股票代码或者股票名称的声母字母查询，下列为查询“中国联通”股票行情的举例。<BR>　　中国联通　股票　zglt gp<BR>　　gp 600050</P>
<P>　　5。　邮政编码和区号查询<BR>　　人们时常需要查询邮政编码和电话区号，Google提供了这样一个实用的功能，用户据此能够获得所要查询的省市名称，邮政编码及长途电话区号，下面为查询举例：<BR>　　邮编　杭州　　　　　　　<BR>　　区号　绍兴　　　　　　　<BR>　　yb　　杭州　<BR>　　qh　　绍兴<BR>　　需要注意的是用户只能查询到城市级别的邮政编码和区号，而无法进一步查询区县的具体信息。</P>
<P>　　6。　手机归属地查询<BR>　　用户在输入手机号码后可以获得号码段、归属地、卡类型、邮政编码和电话区号的信息，但是从实用的角度看，其中只有手机归属地的信息较为有用。</P>
<P>　　7。　计算器使用<BR>　　Google有计算器的功能，例如在google检索框中输入45*86+35/7，就会得到结果：<BR>　　(45　*　86)　+　(35　/　7)　=　3 875<BR>　　有兴趣的用户，或者经常在计算机上进行运算的用户不妨可以试一试。</P>
<P>　　8。　购物检索<BR>　　Google新开设的购物检索称之为Froogle，网址为http：//froogle。google。com/<BR>　　用户只要输入商品的名称，就可以看到该商品的图片和价格，用户还可以限定一种商品的价格进行检索，并且将检索结果按需要从高价到低价排序列出，许多商品可以直接在网上订购，这种图文并茂的检索购物方式较受用户青睐。</P>
<P>　　9。　美国实用生活信息查询<BR>　　如果用户生活在美国或者短期去美国出差和学习，下面的查询功能或许能对他们又帮助，因为这些检索服务目前仅限于美国。<BR>　　9.1　地区代码查询<BR>　　用户输入美国的地区代码，在返回的检索结果中的第一项就是该地区的地图，用户可以通过不断的点击来找到一条具体的大街。<BR>　　9.2　条形码查询<BR>　　用户输入一个商品的条形码就可以找到有关该产品的说明。<BR>　　9.3　飞机航班查询<BR>　　用户输入一家航空公司的名称和航班号，即可获得该航班的出发地和目的地，起飞和到达时间，以及实际航行情况，目前是否开始检票，抵达目的地候机大楼的舱门号。<BR>　　9.4　车牌号查询<BR>　　用户输入车牌号，可以获得一辆车的名称、型号、出厂年份，车身和发动机情况。<BR>　　9.5　邮件查询<BR>　　用户输入一个邮件的号码，可以获悉该邮件目前的状况，譬如邮件已经抵达或者正在路途上等。</P>
<P>　　10。　检索工具栏<BR>　　Google的检索工具栏功能强大，有拖放和右击检索功能，新闻阅读，广告拦截，网站排名显示和搜索字词标明等，工具栏可以附在浏览器下，使用更加方便。用户可以首先在Google网站下载并安装一个检索工具栏，然后根据需要在工具栏的选项中进行设置，我们推荐用户使用这个检索工具栏，它将给用户带来许多意想不到的方便。</P>
<P>　　10.1 Google　新闻<BR>　　Google　的新闻来源于4500家报刊杂志和通讯社，在精选以后持续播出世界各国的新闻，每条新闻都有更新的时间，并联接相关的新闻。用户可以使用免费的新闻通知服务，通过电子邮件收到自己感兴趣的新闻。<BR>　　10.2　网站排名<BR>　　Google　通过对　Web　链接结构和许多其它变量自动计算，对网页的重要程度进行评定。网站排名根据这个评定能够显示用户正在访问的网站的重要程度，用一根绿色线条显示，直观而明确。<BR>　　10.3　搜索字词标明<BR>　　搜索字词标明通过鲜艳的色彩标明用户所检索的字词在每个网页上的位置，便于用户查阅，单击“搜索字词标明”按钮可以打开和关闭标明状态。<BR>　　10.4　拖放和右击检索<BR>　　拖放检索功能使检索更为方便，用户可以把在网页上所选取的字词直接拖放到检索框中，Google会自动进行检索。对于与　Web浏览器同时运行的许多文字处理应用程序中的文字，也可以使用此功能。右击检索是指用户可以在网页上选取文字后，右击鼠标，然后从弹出式菜单中选择“Google　搜索”便可以自动检索。</P>
<P>　　Google搜索引擎为我们提供了搜索的方便，她正在不断推出新的服务功能，例如为移动电话特别设计的无线搜寻等，相信随着技术的不断发展，我们会从中享受更多的搜索乐趣。　</P></DIV></TD></TR></TBODY></TABLE></P>]]></description>
</item><item>
<title><![CDATA[终于忍受不了msn spaces的超慢速度了！]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=mix&amp;id=4657</link>
<author>mix</author>
<pubDate>2005/4/6 22:01:17</pubDate>
<description><![CDATA[
<P>决定改投这边了，试用了一下，发现还不错 <IMG src="http://blogger.org.cn/blog/images/emot/face37.gif"></P>]]></description>
</item>
</channel>
</rss>