2007年1月31日星期三

希望

-- 你在逃避什么?

-- 我在寻求。

-- 一个满怀希望的人。

-- 有希望不好么?

-- 希望是对那些状况不太好的人说的。

--

《越狱》 Fernando Sucre

2007年1月30日星期二

富婆找乐子

富婆去夜总会找乐子,老板娘挑了几个帅小伙,富婆不满意.老板娘挑了几个壮小伙,富婆还不满意.老板问那富婆到底想要什么样的,富婆说要体力好、精力旺盛、能加班、能熬夜、随叫随到、吃苦耐劳,老板一下乐了.....张口喊:"
搞程序的,出来接客!

2007年1月27日星期六

关于 Javascript 空语句

前些时候,热血来潮,想“规范”下书写Javascript的风格,其中有一条,所有的语句都必须分号结束。于是写出了如下代码:

if (true) {
// do something...
};

注意最后的分号,其实是没有必要的,浏览器解释的时候,无论在判断的大括号后是否继续有连续的代码,不要这个分号一样不会出错,像这样:

if(true){var b = true;}var s = 'string';

if(true){var b = true;};var s = 'string';

执行效果没有任何差别,但是有一种情况,在赋值操作时,必须在大括号后加分号,否则有连续的代码时会出错。加上分号可以避免压缩源代码时候因为这个分号的原因出错。例如:

var f = function(){};

好,加分号就加分号,但是有一点,会不会因为这个多加的分号,造成性能的影响呢,于是有了如下的测试代码:

<script language="javascript" type="text/javascript">/*<![CDATA[*/

var Empty = new Object();
// 空语句
Empty.Sentence = new Object();
Empty.Sentence.counter = 100000;
Empty.Sentence.getMultSemicolonTime = function(){
var start = new Date();
for(var i = 0; i < this.counter; i++){
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
}
return (new Date() - start);
}
Empty.Sentence.getNoneSemicolonTime = function(){
var start = new Date();
for(var i = 0; i < this.counter; i++){}
return (new Date() - start);
}
Empty.Sentence.test = function(){
var arrMult = new Array();
var sumMult = 0;
var arrNone = new Array();
var sumNone = 0;
var counter = 10;
var sMult = '', sNone = '';
for(var i = 0; i< counter; i++){
var mu = this.getMultSemicolonTime()
var no = this.getNoneSemicolonTime();
sumMult += mu;
sumNone += no;
arrMult.push(mu);
arrNone.push(no);
}
for(var i = 1; i < counter; i++)
sMult += new String(arrMult[i] + ', ');

for(var i = 1; i < counter; i++)
sNone += new String(arrNone[i] + ', ');

document.write(
'多分号:' + sMult + ' = ' + sumMult + '<br />' +
'无分号:' + sNone + ' = ' + sumNone
);
};


Empty.Sentence.test();

/*

Empty.Loop = new Object();
Empty.Loop.getNoneLoopTime = function(){
var start = new Date();
return (new Date() - start);
};
Empty.Loop.getEmptyLoopTime = function(){
var start = new Date();
while(true){}

};*/
/*]]>*/
</script>

经过本机测试,尽管有一些不稳定因素,但是就我的结果看来,结果应该是空语句(;)不执行,或者说执行时间为零,并不影响总体的效果,至少可以说影响相当小。

我的机器并不好,如果有朋友得出不同的结果,请联系闲耘 。不论是否相同,请把您的结果数据发一份给我,谢谢。

另,在Google Docs上发布到Blog上来的空格缩进竟然失效,郁闷。

(转) RMI一步一步来

http://www.it.com.cn/f/edu/061/4/218911.htm (闲耘转自此,发此文时原文链接暂不可用。)
2006-1-4 9:22:00 文/ zhangxhsj 出处:javafan.net
此文是转帖,闲耘作了稍许修改
 
RMI,远程方法调用(Remote Method Invocation)是Enterprise JavaBeans的支柱,是建立分布式Java应用程序的方便途径。RMI是非常容易使用的,但是它非常的强大。

RMI的基础是接口,RMI构架基于一个重要的原理:定义接口和定义接口的具体实现是分开的。下面我们通过具体的例子,建立一个简单的远程计算服务和使用它的客户程序

一个正常工作的RMI系统由下面几个部分组成:
    远程服务的接口定义
    远程服务接口的具体实现
    桩(Stub)和框架(Skeleton)文件
    一个运行远程服务的服务器
    一个RMI命名服务,它允许客户端去发现这个远程服务
    类文件的提供者(一个HTTP或者FTP服务器)
    一个需要这个远程服务的客户端程序
下面我们一步一步建立一个简单的RMI系统。首先在你的机器里建立一个新的文件夹,以便放置我们创建的文件,为了简单起见,我们只使用一个文件夹存放客户端和服务端代码,并且在同一个目录下运行服务端和客户端。

如果所有的RMI文件都已经设计好了,那么你需要下面的几个步骤去生成你的系统:

1、 编写并且编译接口的Java代码
2、 编写并且编译接口实现的Java代码
3、 从接口实现类中生成桩(Stub)和框架(Skeleton)类文件
4、 编写远程服务的主运行程序
5、 编写RMI的客户端程序
6、 安装并且运行RMI系统

1、 接口
第一步就是建立和编译服务接口的Java代码。这个接口定义了所有的提供远程服务的功能,下面是源程序:

//Calculator.java
//define the interface

import java.rmi.Remote;

public interface Calculator extends Remote {
    public long add(long a, long b)
        throws java.rmi.RemoteException;

    public long sub(long a, long b)
        throws java.rmi.RemoteException;

    public long mul(long a, long b)
        throws java.rmi.RemoteException;

    public long div(long a, long b)
        throws java.rmi.RemoteException;
}

注意,这个接口继承自Remote,每一个定义的方法都必须抛出一个RemoteException异常对象。

建立这个文件,把它存放在刚才的目录下,并且编译。

>javac Calculator.java

2、 接口的具体实现

下一步,我们就要写远程服务的具体实现,这是一个CalculatorImpl类文件:

//CalculatorImpl.java
//Implementation

import java.rmi.server.UnicastRemoteObject

public class CalculatorImpl
    extends UnicastRemoteObject
    implements Calculator {

    // 这个实现必须有一个显式的构造函数,
    //并且要抛出一个RemoteException异常

    public CalculatorImpl()
    throws java.rmi.RemoteException {
        super();
    }

    public long add(long a, long b)
        throws java.rmi.RemoteException {
        return a + b;
    }

    public long sub(long a, long b)
        throws java.rmi.RemoteException {
        return a - b;
    }

    public long mul(long a, long b)
        throws java.rmi.RemoteException {
        return a * b;
    }

    public long div(long a, long b)
        throws java.rmi.RemoteException {
        return a / b;
    }
}

同样的,把这个文件保存在你的目录里然后编译他。

这个实现类使用了UnicastRemoteObject去联接RMI系统。在我们的例子中,我们是直接的从UnicastRemoteObject这个类上继承的,事实上并不一定要这样做,如果一个类不是从UnicastRmeoteObject上继承,那必须使用它的exportObject()方法去联接到RMI。

如果一个类继承自UnicastRemoteObject,那么它必须提供一个构造函数并且声明抛出一个RemoteException对象。当这个构造函数调用了super(),它久激活UnicastRemoteObject中的代码完成RMI的连接和远程对象的初始化。

3、 桩(Stubs)和框架(Skeletons)

下一步就是要使用RMI编译器rmic来生成桩和框架文件,这个编译运行在远程服务实现类文件上。

>rmic CalculatorImpl

在你的目录下运行上面的命令,成功执行完上面的命令你可以发现一个Calculator_stub.class文件,如果你是使用的Java2SDK,那么你还可以发现Calculator_Skel.class文件。


4、 主机服务器

远程RMI服务必须是在一个服务器中运行的。CalculatorServer类是一个非常简单的服务器。

//CalculatorServer.java
import java.rmi.Naming;

public class CalculatorServer {
    public CalculatorServer() {
        try {
            Calculator c = new CalculatorImpl();
            Naming.rebind("rmi://localhost:1099/CalculatorService", c);
        } catch (Exception e) {
            System .out.println("Trouble: " + e);
        }
    }

    public static void main(String args[]) {
        new CalculatorServer();
    }
}

建立这个服务器程序,然后保存到你的目录下,并且编译它。

5、 客户端

客户端源代码如下:

//CalculatorClient.java

import java.rmi.Naming;
import java.rmi.RemoteException;
import java.net.MalformedURLException;
import java.rmi.NotBoundException;

public class CalculatorClient {
    public static void main(String[] args) {
        try {
            Calculator c = (Calculator)
                Naming.lookup("rmi://localhost/CalculatorService");
            System.out.println( c.sub(4, 3) );
            System.out.println( c.add(4, 5) );
            System.out.println( c.mul(3, 6) );
            System.out.println( c.div(9, 3) );
        } catch (MalformedURLException murle) {
            System.out.println();
            System.out.println("MalformedURLException");
            System.out.println(murle);
        } catch (RemoteException re) {
            System.out.println();
            System .out.println("RemoteException");
            System.out.println(re);
        } catch (NotBoundException nbe) {
            System.out.println();
            System.out.println("NotBoundException");
            System.out.println(nbe);
        } catch (java.lang.ArithmeticException ae) {
            System.out.println();
            System.out.println("java.lang.ArithmeticException");
            System.out.println(ae);
        }
    }
}

保存这个客户端程序到你的目录下(注意这个目录是一开始建立那个,所有的我们的文件都在那个目录下),并且编译他。

6、 运行RMI系统

现在我们建立了所有运行这个简单RMI系统所需的文件,现在我们终于可以运行这个RMI系统啦!来享受吧。

我们是在命令控制台下运行这个系统的,你必须开启三个控制台窗口,一个运行服务器,一个运行客户端,还有一个运行RMIRegistry。

首先运行注册程序RMIRegistry,你必须在包含你刚写的类的那么目录下运行这个注册程序。

>rmiregistry

好,这个命令成功的话,注册程序已经开始运行了,不要管他,现在切换到另外一个控制台,在第二个控制台里,我们运行服务器CalculatorService,因为RMI的安全机制将在服务端发生作用,所以你必须增加一条安全策略。以下是对应安全策略的例子 policy.txt :

grant {
    permission java.security.AllPermission "", "";
};

注意:这是一条最简单的安全策略,它允许任何人做任何事,对于你的更加关键性的应用,你必须指定更加详细安全策略。
现在为了运行服务端,你需要除客户类(CalculatorClient.class)之外的所有的类文件。确认安全策略在policy.txt文件之后,使用如下命令来运行服务器。

> java -Djava.security.policy=policy.txt CalculatorServer

这个服务器就开始工作了,把接口的实现加载到内存等待客户端的联接。好现在切换到第三个控制台,启动我们的客户端。
为了在其他的机器运行客户端程序你需要一个远程接口(Calculator.class) 和一个stub(CalculatorImpl_Stub.class)。 使用如下命令运行客户端

 prompt> java -Djava.security.policy=policy.txt CalculatorClient

如果所有的这些都成功运行,你应该看到下面的输出:

1
9
18
3

如果你看到了上面的输出,恭喜你,你成功了,你已经成功的创建了一个RMI系统,并且使他正确工作了。即使你运行在同一个计算机上,RMI还是使用了你的网络堆栈和TCP/IP去进行通讯,并且是运行在三个不同的Java虚拟机上。这已经是一个完整的RMI系统。
 
 
--
闲耘注,我测试了不用 -Djava.security.policy=policy.txt 参数也执行成功,可能是我本机权限足够...

2007年1月26日星期五

(转) IIS,Tomcat,Apache,Resin

此文是转帖。

IIS,Tomcat,Apache,Resin


1、IIS

http://www.86un.com/Article/ShowArticle.asp?ArticleID=228

Internet Information Server是允许在公共Intranet或Internet上发布信息的Web服务器

首先,Internet Information Server的缩写为(IIS)是一个World Wide Web server。Gopher server和FTP server全部包容在里面。 IIS意味着你能发布网页,并且有ASP(Active Server Pages)、JAVA、VBscript产生页面,有着一些扩展功能。IIS支持一些有趣的东西,象有编辑环境的界面(FRONTPAGE)、有全文检索功能的(INDEX SERVER)、有多媒体功能的(NET SHOW)

其次,IIS是随Windows NT Server 4.0一起提供的文件和应用程序服务器,是在Windows NT Server上建立Internet服务器的基本组件。它与Windows NT Server完全集成,允许使用Windows NT Server内置的安全性以及NTFS文件系统建立强大灵活的Internet/Intranet站点。

2、TOMCAT

http://www.study888.com/computer/pro/java/web/200506/85727.html

如今,基于Web的应用越来越多,传统的Html已经满足不了如今的需求。我们需要一个交互式的Web,于是便诞生了各种Web语言。如Asp,Jsp,Php等。当然,这些语言与传统的语言有着密切的联系,如Php基于C和C++语言,Jsp基于Java语言。本文所要介绍的Tomcat即是一个Jsp和Servlet的运行平台。

Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。

基于Tomcat的开发其实主要是Jsp和Servlet的开发,开发Jsp和Servlet非常简单,你可以用普通的文本编辑器或者IDE,然后将其打包成WAR即可。我们这里要提到另外一个工具Ant,Ant也是Jakarta中的一个子项目,它所实现的功能类似于Unix中的make。你需要写一个build.xml文件,然后运行Ant就可以完成xml文件中定义的工作,这个工具对于一个大的应用来说非常好,我们只需在xml中写很少的东西就可以将其编译并打包成WAR。事实上,在很多应用服务器的发布中都包含了Ant。另外, 在Jsp1.2中,可以利用标签库实现Java代码与Html文件的分离,使Jsp的维护更方便。

3、APACHE

Apache是一�N免�M的�W站伺服器,所以也不用�X...

Apache是一�N�子新首罡呔W站伺服器,是微��的三倍...

Apache是一�N最��定的�W站伺服器,效率好!

Apache是世界排名第一的Web服务器, 根据Netcraft(http://www.netsraft.co.uk/)所作的调查,世界上百分之五十以上的Web服务器在使用Apache.
1995年4月, 最早的Apache(0.6.2版)由Apache Group公布发行. Apache Group 是一个完全通过Internet进行运作的非盈利机构, 由它来决定Apache Web服务器的标准发行版中应该包含哪些内容. 准许任何人修改隐错, 提供新的特征和将它移植到新的平台上, 以及其它的工作. 当新的代码被提交给Apache Group时, 该团体审核它的具体内容, 进行测试, 如果认为满意, 该代码就会被集成到Apache的主要发行版中.
Apache 的特性:
1) 几乎可以运行在所有的计算机平台上.
2) 支持最新的HTTP/1.1协议
3) 简单而且强有力的基于文件的配置(HTTPD.CONF).
4) 支持通用网关接口(CGI)
5) 支持虚拟主机.
6) 支持HTTP认证.
7) 集成PERL.
8) 集成的代理服务器
9) 可以通过WEB浏览器监视服务器的状态, 可以自定义日志.
10) 支持服务器端包含命令(SSI).
11) 支持安全SOCKET层(SSL).
12) 具有用户会话过程的跟踪能力.
13) 支持FASTCGI
14) 支持JAVA SERVLETS.
...
缺点(MAYBE IT IS, MAYBE NOT):
APACHE没有为管理员提供图形用户接口(GUI), 但最近的APACHE版本已经有了GUI的支持.

4、RESIN

http://www.zhirui.com/it/2004/8-5/2875.html

Resin服务器平台介绍简介Resin提供了最快的jsp/servlets运行平台。在java和javascript的支持下,Resin可以为任务灵活选用合适的开发语言。Resin的一种先进的语言XSL(XML stylesheet language)可以使得形式和内容相分离。 如果您选用jsp平台作为internet商业站点的支持,那么速度、价格和稳定性都是要考虑到的,resin十分出色,表现更成熟,很具备商业软件的要求。而且,它是全免费的。从站点下载的就是完整版本。所以值得向您推荐! 相对于tomcat3.1,后者更象是一个正在研究的项目。目前resin可以支持sun的j2ee,而tomcat不能直接支持,而j2ee是基于java服务器端大系统的基础。但tomcat结构非常合理,而且是apache组织的产品,因此有着很好的远景。Resin1.1的特性包括:1 支持jsp1.1和在服务器端编译的javascript.2 比mod_perl,mod_php更快,比Jakarta Tomcat快3倍。您可以在Caucho的站点看到很全面的各种测试报告。3 使用servlet2.2引擎。4 自动的servlet/bean编译!5 Servlet,XSL Filtering6 支持IIS,Apache,Netscape和其它内置了HTTP/1.1的Web服务器。7 XSLT和XPath1.0引擎。8 企业级的共享软件(基于一个开放源码的协议)安装与启动:安装特别简单,只需将resin-1.1.3.zip解压缩到某个目录即可。在运行之前需要有jdk的支持。启动方式是执行:resin-1.1.3/bin/httpd (在NT)系统已经按照缺省设置启动,系统将监听8080端口。 jsp文件可放在resin-1.1.3/doc目录下;servlet可以放在resin-1.1.3/doc/web-inf/classes下面。测试 从http://localhost:8080/中可以看到resin的欢迎界面。 下载您可以在此下载最新的Resin1.1.3。大概是2.5M。当然,您也可以去 http://www.caucho.com官方站点了解详细内容并下载resin1.1.3或者1.1.2并且看一下resin的License

Apache与Tomcat的区别

APACHE是一个web服务器环境程序,启用他可以作为web服务器使用,不过只支持静态网页。如:(asp,php,cgi,jsp)等动态网页的就不行。

如果要在APACHE环境下运行jsp 的话就需要一个解释器来执行jsp网页,而这个jsp解释器就是TOMCAT, 为什么还要JDK呢?因为jsp需要连接数据库的话,就要jdk来提供连接数据库的驱程,所以要运行jsp的web服务器平台就需要APACHE+TOMCAT+JDK。

整合的好处是:
如果客户端请求的是静态页面,则只需要Apache服务器响应请求;
如果客户端请求动态页面,则是Tomcat服务器响应请求;
因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销 。

2007年1月25日星期四

八种职场常见的坏习惯,改掉他。

 
在工作当中,每个人都有自己的行为习惯,但有些坏习惯会成为你实现目标的障碍。下面是八种职场常见的坏习惯,虽然它们不像酗酒和吸毒具有那么明显的破坏性,但绝对会阻碍你取得事业的成功。   

一,办事拖拉。一 名信奉完美主义的美术设计师总是很晚才交上作品,但他没有意识到,准时与作品质量具有同等的重要性。在现代企业,每个人的工作往往要等到前一个人完成其分工部分后才能开始。如果你在竞争中拖拖拉拉,其他人就不再依赖你,甚至开始怨恨你、抛弃你。   

二,准备不足。你所卖的东西一定就是人家想买的吗?除非你详尽调查市场,否则那种思维只会带来失败。一根制作精良的马车皮鞭算是个工艺品,挂在居室内想必也不错,不过倘若你的顾客对马和马车没什么爱好,就别老提你的马鞭。   

三,不能坚持到底。一名相当成功的健身俱乐部经理告诉我,他不再参加管理讲座了,尽管讲座讲的东西很好,但要员工去执行新规定却很少奏效。我的看法是,如果新技术确实很重要,经理人就应当拿出足够时间来设法实现这些目标。   

四,不吸取教训。成功人士之所以成功,不在于他们比其他人犯的错误更少,而在于他们不重复过去的错误。从错误中学到的东西常比成功教我们的更多,犯了错却不吸取教训,白白放弃如此宝贵的受教育机会实在可惜。在你从错误中学习之前,你必须承认犯错,不幸的是许多人拒绝认错。   

五,有能力,无魅力。随着年龄的增长,人们更喜欢和有一定能力且平易近人的人交往,而不是那些脑瓜聪明却不可一世的人。我认识一位绝顶聪明的管理咨询师,他因为不擅人际交往而一再失败,对此他还牢骚满腹:"请根据我的成绩来评判我,别在意我的态度。我可不是那些马屁精。"他不明白,魅力是使人保持平和,而非教人溜须拍马。以他的能力和资质完全可以登上成功之舟,可是他却失之交臂。   

六,当老好人。如果你总是为了取悦他人而唯唯诺诺,最后你反而会失去人们的尊敬。当你失去他人的尊敬后,要想重新获得就很难。偶尔在与你持不同意见的人面前说不,同时保持弹性并能坚持工作,也是获得尊敬的方法。有位猎头公司管理人经常对应聘者说"不",因为人们对拒绝的反应,最能表现出他们是否具有领导才能。   

七,不切实际的幻想。当分不清理想与现实的区别时,失败的陷阱差不多就布好了。重组公司是合理的,但一下子达到许多目标是不切实际的。洛杉矶一家文具店既在调整销售,又修改公司流程,同时还改变了退货政策。尽管这些措施都很必要,但6个月后,这家商店申请了破产。   

八,用人不当。一家五金连锁店的"好人"老板聘用了一名他认为"强硬"的首席运营官。老板最大的错误在于,把顽固不化与坚持原则混为一谈。最后,老板被迫解雇了这名运营官,但此时好几名高级职员已经离开企业。世界上确实存在着坏人。假如你给了他们发挥的机会,最后吃亏的只能是你自己。

梦里开花G博客

http://bbs.javascript.com.cn

在Eclipse3.2.1中构建备忘单

《在Eclipse中构建备忘单》
 
链接中作者是是Eclipse 3.1中完成,并且是英文界面。
本文参照上文,在Eclipse 3.2.1中实践完成,中文界面。
 
Eclipse自带备忘单示例可以选择菜单"帮助->备忘单"。
 
 
 
如果备忘单仍不可见,可以选择菜单"窗口->显示视图->其他"。在"显示视图"对话框中,选择"备忘单->备忘单",确定即可,可以拖放备忘单视图以调整备忘单的显示位置。
 
 
要创建备忘单,需要先创建备忘单项目。选择菜单"新建->项目",在"新建"对话框中,选择"插件开发->插件项目"
 
 
 
选择下一步。在"新建插件项目"对话框中,输入项目名,并注意取消"项目设置"中的"创建Java项目"复选框,选择适当的Eclipse版本号。
 
 
下一步。输入"插件提供程序",选择"完成"。
 
 
此时,已经我们创建了一个空的备忘单。在"包资源管理器"中我们可以看到如下资源结构:
 
 
接下来,我们需要创建一个xml文件,用来定义备忘单的内容信息。下面是一个简单的xml文件 ( cheatsheetDemo.xml ) 示例:
 
 
<?xml version="1.0" encoding="UTF-8" ?>
<cheatsheet title="备忘单示例标题">
    <intro>
        <description>备忘单示例描述</description>
    </intro>
    <item title="步骤一">
        <description>这是备忘单的<b>第一步</b></description>
    </item>
    <item title="步骤二">
        <description>
            这是备忘单的<b>第二步</b><br />
            仅仅是描述而已。
        </description>
    </item>
</cheatsheet>
 
 
在这份示例中,文档结构很清晰明了,根元素<cheatsheet>中,只有<intro>和<item>两个子元素,分别定义备忘单的概要信息和相关步骤,其中<item>元素可以多次重复。在<intro>和<item>元素中的<description>元素中,限定只允许使用<b>和<br />这样的格式化元素。
 
这份xml文档可以放在项目任何位置,最简单的方法是放在根目录。
 
 
用"插件清单编辑器"打开"Myplugins/META-INF/MANIFEST.MF",打开如下视图:
 
 
继续,我们选择"扩展"选项卡。
 
 
单击"添加"。
 
 
在"新建扩展"对话框中取消"只显示必须插件中的扩展点",选择"org.eclipse.ui.cheatsheets.cheatSheetContent",完成。
 
 
会弹出"新建插件依赖"对话框,选择"是"。
 
右键"org.eclipse.ui.cheatsheets.cheatSheetContent",选择"新建->category"新建分组。
 
 
得到如图,注意输入分组的id和name。
 
 
右键"org.eclipse.ui.cheatsheets.cheatSheetContent",选择"新建->cheatsheet"新建备忘单。
 
 
如图,注意输入id,name和category,这里要输入的分组category就是刚刚新建的分组id,并输入或浏览我们上面新建的xml文档到contentFile中。
 
 
最后选择"build.properties"选项卡,保证我们新建的所有xml文档都包含在项目中,如下,我在这里输入了
,\
cheatsheetDemo.xml
 
 
完成之后,全部保存,我们需要把这个插件导出为jar文件。右键"包资源管理器"中的"Myplugins"项目,选择"导出"。
 
在"导出"对话框中,选择"插件开发/可部署插件和段",下一步。
 
 
 
 
这里要注意的是,选择要导出的Plugin,并在"目标"选项卡中选择导出目标目录,以及"选项"选项卡中,选中"将各个插件打包为JAR归档",选择完成。
 
将导出的jar包拷贝到%eclipse_home%/plugins/目录下,重启Eclipse。然后选择菜单"帮助->备忘单"。
 
 
选择我们刚刚创建的备忘单,注意备忘单的名称和我们定义的名称之间的对应关系,如果你重启Eclipse仍然没有看到你创建的备忘单,可以退出Eclipse,并删除%eclipse_home%/configuration目录下的org.eclipse.update子目录,然后启动Eclipse。
 
创建好的备忘单如下所示:
 
 
好了,完成的备忘单创建和部署已经全部完成。如果你发现创建了不可用的备忘单,说明你并没有完全导出所有的xml 文档,你需要重新审视"build.properties"选项卡中内容了。
 
 
问题:由于发布备忘单需要先打成jar包,并需要重启Eclipse,有没有什么方法可以方便的修改备忘单呢?或者说怎么创建一个临时的"便条"呢?

2007年1月23日星期二

有归属感才有创造力

归属感萌生创造力。
--
修正版


有归属感才有创造力。
--
原创版

2007年1月22日星期一

杂语

我们对美,是有追求的;我们所追求的美这一目标,也是每时每刻都在前进、发展,唯有如此,我们的追求才不会终结,我们的美也永不枯竭。我们爱美,因为我们对美产生了爱;我们爱他,因为他美,所以爱也是一种美
也许坚贞的爱是一种错误,他会扼杀爱,没有了爱,还谈什么坚贞呢?也许只有喜新厌旧,才能拥有不竭的爱,不竭的真爱。

一堆人争夺一个位置,裁判说:经常做这个位置的人有经验,所以有优先权。于是,A 做上了宝座。
第二次,裁判又是如是说,所以A又风光于宝座之上。
…………


你们班里有没有漂亮女生,有的话帮我介绍一个。事成后我请你吃饭,越是漂亮的,我请你吃得越丰盛,但是,假如是想你这样的,那我们就没有饭吃了。

--老八,你说句公道话吧!
--只有不说话,才是最公道的。

我们握着拳头示威,要求得到和平。

A很快乐,却使得B痛苦,看来A的快乐是建立在B 的痛苦之上的。
A的快乐是因,B的痛苦是果;因为A快乐,所以B痛苦,可见,B把A的快乐看成自己的痛苦。

知法犯法,是罪加一等的;然而在篮坛,,犯规已经上升到一种战术的高度。

"都是我不好,把这吹牛之风带了进来。"
"别再吹啦,居然还吹牛说是你带进来的。"

男:你知道不知道什么是恋爱?
女:不知道?
男:我也不太清楚……那……咱们俩就来谈谈她吧!

我这人有一个优点,就是汉语比英文学得好;我也有一个缺点,那就是我的英文比汉语学得差。
所以当我过多地表现我的优点而过分地包容我的缺点时,请你们不要见怪!

不想吃天鹅肉的,不是优秀的赖蛤蟆。                                      
我想吃天鹅肉,所以我是优秀的赖蛤蟆。                                  
我是优秀的赖蛤蟆,所以我有资格吃天鹅肉。                          
有资格,干吗不吃?!                                                                 

(A 看见B 在跟他聊天时带起了耳机)
A:你真的很想听音乐?
B:不,现在本不想听。不过,比起你的唠叨来,她要好听得多。

爱美之心,人皆有之;并且,爱美也不是什么坏事,所以在别人把梳得已经很顺、很光泽的头发进一步加工时,别说:"别再梳啦,已经很帅了"。
就想别人吃饭时别说:"别再吃啦,已经很饱了 "一样。

A:见到你很高兴!
B:哼,言不由衷。
A:很好,我终于发现了你的一个优点--有些自知之明。
(B:什么意思,?
A:你还有自知之明,知道自己并不受人欢迎。)

                                                                                                          
冬雪:只有保持心灵的冷漠,才能拥有心灵的洁白。
          
                                                                                                         

胡乱说话,说了并没有什么好处,可是听的人听得不高兴,灾祸便来了。

踩脱粒机时,若是快上一拍,则会推动滚轴的向前滚动;而要是慢上半拍,则只会减慢,甚至是阻止它的转动。                        
在人类的历史、社会的发展进程中,只有做在前头的弄潮儿才有可能牵动时代的进步,而落在潮流后头的人们只会阻碍潮流的奔向,他们本身的阻碍不说,他们的"冷嘲热讽"也是间接的一大阻力。                                                                                               

按理说,我们应该是尽量宽恕别人,而绝对严格要求自己,然而在现实生活中,我们的做法却正相反。

不要随便说"随便"二字,虽然有许多事情可以是模棱两可而无所谓地随便选一个方法解决的,但是我们总要一个具体的方法的。小事情要果断地解决,大事情也要果断地解决,如此才能在关键时刻,以随便的气概随便地选一个随便的方法解决这个不随便的问题。

"今天咱学校里怎么有这许多好看的女孩,这么多,真好看!"
"因为你还是单身嘛!就像我现在肚子饿,就觉得啥饭都好吃。"

我痛苦的心
紧贴着我往日宽大的衣襟
我无神的双眼
流淌着并不属于我无情
我这无用的耳朵啊
该把谁人的话语当成真心话来听
哎!双唇
你究竟能把谁来吻亲
不过小鼻子啊
你的一生又岂能专由爱情来牵拎

每个生命都如流星一样短暂,但又有多少生命能像流星一样辉煌?

哎!倘若生命中失去了爱,这生命虽是无奈,这生命确是悲哀。生存着总是为之发呆,生活中却又为此不断徘徊,对方的心思确是让人难以明白,而所有的思绪,不过是把时间儿白挨,你把我有序的生活打乱、胡排,你把我平静的心绪来破坏。我的思绪像一束束飘扬的彩带,轻舞着在你身旁摇摆,可为何没有一笔你画的色彩,让她向我飘来,难道我竟比不上那萝卜白菜,它是给了你不少营养,可你也为它付出那许多的关怀,它将死时你用柔手来揉掰,甚至即将进入那把它化为粪土的棺材,你也要用红唇来把它亲爱,用柔舌来把它舔乖。

爱你的理由 -- 正是因为爱一个人不需要理由,我才如此地爱你。

                                                                                                             
狂风和大雪可以冻死鲜花,但冻不死华儿的种子。                  
                                                                                                            

花朵只有凋零枯死,才会重生;友爱只有当离别后再重逢,才能变得更美好。.

2005-07-13 09:34:19  Copy And Modify于安阳,原稿是日常乱语的拼凑版本
闲耘

闲耘乱语

我不怪花心的人们,
如果有一天我也变帅了,
我也会花心的。

喜欢美女就叫好色,
感情丰富就是花心。
如果爱美也叫好色,
我宁愿"堕落"为好色之徒;
如果博爱 [ 博大胸怀热爱N个他/她人,包括各种性别 ] 也是花心,
我就是花心。


--
网上收集・广征女友

家穷人丑,
一米四九。
小学文化,
农村户口。
破屋三间,
薄田一亩。
冷锅热灶,
老婆没有。
今日上网,
广征女友。

2005-12-03

虞美人・梦中

虞美人・梦中

田薯

梦中单思乐何状,
蚊叮仍觉香。
夜长梦短鸡已鸣,
寂寞披衣起坐点孤星。

晓风百念都吹尽,
唯念芬梦影。
一弯柳月东方新,
对我不抛媚眼是何因 ?



=========我诗我评==========
不知道算不算作诗,但是在格式上像她一像,就姑且这么称呼吧。

该诗写于高中末年,在毕业之际,我鬼使神差、莫名其妙、不知所措的竟然深深的喜欢上了一个天使女孩,明知道自己隐约,仿佛,似乎,也许,应该,肯定,绝对,简直想都不用想都知道配不上她,但是没办法,谁叫我喜欢呢? 哪怕我喜欢上的是一个魔鬼而不是天使,我也会义不容辞的 [ 当然首先要看是长得怎么样的魔鬼了,比如说有魔鬼身材,呵呵 ] ,没办法,就这样,我的爱情故事就这样完蛋了。

真是短暂而又辉煌的一瞬。

说她短暂,因为确实是太短了,还没有开始,结束!;说她辉煌,因为她的确很辉煌,短暂的瞬间,就完全的把这样一个天才给俘虏了,而且仅仅俘虏这个天才的灵魂,却丝毫不损伤到他的肉体,真的太神奇了!
 
在我暗恋日子里,有一天,凌晨,天还未亮,打死我都睡不着,就随手摸起一支烂笔和一张破纸 ,写下了这惊世骇俗的伟大诗篇。

这是我写的吗? 不知道,也许是我的爱神干的吧,但是不管她是谁干的,我必须首先承认错误 [ 嘿嘿,拉到我的名下先..... ] 。

那晚的月亮明亮得还可以,所以无论是明月,还是稀星,都很孤单。我也很孤单。

很正常,不孤单才怪呢 ?!

现在看来,我曾经是多么的伟大而又渺小,曾经多么真诚而又可笑,无知的天真,狂妄的幼稚。

[ 2005-12-01评 ]

2007年1月21日星期日

(js) Counter.js

/** Counter.js (class)
 * @description 计数器类
 * @author 闲耘 (HoToo)
 * @author
hotoo.cn@gmail.com
 * @create 2006-6-15
 * @update 2006-6-17 for private thanks meizz.
 *
http://community.csdn.net/Expert/topic/4824/4824166.xml?temp=.6934168
 */
 
function Counter( defaultValue ){
    if (defaultValue != null && typeof(defaultValue) != 'number') {
        alert('Counter param is error!'); return;
    };
    var index = (defaultValue == null) ? 0 : defaultValue;
    this.getCount = function(){
        return index;
    };
    this.setCount = function( value ){
        index =  value;
    };
    this.addCount = function( value ){
        index += (typeof(value) == "number") ? value : 1;
    };
    this.subCount = function( value ){
        index -= (typeof(value) == "number") ? value : 1;
    };
}

(js) AutoScrollScreen

/** AutoScrollScreen.js [object]
 * @description 双击鼠标滚动屏幕静态[static]对象
 * IE 6.0, firefox 1.0, Opera 8.0 通过测试
 * @author 闲耘 (HoToo)
 * @author
hotoo.cn@gmail.com
 *
 * @create 2006-6-15
 */

var AutoScrollScreen = new Object( );
 
AutoScrollScreen.delay = 50;
 
AutoScrollScreen.start = function(){
    AutoScrollScreen._timer =
        setInterval('AutoScrollScreen.scroll()',
            AutoScrollScreen.delay);
};
 
AutoScrollScreen.stop = function(){
    clearInterval(AutoScrollScreen._timer);
};
 
AutoScrollScreen.scroll = function(){
    var _currentpos = document.body.scrollTop;
    window .scroll( 0, ++_currentpos);
    if (_currentpos != document.body.scrollTop){
        this.stop();
    }
};
 
document.ondblclick = AutoScrollScreen.start;
document.onmousedown = AutoScrollScreen.stop;
 

beyond,凉席子

作者:凉席子      时间:2004-10-1 5:15:10
 
《追忆》《大时代》,我曾经是一个《年轻》的《不可一世》的《金属狂人》--这不知是《谁命我名字》.我属于天上的《射手座》,成了《巨人》后走在《现代舞台》,渴求着如《城市猎人》与《阿拉伯跳舞女郎》的《孤单一吻》,终于在这贫瘠《大地》的《灰色轨迹》中找到《相依的心》,《可知道》,《真的爱你》!真的《喜欢你》!可《爱不容易说》,所以最后受到了满含初恋的《天真的创伤》和留下了难以愈合的《伤口》,原来《爱得太错》,她是--《狂人山庄》的《沙丘魔女》,是一个《温柔杀手》,原来《喜欢一个人》 不容易.她留给我的《最后的答案》是:"《糊涂的人》《原谅我今天》,别再《一厢情愿》了,去找一个人《完全的爱吧》!"但那是一个《遥远的梦》啊!《我有我风格》,还是很绅士地分了手.虽有《昔日舞曲》,虽有《旧日足迹》,虽然《曾经拥有》,但一切已是《逝去日子》,《然后》《岁月无声》,只能《无声的告别》,我相信《总有爱》.当初《冲开一切》,《坚持信念》,以为可以《交织千颗心》,以为可以《不见不散》,以为可以《完全的拥有》,以为可以即使《是错也不再分》,以为可以《再见理想》,以为可以《一辈子陪我走》,然而《错有错着》,你却《无声的告别》了《光辉岁月》,留下了《无泪的遗憾》,《失踪》了,《牺牲》了,原来《太完美》的东西容易失去,所以只能《祝你愉快》,我们会《怀念你》 的.于是迈着《缓慢》的脚步在《过去与今天》间徘徊,在《十字路口》徘徊,在《青马大桥》徘徊,在《午夜流浪》,在《玻璃箱》边低泣,《讨厌》的群《蚊》在周围寻觅,忍不住《一百零一次》的《想你》,因为《We Don't Wanna make it without you》,哎!《心内心外》《无尽空虚》,百般落寞,任灵魂《随意飘荡》,嘴上哼着一首《无名的歌》,却难以《战胜心魔》,我是多么的《无助》.《深》夜《回家》,一转头往《门外看》--《The other door》,见一《秘密警察》《与你共行》,你知道我什么感受,我冲过去拉住你的手,你却说:"别《管我》,《请将手放开》!"我一头《雾》水,明白我们的感情《时日无多》,只好《叹息》,因为那是我们《热情过后》,你有你的自由,《我早应该习惯》你这种态度,《点解!点解!》,谁知道我的苦衷,我与我的思想开始了一段《未知赛事的长跑》.不料天公不作美,《冷雨没暂停》,淋了个落汤鸡,一清醒,才知道是《幻觉》,但还得去《候诊室》排队治感冒.
 
找不到我的《快乐王国》,找不到可以《继续沉醉》的理由,但《愿我能》去看《看星》星,去看看《月光光》,去看看《太空》,却如《洗衣粉》般的苍白,正如一切《褪色》的回忆.《星期天》《情人》节的欢声动天,独步《冷雨夜》,《Dancing in the rain》,无尽《海阔天空》,我在《爆裂都市》里的《午夜迷墙》边独奏《午夜怨曲》,一股《赤红热血》翻涌,《无语问苍天》,可有《谁伴我闯荡》?曾在《文武英杰宣言中》起誓,《可否冲破》一切的情感,从《十八》到八十岁无尽爱你,因为你是我《心中的太阳》.不论多么《荒谬》多么可笑,不管是否会如先人维护《进化论》般的举步维艰,只要《为了你为了我》,就《不再犹豫》只想和你一起《飞离苦海》,《爱你一切》,去寻找我们的《Good Time》,去寻找我们的《新天地》,去参加《俾面派对》《高温派对》,因为I《love》 you!你是我的《唯一》,《关心永远在》.即使是《短暂的温柔》《两颗心》也《未曾后悔》《无悔这一生》.忽然天空传来一个《日本仔》的《声音》:"我要提…《醒你》,你…有…《罪》,你…《妄想》离…开!"可我们不怕,下定决心在《雨夜之后》,拿起《超级武器》和《全是爱》的《水晶球》,《仍然是要闯》,要《冲上云霄》,《勇闯新世界》,《我不信》不行,我们要成为一个《不朽的传说》,给世人一个《惊喜》.
 
《Amani》《和平与爱》《谁来主宰》--我《遥远的Paradise》《荒谬世界》,《活着便精彩》!别再争论《谁是勇敢》还是《我是愤怒》,让我俩手擎《木吉他》,共同征服这一《Long Way》!因为《我的知己在街头》.乘上《早班火车》,《遥望》《长城》,那才是真正的《东方宝藏》,那里才是我《温暖的家乡》,那里有如我《爸爸妈妈》般辛慈的《农民》.
 
未曾后悔 - beyond - 天若有情
未曾后悔
词\黄家强.曲\黄家驹.主唱\黄贯中
未曾后悔是甘心决定
莫问那可注定
若然是错从不加理会
命运究竟未明
现实理想难分得清楚
未让两手分开
人生虽短暂无悔共你
穿梭天边与海岸
重温的景象零碎渐淡
真心你莫忘记
自由被困望一一领会
浪漫片刻足够
望原谅我未给一句话
独自去闯尽头
怒问世间情怎可得瞬间
尽是困忧不息
beyond再见理想
http: go.163.com ~byfaith
 
--
拷贝于清泉小区论坛
这是我看的第一篇凉席子的作品,也是我第一次真正的接触论坛,并认识了席子。
久未联系,兄弟们甚想念你,席子~~

男女有别

王悦  编译
 
女人在 28 岁和 40 岁之间能活 30 多年。
一个吻可能是逗号、问号或感叹号,这个基本语法问题,每个女人都知道。
多数男人批评女性的缺点时,实际是在批评某个女人的缺点。
男人追求女人,直到他成为俘虏。
男人是感情的主人,是理智的奴隶。
女人聊天喜欢两个人,男人聊天喜欢三个人一组。
男人不善于保守自己的秘密,但可以保守别人的秘密。女人刚刚好相反。
爱是女人一生的主旋律,但只是男人生命里的一个乐章。
 
环球时报・漫画与文摘  第967期  2005-4-29 星期五
2005-07-12 23:28:26 手抄于安阳

倾听

[澳大利亚]阿伦・史密斯   方柳青 编译
 
在熙攘的人生中,倾听有时是多么重要多么难能可贵的啊!比如有这么一件事--
 
那个年代,电报是最快捷的长距离通讯手段。有一个年轻人在应聘莫尔斯代码报务员的职位。依照招聘广告上的地址,他来到一个宽敞的大房间,里面人来人往,声音嘈杂,"滴滴嗒嗒"的发报声不绝如缕。
 
接待员给每名应聘者一张表格,要求他们把自己的履历填好。这名年轻人填完表格后与先到的7名应聘者一起坐在等候室内静候。过了几分钟,这名年轻人突然站起来,径直走入雇主的办公室。
 
其他应聘者都感到很奇怪:没见接待员出来通知,他为什么擅自闯进去?他们都暗暗高兴,心想这名年轻人冒冒失失地,肯定要被雇主刷下来。
 
然而,没过一会儿,雇主就笑吟吟地陪着这位年轻人走出办公室,同时宣布:"先生们,报务员这个职位已经找到人了。谢谢你们的光顾。"其他7位应聘者既纳闷又不服气,其中一人问雇主:"他是最后一个到这里的。可您连面试的机会都没给我们,就把工作交给了他。这显然不公平!"
 
雇主答道:"非常抱歉。你们坐在这里等待的时间确实不短,但发报机一直在用莫尔斯代码的嘀嗒声向你们传递如下消息:如果你们听得懂发报机发出的信号,你就直接进入我的办公室。但你们当中没有一个人听到或者听懂发报声,只有这位年轻人做到了。理所当然,这个职位是属于他的。"

环球时报・漫画与文摘 第967期 2005-5-6 星期五
2005-07-12 23:09:39 手抄于安阳

绳子绑住的手提箱

[美]玛莎・韦伯    汪新华 编译

小时候,我用过一次爸爸的手提箱。那只手提箱带给我的记忆一直无法抹去。
 
10岁那年的夏天,我和几个女伴决定去露营。这对过着清贫生活的家人来说,可是件大事。出发前的那天晚上,为露营准备的所以东西都摊放在家里的大桌子上,一家人突然意识到还却一样非常重要的东西--手提箱。爸爸说,我可以用他那只手提箱。当年爸爸从北加利福尼亚的老家到俄勒冈州一路相伴。
 
爸爸到地下室搜寻了一番,回来时手里拎着一个手提箱,破旧不堪,而且变了形。爸爸说,它曾让汽车碾过一次,不过"还能用"。
 
看到这只皮箱,我沮丧极了。我伙伴们的箱子都很漂亮。我闷闷不乐,一声不吭。合上提箱后,我才发现,上面的弹簧锁坏了。
 
"这么办吧,"爸爸瞧着眼前这只不争气的提箱说,"找一根结实的绳子把它绑住。"
 
我再也忍不住了,终于哭了起来:"我没法提着一只用绳子绑牢的箱子去露营!"
 
等我的泪水渐渐止后,爸爸和妈妈要我自己拿注意:要么提着这只"用绳子绑牢的箱子"去露营,要么呆在家里。
 
"就当自己是有钱人人的女儿,别太在意就是了",爸爸安慰我。
 
第二天一早,我手里提着那只用绳子绑住的箱子去露营了。
 
日子一天天过去,我逐渐淡忘了那只用绳子绑住的手提箱。多年后的一天,爸爸意外地从家乡打电话告诉我:一位参议员的车子在他工作的那家汽车经销店放了阵子。爸爸开着那辆车去机场接那位参议员的妻子,之后那为参议员的妻子驾车将爸爸送回经销店。
 
爸爸这么远打电话来就为了告诉我这个?
 
爸爸笑着继续说:"那位参议员的妻子随身带着一只手提箱,很旧的那种,而且锁坏了,是用一根绳子绑住的!"
 
小时候有关那只手提箱的记忆一下子浮现在脑海中。"噢,是这样的,爸爸",我喉咙有些哽咽,"人家有钱,不会在意的!"一件小事情,父亲竟然挂记了这么多年,父亲是多么在乎我的感受啊。可见,他当年实在是没办法。我对自己儿时的任性深感惭愧,此刻,我才真正了解了父母对我的爱有多深!
 
关于手提箱的故事从此成了一段美好的回忆。它总是提醒我,我用不着把自己想像成富人家的女儿,因为有爸爸妈妈的爱,我们这些孩子就总是富足的--即使手里拎着的是一只用绳子绑住的手提箱。
 
环球时报・漫画与文摘 第967期 2005-5-6 星期五
2005-07-12 22:10:00手抄于安阳

智慧语丝

        李虎
 
圆规:一生努力追求完美,却最终自我封闭。
 
钉子:理解了锤子的用心,也就不再计较挨打的疼痛。
 
路:越是泥泞,越能留下深深的足印。
 
瓦:不经烈火焚烧,成不了风雨中的强者。
 
日光灯:宁愿忍受高压的折磨,也要奉献光明于人间。
 
锯子:伶牙利齿,专干挑拨离间之事。
 
石磨:卧是固定的轨道,注定一辈子在原地打转。
 
钟表:可以回到起点,但已不是昨天。
 
哈哈镜:歪曲事实,为的是博取别人的欢心。
 
拉链:总以为自己做得天衣无缝,却总是在被别人操纵。
 

先把泥点晾干

      王悦
 
读研究生时,我的导师吉纳经常告诫我们,不要一时冲动,成了情绪的奴隶。一次,一名研究生找到她,说另一名研究生出言不逊,当众讽刺他理论过时,见解平庸,令他大为恼火。他不知道是该直接找那个学生论个明白,还是找对方的教授评论。
 
吉纳教授慢条斯理地说:"有时候,别人的言行是很难理解,如果你不介意,让我给你一个小建议。批评和侮辱,跟泥巴没什么两样。你看,我大衣上的泥点,就是今晨过马路时溅的。如果我当时立即去抹,一定搞得一团糟。所以我把大衣挂到一边,专心干别的事,等泥巴晾干了再去处理它,就非常容易了。瞧,轻轻掸几下就没事了。我建议你等情绪的水分都蒸发了,再来想者件事,到那时,如果你还打算讨伐他,请再来找我。不过晾干水分后,你也许会发现那泥点也淡得找不到了。

 

(js) Javascript runtime environment.

/*<![CDATA[*/
/** javascript runtime environment.
 * @author 闲耘 (HoToo)
 * @author
http://www.xianyun.org
 * @create 2006-6-26
 */


/** Browser object.
 * @update 2006-6-17
 *              2006-8-16 add isNetscape.
 * @p.s. thanks robin pan and meizz.
 */

window.Browser = {
    isIE : (navigator.userAgent.indexOf('MSIE') >= 0) && (navigator.userAgent.indexOf('Opera') < 0),
    isFirefox : navigator.userAgent.indexOf('Firefox') >= 0,
    isOpera : navigator.userAgent.indexOf('Opera') >= 0,
    isNetscape : navigator .userAgent.indexOf('Netscape') >= 0
};
 
/** window.classpath.
 * @description using classpath to find classes.
 * @update 2006-7-29
 */
window.classpath = function (){
    var _sc = document.getElementsByTagName('script');
    var _cp = _sc[_sc.length - 1].getAttribute('classpath');
    return (_cp == null) ? 'classes/' : _cp + '/';
}();
 
/** window._package()
 * @description create the object for name space.
 * @param packageName, string, like Java, using dot (.) replace solidus (/) with directory.
 * @demo _package(' cn.hotoo.Obj') will create these object: cn, cn.hotoo, cn.hotoo.Obj
 * @update <<2006-7-26
 */
/*
window._package = function(packageName){
    var ps = packageName.split('.');
    for (var i = 0; i < ps.length; i++){
        var _ps = ps[0];
        for (var j = 1; j <= i; j++){
            _ps += '.' + ps[j];
        };
        try{
            if (typeof(eval(_ps)) == 'function'){continue;}; // object is existed.
            if (typeof(eval(_ps)) == 'undefined'){ // object.property == 'undefined'
                eval(_ps + ' = new Function();');
            };
        }catch(e){
            eval(_ps + ' = new Function();'); // non object.
        };
    };
};
*/

/** from AtlasRuntime.js
 * @create 2006-8-3
 */
window._package = function(packageName){
    var oRoot = window;
    var ps = packageName.split('.');
    for (var i = 0; i < ps.length; i++){
        var curr = ps[i];
        if (!oRoot[curr]){
            oRoot[curr] = new Object();
        };
        oRoot = oRoot[curr];
    };
};
 
/** window._import()
 * @description dynamic load Javascript file at runtime.
 * @param uri, string, like Java package name and class name. eg: 'org.xianyun.Obj'.
 * @param classpath, string, if need a temporary classpath, set it;
 *     else, set null or non-string object to using default classpath.
 * @param fCallback, function, when load javascript file successful, execute it.
 * @p.s. the best version. 2006-7-26
 */
/*
window._import = function(uri, classpath, fCallback){
    var path = (typeof(classpath) == 'string') ? classpath : this.classpath;
    var id = 'script_' + path.replace (/\//g, '_') + uri.replace(/\./g, '_');
    var callback = function(script){
        if (Browser.isIE){
            script.onreadystatechange = function(){
                if (script.readyState == 'complete' || script.readyState == 'loaded'){
                    if(typeof(fCallback) == 'function'){fCallback();};
                };
            };
        }else if(Browser.isFirefox ){
            script.onload = function(){
                if(typeof(fCallback) == 'function'){fCallback();};
            };
            script.onerror = function(){
                //alert('load error.');
            };
        }else{ // Opera 9.0 passed.
            if(typeof(fCallback) == 'function'){fCallback();};
        };
    };
    if (document.getElementById(id) != null){ // script tag is created.
        try{
            fCallback();
        }catch(e){ // scripts is not success loaded.
            callback(document.getElementById(id));
        };
        return;
    };
    var _url = path + uri.replace(/\./g, '/') + '.js';
    var script = document.createElement('script');
    script.setAttribute('language', 'javascript');
    script.setAttribute('type', 'text/javascript');
    script.setAttribute('id', id);
    script.setAttribute('src', _url);
    //document.body.appendChild(script);
    document.getElementsByTagName('head')[0].appendChild(script);
    callback(script);
};
*/

/** window._import()
 * @description dynamic, batch or not load scripts at runtime.
 * @param uris, array or string, if is array may like this:
 * uris = [
 *     ['packagesName.className ', 'classpath/'], // %currentDirectory%/classpath/, must end with solidus (/).
 *     ['cn.hotoo.tools.Counter', null], // null or non-string, using default classpath.
 *     ['cn.hotoo.UI.Window.HTWindow ', ''] // current directory, do no start with solidus (/), if not, using root directory.
 * ];
 * @param classpath, string, the common classpath in this action of batch import.
 * @param fCallback, function, after loaded all scripts, do this action.
 * @p.s. excessive design. 2006-7-27
 */
window._import = function(uris, classpath, fCallback){
    var __import = function(uri, classpath, fCallback){
        var path = (typeof(classpath) == 'string') ? classpath : this.classpath;
        var id = 'script_' + path.replace(/\//g, '_') + uri.replace(/\./g, '_');
        var callback = function(script){
            if (Browser.isIE){
                script.onreadystatechange = function(){
                    if (script.readyState == 'complete' || script.readyState == 'loaded'){
                        if(typeof(fCallback) == 'function'){fCallback();};
                    };
                };
            }else if(Browser.isFirefox || Browser.isNetscape){
                script.onload = function(){
                    if(typeof(fCallback) == 'function'){fCallback();};
                };
            }else{ // Opera 8.0/9.0 passed.
                if(typeof(fCallback) == 'function'){fCallback();};
            };
        };
        if (document.getElementById(id) != null){ // script tag is created.
            try{
                fCallback();
            }catch (e){ // scripts is not success loaded.
                callback(document.getElementById(id));
            };
            return ;
        };
        var _url = path + uri.replace(/\./g, '/') + '.js';
        var script = document.createElement('script');
        script.setAttribute('language', 'javascript');
        script.setAttribute('type', 'text/javascript');
        script.setAttribute('id', id);
        script.setAttribute ('src', _url);
        //document.body.appendChild(script);
        document.getElementsByTagName('head')[0].appendChild(script);
        callback(script);
    };
    if (typeof(uris) == 'string'){
        __import(uris, classpath, fCallback);
    }else if ( typeof(uris) == 'object'){
        if (uris.length <= 0){return;};
        var len = uris.length - 1;
        if (typeof(uris[len][1]) == 'string'){ // using temporary classpath.
            imp = '__import("' + uris[len][0] + '", "' + uris[len][1] + '", fCallback)';
        }else if (typeof(classpath) == 'string'){ // using common classpath.
            imp = '__import("' + uris[len][0] + '", "' + classpath + '", fCallback)';
        }else{ // using default classpath.
            imp = '__import("' + uris[len][0] + '", null, fCallback)';
        };
        for (var i = len - 1; i >= 0; i--){
            if (typeof(uris[i][1]) == 'string'){
                imp = '__import("' + uris[i][0] + '", "' + uris[i][1] + '", function(){' + imp + ';})';
            }else if ( typeof(classpath) == 'string'){
                imp = '__import("' + uris[i][0] + '", "' + classpath + '", function(){' + imp + ';})';
            } else{
                imp = '__import("' + uris[i][0] + '", null, function(){' + imp + ';})';
            };
        };
        eval(imp);
    };
};
/*]]>*/

献给小曾的生日

曾经小曾把一个坚硬的橘子放在我面前
我没有珍惜
等吃掉它的时候我才后悔莫及(好吃)
人世间最痛苦的事莫过于此
如果上天能够给小曾一个再来这个角落一次的机会
我希望对小曾说三个字:
再给点...
如果一定要加一个数量 
我希望只是一万只
           -- 献给小曾的生日。

闲耘(474727891) 2006年12月6日 19:28:55
 

曾经有一份真挚的爱情

闲 耘:
[108915550] 于 2005-12-23 12:22:36 留言
 

曾经我把一份真挚的爱情放在她面前
她没有珍惜
等失去她的时候我才后悔莫及
人世间最痛苦的事莫过于此
如果上天能够给她一个再来一次的机会
我希望那个女孩子对我说三个字:
请重试
我问还要试多少次 ?
我希望只是一万次
可她说:
一辈子


・抄袭版・

曾经有一份超酷的帖子被我看到
可是我没有回帖
当我search不到它时我才后悔莫及
如果上天再给我一次机会的话
我一定要写三个字
我回帖
如果非要在这份帖上加一个数量
我希望是
一万篇




・抄袭修订版・

曾经有一份超酷的帖子被我看到
我没有回帖
当我search不到它时
才后悔莫及
如果上天再给我一次机会的话
我一定要说三个字
我回帖
如果非要加上一个数量
我希望是
一万篇


・原(正)版・


曾经有一份真挚的爱情放在我面前
我没有珍惜
等我失去的时候才后悔莫及
人世间最痛苦的事莫过于此
如果上天能够给我一个再来一次的机会
我会对那个女孩子说三个字:
我爱你
如果非要在这份爱上加一个期限
我希望是
一万年

人生成功精典

�X------------------------------------------------�[
┆                       小学                     ┆
�^------------------------------------------------�a

・自幼聪明・
小学三好学生,虽然不知道是怎么获得的,为什么会获得。总之我得了,而且小朋友羡慕,大人赞扬,我满足。

・敢爱・
偷偷哭《世上只有妈妈好》。

・好学・
每天下午回家趴在长板凳上写一小学作业本的横竖撇捺。

・自幼优秀・
五年级被选上参加镇"六一儿童节"的体操比赛,并作为排头兵。在正式上场的时候敢于在众人面前颤腿。

・酗酒・
过年亲戚家喝香摈酒第一次酒醉后独自回家,进不了门,于是就猫在楼梯下。

・自幼待遇高・
多次被"请"到办公室专场考试,并获得众位老师真传。

・造宝技术・
削木剑技术精湛,曾将一被众孩童"赞誉"为"宝剑"的木剑埋藏与地下,破纸画一"藏宝图",让他们去"寻宝"。

・爱情观・
四年级就已经建立爱情观,并暗暗喜欢一位圆脸蛋的可爱小女生。可惜只有两年的记忆,小学毕业后我就失去了她的方向,这一段美好的爱情或者姻缘就因此夭折。

・特立独行・
四年级时和五年级学长一起春游,大热天,穿一件粉红色毛绒绒的的厚棉袄,特立独行、愁眉苦脸,无可奈何地坐在集体照的最边缘,把这个位置弄得最为显眼,没办法,人强走哪哪显眼。

・没有困难,创造困难・
五年级住校,有一段时间想回家,于是把屋顶的瓦片翻开,不下雨时看星星入眠,下雨了可以请假回家。

・自己动手,丰衣足食・
有同学晚上下自习后,没有先打声招呼就借了人家地里的红萝卜、大白菜等,然后拿手电筒去捉鱼鳅,白天我们加菜。真可惜我那时候不劳而获,白吃白喝。

・勇于争取・
自认为是好学生,放学后却被告之"你的凳子被人搬回家了"。打死我的都不信,我没得罪谁啊 ? !!
朝指引的方向奋起直追,果然。于是拼抢起来。
终于抢回来了。于是我们家多了一条三只腿的板凳。

・再获奖・
语文考试破天荒第三名,被严重表扬,并发一个大号的小学生作业本。

・自尊与坚持・
住校,有一天晚上觉得很冷,醒。发觉床下很湿。"难道我还会尿床??",郁闷ing...但是不能让其他人发觉了,"我要把它捂干了"。于是像丘少云一般英雄气概硬挺挺地卧在潮湿的床上,一夜。
第二天早上,同床的一位叫道:"谁尿床了??!!"不语,不能语,不敢有语。
"我。"另一位睡中间的同床说,我不敢相信我的耳朵,竟然有人替我承担耻辱。他支吾解释道,"昨天晚上黑,我不敢出去....."。
难道真的不是我尿的,我也不知道。

・勇于尝试・
一小伙伴说他家有几"口袋"白糖。不信,于是集体出动共观之。
还真是几大口袋。于是我们贪婪地大舔舌头,行动。
为了不被大人们发现,我们只在口袋的四不角上挖洞洞。
怎么不甜啊?? !!
后来才发现里面装的是给植物的营养素,而不是给动物的。

・忍耐・
一次砖头大战中,我军阵营处于楼下之劣势中。堡垒 = 翻过来的脱粒机 + 破板。
唯一的优势就是守住了敌军的出口。
大砖头,小瓦片一齐飞来,我军被轰炸得狂晕,有几位战友光荣牺牲 [ 逃离 ]。
我怕被大砖头砸到,不敢光荣。于是又像丘少云一样英雄气概缩是角落里。闲听木板狂跳声。
等到敌军弹药溃尽,怀疑我军全军覆灭,正想下来瞅瞅时,我攥紧了一块大砖头。准备吓他门一下,然后光荣就义 [ 也是逃离 ]。


�X------------------------------------------------�[
┆                       初中                     ┆
�^------------------------------------------------�a

・能力强・
考上初中重点班。虽然我也感到莫名其妙。

・当官・
虽然我不在学校食堂吃饭,但是不知道为什么会被委任生活委员要职,并勇于一个月后辞职,让班主任刮目。

・有智慧・
空间几何数学和物理自我感觉很棒,并知道我还能够做得更好。

・腰好・
中考引体向上满分。其实我多做了 N = 3 个。

・勇于创新・
乒乓球反削法被"誉"为"纽纽球"。

・技术人才 绝技・
用粉笔头砸人技术超群,曾于十步之外,在对方运动的情况下,将一粉笔头投进同学耳洞中。

・开拓・
每周五放学后,四人组队朝回家相反的方向骑车 2 小时。

・智慧与胆量・
成功偷取警车外置天线。

・自豪感・
终于有一个象样的橡皮狗被人成功"偷"取,自我感觉"做人"好成功。

・开放・
初中的时候就去了人家的家里见她的父母,有因毕业一起去她家玩的所有同学佐证。

・魅力・
索取女生玉照成功,虽然是豪夺式。

・爱憎分明・
被同学说得见到她就脸红,这就是爱;
她有什么不对的[其实是我不对,曾经,现在,可能将来悔过ing...],打她,这就是恨。


�X------------------------------------------------�[
┆                       高中                     ┆
�^------------------------------------------------�a

・能力・
被班主任"请"去写大字[其间因偷懒被骂]。

・勇猛・
踢足球奇猛,也被奇猛踢过。

・武术奇才・
曾被同学"赞誉"为学武的好材料,虽然人家只是随便说说,但是我不能不当真。

・再创新高・
自创的乒乓球反抽技术,众赞兼惧。

・气魄・
迁校后第一届校运动会篮球比赛中,因手扭伤,用力不当,将球"轻易"投过蓝板,引起全校轰动。

・一脚揣得远・
曾经有一个我看不惯,也看不惯我的家伙叫上一个"兄弟"来扁我,被我踹出门后就再也没有回来过。

・再创新高・
自行车站立技术之终结:车被提起后,发现车站立角度与地面垂直,和我当时的身体平行,只不过它只有一个轮子站在地上,而我有两只脚。

・篮球技术终结・
第一次真正接触篮球,技术进步快之终结,以后就没有大的进步。

・气概・
考上大学,虽然可能不算什么好学校,但铁胆男儿绝不买读。


�X------------------------------------------------�[
┆                       大学                     ┆
�^------------------------------------------------�a

・弓虽・
军训期间被严重表扬。

・当官・
当上最无组织纪律的班委。

・独立・
大学一年级过年就不回家,在外面打工养活自己。

・交际・
与同学老师关系优良。有把女生当成兄弟来使唤的能力,当然,就像真正的室友及兄弟一样,没有人愿意为我洗衣叠被。

・学习・
学期奖学金,虽然一学期比一学得的少。

・好学・
绝对"好学",虽然没有"学好"。

・学得好・
中文比英文学得好。

・尽责・
做了一学期自认为十分成功尽责的课代表。

・组织能力・
自己组织一个业余"篮球队",自己负责得分后卫、主力、兼"二十四小时"在场。

・组织能力再现・
校女生排球比赛中,我班女生处于劣势。我到现场的时候我女子兵团已败一场,第二场大比分差于对手,且该场比赛即将结束。凭我的组织能力硬翘翘是把对手打败 [我知道当时没有人在意,但是我在意]。

・足球明星・
班级足球大赛首开记录。最佳选手 [将来也许是] 兼获"最具潜质奖"。

・突破自我・
体育课程敢于选择自己的弱项,并具有保持标准及格分的能力。

・广交天下好友・
赢得BEYOND朋友兄弟般情谊。

・追求・
敢于主动追求女生。并具有保持不失败第二次的能力[ 因为是一直在失败,没有中断过 ]。

・礼物・
第一次送"有深意"的礼物给"梦中情人",她收下并没有退回[ 因为她根本就退不回来,我是跑到市局邮寄过去的,没有写详细的地址 ]。

・共进午餐・
第一次请有那意思的女孩子吃了一顿我自己都想吐的饭菜,最终达到让她主动分手的目的。

・暧昧・
第一次进被严重请进女生宿舍做客,虽然并没有什么,但是对我而言,真是大的进步。

・交往・
无意中认识网络上一位叫『 类似 』的美丽女孩。严重声明:我们之间是严重纯洁的男女关系 [太纯洁,所以很严重]。

・胆量是一种习惯・
逃课,是我人生的突破。其实突破也是一种习惯,习惯了就好。

・游戏・
CS中射杀过无数菜鸟,也被无数菜鸟射杀过。[菜鸟一族]
轻易拿下飞车游戏中的第一名 [ 倒数 ]。
NBA游戏中曾有过只差对手一分的好成绩 [ 还是输了 ]。

・技术能力・
系机房"首席"管理员,机房暂时还没有设这个位置,我就自己顶上去了。

・驾驶能力・
学了两三个星期后,合格了,被赞誉为"倒得不错 !"。

・自学能力・
自学Web技术,为班级做一没人愿意访问的破烂主页。一次性通过程序员考试,稳操证书在手。


�X------------------------------------------------�[
┆                       工作                     ┆
�^------------------------------------------------�a

・管理与领导能力・
有人将初中QQ群主动送予我做创建者,不负我终于将群在免费的情况下发挥到极致。

・独挡一面・
第一份工作中被"誉"为"能独挡一面的人",虽然我也不明白他们为什么要这样说。

・自学能力・
三个月把"未曾蒙面"的 Oracle 弄懂,同期把我曾经被初学 PB 的菜鸟都称为"白婆"的 PB 编程技术搞通,严重理解 OO 思想和技术,自学 Java。

・闯荡・
四个月后毅然辞去第一份工作,独闯深圳。
找到深圳的第一份工作,由原来没名没分的"所谓"程序员直升到有名有分的"工程师"级别。

・运动・
和同事打篮球,重操旧业,又打主力 [ 总共只有四个人 ] 兼得分后卫 [ 总会有得分的时候的 ] 位置。

・白婆・
又从 ASP 白婆变成初级开发人员。并由于表现出色,被 ASP 学习群提升为管理员要职。

[ 2005-12-21 于深圳龙岗同乐TELSDA ]

HoToo 简介

又名闲耘,田薯,地瓜 等等一系列相关名称,『只要你愿意,我愿意。』其中地瓜一名就是我那帮BEYOND中认识的兄弟们为我取的一个外号,其由来就是我原来的田薯一名优化而来。

性别为男,未婚,有意者可以尝试认识我一下,哈哈,也是『只要你愿意,我愿意。』

1983 年 12 月生,射手座,具有许多在关于射手星座描述中所没有甚至是完全相反的性格和特征,但是尽管如此,我还是射手座,并且从小就希望象一名射手一样,拿着自制的弓箭或者弹弓,射向遥远的天际,『嗖』的一声,画一道美丽的弧线。

我一直都不知道自己的血型,直到我 22岁再办身份证必须要验证血型时。我打小就希望自己是 O型血,没有其他的原因,就是因为她是一道美丽的弧,是一个完美的圆圈,而且对我来说,有一种神秘的韵味。所谓天随人愿,我一家老小都是 O 型的,我就算不想是 O 型的都不行了。没办法,『我也不想啊!』

人生第一大爱好是篮球运动,虽没有这天赋,但这也证明了爱好不需要天赋。

喜欢各种颜色,但是各种颜色并不都喜欢我。

喜欢音乐,尽管并不懂。

最喜欢的音乐就是 BEYOND 的声音,应该算是铁杆饭丝 [ 粉丝有点女性化,个人认为 ]。曾狂收集 BEYOND 的各种图片,声音,影视。由于各种缘故,现在丢失了不少,甚是可惜。

狂爱收藏书籍,虽然还没有这样的经济能力能够承受。『但是我喜欢!』

生性喜爱幽默。但是同其他任何事情一样, 并不是我喜欢她,她就会喜欢我。由于我没有幽默的潜质,在实际生活当中,我给人的感觉就的一块呆木头,让人郁闷。而我又偏偏不羁放纵爱自由,明知道自己不是幽默的材料,却又耐不住做一块呆板,就只好跑到网络上来幻想一下自己曾经,当然现在,甚至将来都是一位伟大的幽默大师,最起码也是一个出色的幽默天才。其实我要求很低的,只要像伊木那样的天才就可以了。

还有不少其他的爱好,不一一介绍,提一名称就够了 [ 我都介绍烦了 ] 。笛子,口琴,棋类,自行车旅行 [ 曾独自一人单车漫无目的行程一整天,N公里 ] ,网络 [ 自不用说 ],文字游戏,写大字,写小字,写中等的字,不写字,极力 [ 就是想方设法 ] 跟别人不相同。

网络很好,因为任何人都不认识我;
网络真的很好,因为任何人都可以认识我。

网络很好,因为我不认识任何人;
网络真的很好,因为我可以认识任何人。


撰写于:2005-11-28 16:03:20

总有

 
总有一种感情,让我们泪流满面。
总有一种付出,让我们刻骨铭心。
总有一种精神,让我们力量倍增。
 

谜语

1. 一物生得真奇怪,它是世间一味菜,娘死以后才生它,它死以后娘还在。
2.扭扭捏捏接起来,一条长蛇过嘴腮,一生从来不吃肉,却从肉里钻出来。
3.新砌的屋子不上梁,送客千里不过墙,亲生儿子难送老,恩爱夫妻不同床。
4.道士怀里两个蛋,和尚身下一条巾,虽是平常两个字,难住多少聪明人。
5.虎头牛尾中间羊,浑身一丈二尺长,二十四根肋条骨,四个蹄子一搬长。


答案
1.木耳之类的食用菌。
2.牛绳。
3.唱戏。
4.平常。
5. (月的肖属,十二个月,二十四节气,四季)年

 

漂起来的石头

       三口
 
有一个智者在向他的观众宣讲时问道:"谁能知道怎样才能让石头在水上漂起来?"于是有人说"把石头掏空",智者摇头;又有人说"把它放在木版上",智者说"没有木版";也有人说"石头是假的"…… 终于一个小孩站起来大声喊道:"打水漂!"智者的脸上终于露出满意的笑容:"正确!"

《孙子兵法》上说:"激水之疾,至于漂石者,势也。"速度决定了石头能否漂起来。

其实,我们小时候都玩过"打水漂"的游戏,但是,我们却很少有人能从中感悟到它的这份深刻。

人生没有为你准备等待的机会,你只有与时间赛跑,才有可能会赢。赶在别人前头,不要停下来,这是竞争者的状态,也是胜者的法宝。如果我们非要说成功也有捷径的话,那就是飞,时刻准备以鹰的速度冲刺,石头也可以漂起来。


(现代诗) 人生中总该有的

      郁葱
 
总该有几次失眠
总该淋几次雨
总该还会用笔写字
每天,还总该微笑几次
总该在抽屉里放几张
小时候的照片
总该有一些钱
总该有一点欲望
总该有一些情调
当然,还总该有一些时间
总该给,总该要。
总该想着一些好颜色
总该在某些时候
把很深的一天
浅浅地过完。
 

古诗

古朴高低屋,
斜阳远近山。
林梢烟以带,
村外水如环。

慧语珠玑


如果你是等待这个奖项给自己增光,那么得不得无所谓;
如果你的得奖,能够给这个奖项增光,你可以得。
                          -- 王蒙
 
自嘲自重,笑对人生。
 
溪回谷转愁无处;
忽有梅花一两枝。
 
你的身躯很庞大,但你的生命需要的仅仅是一颗心。
                                   [美・好莱呜]利奥・罗斯顿
 
天空不留下鸟的痕迹,但我已飞过。
 
幸福的人善于忘记自己给过别人什么,却永远记得别人给过自己什么。
 
机遇像个小偷,来时无声无息,走时你却损失惨重。
 
伟大的人讨论思想,中等的人讨论事件,小人物讨论人。
                                           -- 印度谚语

如果你昨天的成绩显得很了不起,说明你今天做得还不够。
                                            -- 加利福尼亚州某中学教导处送给学生的一句话
 

2007年1月20日星期六

我本不喜欢

我本不喜欢BEYOND,但是事实上除了BEYOND的歌曲我什么都不会,所以我只能谎称喜欢BEYOND;正如许多人不会BEYOND,所以谎称不喜欢BEYOND一样。

我本不喜欢艺术,但事实上我对艺术一窍不通,她总能带给我意想不到的惊喜,所以我很喜欢艺术;正如很多人一生都淹没在艺术中,艺术已使他们厌烦一样。

我本很喜欢田园生活,但是小时候整天都被包围在这种宁静的生活中,所以自以为不喜欢田园生活;正如我现在也许很喜欢都市生活,但是沉溺得久了,便有些厌烦一样,我倒缅怀起幼时的宁静生活了。

--
又是故纸堆的故事。
 

生命的标记

张晓风
 
有一年,去日本,天气正由盛夏转秋,人到富士山腰,租了匹漂亮的栗色大马去行山径。低枝拂额,山鸟上下,随身听里放着新买来的三弦古乐。抿一口山村自酿的葡萄酒,淡淡的红,淡淡的芬芳……蹄声得得,旅途比预期的还要完美。
 
我在一座山寺前停了下来,那里帖着一张大大的告示,由不得人不看。告示上有一张男子的照片,奇怪的是那日文告示,我竟大致看了个明白。它的内容是说。两个月前有个60多岁的男子登山失踪了,他身上靠腹部的地方因为动过手术,有条15厘米长的疤痕如果有人发现位为男子,请通知警方。
 
叫人用腹部的疤痕来辨认失踪的人,当然是假定找到的已是尸体了,否则凭名字相认不就可以了吗?
 
寺前痴立,我忽然大恸,这座外形安详的富士山于我是闲来的行脚处,于这男子却是残酷的埋骨之地啊!时乎,命乎,叫人怎么说呢?
 
而真正令我悲伤的是,人生至此,在特征栏里竟只剩下那么简单赤裸的几个字:"腹上有15厘米长的疤痕!"原来人一旦撒手了,所有人间的形容词都顿然失色,所有的学历、经验、头衔、土地、股票持份或丰功伟绩都全然不相干了。真正属于此身的特点竟可能只是一道疤痕或半颗蛀牙。
 
山上的阳光淡寂,火山地带特有的黑土踏上去松软柔和,而我意识到山的险峻;每一转折都自成祸福,每一岔道都皆隐含杀机。如我一旦失足,则寻人启示上对我的形容词便没有一句会与我平生努力博得的成就有关了。
 
我站在寺前,站在我从不认识的山难者的寻人告示前,黯然落泪。
 
--
此问原标题为《生命的滋味》
闲耘无忌,随心改之为《生命的标记》,或是《生命的痕迹》

因为年轻


你改变不了环境,但可以改变自已
因为年轻,所以会经历一些事情,比如爱情,比如友情。
没有人能够永远快乐幸福的过每一天。
没有人能够坦然的面对自己的坚强和软弱。
让我们成熟的,是经历的,是磨难的。
让我们幸福的,是宽容的,是爱的。
让我们心安的,是理解的,是信任的。
 
你改变不了事实,但你可以改变态度
不知道为何,有些东西就是无法改变。
也许,是因为还没有找到真正的梦想。
也许,还在追求那永远不会有的完美。
曾几何时,我们虚荣过,幻想过,为狭隘的目标奋斗过。
待到重新回头看待这一切时,觉得很多事情都云淡风轻了。
你改变不了事实,但你可以改变态度。
 
你改变不了过去,但你可以改变现在
过去的就让它过去,会在未来走的更加好。
因为抛弃了不必要的包袱,生活才会更美好。
人生如此短暂,有什么理由,不去好好的生活呐。
有太多的事情要你去做,有很重要的人等着你去珍惜。
不要回头看,前面的世界才更精彩。
你改变不了过去,但你可以改变现在。
 

你不能控制他们,但你可以掌握自已
我要走我自己的路,纵然很崎岖,纵然很陡峭。
但我依然勇往直前。
我是我自己的,谁也没有控制我命运的权利。
纵然会困难重重,伤痕累累,但我不会犹豫,不会后悔。
因为在我回首时,我可以指着那条尽是痛苦和泪水的路,大声地骄傲地说:
看,这就是我自己走出来的路!
你不能控制他们,但你可以掌握自已。

你不能预知明天, 但你可以把握今天
"森林中有一个分岔口,我愿选择脚印少的那一条路,这样我的一生会截然不同。"
基丁说过这样的话。
一条路走的人多了,总会弄得泥泞不堪,总会弄得尘土飞扬。
为何不换一条路走走,也许一切将会是另一种样子。
把握住自己的今天,那么明天绝对会更美好。
你不能预知明天, 但你可以把握今天。

你不能左右天气,但你可以改变心情
你对生活微笑,那么生活也对你微笑。
让我们的心不再压抑,让它解脱吧。
让我们的心灵飞翔,去迎接那绚丽的阳光吧!
让它在蓝天和白云之间翱翔。
 
你不能选择容貌,但你可以展现笑容
"和千万人相遇,和千万人相离,生命中寻找一个能够真实相伴的人。
真实信任的朋友,就是幸福。
至少,无论在任何时候,无论我做什么事情,无论我面对怎样的环境。
我都知道,有这样一个人,在等我回家。
有这样一个人,能够宽容分享我的一切快乐和悲伤,能够看见我的坚强和软弱。
这也是我在寻找的心灵的慰寄,我想,我会幸福的。"
 

牛并谦虚着

 
牛并谦虚着
就显得更牛
 

KISS Principle (KISS原则)

 
KISS Principle /kis' prin'si-pl/ /n./
 
"Keep It Simple, Stupid". A maxim often invoked when discussing design to fend off creeping featurism and control development complexity. Possibly related to the marketroid maxim on sales presentations, "Keep It Short and Simple".
 

还有一块呢?

 
三个学生在旅社住宿,房费是30元。三人每人给了10元住在一间房。恰遇那天打折只要25元,老板拿出了5元,让服务员还给学生。服务员偷偷藏了2元,给了每人一元。

这样,每人都只用了9元,3乘以9加上服务员藏起来的2元一共是29元,还有一元钱呢?

--
是啊,还有一块呢,根据守衡定律,这一块总不能凭空就没啦,太不划算了。
一块钱能买多少东西啊,说都说不完 (说怎么会说得完呢,花才会花得完的 ^_-)。

言归正传,这一块到底哪去得?大家都是明眼人,它自己是不会跑得掉的。
原来作者只在一个小地方做了手脚,借此来糊弄人。

"每人都只用了9元,3乘以9加上服务员藏起来的2元一共是29元"。
这里应该做加法运算吗?您认为呢。

闲耘愚笨,确是被作者糊弄了一次。不过一块钱可不是一笔小数目,总算被我讨回来了。   :)

--
另:因为群中有人提出这个问题,几个也许被暂时"糊弄"的人吵嘴起来,闲耘多嘴,也管不住自己,笑云:
 
看来这不能叫"QQ群"
应该叫"QQ堆"
一堆不能和睦相处的人

蝴蝶,标本

当蝴蝶成为标本,
蝴蝶已不再是蝴蝶;
 
当标本成为蝴蝶,
标本又岂只是标本。

 
 
标本 清晰地记录了飞翔的瞬间
翅膀的脉络
穿越时光
与 飘落的叶
 
穿越空间
它们一起来到我的面前
刹那间汹涌的思念
淹没信函
 
不是因为一只美丽的蝴蝶
是一滴无言的露水
就在蝴蝶的眼中
透过城市的水泥与热气
映射出新月引发的海潮
-- (蝴蝶标本)
 

羊粪蛋的故事

论坛精选:羊粪蛋的故事
2005-09-30 09:43:35
作者:盲目[087_]


  有一种感觉,记在心里,有一份回忆,如日在怀.
 
  每个人的童年都有一些即好玩又难忘的小故事,不管是谁,在他的记忆深处,总是藏着几个小秘密,笑的;哭的;甜的......
 
  我的童年是多资多彩的,可以肆意地笑,可以痛快地玩,偶尔逃个学,打个架什么的(当然这些家长是不知道的)。那些快乐的事到现在还在我的大脑里,偶尔回味,其乐无穷。
 
  记的那天是放暑假的第1天,早上早早的起来了,吃过早饭就往舅舅家跑,昨天晚上就听说舅舅从城里带回来好多好吃的,也没洗脸,直接就奔舅舅家去了。要说农村的孩子见识少,还真不曲,舅舅把好吃的拿出来的时候,我和弟弟,妹妹们都不知道那是什么,黑忽忽的好多个豆。舅舅说这是小黑枣,甜着呢,你们一人分点,拿回去吃吧,几个孩子当中我最大,手也最大,我抓起2大把就跑了,也不管那剩多少,反正我知道我抓的最多(那时候刚学完孔容让梨,怎么就没想着给弟弟妹妹们多留点呢?那篇课文白学了,就知道想着吃了~)。
 
  一天没舍得吃,晚上趴在被窝里,一个一个的往嘴里扔,那味道,别提了,就是一个字,甜!吃完了还有点后悔,当时怎么没多抓点呢,哈哈!
 
  第二天没吃饭就出去找弟弟妹妹,一见面就问他们:"还有黑枣吗?"一个个都摇头,本来想仗着自己大在抢过来吃点,这下好,一问,比我都能吃,分完他们就都吃没了。吃完就吃完了吧,也不能从他们肚子里在拿出来了,那多不卫生啊!
 
  好不容易放假了,也不能闲着啊!父亲说了,你爱怎么玩就怎么玩,作业你得完成了,那当然是先选择玩了,我想每个上学的人都这么想的。
 
  带着弟弟妹妹们在大马路上正玩着,远处有人赶着一群羊过来了,在当时,养羊的不是大队,就是村子里有钱人家养的,我们也就看看,应该说我们根本就没放在眼里,谁去想有钱没钱啊,在我脑子里就一个玩字,其余都不重要。妹妹过来扯着我的衣服说:"哥哥,你看地下这是什么?"往地下一瞅,诶呀......怎么这么像黑枣呢?赶紧拉过妹妹说:"这是谁掉的?"妹妹指着那群羊说道:"刚羊群走过去的时候地下就有了。"傻忽忽的在那看了半天,也不知道到底是不是,耍了个小聪明,叫弟弟拿起来尝尝,看着弟弟痛苦的表情,就知道这玩意不好吃,可一看那样子,又不知道到底是不是,管它是不是,先拣回去在说。羊群在前面走,我们就在后面跟,"黑枣"装的兜满满的,感觉不过瘾,干脆脱下衣服装,装的实在是拿不动了才罢休。回家的路上心里还美滋滋的,心想,回去给老爸当下酒菜,说不定还能给个块八毛的。
 
  一进屋就把"黑枣"倒满炕,看着自己辛苦得来的劳动果实,那个高兴劲啊!爸爸还没回来,赶紧把妈妈叫过来,妈妈一看,差点没笑过气去,当时还想呢,拿回来好吃的也不至于笑成这个样子啊,"妈!你笑什么啊?我拿回来好吃的您就高兴成这样?"我说。妈妈拍拍我的头说:"傻儿子,这是羊粪蛋,你拣回来干什么?"我想当时我的表情一定很夸张,半天没说出话来。"儿子,你不是吃了吧?"妈妈问我,我非常斩钉截铁的说:"没吃,不过我让弟弟尝了一个。"还好爸爸没回来,妈妈把我的"劳动果实"打扫了一下,吃晚饭的时候我跟没事人似的,只是妈妈在那总憋不住乐,把爸爸整的莫名其妙,"你这是笑个啥啊?"妈妈没说,这是我和她约好的。
 
  安稳的睡了一个晚上,没等起被窝呢,弟弟妹妹就过来找我了,一个个小眼睛肿的跟玻璃球子似的,可想而知,他们昨天是怎么过的了。
 
  到现在我们几个人聚在一起的时候还总是提到这事,只是故事发生点变化。也不记得当时到底是谁先吃的,这个赖那个吃的,那个赖这个吃的,反正我没吃。
 
  总感觉少说了点什么?对了,也不知道当时是谁嘴那么快,没过几天爸爸就知道我带几个弟弟妹妹出去拣羊粪蛋的事了,罚我写了100遍黑枣,写完之后感觉天昏地暗,打那以后好长时间没敢写那俩字。
 
  童年总是有写不完的故事,此刻,我的记忆仍在那快乐的羊粪蛋身上,久久不愿离去。
 
  PS:童年如歌,总是有难忘的旋律萦绕心头,童年像船,承载着天真和快乐,童年喻旅,沿途的风光让我流连往返……
 
 
 
-- 打死也不肯承认 --
 
这篇文章写得不错,但是最不足的是作者不肯 [ 或者是不敢 ] 承认他自己也吃了,作者真的没有吃吗? 不得而知,但是就我对儿童的经验,任何一个小孩都不会把好吃的运回家再细细品尝,他一定会在路上忍不住偷嘴。(窃窃:我也有过类似羊粪蛋的经历,那就是把尿素当成白糖)

我这样说,并不是一定要诬赖作者,说他一定干了不曾干过的事,但作者刻意强调他没有吃,所谓欲盖弥彰,越发得让人怀疑了。


 
--
2005-11-24 16:58:10 发表于

AnimalFarm

 
George Wrwell在Animal Farm中说过:"所有的动物都是平等的." 看看下面的东西,你就知道是否是这样的了?

public class AnimalFarm{
    public static void main(String[] args){
        final String pig = "length: 10";
        final String dog = "length: " + pig.length();
        System.out.println("Animals are equal:" +
            pig == dog);
    }
}
 
(代码清单一)
 
初一看该程序,你可能认为它会打印Animal are equal: true.毕竟,pig和dog都是final的string类型变量,而且它们都被初始化为字符序列"length:10".

然而当我们运行程序来验证一下,它是什么呢?结果为:false,并没有打印其他的东西.它没有打印Animal are equal: . 它怎么会不打印这个字符串呢?

 

我把代码进行增补如下:
 
public class AnimalFarm{
    public static void main(String[] args){
        final String pig = "length: 10";
        final String dog = "length: " + pig.length();
        System.out.println("Animals length are equal:" + (pig.length() == dog.length()));
        System.out.println("Animals are equal:" + pig. equals(dog));
        System.out.println("Animals are equal(=):" + (pig == dog));
        System.out.println("Animals are equal(=):" + pig == dog);
        System.out.print("Animals are equal:");
        System.out.println(pig == dog);
    }
}
 
(代码清单二)
 
测试运行:
 
Animals length are equal:true
Animals are equal:true
Animals are equal(=):false
false
Animals are equal:false
 
 
您是否已经发现了结果了呢,我结论是,运算符的优先级造成了这样有意思的影响。
 
因为boolean类型运算符的运算优先级是比较低的,代码行
System.out.println("Animals are equal(=):" + pig == dog);
中先进行字符串连接运算:"Animals are equal(=):" + pig
然后进行字符串间的比较,而"Animals are equal(=):" + pig是不等于dog的
所以最后仅仅输出了false
 
如果代码清单二中代码行
System.out.println("Animals length are equal:" + (pig.length() == dog.length()));
中后面的两个字符串长度比较没有使用括号
则会出现异常
AnimalFarm.java:5: operator == cannot be applied to java.lang.String,int
        System.out.println("Animals length are equal:" + pig.length() == dog.length());
这个异常也说明了上面理解的正确性。
 
 
似乎在一个关于Java怪题(忘记书名)的书上见过类似问题,不知道是否记错了。