konhon

忘掉過去,展望未來。找回自我,超越自我。
逃避不一定躲的过, 面对不一定最难过, 孤单不一定不快乐, 得到不一定能长久, 失去不一定不再拥有, 可能因为某个理由而伤心难过, 但我却能找个理由让自己快乐.

Google

BlogJava 首页 新随笔 联系 聚合 管理
  203 Posts :: 0 Stories :: 61 Comments :: 0 Trackbacks

2006年7月10日 #

   很多股民常常感到孤独无助,买入的股票总是被套,这里面折射出一个问题,那就是你没有真正的掌握好买入点,今天我就在这里给大家讲一讲如何把握买入点。

  由于股票变化无常,主力更是绞尽脑汁和散户斗智斗勇,所以买入法也没有固定格式,我在这里只简单的介绍几种很有效的方法,仅供你借鉴。

     1、量缩法。顾名思义,就是当股票在一定“趋势和条件”下,成交量开始萎缩到不能再萎缩时,说明下跌能量消耗已尽,此时就是最好的买入点。所谓的“趋势和条件”是讲——这只股票运行趋势必须是在上升通道或低位震荡中,当它连续下跌两到三天时,成交量已经萎缩很多,股价波动范围已经很小,盘中也不再见有大的买单,特别是遇到大盘下跌时,它也不再下跌,这说明这只股票到了“谷”底,随时有反弹和新的行情发动,此时就是最价买入点。例如600297在1月30号到2月2号,连续下跌了四天,切成交量逐步萎缩,2月2号就是个最价买点。

     2、前高突破法。当一只股票经过一段时间的上涨,之后开始进入回调,当经过一段时间的调整,再次开始放量攻击前期高点时,此时也是买入点。但是这里最难把握的就是主力的假突破,很容易上当,这需要你自己正确判断。比方说600983在1月23达到一个高点后,2月8号开始放量攻击前期高点,那么2月8号就是最价买点。而600717在3月8号就是一个假突破。我特别强调一点,最好是出现三次冲击前期高点的股票,把握性最大。

     3、长阳之后等待法。就是当某只股票出现长阳甚至是涨停时,第二天它很可能不再连续拉升,而是出现小幅的调整,此时也是买入点,例如600723在1月18日就是一个买入点。

     4、诱空识破法。很多主力在进入下一波的大行情中,往往做最后的诱空洗盘。此时也是最价买入法,这需要你高超的识盘技巧。例如,600176在1月31号,出现了一条放量的长阴,其实那是诱空,做出这样的判断是要对这只股票的基本面和技术面都非常熟悉才行。

     5、大换手率的等待法。当某只股票在低位(特别强调是低位)出现大换手率时,说明主力杀入,你随时可以跟进。例如600178在1月19和22连续两天出现超过12%的还手率,之后再出现低点时,你就可以杀入了。
posted @ 2007-04-04 06:52 konhon 优华 阅读(1410) | 评论 (0)编辑 收藏

http://www.openitpower.com/wenzhang/97/10846_1.html

  与TTable、TQuery一样,TClientDataSet也是从TDataSet继承下来的,它通常用于多层体系结构的客户端。TClientDataSet最大的特点是它不依赖于BDE(Borland Database Engine),但它需要一个动态链接库的支持,这个动态链接库叫DBCLIENT.DLL。在客户端,也不需要用TDatabase构件,因为客户端并不直接连接数据库。
  由于TClientDataSet是从TDataSet继承下来的,所以,它支持诸如编辑、搜索、浏览、纠错、过滤等功能。由于TClientDataSet在内存中建立了数据的本地副本,上述操作的执行速度很快。也正是由于TClientDataSet并不直接连接数据库,因此,客户程序必须提供获取数据的机制。在Delphi 4中,TClientDataSet有三种途径获取数据:
.从文件中存取数据。
.从本地的另一个数据集中获取数据。
.通过IProvider接口从远程数据库服务器获取数据。
  在一个客户程序中,可以同时运用上述三种机制获取数据。
11.1 浏览和编辑数据
  和其他数据集构件一样,可以用标准的数据控件显示由TClientDataSet引入的数据集,当然,这需要借助于TDataSource构件。
  由于TClientDataSet是从TDataSet继承下来的,所以,凡是其他数据集构件支持的功能,TClientDataSet构件也大致具备。不同的是,TClientDataSet能够在内存中建立数据的副本,因此,TClientDataSet比其他数据集构件增加了一些特殊的功能。
11.1.1 浏览数据
  可以用标准的数据控件显示由TClientDataSet引入的数据集。在运行期,可以调用诸如First、GotoKey、Last、Next和Prior等函数来浏览数据。
  TClientDataSet也支持书签功能,可以用书签来标记某条记录,以后就可以方便地找到这条记录。
  对于TTable、TQuery等数据集构件来说,只能读RecNo属性来判断当前记录的序号。对于TClientDataSet构件来说,还可以写RecNo属性,使某一序号的记录成为当前记录。
11.1.2 CanModify属性
  TDataSet的CanModify属性用于判断数据集中的数据是否可以修改。CanModify属性本身是只读的,也就是说,数据是否能够修改不取决于应用程序。
  不过,TClientDataSet构件有其特殊性,因为TClientDataSet已经把数据在内存中建立了副本,因此,应用程序可以决定是否允许修改数据。如果不允许用户修改数据,只要把ReadOnly属性设为True,此时,CanModify属性肯定返回False。
  与其他数据集构件不同,修改TClientDataSet构件的ReadOnly属性时,不需要事先把Active属性设为True。
11.1.3 取消修改
  TClientDataSet传输数据的基本单位称为数据包,当前的数据包可以由Data属性来访问。不过,用户对数据的修改并不直接反映到Data属性中,而是临时写到一个日志即Delta属性中,这样做的好处是以后随时可以取消修改。
  不过,这里要说明一点,尽管用户的修改并没有反映到Data,当用户在数据控件中看到的却是最新修改的数据。如果一条记录被反复修改了多次,用户看到的只是最新的数据,但日志中却记载了多次。
  要取消上一次的修改,调用UndoLastChange函数。UndoLastChange需要传递一个布尔类型的参数叫FollowChange,如果FollowChange参数设为True,光标就移到被恢复的记录上,如果FollowChange参数设为False,光标仍然在当前记录上。
  ChangeCount属性返回日志中记载的修改次数。如果一条记录被反复修改了多次,每调用一次UndoLastChange能够逐级取消上一次的修改。
  UndoLastChange只能取消上一次的修改,如果想一下子取消所有的修改,首先要选择一个记录,然后调用RevertRecord。RevertRecord将从日志中取消所有对当前记录的修改。
  TClientDataSet还有一个SavePoint属性,它能把当前的编辑状态保存起来,以后随时可以返回当时的状态。例如,可以这样保存当前的状态:
  BeforeChanges := ClientDataSet1.SavePoint;
  以后,可以这样来恢复当时的状态:
  ClientDataSet1.SavePoint := BeforeChanges;
  应用程序可以保存多处状态,可以恢复其中一个状态,不过,一旦某个状态被恢复,在其之后的状态就无效。
  如果要一下子取消日志中记载的所有修改,可以调用CancelUpdates函数。CancelUpdates将把日志清空,取消所有的修改。
  如果LogChanges属性设为False,用户对数据的修改就会直接反映到Data属性中。
11.1.4 合并修改
  要把日志中记载的修改合并到Data属性中,有两种方式,具体使用哪一种方式,取决于应用程序获取数据的机制。不过,不管是哪种机制,合并后,日志自动被清空。
  对于一个从文件中获取数据的程序来说,只要调用MergeChangeLog函数,就把日志中记载的修改合并到Data属性中。不用担心其他用户同时修改了数据。
  对于一个从应用服务器获取数据的程序来说,就不能调用MergeChangeLog来合并数据,而要调用ApplyUpdates函数,ApplyUpdates会把日志中记载的修改传递给应用服务器,待应用服务器成功地把数据更新了数据库服务器后,才会合并到Data属性中。
11.1.5 纠错
  TClientDataSet支持纠错功能。一般情况下,需要自己建立纠错规则,以便对用户输入的数据进行纠错。
  此外,如果获得了IProvider接口的话,还可以从远程服务器引入纠错规则。
  有时候,客户端可能需要暂时禁止纠错,因为客户端从应用服务器检索数据是分阶段进行的,在所有的数据检索完毕之前,有些纠错规则很可能会报错。
要暂时禁止纠错,可以调用DisableConstraints,要重新允许纠错,可以调用EnableConstraints函数。DisableConstraints和EnableConstraints实际上都是作用于一个内部的计数。
11.2 索 引
  使用索引有这么几个好处:
.在数据集中定位记录比较快。
.能够在两个数据集之间建立Lookup或Master/Detail关系。
.可以对记录排序。
  在多层体系结构中,当客户程序从应用服务器检索数据时,它同时获得了默认的索引。默认的索引叫DEFAULT_ORDER,可以使用这个索引排序,但不能修改或删除这个索引。
  除了默认的索引外,TClientDataSet还对日志中记载的记录自动建立了一个副索引叫CHANGEINDEX。与DEFAULT_ORDER一样,不能修改或删除这个副索引。
  另外,还可以使用数据集中已建立的其他索引,或者自己建立索引。
11.2.1 创建一个新的索引
  要创建一个新的索引,可以调用AddIndex。AddIndex需要传递若干个参数:
  一是Name参数,用于指定索引名。在运行期切换索引时需要用到索引的名称。
  二是Fields参数,它是一个字符串,用于指定索引中的字段名,彼此之间用分号隔开。
  三是Options参数,用于设置索引的选项,包含ixDescending元素表示按降序排列,包含ixCaseInsensitive元素表示大小写不敏感。
  四是DescFields参数,它也是一个字符串,用于指定若干个字段名,这些字段将按照降序排列。
  五是CaseInsFields参数,它的作用与DescFields参数类似,包含在CaseInsFields参数中的字段将对大小写不敏感。
  六是GroupingLevel参数,用于指定分组级别,其值不能超过索引中的字段数。
  下面的代码创建了一个索引:
If Edit1.Text <> '' and ClientDataSet1.Fields.FindField(Edit1.Text) then
Begin
ClientDataSet1.AddIndex(Edit1.Text+'Index',Edit1.Text,  
  [ixCaseInsensitive],'','',0);
ClientDataSet1.IndexName := Edit1.Text + 'Index';
End;
为了避免创建一个索引,可以临时用IndexFieldNames属性来指定若干个字段,让数据集按这些字段排序。
11.2.2 删除和切换索引
  要删除一个先前创建的索引,可以调用DeleteIndex并指定要删除的索引名称。注意:DEFAULT_ORDER和CHANGEINDEX不能删除。
  如果建立了多个索引,可以任意选择其中的一个索引,这就要用到IndexName属性。
11.2.3 用索引把数据分组
  选择了一个索引后,数据集将自动按其中的字段进行排序。这样,临近的记录往往在关键字段上含有相同的值。例如,假设有一个表是这样的:
SalesRep Customer OrderNo Amount
1      1     5    100
1      1     2    50
1      2     3    200
1       2     6    75
2      1     1    10
2      3     4    200
  可以看出,SalesRep字段的值有重复的。对于SalesRep字段的值为1的来说,Customer字段的值也有重复的。这就是说,可以按SalesRep字段分组,进而再按Customer字段分组。显然,这里的分组级别是不同的,按SalesRep字段建立的分组属于第一级,按Customer字段建立的分组属于第二级。实际上,分组级别取决于字段在索引中的顺序。
  TClientDataSet可以决定是否按照分组级别来显示记录的值。例如,也许想以下面这种形式显示数据:
SalesRep Customer OrderNo Amount
1      1    5    100
           2    50
       2    3    200
           6    75
2      1    1    10
2      3    4    200
  要判断当前记录某一级的什么位置,可以调用GetGroupState函数。GetGroupState函数需要传递一个参数,用于指定分组级别。
11.3 计 算 字 段
  与其他数据集一样,也可以在TClientDataSet建立的数据集中增加计算字段。计算字段的值是基于同一个记录中的其他字段计算出来的。
  在其他数据集中,只要用户修改了数据或当前记录发生改变,就会触发OnCalcFields事件,换句话说,计算字段的值就被计算一次。
  TClientDataSet引入了“内部计算字段”的概念。与一般的计算字段不同的是,内部计算字段的值将随其他字段的值一起存取,这样,只有当用户修改了数据才会触发OnCalcFields事件,如果仅仅改变了当前记录,不会触发OnCalcFields事件。也就是说,内部计算字段的值需要重新计算的机会大大减少。
  在处理OnCalcFields事件的句柄中,首先要判断State属性。如果State属性返回dsInternalCalc,此时需要计算内部计算字段的值。如果State属性返回dsCalcFields,此时需要计算一般的计算字段的值。
11.4 统 计 值
  TClientDataSet增加了统计的功能,它可以基于分组自动计算总和、平均、计数、最大、最小值。当用户编辑数据时,这些统计值会自动跟着变化。
11.4.1 指定统计方式
  要指定怎样进行统计,就要用到Aggregates属性。这个属性是一个TAggregates对象,它用于管理一组TAggregate对象。
  在设计期,可以单击Aggregates属性边上的省略号按钮打开如图11.1所示
的编辑器。
  图11.1 管理一组TAggregate对象
  单击按钮可以增加一个TAggregate对象,单击按钮可以删减一个TAggregate对象,单击按钮可以把TAggregate对象前移,单击按钮可以把TAggregate对象后移。
  可以用字段编辑器专门创建一个用于表达统计值的字段,该字段的类型必须是“Aggregate”。Delphi 4会自动创建一个TAggregate对象,并加到Aggregates属性中。选择一个TAggregate对象,Object Inpector将显示该对象的属性。
  其中,Expression属性用于指定统计表达式,例如:
Sum(Field1)
  也可以是比较复杂的表达式:
Sum(Qty * Price) - Sum(AmountPaid)
  在表达式中,可以使用下列统计运算符:
.Sum计算一组数据的总和。
.Avg计算一组数据的平均值。
.Count计算一组数据中的非空值的个数。
.Min计算一组数据的最小值。
.Max计算一组数据的最大值。
  除了上述几个统计运算符外,还可以使用过滤条件中所能使用的运算符,但不能嵌套。在一个表达式中,可以混合出现几个统计值或常量,但不能混合出现统计值和字段。
  Sum(Qty * Price){合法}
  Max(Field1) - Max(Field2){合法}
  Avg(DiscountRate) * 100{合法}
  Min(Sum(Field1)){非法,不能嵌套}
  Count(Field1) - Field2{非法,统计值和字段不能混合出现在一个表达式中}
11.4.2 指定分组
  默认情况下,统计值是基于数据集中所有的记录计算出来的。不过,也可以针对一部分记录计算统计值,这就需要事先建立分组。
  前面在介绍索引时已经提到分组的概念。可以通过IndexName属性和GroupingLevel属性来选择使用哪个索引以及最大的分组级别。
  例如,假设有一个表是这样的:
SalesRep Customer OrderNo Amount
1      1     5    100
1      1     2    50
1      2     3    200
1       2     6    75
2      1     1    10
2      3     4    200
  如果要按SalesRep字段分组,并且指定其中的第一级,程序代码应当这样写:
Agg.Expression := 'Sum(Amount)';
Agg.IndexName := 'SalesCust';
Agg.GroupingLevel := 1;
Agg.AggregateName := 'Total for Rep';
11.4.3 怎样获取统计值
  要获取统计值,可以调用TAggregate对象的Value函数。如果统计值是基于数据集中所有的记录计算出来的,随时可以调用Value函数。如果统计值是基于分组计算出来的,必须保证当前记录正好位于该分组内。因此,在调用Value之前,最好先调用GetGroupState函数看看当前记录是否位于该分组内。
  要在数据控件中显示统计值,必须事先在字段编辑器中创建一个永久字段对象,该字段的类型必须是Aggregate。
11.5 数 据 包
  通过Data属性可以访问客户程序从应用服务器检索到的数据。程序示例如下:
Procedure TForm1.Button1Click(Sender: TObject);
Begin
ClientDataSet1.Data := ClientDataSet1.Provider.DataRequest(FilterEdit.Text);
End;
11.5.1 直接对Data属性赋值
  前面讲过,客户程序既可以通过IProvider接口获取数据,也可以从另一个数据集获取数据,后者就是通过Data属性赋值的。程序示例如下:
  ClientDataSet1.Data := ClientDataSet2.Data;
  一旦Data被赋值,就可以用标准的数据控件显示这些数据。
  注意:当从另一个数据集获取数据时,另一个数据集的日志也将被复制过来,但不包括原来的范围和过滤条件。
  如果要从另一个基于BDE的数据集中获取数据,可以通过数据集构件的Provider属性,程序示例如下:
  ClientDataSet1.Data := Table1.Provider.Data;
  如果要从一个自定义的数据集获取数据,首先要创建一个临时的TProvider构件,然后设置其DataSet属性指定这个自定义的数据集。程序示例如下:
TempProvider := TDataSetProvider.Create(Form1);
TempProvider.DataSet := SourceDataSet;
ClientDataSet1.Data := TempProvider.Data;
TempProvider.Free;
11.5.2 在数据包中加入自定义的信息
  可以把自定义的信息加到数据包中。当把数据保存到文件或流中时,这些自定义的信息也将保存到文件或流中。如果把数据包直接赋值给另一个数据集的话,这些自定义的信息也将被复制。
  要把自定义的信息加到数据包中,可以调用SetOptionalParam函数。要从数据包中检索自定义的信息,可以调用GetOptionalParam。程序示例如下:
Procedure TAppServer.Provider1UpdateData(Sender: TObject; DataSet: TClientDataSet);
var
WhenProvided: TDateTime;
Begin
WhenProvided := DataSet.GetOptionalParam('TimeProvided');
...
End;
11.5.3 克隆另一个数据集
  调用TClientDataSet的CloneCursor函数可以获得一个数据集的完全相同的副本。它与直接通过Data属性赋值是有区别的。
  区别之一:数据在两个数据集之间是共享的,修改其中一个将同时修改另一个。
  区别之二:除了数据外,CloneCursor函数还复制了一些属性和事件,这取决于Reset和KeepSettings参数怎样设置。
   CloneCursor函数需要传递三个参数,其中,Source参数指定源数据集,Reset参数和KeepSettings参数用于设置除了数据外是否还要复制下列属性和事件:Filter、Filtered、FilterOptions、OnFilterRecord、IndexName、MasterSource、MasterFields、ReadOnly、RemoteServer、ProviderName、Provider。
  如果Reset和KeepSettings参数都设为False,源数据集的上述属性和事件都将被复制给目标数据集。如果Reset参数设为True,目标数据集的上述属性和事件都将被清空。如果Reset参数设为False,而KeepSettings参数设为True,目标数据集的上述属性和事件不变,不过,必须保证这些属性和事件与克隆后的数据相容。
11.6 与应用服务器通讯
  在多层体系结构中,客户程序通过IProvider接口与应用服务器交换数据。这一章介绍怎样在客户端获得IProvider接口、怎样向应用服务器传递参数、怎样向应用服务器请求数据、怎样把用户对数据的修改写到数据库中。
11.6.1 怎样在客户端获得IProvider接口
  在单层应用程序以及工作在“公文包”模式下的多层应用程序中,不需要用到IProvider接口。而在多层体系结构中,客户程序要与应用服务器交换数据,首先必须获得IProvider接口,这就要用到RemoteServer属性和ProviderName属性。
  RemoteServer属性用于指定客户端的MIDAS连接构件。MIDAS连接构件又称Data Broker,用于建立和维护与应用服务器的连接。
  在设计期,正确设置了RemoteServer属性后,就可以在对象观察器中为ProviderName属性选择一个值,实际上就是选择应用服务器上的一个TProvider构件。
11.6.2 向应用服务器传递参数
  客户程序可以向应用服务器传递参数,这些参数实际上是传递给应用服务器上的TQuery构件或TStoredProc构件。既可以在设计期也可以在运行期设置参数。
  在设计期,可以单击Params属性边上的省略号按钮,打开一个如图11.2所示的编辑器。
  图11.2 设置参数
  单击按钮可以增加一个参数,单击按钮可以删减一个参数,单击按钮可以把一个参数前移,单击按钮可以把一个参数后移。
  选择一个参数,对象观察器将显示该参数(TParam对象)的属性。
  在运行期可以调用TParams的CreateParam函数来创建一个参数。例如,下面的代码创建了一个参数叫CustNo,它的使用类型是ptInput,数据类型是ftInteger,它的值设为605。
With ClientDataSet1.Params.CreateParam(ftInteger, 'CustNo', ptInput) Do
AsInteger := 605;
  设置好参数以后,如果TClientDataset的Active属性是False,只要把Active属性设为True,这些参数将被自动传递给应用服务器。如果Active属性已经为True,就要调用SendParams函数把参数传递给应用服务器。
  注意:传递给应用服务器的参数必须与TQuery构件或TStoredProc构件的参数匹配,包括名称、数据类型和参数类型。
11.6.3 怎样向应用服务器请求数据
  TClientDataSet提供了两个属性和三个方法,用于怎样向应用服务器请求数据:
  一是FetchOnDemand属性。如果这个属性设为True,TClientDataSet会根据需要自动检索附加的数据包,例如BLOB字段的值或者嵌套表的内容。如果这个属性设为False,程序需要显式地调用GetNextPacket才能获得这些附加的数据包。
  二是PacketRecords属性,用于设置一个数据包中最多可容纳的记录数,设为-1表示一个数据包可以容纳数据集的所有记录。
  三是GetNextPacket函数,用于向应用服务器检索下一个数据包,并把检索到的数据包添加到前一次检索到的数据包的后面。这个函数返回实际检索到的记录数。
  四是FetchBlobs过程,用于从应用服务器检索BLOB字段的值。如果FetchOnDemand属性设为True,就没必要调用FetchBlobs函数。
  五是FetchDetails过程,用于检索嵌套表中的数据。如果FetchOnDemand属性设为True,就没必要调用FetchDetails函数。
11.6.4 更新数据库
  在多层体系结构中,用户在客户端修改了数据后,需要把最新的数据写到数据库中,这就要调用TClientDataSet的ApplyUpdates函数。
  ApplyUpdates只需要传递一个参数叫MaxErrors,用于指定一个整数,当遇到无法更新的记录超过这个数时,此次更新就中止。如果MaxErrors参数设为0,表示只要遇到一个错误更新就中止,客户端的日志保持不变。如果MaxErrors参数设为-1,当应用服务器发现有错误的记录,就尝试更新下一个记录,等所有的记录都尝试过以后才返回。
  ApplyUpdates会自动调用Reconcile函数,进而调用应用服务器上的TProvider构件的ApplyUpdates函数去更新远程的数据库服务器。没有被DBMS服务器认可的记录通过Reconcile返回给客户端,此时将在客户端触发OnReconcileError事件让您更正错误。最后,ApplyUpdates函数返回仍然没有被认可的记录数。
11.7 在文件中存取数据
  要从文件中读取数据,可以调用LoadFromFile函数。LoadFromFile函数需要传递一个参数,用于指定文件名。文件名应包含完整的路径。如果客户程序总是从一个固定的文件中读取数据,可以设置FileName属性指定一个文件名,以后,当TClientDataSet引入的数据集打开时,就自动从这个文件中读取数据,不需要调用LoadFromFile。
  要从流中读取数据,可以调用LoadFromStream。LoadFromStream需要传递一个参数,用于指定一个流对象。
  注意:LoadFromFile(LoadFromStream)只能从先前用SaveToFile(SaveToStream)保存的文件中读取数据。
  要把数据保存到文件中,可以调用SaveToFile函数。SaveToFile需要传递一个参数,用于指定文件名。如果指定的文件已存在,文件中的数据将被覆盖。如果客户程序总是把数据保存到一个固定的文件中,可以设置FileName属性指定一个文件名,当TClientDataSet引入的数据集关闭时,就自动把数据保存到这个文件中,不需要调用SaveToFile。
  要把数据保存到流中,可以调用SaveToStream。SaveToStream需要传递一个参数,指定一个流对象。
  注意:当把数据保存到文件或流中时,日志中记载的修改仍然保留。这样,当下次调用LoadFromFile或LoadFromStream读取数据时,仍然可以恢复原来的数据。
posted @ 2007-03-29 05:57 konhon 优华 阅读(1613) | 评论 (0)编辑 收藏

  近日(呵呵,这篇文章是去年写的)用了两个月开发了一个物流信息系统,这个系统是两层、三层相结合,C/SB/S相结合的系统。虽然限于时间的紧张和人手的原因,系统规模不是很大,但是其中涉及的技术却很全面。在这个《开发技术篇》中我们将讲解我在开发系统中遇到的技术问题及解决方案,希望对大家有帮助。对于物流信息系统的分析设计问题,我将在另一篇文章《物流信息系统开发手记――系统构架篇》中讲解。

 

一、Midas的安全问题。

    Midas技术是Delphi中进行三层开发的首选技术,它不仅有纯DCOM/COM+(COM+技术是.NET技术的基础)的优点,而且也结合了Delphi的快速开发特性,可以快速开发出想要的系统,其开发速度是用VC,PB等开发DCOM的数十倍,把程序员从烦杂的代码中解脱出来,从而将更多的精力投入到业务逻辑的设计中去。

    但是Midas技术的一个最令人担忧的就是它的安全问题:

远端只要知道应用服务器的端口号即可访问到应用服务器,而一旦访问到应用服务器,TClientDataSet即可获得ProviderNames列表。一旦知道了ProviderNames列表,这就相当于将数据库暴露在外了。

关于可轻易获得ProviderNames列表的问题,我使用下面的方法解决:

 在服务器端定义一个

LoginMTS(const AUserId, APassword: WideString): WordBool;

方法。初始状态下,所有的DataSetProvider和数据集的连接断开。用户必须调用LoginMTS并传递用户名和密码,登陆成功才将DataSetProvider和数据集的连接打开。这样如果用户验证没有通过,即使它获得了ProviderNames列表也没法调用接口中的方法对数据库进行操作。

二、Midas中主从表的实现

主从表的应用在信息系统中应用很广。在两层开发中我们可以通过直接建立两个数据集之间为主从关系来实现主从表;在三层中虽然我们仍然可以通过直接建立两个数据集之间为主从关系来实现主从表,但是这样就要求把数据库中所有相关的数据行都下载到本地,丧失了三层开发的优势。我在实际中使用下面的方法实现。这里我以实现入库单查询、添加、修改、删除(CRUD)为例来讲解:

1)新建一个MTS Data Module,命名为TmtsStockInListBiz,增加如下方法:

    function QueryStockInListMasterById(const AId: WideString;

      var ADatas: OleVariant): WordBool; safecall;

    function QueryStockInListSlaveByMasterId(const AId: WideString;

      var ADatas: OleVariant): WordBool; safecall;

    procedure UpdataStockInListMaster(var ADatas: OleVariant); safecall;

    procedure UpdataStockInListSlave(var ADatas: OleVariant); safecall;

    function GenerateStockInListId: WideString; safecall;

 

QueryStockInListMasterById作用是根据入库单单号查询入库单的基本信息(入库日期、负责人等),Aid为入库单单号,Adatas为返回值,其格式就是Midas的数据包,可以将其附给ClientDatSetData属性。

QueryStockInListSlaveByMasterId作用是根据入库单单号查询入库单的详细信息(商品条码,数量)

UpdataStockInListMaster是对入库单主表进行删除、添加、修改操作。只要将ClientDataSetDelta属性做为传递即可。

UpdataStockInListSlave是对入库单从表进行删除、添加、修改操作。

GenerateStockInListId是产生一个唯一的入库单号。

下面是几个方法的代码,都很简单,就不多解释了,可以查看Delphi的帮助。

function TmtsStockInListBiz.QueryStockInListMasterById(

  const AId: WideString; var ADatas: OleVariant): WordBool;

begin

  result := false;

  ADatas := null;

  try

    cdsQuery.Close;

    cdsQuery.CommandText := 'select * from t_StockInListMaster where Id=:Id';

    cdsQuery.Params.ParamByName('Id').AsString := AId;

    cdsQuery.Open;

    if cdsQuery.RecordCount > 0 then

    begin

      result := true;

      ADatas := cdsQuery.Data;

    end;

  finally

    cdsQuery.Close;

  end;

end;

 

procedure TmtsStockInListBiz.UpdataStockInListMaster(

  var ADatas: OleVariant);

var

  eCount: Integer;

  OwnerData: OleVariant;

begin

  DCOMConStockInList.GetServer.AS_ApplyUpdates('dspStockInListMaster',

    ADatas, -1, eCount, OwnerData);

end;

 

function TmtsStockInListBiz.GenerateStockInListId: WideString;

var

  LPrior: string;

  i: Integer;

begin

  cdsQuery.Close;

  cdsQuery.CommandText := 'select top 1 id from t_StockInListMaster order by id desc';

  cdsQuery.Open;

  LPrior := cdsQuery.FieldByName('Id').AsString;

  i := StrToIntDef(RightStr(LPrior,8),0);

  Inc(i);

  result := 'RK' + FormatFloat('00000000',i);

  cdsQuery.Close;

end;

 

2)、新建一个应用程序,通过DCOMConnectionSocketConnection等连接到MTS组件,然后就可以调用MTS的相应的方法实现客户端功能了。

放入cdsStockInListMastercdsStockInListSlave两个ClientDataSet控件,在控件上点击右键,选择“FieldsEditor”新建于服务器中的字段同样的字段,然后再次在控件上单击右键,选择“CreateDataSet”,建立一个本地数据库。

3

根据入库单号查询入库单的方法实现:

procedure TFormStockInList.BtnFindClick(Sender: TObject);

var

  v,vs: OleVariant;

begin

  if SocketConStockInList.AppServer.QueryStockInListMasterById(Trim(LEdtId.Text), v) then

  begin

    cdsStockInListMaster.Data := v;//显示入库单主表(主要信息)

 

    if SocketConStockInList.AppServer.QueryStockInListSlaveByMasterId(Trim(LEdtId.Text), vs) then

      cdsStockInListSlave.Data := vs; ;//显示入库单从表(明细信息)

  end

  else

    ShowMessage('此单不存在!');

end;

4)新建入库单的实现

procedure TFormStockInList.BtnNewClick(Sender: TObject);

var

  LId: string;

begin

  ClearCDSRecord;

  cdsStockInListMaster.Open;

  cdsStockInListMaster.Insert;

  LId := SocketConStockInList.AppServer.GenerateStockInListId;

  LEdtId.Text := LId;

  cdsStockInListMaster.FieldByName('Id').AsString := LId;

  cdsStockInListMaster.FieldByName('GenerateDate').AsDateTime := Now();

end;

5)提交功能的实现

procedure TFormStockInList.BtnPostClick(Sender: TObject);

var

  LQuerymts: ImtsQueryObjDisp;

  LBar: string;

begin

  SetSocketConnectionConnect(SocketConQuery);

  LQuerymts := ImtsQueryObjDisp(SocketConQuery.GetServer);

 

  SocketConQuery.Close;

 

  if cdsStockInListMaster.RecordCount > 0 then

    SocketConStockInList.AppServer.UpdataStockInListMaster(cdsStockInListMaster.Delta);

  if cdsStockInListSlave.RecordCount > 0 then

  SocketConStockInList.AppServer.UpdataStockInListSlave(cdsStockInListSlave.Delta);

end;

注:本文中ClientDataSet控件的名称开头一般为cdsTsocketConnection控件的名称开头一般为SocketCon

三、动态设置TsimpleObjectBroker的服务器列表

procedure SetSocketConnectionConnect(AValue: TSocketConnection);

  procedure FillAppServerList(ABroker: TSimpleObjectBroker);

  var

    sl: TStringList;

    i, n: Integer;

  begin

    sl := TStringList.Create;

    从配置文件中读取服务器列表,并保存到sl;

    n := sl.Count - 1;

    ABroker.ServerData := null;

    for i := 0 to n do

    begin

      ABroker.Servers.Add;

      ABroker.Servers[i].ComputerName := sl.Strings[i]

    end;

    sl.Free;

  end;

var

  LBroker: TSimpleObjectBroker;

begin

  LBroker := TSimpleObjectBroker.Create(nil);

    FillAppServerList(LBroker);

    AValue.ObjectBroker := LBroker;

    try

      AValue.Connected := true;

    except

      raise Exception.Create('应用服务器连接错误!');

    end;

    LBroker.Free;

end;

posted @ 2007-03-28 05:07 konhon 优华 阅读(2543) | 评论 (0)编辑 收藏


  因为需要处理大量的音、视频数据,所以一套强有力的计算机系统及外围硬件配置是必要的。另外,由于我们要直接输出的是高质量的MPG文件(而非体积庞大的AVI文件),因此,强烈建议使用视频压缩卡进行硬件高速压缩,本文以较常见的MPEGator 3.1压缩卡为例,介绍通过Premiere利用压缩卡直接输出MPG的办法:

  1、制作VCD电子相册应使用怎样的系统配置?

  答:推荐的系统配置如下---

  CPU: PIII 500E以上

  内存: 256M SDRAM或更大

  硬盘: 20G高速

  压缩卡:MPEGator 3.1 刻录机:所有能被Video Pack 4.0所支持的型号

  操作系统:Windows 95 OSR2或Windows 98 制作软件:Adobe Premiere 5.0/4.2、Video Pack 4.0

  辅助软件:Paint shop Pro 6.0、ACDsee3.0、Audio Grabber 1.61 以上推荐的系统配置中,我们主要是采用了著名的视频编辑软件Adobe Premiere 5.0与性能价格比较高的MPEGator 3.0压缩卡配合制作VCD相册。为什么要采用这样的配合呢?还是先让我们来了解一下它们各自的特性吧:

  2、为什么推荐使用Premiere 5.0数字影视编辑软件?

  答:Adobe Premiere 5.0是图形图像软件巨人---Adobe公司继广受称赞的Premiere 4.2后,推出的新一代桌面数字影视编辑系统。它具有比Premiere 4.2更为强大的图像编辑能力,通过把动画、位图、数字音频文件按照需要进行剪辑、组合,让你可以设计出近乎随心所欲的影视特效;在专为编辑影像片段而设计的Timeline里,利用鼠标就可完成所有的编辑操作;它的即时播放功能还使我们在发生编辑错误时,能够轻松地进行修改,以节省时间与精力。更重要的是,Premiere 5.0可以提供高品质影像输出质量!这一点着实令人心动。此外,它还支持制作输出有声有色的VCD电子相册呢。

  3、为什么推荐使用MPEGator压缩卡?

  答:压缩卡方面,韩国DARIM公司生产的MPEGator压缩卡(图02)可谓是具有较高性能价格比的视频压缩卡:不仅带有S-video、复合、及立体声音频输入接口,可以通过摄像机、录像机、电视及激光唱机等信号源将视频信号实时压缩成全I.P.B帧的标准MPEG-1格式;还支持实时预览。最为重要的是MPEGator卡可以使流行的视频编辑软件通过硬件加速转换成为MPEG-1格式。  MPEGator可与Windows的其它应用程序配合产 PEG文件,3D Studio, Adobe Premiere等各种兼容Video for Window的流行的编辑软件都可以在生成动画或AVI之前,直接选用其压缩驱动程序,通过硬件加速压缩生成为MPEG文件,有效地避免了因AVI—→MPG而导致的画质下降这一难题。另外,MPEGator还具有PAL/NTSC制式兼容,PCI32位总线等特点。通过以上介绍,可以看出:利用这样的软硬件组合,我们将能够制作出效果比较令人满意的多媒体VCD相册。下面,就让我们开始实战VCD相册的制作吧。

  4.制作VCD相册之前,为什么要拟定提纲?

  答:制作VCD相册之前,首先应对所制作的作品的各个方面做到心中有数。最好列个制作提纲,列出主题及各相对独立片段的次序,以及每个片段内的照片、音乐、旁白;将每张照片分别编上序号,并将其序号与欲添加的说明文字对应起来。这样,在实际制作的时候就条理清晰、步骤分明,不易出现错漏等现象。

  5.怎样进行照片的扫描?

  答:选取一张浅色纹理纸,将其裁剪成宽155mm、高127mm(即352:288)大小的矩形模板。用双面胶将照片粘于其上(注意居中,并使底边高度略大于顶边),放入扫描仪进行扫描,并以位图(.bmp)形式存盘。此举好处之一是使扫出的照片具有一个漂亮的彩色相框;另一个好处是可以将添加的说明文字放在相框上,而不是照片内,不会破坏照片的美感(图07)。 


  6. 如何为照片添加说明文字?

  进入Paint Shop Pro 5.0,选择File——open打开一幅已扫好的照片,点击左侧工具栏中的“A”键,接着将鼠标移至照片内并单击左键,在弹出的“Add Text”文字输入框中输入想要的文字,再选定字体、字号及颜色,确定文字位置后点击“OK”,并将编辑后的照片以原文件名存盘。

 7.如何截取音轨?

  答:启动音轨截取软件AudioGrabber,将音乐CD放入光驱,勾选想要截取的CD音轨。

  点击控制栏中的“Settings”按键后勾选其中的“ASPI”项,其它选项用默认值即可。然后,进入“Norm”选项,选择“Use normalizing”后点击“OK”退出。现在,先用鼠标点击一下工具栏里那标有伸开手掌的“截取”(Grab)钮,就可以开始抓取指定的音轨了。如果截获的.WAV文件不能被正常读取或者.WAV文件中有令人讨厌的“爆音”(pops,这是令许多朋友头痛的问题)。请在“开始—设置—控制面板—系统—设备管理—CDROM—属性—设置—选项”中将“同步数据传送”选中,然后按“确定”退出。再重新去试截取刚才有问题的音轨,您可能会发现,问题已经迎刃而解了。其次,若觉得光驱读取音乐数据的速度很缓慢,请先检查光驱上数据线是否直接接到了主板的IDE接口上。

  为了方便管理和使用,可新建Photo、Audio、Wav三个子目录,分别用于存放照片、音乐及旁白。

  准备工作完成后,就可以开始着手制作了。为了工作得更有条理,我们一般先对每一个相对独立的片段进行编辑制作,最后再把它们连成整体。

  8.如何设置才能让Premier5.0利用MPEGator来进行高效硬件压缩?

  答:首先启动Premiere5.0。在弹出的New Project setting窗口,选择General settings,在“编辑模式”里选“Video for window”,其下的两个选项均选“25”(因为我们要制作的是PAL制式的VCD);然后进Video settings,在“压缩器(Compressor)”这一项中选“DVMPEG Video (hardware)”(图08),即选用硬件压缩;分辨率设为352*288,帧率设为25;在Audio settings里,关键是在“Type(类型)”中选择“DVMPEG Audio”---指定用硬件进行音频压缩;采样频率设为44.1KHZ,格式设为16bit--Stereo。


  9.Premiere 5.0的主界面的结构如何?

  答:进入Premiere 5.0的主界面,我们会发现设计新颖的时间轴窗口(Timeline)已取代了其4.2版本中的Constraction窗口。作为Premiere 5.0的核心,Timeline的用户窗口分为两个部份:视频部分和音频部分;其中视频部份又分为两个主视频剪辑轨道——Video 2和Video 1。其中,标成黑体字的Video 1部份又内含两个视频剪辑轨道:Video 1A和Video 1B,它们之间的Transition轨道是视频切换效果轨道。Premiere 5.0提供了非常丰富的视频切换效果,包括滑动、擦除、融合、剥落、分割、爆破、渐变、突变、三维旋转、翻页、推动等多种划变效果,令人目不暇接。音频轨道Audio 1、2、3则用于放置背景音乐、配音、旁白等声音信号。  

  10.如何导入图片及配音文件?

  答:点击“File--Import--Folder”,把刚才准备好的图片文件及背景音乐文件输入进来,在Project窗口下双击刚才输入的文件夹,可以看到文件夹中的各文件的具体信息,双击该文件则可对其进行预览。  

  11.如何设置照片的参数?

  答:将第一幅照片拖到视频剪辑轨道Video 1A中,对其点击鼠标右键,在弹出的菜单中的Duration项里设定照片的播放时间;并在菜单中的Video项里将Maintain Aspect Retio选中(图09)——请注意,这是非常重要的一步,此项设置将使最后输出的照片保持原本的长宽比例,而不致于使照片上的人像、景物发生变形。按上述方法将照片依次拖入Video1的A、B栏,(注意每幅照片的尾与下一幅照片首应留有重叠部份,重叠部份的时间长短依实际需要而定。把背景音乐、旁白拖入Audio栏)。如果是旁白,应特别注意旁白的时间长度应与相应照片的播放时间相当。然后,用鼠标把Timeline窗户上方的浅蓝色横杠拉至最后一张照片的末端,以设定Premiere将进行处理的视频片段的长度。


  12. 如何设定视频切换特效?

  答:Premiere 5.0用户界面上,有一个Transition/Command命令窗口,其中共有75种切换特效可供选择。而且,其中大多数切换特效都可按自己的需要进行设置。将选中的特效用鼠标拖到Video 1窗口的Transition中两幅照片相重叠的部分,其长度应为两幅照片相重叠的长度。如果能根据每幅照片的特点恰当地选择Transitions,将使您的VCD相册在播放时赢得更多的赞叹之声。  

  13. 如何处理背景音乐?

  答:为VCD相册添加优美的背景音乐,也将使你的VCD相册平添许多迷人的魅力。然而,因为背景音乐是我们采用抓音轨的方式获得的,这样就不可避免地在VCD相册一开始播放时就出现突兀而至的音乐声。此外,由于音轨的长度与照片播放时间的长度往往难以很好的吻合。这样,就可能出现一段VCD相册的播放马上就要结束,而音乐声却正处于高潮……。理想的状况应该是:照片播放时,背景音乐逐渐轻柔地响起;照片播放即将结束时,音乐声又渐渐随之淡去。换句话说,也就是要实现背景音乐的淡入淡出。在Premiere 5.0中,按前述方法装入照片及背景音乐后,单击第一音频轨道(Audio 1)上的那个指向右的小三角,这时会弹出该音轨的波形显示框。可以看到该框中部有一条左右各有一方形端点的红线——这就是控制音乐淡入淡出的关键。将鼠标移至红线上,鼠标指针将变为手形(图10)。此时,按住鼠标左键即可通过增加和拖动点子来随意确定该红线条形状。从起始位置开始,将线条置于从左至右渐高状态时,即可实现背景音乐的淡入效果。用类似的方法还可制造音乐的淡出效果,在此不再赘述。有兴趣的朋友尽可自行尝试。 

  14. 如何设置输出参数?

  答:输出参数包含General、Audio、Video三项,只有正确的设备了输出参数,VCD相册才能在VCD机上顺利播放。首先选Project--Setting进入General设置:在“Editing Mode”里选“Video for window”,“Time display”及“Timebase”均选“25”;再进入Video设置,“Compressor”选“DVMPEG Video(Hardware)”,尺寸设为352*288,帧率设为25;最后设置Audio参数:采样频率设为44.1KHZ,格式设为16bit--Stereo(图11);Type设成“DVMPEG Audio”。在这里,音频及视频均设置为硬件(MPEGator卡)加速压缩。 


  15. 如何直接输出MPG文件?

  答:上述参数设置完毕后,接着选File-Export-movie,将刚才组合好的照片,音乐,旁白等素材,通过MPEGator卡的硬件加速直接生成高质量的MPG文件。我们知道,如果利用Xing MPEG Encoder等进行纯软件压缩,即使你的系统配置较高,其压缩时间也将漫长得惊人:约为真实播放时间的10-20倍;而利用MPEGator卡进行硬件压缩的话,可就太节省时间了:压缩时间仅为真实播放时间的3倍左右,大大提高了制作效率。需要注意的是,为了便于分类,应把同一主题的内容输出生成一个独立的MPG文件。

  16. 如何把电子相册刻成VCD碟?

  前面所有辛苦的劳动,都将通过刻制成VCD碟片而变成劳动的果实。说到2.0 VCD刻录,CeQuadrat出品的Video Pack 4.0因其较细致而周到的功能设计,是一个在业余条件下不错的选择,其缺点是操作相对比较繁琐。启动Video Pack 4.0,将刚才压缩好的各个MPG文件依次用鼠标拖至位于主界面下方的工作框内,右键单击MPG文件,在弹出的菜单选中Properties,在Playlist node中的第二个选项(即每一片段的等待时间)里把等待时间设为0秒,按“确定”退出。每个MPG文件都必须重复上述步骤,这样可以使各独立主题内容切换时不至于出现停顿等待状态。这时你也许发现了,刚才拖入工作框的各MPG文件方形图标上下均有一个三角形缺口。原来,在Video Pack 4.0中是用连线的方式来表示各种播放次序的,而这种三角形缺口,就是这些连线的出入口。将鼠标指针移至MPG文件图标下方的缺口,图标里会出现黄颜色的“Next”字样,此时即可开始进行连线,方法是使各MPG文件按顺序首尾相连(图12)。上述步骤完成后,点击工具栏中的红色的“Make CD”钮即可开始刻录VCD光碟了。

  17. 把电子相册刻成VCD碟的过程中要注意哪些事项?

  要是现在问你:自己刻制一张VCD相册光盘困难吗?你肯定会说:一点都不难!

  那么,是不是就像在硬盘上拷贝文件那么轻而易举呢?决非如此简单。VCD相册刻录前进行些必要的准备工作,将能大大提高我们的刻录成功率:  

  a.刻录前为什么要整理硬盘?

  答:我们通常都是以硬盘作为信息源盘来进行刻录的。由于未经整理的磁盘文件大多呈零散状态分布。这样,硬盘在读取数据时,读写头就只能在零散的文件之间来回奔忙,极有可能造成不必要的延误而导致刻出废盘。所以,每次刻录前对硬盘的每一个逻辑分区进行磁盘扫描和碎片整理。进行硬盘整理是成功刻录的第一步。  

  b.为什么刻录过程中要避免执行任何无关程序?

  答:这些程序不仅包括屏幕保护程序和内存驻留程序(比如某些杀毒程序),这些程序都有可能在数据流从硬盘转移到刻录机中光盘上的紧要关头,来与刻录软件争夺有限的系统资源,从而影响数据流的正常传输而引发缓存器欠载等问题,导致刻盘失败。

  c.为什么使用质量可靠的CD-R盘片?

  答:CD-R空白盘片按反射层材料的不同可分绿盘、金盘、蓝盘三大类。这三种盘片并没有明显的优劣差别。从特性上来说,绿盘具有较好的兼容性,另外价格很便宜;蓝盘在写入和读取数据时有较高的准确性;金盘有较好的抗光性。关键的是,分别试刻不同类别和品牌的盘片,从中找出最适合你的刻录机的那几种。  

  至此,两种不同类型的电子相册的制作方法就介绍完毕,预祝你早日制作出自己的精美电子相册!

posted @ 2007-03-27 19:11 konhon 优华 阅读(1563) | 评论 (0)编辑 收藏

首先,我们新建一个类,存放天气信息

/*
 * Created on 2005-3-8
 *
 * To change the template for this generated file go to
 * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
 
*/
package  org.exoplatform.portlets.chinaweather.component;

/**
 * 
@author  Administrator
 *
 * To change the template for this generated type comment go to
 * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
 
*/
public   class  Weather {
 
private  String city;
 
private  String state;
 
private  String temperature;
 
private  String time;
 
private  String wind;
 
private  String windpower;
 
private   long  UpdateTime;

 
/**
  * 
@return
  
*/
 
public  String getTemperature() {
  
return  temperature;
 }

 
/**
  * 
@return
  
*/
 
public  String getTime() {
  
return  time;
 }

 
/**
  * 
@return
  
*/
 
public  String getWind() {
  
return  wind;
 }

 
/**
  * 
@return
  
*/
 
public  String getWindpower() {
  
return  windpower;
 }

 
/**
  * 
@param  string
  
*/
 
public   void  setTemperature(String string) {
  temperature 
=  string;
 }

 
/**
  * 
@param  string
  
*/
 
public   void  setTime(String string) {
  time 
=  string;
 }

 
/**
  * 
@param  string
  
*/
 
public   void  setWind(String string) {
  wind 
=  string;
 }

 
/**
  * 
@param  string
  
*/
 
public   void  setWindpower(String string) {
  windpower 
=  string;
 }

 
/**
  * 
@return
  
*/
 
public   long  getUpdateTime() {
  
return  UpdateTime;
 }

 
/**
  * 
@param  l
  
*/
 
public   void  setUpdateTime( long  l) {
  UpdateTime 
=  l;
 }

 
/**
  * 
@return
  
*/
 
public  String getState() {
  
return  state;
 }

 
/**
  * 
@param  string
  
*/
 
public   void  setState(String string) {
  state 
=  string;
 }

 
/**
  * 
@return
  
*/
 
public  String getCity() {
  
return  city;
 }

 
/**
  * 
@param  string
  
*/
 
public   void  setCity(String string) {
  city 
=  string;
 }

}


具体的解析代码为:

private  Weather parserWeather()  throws  Exception {
  Weather w 
=   new  Weather();
  
try  {

   
// Parser parser =
   
//  new Parser("file: // localhost/I:/projects/query.html");
   Parser parser  =
    
new  Parser( " http://weather.news.sohu.com/query.php?city=镇江 " );
   
   parser.setEncoding(
" GBK " );
   Node nodes[] 
=  parser.extractAllNodesThatAre(TableTag. class );

   TableTag table 
=  (TableTag) nodes[ 3 ];
   
// temperature
   StringNode[] stringNodes  =  table.digupStringNode( " 镇江 " );
   StringNode name 
=  stringNodes[ 0 ];
   w.setCity(name.toPlainTextString());
   CompositeTag td 
=  (CompositeTag) name.getParent();
   CompositeTag tr 
=  (CompositeTag) td.getParent();
   
int  columnNo  =  tr.findPositionOf(td);
   TableColumn nextColumn 
=  (TableColumn) tr.childAt( 5 );
   Node expectedName 
=  nextColumn.childAt( 0 );
   Node expectedName2 
=  nextColumn.childAt( 2 );
   
// System.out.println(expectedName.getText());
   
// System.out.println(expectedName2.getText());
   w.setState(expectedName.getText());
   w.setTemperature(expectedName2.getText());
   
// time
   stringNodes  =  table.digupStringNode( " 时间 " );
   name 
=  stringNodes[ 0 ];
   
// System.out.println(name.toPlainTextString());

   String time 
=
    name
     .toPlainTextString()
     .substring(
4 , name.toPlainTextString().length())
     .trim();
   
// System.out.println(time);
   w.setTime(time);
   
// wind
   stringNodes  =  table.digupStringNode( " 风向 " );
   name 
=  stringNodes[ 0 ];
   
// System.out.println(name.toPlainTextString());

   String wind 
=
    name
     .toPlainTextString()
     .substring(
4 , name.toPlainTextString().length())
     .trim();
   
// System.out.println(wind);
   w.setWind(wind);
   
// wind power
   stringNodes  =  table.digupStringNode( " 风力 " );
   name 
=  stringNodes[ 0 ];
   
// System.out.println(name.toPlainTextString());

   String windpower 
=
    name
     .toPlainTextString()
     .substring(
4 , name.toPlainTextString().length())
     .trim();
   
// System.out.println(windpower);
   w.setWindpower(windpower);

   w.setUpdateTime(System.currentTimeMillis());

  } 
catch  (ParserException e) {

   e.printStackTrace();
  }
  
return  w;
 }


解析出来的代码必须做缓存处理,

private   static   long  TIME_TO_LIVE  =   1000   *   60   *   60   *   12 ;

 
private  Weather loadWeather()  throws  Exception {
  Weather weather 
=  weather  =  (Weather) cache_.get( " chinaweather " );
  
long  currentTime  =  System.currentTimeMillis();
  
if  (weather  !=   null
   
&&  currentTime  <  (weather.getUpdateTime()  +  TIME_TO_LIVE)) {
   cache_.remove(
" chinaweather " );
   weather 
=   null ;
  }

  
if  (weather  ==   null ) {
   
synchronized  (cache_) {
    weather 
=  parserWeather();
    cache_.put(
" chinaweather " , weather);
   }
  }

  
return  weather;
 }


posted @ 2007-03-08 06:56 konhon 优华 阅读(2203) | 评论 (0)编辑 收藏

 

import  org.htmlparser.Node;
import  org.htmlparser.NodeFilter;
import  org.htmlparser.Parser;
import  org.htmlparser.filters.TagNameFilter;
import  org.htmlparser.tags.TableTag;
import  org.htmlparser.util.NodeList;

/**
 * <br>
 * 标题: <br>
 * 功能概要: <br>
 * 版权: cityyouth.cn (c) 2005 <br>
 * 公司:上海城市青年网 <br>
 * 创建时间:2005-12-21 <br>
 * 修改时间: <br>
 * 修改原因:
 * 
 * 
@author  张伟
 * 
@version  1.0
 
*/
public   class  TestYahoo {
    
public   static   void  testHtml() {
        
try  {
            String sCurrentLine;
            String sTotalString;
            sCurrentLine 
=   "" ;
            sTotalString 
=   "" ;
            java.io.InputStream l_urlStream;
            java.net.URL l_url 
=   new  java.net.URL(
                    
" http://sports.sina.com.cn/iframe/nba/live/ " );
            java.net.HttpURLConnection l_connection 
=  (java.net.HttpURLConnection) l_url
                    .openConnection();
            l_connection.connect();
            l_urlStream 
=  l_connection.getInputStream();
            java.io.BufferedReader l_reader 
=   new  java.io.BufferedReader(
                    
new  java.io.InputStreamReader(l_urlStream));
            
while  ((sCurrentLine  =  l_reader.readLine())  !=   null ) {
                sTotalString 
+=  sCurrentLine;
            }
            System.out.println(sTotalString);

            System.out.println(
" ==================== " );
            String testText 
=  extractText(sTotalString);
            System.out.println(testText);
        } 
catch  (Exception e) {
            e.printStackTrace();
        }

    }

    
/**
     * 抽取纯文本信息
     * 
     * 
@param  inputHtml
     * 
@return
     
*/
    
public   static  String extractText(String inputHtml)  throws  Exception {
        StringBuffer text 
=   new  StringBuffer();

        Parser parser 
=  Parser.createParser( new  String(inputHtml.getBytes(),
                
" 8859_1 " ),  " 8859-1 " );
        
//  遍历所有的节点
        NodeList nodes  =  parser.extractAllNodesThatMatch( new  NodeFilter() {
            
public   boolean  accept(Node node) {
                
return   true ;
            }
        });
        Node node 
=  nodes.elementAt( 0 );
        text.append(
new  String(node.toPlainTextString().getBytes( " 8859_1 " )));
        
return  text.toString();
    }

    
/**
     * 读取文件的方式来分析内容. filePath也可以是一个Url.
     * 
     * 
@param  resource
     *            文件/Url
     
*/
    
public   static   void  test5(String resource)  throws  Exception {
        Parser myParser 
=   new  Parser(resource);

        
//  设置编码
        myParser.setEncoding( " GBK " );
        String filterStr 
=   " table " ;
        NodeFilter filter 
=   new  TagNameFilter(filterStr);
        NodeList nodeList 
=  myParser.extractAllNodesThatMatch(filter);
        TableTag tabletag 
=  (TableTag) nodeList.elementAt( 11 );
            
            System.out.println(tabletag.toHtml());
            
            System.out.println(
" ============== " );

    }

    
/*
     * public static void main(String[] args) { TestYahoo testYahoo = new
     * TestYahoo(); testYahoo.testHtml(); }
     
*/
    
public   static   void  main(String[] args)  throws  Exception {
        test5(
" http://sports.yahoo.com/nba/scoreboard " );
    }
}
posted @ 2007-03-08 06:50 konhon 优华 阅读(1578) | 评论 (0)编辑 收藏

     摘要: 最近搞一个扣网页内容的SessionBean,需要模拟客户端post提交,然后得到servlet返回的结果。采用Jakarta的HttpClient API解决之.HttpClient扩展和增强了标准java.net包,是一个内容广泛的代码库,功能极其丰富,能够构造出各种使用HTTP协议的分布式应用,或者也可以嵌入到现有应用,为应用增加访问HTTP协议的能力 要求:1:CLASSPATH中有...  阅读全文
posted @ 2007-03-07 21:51 konhon 优华 阅读(3755) | 评论 (0)编辑 收藏


服务器:
1.jsp
<body>
<form name="_ctl0" method="post" action="TestFileManager.aspx" id="_ctl0" enctype="multipart/form-data">
<input type="hidden" name="__VIEWSTATE" value="dDwyNTIzNjA5NDU7Oz7rsE3eBYzQHDVtl+aTn96MvQW6PQ==" />
<p>
<input name="uploadfile1" id="uploadfile1" type="file" size="49" />
<input type="submit" name="Button1" value="?" id="Button1" />
</p>
<p>
<span id="Label1" style="width:459px;"></span>
</p>
<!-- Insert content here -->
</form>
</body>
客户端:
首先创建一个到服务器http的请求
HttpRequest request = new HttpRequest("http://服务器/1.jsp");
第一次使用的是GET方式
request.setMethod("GET");
紧接着进行一些请求的属性设置
request.setRequestHeader("Cache-Control", "no-cache");
这里保持连接,因为后面还要发送数据到服务器呢
request.setRequestHeader("Connection", "Keep-Alive");
下面是一些无关紧要的属性设置了。
request.setRequestHeader("Accept", "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*");
request.setRequestHeader("Accept-Encoding", "gzip, deflate");
request.setRequestHeader("Accept-Language", "en-au");
request.setRequestHeader("Referer", "http://服务器/1.jsp");
request.setRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3215; .NET CLR 1.0.3705)");
构造好了连接请求,然后连接
request.connect();
紧接着提取Cookie值,在后文的post中可以用到。
String strCookie = request.getResponseHeader("Set-Cookie");
strCookie = strCookie.substring(0,strCookie.indexOf(";"));
下面通过循环查找,提取__VIEWSTATE的值
for ( int i = 0; i < nlist.getLength(); i++) {
node = nlist.item(i);
strName = getNodeAttributeValue(node,"name");
if ( strName.equals("__VIEWSTATE") ) {
strValue = getNodeAttributeValue(node,"value");
break;
}
}
往服务器组织发送数据
DataOutputStream dos = new DataOutputStream(request.getOutputStream());
dos.writeBytes("-----------------------------"+strBoundary);//这是每个要被发送数据间的间隔
dos.writeBytes(" Content-Disposition: form-data; name="__VIEWSTATE"");
dos.writeBytes(" "+strValue);
dos.writeBytes(" -----------------------------"+strBoundary);
这里面是发送文件的部分
dos.writeBytes(" Content-Disposition: form-data; name="uploadfile1"; filename="" + strFileName + """);
dos.writeBytes(" Content-Type: text/xml");
dos.writeBytes(" ");
dos.writeBytes(new String(data));
dos.writeBytes(" -----------------------------"+strBoundary);
dos.writeBytes(" Content-Disposition: form-data; name="Button1"");
dos.writeBytes(" 上传");
dos.writeBytes(" -----------------------------"+strBoundary+"--");
dos.writeBytes(" ");
dos.close();
posted @ 2007-03-07 20:14 konhon 优华 阅读(4244) | 评论 (1)编辑 收藏

     摘要: 2 /**   3  * //FileOperate.java  4  * 文件的各种操作  5  * 杨彩 http://blog.sina.com.cn/m/yangcai  6  * 文件操作 1.0  7  */   8    9 //package common;  10   11 import java.io.*;  12   13 public class FileOperate 1...  阅读全文
posted @ 2007-01-30 06:25 konhon 优华 阅读(1150) | 评论 (0)编辑 收藏

最近在项目中使用 Spring Hibernate 进行开发,有感于 Criteria 比较好用,在查询方法设计上可以灵活的根据 Criteria 的特点来方便地进行查询条件的组装。所以现在对 Hibernate Criteria 深入研究一下。《 Hibernate Reference 》及网上其它一些资料对 Criteria 已经做了很多介绍。本文主要是从 Criteria 的结构入手来进行分析。

       如图 1 Hibernate 设计了 CriteriaSpecification 作为 Criteria 的顶级接口,其下面提供了 Criteria DetachedCriteria

Criteria DetachedCriteria 的主要区别在于创建的形式不一样, Criteria 是在线的,所以它是由 Hibernate Session 进行创建的;而 DetachedCriteria 是离线的,创建时无需 Session DetachedCriteria 提供了 4 个静态方法 forClass(Class) forEntityName(Name) 进行 DetachedCriteria 实例的创建。 Spring 的框架提供了

getHibernateTemplate().findByCriteria(detachedCriteria) 方法可以很方便地根据

DetachedCriteria 来返回查询结果。

如图 1 Criteria DetachedCriteria 均可使用 Criterion Projection 设置查询条件。可以设置 FetchMode( 联合查询抓取的模式 ) ,设置排序方式。对于 Criteria 还可以设置 FlushModel (冲刷 Session 的方式)和 LockMode (数据库锁模式)。

下面就对 Criterion Projection 进行详细说明。

       

1

 

       Criterion Criteria 的查询条件。

Criteria 提供了 add(Criterion criterion) 方法来添加查询条件。图 2 Criterion 的结构图。 Criterion 接口的主要实现包括: Example Junction SimpleExpression 。而 Junction 的实际使用是它的两个子类 conjunction disjunction ,分别是使用 AND OR 操作符进行来联结查询条件集合。

Criterion 的实例可以通过 Restrictions 工具类来创建, Restrictions 提供了大量的静态方法,如 eq (等于)、 ge (大于等于)、 between 等来方法的创建 Criterion 查询条件

SimpleExpression 实例)。除此之外, Restrictions 还提供了方法来创建 conjunction disjunction 实例,通过往该实例的 add(Criteria) 方法来增加查询条件形成一个查询条件集合。

至于 Example 的创建有所不同, Example 本身提供了一个静态方法 create(Object entity) ,即根据一个对象(实际使用中一般是映射到数据库的对象)来创建。然后可以设置一些过滤条件:

Example exampleUser =Example.create(u)

.ignoreCase() // 忽略大小写

.enableLike(MatchMode.ANYWHERE);

// String 类型的属性,无论在那里值在那里都匹配。相当于 %value%

 
2

      

Project 主要是让 Criteria 能够进行报表查询,并可以实现分组。 Project 主要有 SimpleProjection ProjectionList Property 三个实现。其中 SimpleProjection ProjectionList 的实例化是由内建的 Projections 来完成,如提供的 avg count max min sum 可以让开发者很容易对某个字段进行统计查询。

       Property 是对某个字段进行查询条件的设置,如通过

      Porperty.forName(“color”).in(new String[]{“black”,”red”,”write”}); 则可以创建一个 Project 实例。通过 criteria add(Project) 方法加入到查询条件中去。

 
3

      

       使用 Criteria 进行查询,主要要清晰的是 Hibernate 提供了那些类和方法来满足开发中查询条件的创建和组装,其结构层次如何。这样使用起来便可得心应手。

posted @ 2006-12-17 03:18 konhon 优华 阅读(1511) | 评论 (1)编辑 收藏

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <title>www.zishu.cn</title>
 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6 <style>
 7 /*zishu.cn*/
 8 *{ margin:0; padding:0; font-size:12px; font-family:Verdana, "宋体", Arial; line-height:1.8; list-style:none;}
 9 #nav{ margin:50px; border:1px dashed #FF3300; background:#FFFFCC; padding:50px;}
10 a:link,a:visited{color:#FF6600;text-decoration: none;}
11 a:hover,a:active{ color:#FF0000;}
12 #nav a span{overflow:hidden; border-top:6px solid #FFFFCC;border-left:6px solid #FFFFCC;border-bottom:6px solid #FFFFCC; height:0px; width:0px; margin:2px 2px 0 -10px; position:absolute}
13 #nav a:hover span{background:#CC3300;border-top:6px solid #FFFFCC;border-left:6px solid #FF3300;border-bottom:6px solid #FFFFCC;overflow:hidden; float:left;}
14 </style>
15 </head>
16 <body>
17 <div id="nav">
18 <h1>应用的一个实例</h1>
19   <ul>
20     <li><href="http://www.zishu.cn" target="_blank"><span></span>子鼠首页</a></li>
21     <li><href="http://www.zishu.cn" target="_blank"><span></span>给我留言</a></li>
22     <li><href="http://www.zishu.cn" target="_blank"><span></span>友情链接</a></li>
23     <li><href="http://www.zishu.cn" target="_blank"><span></span>我的日志</a></li>
24     <li><href="http://www.zishu.cn" target="_blank"><span></span>音乐英语</a></li>
25   </ul>
26 </div>
27 </body>
28 </html>
posted @ 2006-12-12 19:53 konhon 优华 阅读(342) | 评论 (0)编辑 收藏

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>www.zishu.cn</title>
 6 <style>
 7 *{ padding:0; margin:0; font-size:12px; line-height:1.7; font-family:Verdana, "宋体", Arial; list-style:none;}
 8 /*简单定义了一下全局*/
 9 a:link,a:visited{background:#FFF3C6 url(jaian.gif) no-repeat 15px 7px; padding-left:23px; color:#000000;text-decoration: none;}
10 a:hover,a:active{color:#000;text-decoration: none;background-color: #FED762;}
11 a{display:block;border-bottom:1px solid #fff; padding-left:10px; width:127px; }
12 /*定义链接的样式*/
13 ul{ background:#fff; width:150px; border:1px solid #FF6600; margin:0px 20px -1px 20px; padding:1px;}
14 /*定义了UL*/
15 span{ display:block;background:#FF9900 url(jai.gif) no-repeat 5px 5px; padding-left:13px;}
16 </style>
17 </head>
18 <body>
19 <ul><span>网站首页</span>
20  <li><href="http://www.zishu.cn" target="_blank">我的日志</a></li>
21  <li><href="http://www.zishu.cn" target="_blank">给我留言</a></li>
22  <li><href="http://www.zishu.cn" target="_blank">情感文章</a></li>
23 </ul>
24 <ul><span>网站首页</span>
25  <li><href="http://www.zishu.cn" target="_blank">我的日志</a></li>
26  <li><href="http://www.zishu.cn" target="_blank">给我留言</a></li>
27  <li><href="http://www.zishu.cn" target="_blank">情感文章</a></li>
28 </ul>
29 <ul><span>网站首页</span>
30  <li><href="http://www.zishu.cn" target="_blank">我的日志</a></li>
31  <li><href="http://www.zishu.cn" target="_blank">给我留言</a></li>
32  <li><href="http://www.zishu.cn" target="_blank">情感文章</a></li>
33 </ul>
34 </body>
35 </html>
posted @ 2006-12-12 19:45 konhon 优华 阅读(614) | 评论 (0)编辑 收藏

走了这么久
你变了没有
是否脆弱的泪水还不轻易的流
走了这么久
你变了没有
有没有找找到你说过的自由
难道除了等待,我只有问候
难道你不觉的你已走了很久
你是否想起过我哭的模样
是否你已忘记泪水像杯苦酒
走了这么久
你变了没有
很多人说我变的善感善感多愁
走了这么久
你变了没有
爱你想你想你见你
别无他求
走了这么久
你变了没有
什么时候会来带我一起飞走
走了这么久
你变了没有
是否脆弱的泪水还不轻易的流
走了这么久
你变了没有
有没有找找到你说过的自由
难道除了等待,我只有问候
难道你不觉的你已走了很久
你是否想起过我哭的模样
是否你已忘记泪水像杯苦酒
走了这么久
你变了没有
很多人说我变的善感善感多愁
走了这么久
你变了没有
爱你想你想你见你
别无他求
走了这么久
你变了没有
什么时候会来带我一起飞走
posted @ 2006-12-07 07:13 konhon 优华 阅读(475) | 评论 (0)编辑 收藏

爱情常有暴风雨,
人生难免不如意,
泪与欢笑成对比,
冬去春来是温馨,
人生的旅途喜与悲,
风风雨雨会过去,
命运握在你手里,
成功更要靠自己,
抹去眼中的泪滴
posted @ 2006-12-07 07:05 konhon 优华 阅读(519) | 评论 (0)编辑 收藏

spring xdoclet使用

手工书写spring-beans.xml非常繁琐,而且如果多个程序员同时进行一个项目的时候,即使分成多个spring文件,也很容易会产生冲突,更别说经常遇到的错误和程序升级问题了,还好最新的Xdoclet可以帮助我们解决这个烦恼,在最新的Xdoclet中已经包含了对srping的支持,即srpingdoclet。如下是例子:

1、下载ant,从jakarta.apache.org
安装在c:\dev\ant,安装过程就不详细说了,如果ant都不懂,那看来您有些落伍了,也先别往下看了,学习一下ant先

2、下载xdoclet,当然是xdoclet.sf.net了,下载后把lib的东西放置到
c:\dev\ant\lib\xdoclet

3、java 代码
只是个例子而已
===================================================================
XdocletMain.java :
===================================================================
代码:

/**
 * Created by IntelliJ IDEA.
 * User: wangzy
 * Date: 2004-12-5
 * @spring.bean
 *  id="XdocletMain"
 *  singleton="true"
 * 上述说明,这是个spring的bean,id为XdocletMain,如果看不懂,再补习一下xdoclet
 * @spring.property
 *      name="bean1"
 *      ref="Bean1"
 * 上述说明,有个bean1属性,关联的为Bean1的spring组件
 * @spring.property
 *     name="bean2"
 *     ref="Bean2"
 * 同上
 */
public class XdocletMain {

    public Bean1 getBean1() {
        return bean1;
    }

    public void setBean1(Bean1 bean1) {
        this.bean1 = bean1;
    }

    public Bean2 getBean2() {
        return bean2;
    }

    public void setBean2(Bean2 bean2) {
        this.bean2 = bean2;
    }

    private Bean1 bean1 = null;

    private Bean2 bean2 = null;
   
}

===================================================================

Bean1.java :
===================================================================
代码:

/**
 * Created by IntelliJ IDEA.
 * User: wangzy
 * Date: 2004-12-5
 * @spring.bean
 *      id="Bean1"
 *      singleton="true"
 * 声明一个Bean1的spring组件
 */
public class Bean1 {
   
}

===================================================================
Bean2.java :

===================================================================
代码:

/**
 * Created by IntelliJ IDEA.
 * User: wangzy
 * Date: 2004-12-5
 * @spring.bean
 *      id="Bean2"
 *      singleton="true"
 * 类似Bean1
 */
public class Bean2 {
}

===================================================================

下来当然就是最重要的ant的build.xml了,其中相关部分为:
代码:

<!--这里是xdoclet的lib,这些都不是ant的core包,所以要引进来 -->
<path id="xdoclet.class.path">
    <fileset dir="c:\dev\ant\lib\xdoclet">
        <include name="*.jar"/>
    </fileset>
</path>

<!--这里就是生成spring-beans配置了 -->
<target name="srpingdoclet">
    <!--定义springdoclet task -->   
    <taskdef
        name="springdoclet"
        classname="xdoclet.modules.spring.SpringDocletTask"
        classpathref="xdoclet.class.path"
    />
    <!--这里根据src下的java文件中的信息,生成spring-beans.xml到“spring/spring-beans.xml”文件中-->
    <springdoclet destdir="spring">
        <fileset dir="src" includes="**/*.java" />
        <springxml destinationFile="spring-beans.xml" />
    </springdoclet>
</target>



运行ant springdoclet,看看spring/spring-beans.xml文件,大功告成!!!
具体详细信息可以看xdoclet文档

代码:


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC
    "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">

<beans
  default-autowire="no"
  default-lazy-init="false"
  default-dependency-check="none"
>

  <bean
      id="Bean1"
      class="Bean1"
      singleton="true"
  >

  </bean>

  <bean
      id="XdocletMain"
      class="XdocletMain"
      singleton="true"
  >

    <property name="bean1">
      <ref bean="Bean1"/>
    </property>
    <property name="bean2">
      <ref bean="Bean2"/>
    </property>
  </bean>

  <bean
      id="Bean2"
      class="Bean2"
      singleton="true"
  >

  </bean>

  <!--
     To include additional bean definitions for Spring in the generated
     application context file, add a file to your XDoclet merge directory
     called spring-beans.xml that contains the <bean></bean> markup.
  -->

</beans>
posted @ 2006-12-05 21:05 konhon 优华 阅读(663) | 评论 (1)编辑 收藏

Struts应用采用两个基于XML的配置文件来配置,分别是web.xml和struts-cofig.xml文件.web.xml文件是配置所有web应用的而struts-config.xml文件是struts专用的配置文件,事实上也是可以根据需要给这个配置文件起其他名称的.

Web应用的发布描述文件:web应用发布描述文件可以在应用开着者,发布者和组装者之间传递配置信息,Web容器在启动的时候从该文件中读取配置信息,根据它来装载和配置web应用.文档类型定义DTD对XML文档的格式做了定义,DTD吧XML文档划分为元素,属性,实体每一种XML文档都有独自的DTD文件.可以从网上下载.<web-app>元素是web.xml的根元素,其他元素必须嵌入在<web-app>元素之内.要注意的是子元素也是有顺序的比如必须是首先<servlet>,然后<servlet-mapping>最后<taglib>.

Struts应用配置Web.xml文件:首先最重要的一步是配置ActionServlet,这个用<servlet>标签的servlet-name属性起一个名字叫action,然后用servlet-class属性指定ActionServlet的类.然后用<servlet-mapping>标签的servlet-name属性指定action,在用url-pattern指定接收范围是*.do的请求.不管应用中包含了多少子应用,都只需要配置一个ActionServlet,类来出来应用中的不同的功能,其实者就是不必要的,因为Servlet本身就是多线程的,而且目前Struts只允许配置一个ActionServlet.声明ActionServlet的初始化参数:<servlet>的<init-param>子元素用来配置Servlet的初始化参数.param-name设置config参数名.param-value设置struts-config.xml的路径参数值.

配置欢迎使用清单:如果客户访问Web的时候值是访问了WEB应用的根目录URL.没有具体的指定文件,Web会自动调用Web的欢迎文件.<welcome-file-list>元素来配置的.通过其中的<welcome-file>欢迎页面</welcome-file>来配置.

配置错误处理:尽管Struts框架功能强大的错误处理机制,但是不能保证处理所有的错误或者异常.当错误发生时,如果框架不能处理这种错误,把错误抛弃给Web容器,在默认的情况下web容器会想客户端返回错误信息.如果想避免让客户看到原始的错误信息,可以在Web应用发布描述文件中配置<error-page>元素.通过<error-code>404来定义错误的类型.然后通过<location>要处理错误的JSP页面来对错误进行处理.还可以用<exception-type>来设置异常,然后通过<location>来处理异常的JSP页面来处理异常.

配置Struts标签库:这个就和以前学到的JSP自定义标签类似,配置元素为<taglib>来配置.<taglib-uri>这个指定标签库的uri,类似起一个名称.<taglib-location>这个是标签库的位置也就是实际所在的路径.通过这样的方法引入一个标签库,然后在前台JSP页面就可以通过自己定义的URI来调用标签.

Struts配置文件:struts-config.xml文件.首先研讨一下org.apache.struts.config包,在struts应用启动的时候会把Struts配置文件信息读取到内存中,并把它们存放在config包中相关的JavaBean类的实例中.包中的每一个类都和struts配置文件中特定的配置元素对应,ModuleConfig在Struts框架中扮演了十分重要的角色,它是整个config包的核心,在Struts运行时来存放整个应用的配置信息.如果有多个子应用都会有一个ModuleConfig对象,它和Struts文件根元素的<struts-config>对应.根元素中包含<form-bean><action><forward>等元素.

<struts-config>元素:时Struts配置文件的根元素,和它对应的配置类ModuleConfig类,<struts-config>元素有8个子元素.他们的DTD定义是data-sources?form-bean? global-exception?global-forwards?action-mapping?controller?message-resources?plug-in*在Struts配置文件中,必须按照DTD指定的先手顺序来配置<struts-config>元素的各个子元素,如果颠倒了这些子元素的顺序,会产生错误.

<data-sources>元素:用来配置应用所需要的数据源,数据源负责创建和特定的数据库的连接.许多数据源采用连接池的机制实现.以便提高数据库访问的性能.JAVA语言提供了javax.sql.DataSource接口,所有的数据源都必须实现这个接口.许多应用服务器和Web服务器都提供了数据源组件.很多数据库厂商也提供了数据源的实现.<data-sources>元素包含多个<data-source>子元素永远配置特定的数据源.他们可以包含多个<set-property>子元素用于设置数据源的各种属性.配置了数据源以后,就可以在Action类中访问数据源,在Action中定义了getDataSource(HttpRequest)方法,用于获取数据源对象的引用.然后可以利用DataSource对象调用getConnection获取一个连接对象对数据库进行操作.在配置文件中声明多个数据源的时候需要为每一个数据源分配唯一的Key值,通过这个来表示特定的数据源.获取特定的数据源的时候可以用dataSource = getDataSource(reqeust,”A”);

<form-beans>元素:用来配置多个ActionForm,包含一个或者N个<form-bean>子元素.每个<form-bean>元素都包含多个属性.className指定和<form-bean>匹配的类.name指定该ActionForm的唯一标识符,这个属性是必须的以后作为引用使用.type指定ActionForm类的完整类名,这个属性也是必须的.注意包名也要加上.<form-property>是指定动态的Form的元素,以后会深入了解.

<global-exception>元素:用于配置异常处理,元素可以包含一个或者多个<exception>元素,用来设置JAVA异常和异常处理类ExceptionHandler之间的映射.className指定和元素对应的配置类,默认的不用动.handler指定异常处理类默认是ExceptionHandler.key指定在本地资源文件中异常的消息Key,path指定当前异常发生的时候转发的路径.scope指定ActionMessages实例存放的范围.type指定需要处理异常类的名字,必须的.bundle指定Resource Bundle.

<global-forwards>元素:用来声明全局转发,元素可以有一个或者N个<forward>元素组成,用于把一个逻辑名映射到特定的URL,通过这种方法Action类或者JSP页面无需指定URL,只要指定逻辑名称就可以实现请求转发或者重定向.这样可以减少控制组件和视图的聚合.易于维护.className对应的配置类.contextRelative如果为true表示当path属性以/开头的时候,给出的是对应的上下文URL默认是false.name转发路径的逻辑名,必须写.path转发或者重定向的URL,必须写必须是以/开头.redirect设置为true的时候表示执行重定向操作,此项为false的时候,表示执行请求转发操作.重定向与请求转发的区别以后就是重定向是把请求生成应答给客户端然后在重新发送给定向的URL,浏览器地址栏会有显示.而转发就是直接把请求转发给本应用的另一个文件,不生成应答所以客户端IE没显示.

<action-mapping>元素:包含一个或者N个<action>元素,描述了从特定的请求路径到响应的Action的映射.在<action>元素中可以包含多个<exception>和<forward>子元素,他们分别配置局部异常处理和局部转发.attribute设置Action关联的ActionForm在request或者session范围内的key.就是在request或者session共享内的名称.className对应配置元素的类.默认的是ActionMapping.forward指定转发URL路径include指定包含URL路径.input指定包含表单的URL,当表单验证失败的时候发送的URL.name,指定和该Action关联的Form名字.该名字必须是在form-bean中定义过的,可写可不写.path必须/开头的方位Action的路径.parameter指定Action配置参数.在Action的execute()方法中可以调用ActionMapping的getParameter()方法来读取匹配的参数.roles指定允许调用该Action的安全角色,多个角色之间逗号格开.scope指定Form的存在范围.默认是session.tyep指定Action的完整类名.unknown如果是true表示可以处理用户发出的所有的无效的ActionURL默认是false.validate指定是否调用ActionForm的validate方法.

<controller>元素:用于配置ActionServlet.buffreSize指定上载文件的输入缓冲大小.该属性为可选默认4096.className指定元素对应的配置类,ControllerConfig.然后是contentType指定响应结果内容类型和字符编码,该属性为可选,默认是text/html如果在Action或者JSP网页也设置了类型内容,会覆盖这个.locale指定是否把Locale对象保存到当前用户的session中默认false.tempDir指定处理文件上载的临时工作目录.nochache如果是true在响应结果中加入特定的头参数.

<message-resources>元素:用来配置Resource Bundle.用于存放本地文本消息文件.className元素对应的配置类.MessageResourcesConfig.factory指定消息的工厂类.key指定文件存放的Servlet对象中采用的属性Key.null指定如何处理未知消息.parameter指定消息的文件名.

<plug-in>元素:用于配置Struts插件.

配置多应用模块:所有的子应用都可以共享同一个ActionServlet实例,但是每个子应用都有单独的配置文件.把应用划分为多个子应用模块.首先为每个应用创建单独的Struts配置文件,在web.xml的ActionServlet配置代码中添加几个子应用信息.采用<forward>元素来实现应用之间的切换.

Digester组件:是一个Apache的另一个开源代码项目.当Struts被初始化的时候,首先会读取并解析配置文件,框架采用Digester组件来且西配置文件.然后创建config包中的对象.者对象用于存放配置信息.

其实配置文件不难,只要都理其中的原理就OK了.真正实际的项目开发中,采用的工具例如Eclipse系列,提供了相应的插件,在创建一个Struts工程的时候配置文件的标签都是自动生成的,而我们只需要往里面填写属性就OK了. (网友们的支持,是我继续写技术文章的动力!)

posted @ 2006-12-02 21:38 konhon 优华 阅读(538) | 评论 (1)编辑 收藏

关于Apache Portable Runtime and Tomcat- -

                                      

关于Apache Portable Runtime and Tomcat

在从Tomcat 5.0.28转向5.5.X时,在启动时发现出现如下信息
[org.apache.catalina.core.AprLifecycleListener]-[INFO] The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: (...你的系统环境PATH路径...)

在停止时发现出现如下信息
[org.apache.catalina.core.AprLifecycleListener]-[INFO] Failed shutdown of Apache Portable Runtime

于是,想消除这个问题,通过查阅 http://tomcat.apache.org/tomcat-5.5-doc/apr.html

Tomcat can use the Apache Portable Runtime to provide superior scalability, performance, and better integration with native server technologies. The Apache Portable Runtime is a highly portable library that is at the heart of Apache HTTP Server 2.x. APR has many uses, including access to advanced IO functionality (such as sendfile, epoll and OpenSSL), OS level functionality (random number generation, system status, etc), and native process handling (shared memory, NT pipes and Unix sockets).

These features allows making Tomcat a general purpose webserver, will enable much better integration with other native web technologies, and overall make Java much more viable as a full fledged webserver platform rather than simply a backend focused technology.

发现 Tomcat 可以用 Apache Portable Runtime 来提供更强性能,提升Web静态页面的处理能力,不再需要专门的Web Server来处理静态页面了。

但是APR的支持需要安装三个本地组件
APR support requires three main native components to be installed:
1、APR library
2、JNI wrappers for APR used by Tomcat (libtcnative)
3、OpenSSL libraries

解决:Windows下的安装配置与使用
1、先去 http://tomcat.heanet.ie/native/ 下载编译好的 tcnative-1.dll 文件,也可以下载tomcat-native.zip自己进行编译
2、修改一下 catalina.bat,加上
  set CATALINA_OPTS="-Djava.library.path=../../APR/lib"
因为我把这个DLL放在与Tomcat目录同级的APR/lib目录下,所以采用了相对路径。或者把dll加到你的系统变量PATH里之类的,最简单的方法应当就是把tcnative-1.dll文件放在Tomcat的bin目录下:)

这样设置后,启动可以看到信息如下:
[org.apache.coyote.http11.Http11AprProtocol]-[INFO] Initializing Coyote HTTP/1.1 on http-9091
在停止时发现出现如下信息
[org.apache.coyote.http11.Http11AprProtocol]-[INFO] Pausing Coyote HTTP/1.1 on http-9091
......
[org.apache.coyote.http11.Http11AprProtocol]-[INFO] Stopping Coyote HTTP/1.1 on http-9091

这样就配置成功了。性能方面目前没有做详细的测试。
======================================================================
相关的文档参见
http://tomcat.apache.org/tomcat-5.5-doc/apr.html

相关的性能测试结果参见
http://www.javaworld.com.tw/jute/post/view?bid=9&id=139958&sty=3&age=0

posted @ 2006-11-27 20:29 konhon 优华 阅读(2964) | 评论 (0)编辑 收藏

从去年8月份开始学习基金买卖,到今天有了一点小小心得,与大家分享。

  众所周知,除少数基金以外,大多数的基金都有申购赎回费用,而且并不是很低,所以我们在计算投资收益时就要减去这部分的费用,个人认为每次都需要计算,比较麻烦,自己总结了一个比较简单的方法,计算一个保本净值,如果每日净值高于此数据,就是赢利的,反之则亏损。
  
  下面就介绍一下我的计算方法:

   在认购或申购后取得当日净值,计算基金份额:

     基金份额=投资金额*(1-申购费率/100*100)/当日净值

     注:基金份额一般都是在小数点后第三位四舍五入

     有了基金份额,就可以反推出保本的基金净值

     保本净值=投资金额/基金份额/(1-赎回费率/100*100)

     举例说明:
       在11月17日投资易方达积极成长1200元,当日净值0.9727
       
      基金份额=1200*(1-1.5%/100*100)/0.9727=1215.17

      保本净值=1200/1215.17/(1-0.5%/100*100)=0.99248

     小提示:基金申购都会有一个最低金额,只要大于最低金额就可以,不
        一定必须整数倍。

posted @ 2006-10-19 06:03 konhon 优华 阅读(756) | 评论 (0)编辑 收藏

有的网友关心当天的基金净值,想测算当天的基金净值。

下面我就介绍一下吧:(个人方法)

基金都是有业绩基准线的。这个在基金招募说明书中都能找到。如何计算呢?

以易方达50指数为例:

第一步:你先要查到前天的基金净值:易方达50基金净值:0.8212

第二步:查找该基金的业绩基准线公式:上证50指数收益率*80%+上证国债指数收益率*20%

第三步:跟据收盘价算出离差X:
        2005年11月13日上证50指数:754.16
        2005年11月13日上证国债指数:107.06
        X*(754.16*80%+107.06*20%)=0.8212
        X=0.001314467

第四步:将今天的收盘的指数和X带入业绩基准线公式
        0.001314467*(761.66*80%+107.35*20%)=0.8292

结果:易方达50指数的2005年11月24日当天净值大概在0.8292左右
posted @ 2006-10-19 06:02 konhon 优华 阅读(1142) | 评论 (0)编辑 收藏

(1)博时基金管理有限公司http://www.boshi.com.cn
(2)银华基金管理有限公司http://www.yhfund.com.cn
(3)大成基金管理有限公司http://www.dcfund.com.cn
(4)长盛基金管理有限公司http://www.csfunds.com.cn
(5)嘉实基金管理有限公司http://www.harvestasset.com
(6)南方基金管理有限公司http://www.southernfund.com
(7)易方达基金管理有限公司http://www.efunds.com.cn
(8)华夏基金管理有限公司http://www.chinaamc.com
(9)融通基金管理有限公司http://www.rtfund.com
(10)鹏华基金管理有限公司http://www.phfund.com.cn
(11)招商基金管理有限公司http://www.cmfchina.com
(12)海富通基金管理有限公司http://www.hftfund.com
(13)华安基金管理有限公司http://www.huaan.com.cn
(14)湘财荷银基金管理有限公司http://www.xchf.com
(15)银河基金管理有限公司http://www.galaxyasset.com
(16)国泰基金管理有限公司http://www.gtfund.com
(17)富国基金管理有限公司http://www.fullgoal.com.cn
(18)国联安基金管理有限公司http://www.gtja-allianz.com
(19)中融基金管理有限公司http://www.zrfund.com
(20)华宝兴业基金管理有限公司http://www.fsfund.com
(21)中信基金管理有限责任公司http://www.citicfunds.com
(22)金鹰基金管理有限公司http://www.gefund.com.cn
(23)长城基金管理有限公司http://www.ccfund.com.cn
(24)宝盈基金管理有限公司http://www.byfunds.com
(25)天同基金管理有限公司http://www.ttasset.com
(26)广发基金管理有限公司http://www.gffunds.com.cn
(27)景顺长城基金管理有限公司http://www.invescogreatwall.com
(28)巨田基金管理有限公司http://www.jtfund.com
(29)泰信基金管理有限公司http://www.ftfund.com
(30)长信基金管理有限责任公司http://www.cxfund.com.cn
(31)申万巴黎基金管理有限公司http://www.swbnpp.com
(32)诺安基金管理有限公司http://www.lionfund.com.cn
(33)光大保德信基金管理有限公司http://www.epf.com.cn
(34)上投摩根富林明基金管理公司http://www.51fund.com
(35)兴业基金管理有限公司http://www.xyfunds.com.cn
(36)东方基金管理有限公司http://www.orient-fund.com
(37)天治基金管理有限公司http://www.chinanature.com.cn
(38)中银国际基金管理有限公司http://www.bociim.com
(39)华富基金管理有限公司http://www.hffund.com

posted @ 2006-10-19 05:50 konhon 优华 阅读(657) | 评论 (0)编辑 收藏

对本次“何时赎回基金最好”的话题,读者来稿踊跃且不乏真知灼见,表明不少投资者对基金已有丰富的实践和深刻认识。

  时机把握见智见仁  

  不少读者认为,基金如同股票,也有潮涨潮落,只有顺势而为,方能趋利避险。读者张根宝认为,当股市高涨,成交量倍增时,如持有这类股票的基金,当是赎回的最佳时机。读者张家咏则以股市涨跌作为买与赎回基金的参照。由于基金的属性,它往往较股市慢一拍体现其净值,所以当股市涨至高点他并不急于赎回,而是在股市出现拐点往下走时才赎回。

  也有人对所持基金保持了充分的耐心,并取得满意收获。读者刘松毅认为“应高瞻远瞩观市道,宁静致远看涨跌”,他买的一只基金跌破净值,一度账面曾被抹掉三分之二。但他非但没有“割肉”,反而在低位再次买入,结果耐心终于等到了可喜的结果,基金启动,涨声一片,盈利达50%以上。

   短炒长捂门道不少   

  读者王煜的体会是,基金犹如股票,长捂还是短炒,要看基金业绩。有些基金运作得法,成长性良好,业绩蒸蒸日上,就不愁日后没有好的回报;而净值老在低位徘徊的基金,无论业绩(净值排名)、还是成长性(净值增长率)似乎很难有翻身希望,虽然赎回这只基金肯定要亏损,那就长痛不如短痛,理应及时赎回。

  读者吴妍则认为,对于基金何时赎回和买进,首先要冷静分析当前市场所处的氛围,避免盲目乐观和准备不足;其次理由要充分,对于赎回和买入基金的理由,要有足够充分的理论支持;最后要果断决策,当机立断。读者喻一帆则是各种方法综合运用:如设定盈利目标,基金热销时、赎回费率降低以后再赎回,优质基金长期持有不赎回。还有个小窍门,先免费转成同一公司的货币型基金,再赎回转换后的货币基金,这样能早几天到账,还多了两天的货币基金收益。

  关心信息注意成本  

  其实赎回基金的原因无非有三:一是投资目标达到,落袋为安;二是投资市场出现变化,改投盈利能力更强的品种;三是因基金公司治理结构和基金经理变动等,所投基金的投资风格发生改变。

  记者采访一些专家,归纳的观点是,当所持基金发生以下情况,不管出于什么原因,就该考虑跟它说再见了:一是其业绩表现或投资回报率长期落后于同类型基金;二是基金管理人变动,而绩效却走下坡路;三是基金周转率太高,却不能提升基金绩效,甚至远落后于大盘;四是基金净值短期发生飙涨或暴跌,这是不良信号,预示着基金管理人操作存在很大风险

  联合证券的一份研究报告显示:大市从低位回升的第一个季度赎回量会突然加大,连续两个季度上涨后,基金整体出现净申购。不少基金投资者深谙“高抛低吸”原理,只把基金当股票。但基金毕竟不是股票。像债券型基金,跟股市的联动性就不强。对这类基金,享受分红可能比赎回兑现的收益还要大些,而对赎回时机的选择,更多应从自身财务需求的变化出发。

  另外,赎回基金要讲成本,如第一年手续费0.5%,第二年0.25%,第三年降至0。加上成本更高的申购费用,如反复赎回进出,这笔费用不可小视。产品线比较丰富的基金公司,当推出旗下基金转换优惠时,意味着赎回申购门槛降低,不妨把握一下这个机会。
posted @ 2006-10-19 05:08 konhon 优华 阅读(899) | 评论 (0)编辑 收藏

Surely与certainly的含义不相同。certainly表示所了解的情况,因而很有信心和十分肯定。

e.g. That’s certainly a rock music star.
     那肯定是位摇滚歌星。

     The glass vase will certainly break if you drop it.
     如果你把玻璃花瓶掉在地上,它一定会碎的。

surely表示相信,但又感到惊奇或难以相信。surely常与否定词连用,表示怀疑或不愿意相信某事。

e.g. Surely you’re not going to wear that it?
     你决不会戴那条领带吧?

     Surely that’s Henry over there? I thought he was in England.
     那边想必是亨利啰?我还以为他在英格兰呢。

Surely也用来(特别在美国英语中)表示乐于赞同。而在英国英语中,则更常说certainly或of course。

“Could you help me for a moment?”
“Yes, surely”./ “Yes, certainly”.
“你能帮我一会儿忙吗?”
“当然可以。”

posted @ 2006-10-05 22:07 konhon 优华 阅读(579) | 评论 (0)编辑 收藏

1.You blow it! 你把事情搞砸了!

A: We could have got the deal , but you blew the whole thing!

A: 我们原本可以达成那笔交易的, 但是你把整个事情都搞砸了!

B: What did I do?

B: 我作了什么呢?


blow up"是「发脾气」的意思。 "You'd better take off right now. Kevin will blow up if you're late again." 你最好现在就出发吧! 你要是再迟到, Kevin 会气炸的。


2. Get lost ! 滚开吧!


Why don't you get lost? You filthy scum!

这个没用的东西, 为什么不离我远一点呢?


filthy 是脏的意思。scum则指「污垢」、 「废物」。


3. Get on a person's nerves ! 把某人惹毛


You're really getting on my nerves.

你真的把我惹火了喔!


nerve 除了「神经」, 还有「胆量」的意思。如 "He had the nerve to say that." 他竟然有胆说那种话。


4. hard feelings 怨气


A: Man, I'm really sorry about what happened last night.

A: 老兄啊! 昨晚的事真是抱歉...

B: It's all right. It's over with. No hard feelings.

B: 没关系。已经过去了。没什么好生气了。


"It's over with" 是「已经过去了」。结束某种不愉快的情绪, 可以用 「get over」。 如 "I know you were mad at him for what he had done. But, it has been five years. Get over it." 我知道你很气他所作的事, 但是这已经是五年前的事了, 你应该释怀了。


5. at the top of one's lungs 大声喊


A: I'm here right in front of you. Why are you yelling at me at the top of your lungs?

A: 我就在妳面前, 你为什么要对我大声吼叫呢?

B: Maybe because you've been ignoring my feelings too long.

B: 也许因为你忽略我的感觉太久了。


"lung" 是「肺」的意思。为什么用「肺」, 并不清楚。不过, 中西思考逻辑在某些方面差异很多, 倒是真的。

6. Get off my back. 不要管我!

A: Why don't you get off my back? 

A: 你为何不让我一个人安静一下? 

B: That's fine. Never talk to me again.

B: 好啊! 你都不要再和我讲话好了。

7. leave someone alone ! 不干涉; 听其自然

A: Isn't it about time Jane visited her hairdresser? Her bangs are hanging all over her face now.

A: Jane 该去见她的美发师了吧! 她的浏海都(长到)垂到脸上了。

B: Leave her alone. Maybe she likes to have her eyes covered so she doesn't have to see your face.

B: 不管她! 也许她希望(头发长到)把眼睛盖住, 好看不见你的脸啊!

"leave me alone" 和上一句中的 "Get off my back" 意思很像, 都有要求别人「不要管」的意思。"hairdresser" 是花时间整理你头发的「美发师」; "barber" 则是收费低廉, 5分钟就把你的头发剪好送出门的「理发师」。

8. Get out of my face. 离我远一点

要一个人离开你的视线外, 就该是要他离你远一点吧!

9. stab a person in the back 背后捅刀; 出卖某人

A: I can't believe my best friend stabbed me in the back.

A: 我不敢相信我最好的朋友竟然出卖我。

B: What happened?

B: 怎么回事?

"stab a person in the back" 和 "sell a person out" 都是「出卖某人」的意思。和中文语法很像, 应该蛮好记的。

10. take it out on a person 向某人泄怒

A: Be angry all you want. Don't take it out on me. I didn't do anything.

A: 你尽量生气, 别把气出在我头上就是了。我又没怎样。

B: Go away.

B: 走开。

"Don't vent your anger on me." 也是「别把气出在我头上」的意思。

11. at each other's throats 吵架

A: I can't believe Sean and Keith. They were at each other's throats in front of the whole class yesterday.

A: 我真不敢相信 Sean 跟 Keith。他俩昨天当着整个班上互相叫骂起来了。

B: They fight all the time. You didn't know that?

B: 他们经常在吵架, 你不知道吗?

每个人表达不满的方式, 常因他本身的个性及和对方的关系, 而有不同的选择。有些人「实话实说型」; 有些人是「默默抗议型」; 也有些人「(感情+表情)丰富型」- 可能一面开骂, 一面丢东西哩。像这种比较激烈型的吵架方式, 就是这里的 "at each other's throats" 喔!

12. Cool it! 冷静点!

A: I'm gonna kill Cliff for doing this crap to me.

A: Cliff 对我作这样的「好事」, 我要把他杀了。

B: Hey! Cool it!

B: 嘿! 冷静点!

"crap" 是原意是「排泄物」的意思, 有些人觉得"shit"这个字很粗, 就会用"crap"来代替它。

"Cool it." 是当一个人很冲动时, 用来劝他静下来的词语。除了"Cool it!"、 "Cool off!"外, "Cool out!"; "Chill out! 都是一样的意思。

13. act up 气得不得了(指行为上的失态)

A: Man, it was only a joke. You didin't have to act up like this.

A: 老兄, 那只是开玩笑的, 你用不着气成这样。

B: Joke? You thought that was funny?

B: 开玩笑? 你觉得那样好笑啊?

"act up" 是指一个人因为像受到刺激或生气等等, 在行为上表现地很夸张, 比如开始卷袖子, 准备揍人之类的样子。

14. have a chip on one's shoulder 心存芥蒂

A: Blanche's already apologized and asked for your forgiveness. Why do you still have a chip on your shoulder?

A: Blanche 已经(跟你)道歉过, 也请你原谅她。你为什么还是心存芥蒂呢?

B: I don't know. I guess I never really got over it.

B: 我不知道。也许我对这件事从来没有真正释怀吧!

或许你也曾经有过类似上面的经验; 以为自己经对一件别人做错的事释怀了, 当你再度面对这个人时, 那种气气的感觉又回来了。也许没说到几句话, 你又忍不住地责备对方一顿。这种感觉就是这里所说的"have a chip on one's shoulder"。

15. make up 和好

A: Are you and Eileen still talking at all?

A: 你和 Eileen 还有没有说话呢?

B: Yeah, we've made up.

B: 有啦! 我们和好了。

"make up" 除了当「化妆」外, 也是「和好」的意思。"Let's make up." 就是「我们和好吧!」的意思。

想发火就说吧

I got so mad about it!
我对这件事情非常火大!

I just flew off the handle when I knew what he'd done.
当我知道他做的好事时,我气疯了。

I almost blew my top when I found out that she had been lying to me.
当我发现她一直在对我说谎时,我简直快气炸了。

I hit the roof / ceiling with rage!
我气炸了!

I blew a fuse because he didn't do his homework.
我是因为他没做功课才发火的。

My boss had a cow at the meeting this morning.
我老板今天早上开会的时候发飙。

I was so shocked when he flared up in front of everyone.
他当着大家面前大发雷霆的时候,我真是吓坏了。

He really made my blood boil.
他真是令我怒火中烧。

She's really furious about it.
她对那件事情真是火冒三丈。

I've never seen you so riled up.
我从来没看你这麽愤怒过。

posted @ 2006-10-05 22:05 konhon 优华 阅读(591) | 评论 (0)编辑 收藏

1.Hi, there.
嗨, 你好.
  
首先来谈谈在网路上聊天的基本大原则. 网上聊天凡事要简单. 打字的速度远不若说话的速度快, 所以能简写的简称的就要去简化. 例如平常老美见面打招呼最常用的是, "How are you doing?" 或是 "How are you?" 但在网路上比较常见的则是, "Hi!" 或是 "Hello." 如果是认识的人, 则在 "Hi!" 或 "Hello." 之后加上名字, 例如, "Hi! Claire." 或是 "Hello! Claire" 如果是不认识的人, 则用 "Hi! there." 或是 "Hi! you."
  
2. A/S/L?
年龄/性别/所在地?
  
如果你是第一次跟老美聊天, 他们通常都会先问你 A/S/L ? 有些人更懒, 直接打 asl? 意思虽然完全一样, 但是如果你之前没看过这样的用法, 很难猜出 asl 是什麼意思. 回答的方式也很简单, 假设有个美眉今年芳龄十八, 家住芝加哥 (Chicago) 则她可以回答, "18/ f / Chicago"
  
如果你不会用 a/s/l ? 这种问法, 而分开问, "How old are you?".(你多大了?) "Boy or girl?" (男的女的?) "Where are you from?" (从哪里来?) 那麼就违反了网路上要言简意该的大原则, 这样很快就会露出马脚, 让别人听出你不是跟他们一伙的.
  
3. S‘up?
什么事?
  
"What‘s up?" 是老美彼此之间常用的一种打招呼方式. 但时下美国的青少年喜欢把 "What‘s up?" 发成 "S‘up?" 因为他们觉得这样子很酷. <六人行> (Friends) 中就有这么一段: Joey 為了要演一个十九岁的青少年, 他就故意耍酷说, "S‘up?" 相信这个星期有看 Friends 的人都有印象才对.
  
网路上常看到的写法则是 "sup?" 第一次看到 "sup?" 我的第一个反应是 sup 是 supper (晚餐)的简写, 害我还以為人家问我吃过晚餐了没? 其实不是, "sup?" 只是一种打招呼的方式而已, 通常你可以简单地回答, "Not much." 或是 "Nothing much." 就行啦!
  
4. Lol.
很好笑.
  
Lol 就是 laugh out loud 的简写, 就是「很好笑, 让我笑得很大声」的意思 通常是放在句尾来加强语气, 例如, "I got my butt kicked by an eight-year-old boy..... lol." (我被一个八岁的小男孩干掉了.... 真好笑). 其实这是我个人惨痛的经验, 网路游戏居然玩不过一个八岁的小男孩?

5.ill
I‘ll 有些人就直接打 ill.

6. k
OK的简称.

7.coz
Because 简略为 coz

8.rdy
rdy是ready的缩写.

9. 4= for

10. BRB = be right back

11. lil = little

12.  l8r = later (l+eight+r)

13. KIT= keep in touch

14. ASAP= as soon as possible

15. talkin‘ = talking

16.  r = are

17. zm = zone message;

posted @ 2006-10-05 21:33 konhon 优华 阅读(4187) | 评论 (2)编辑 收藏

我没有很想你,真的没有。   
    我只是在走到某个路口的时候才会想起你,我只是看碟看到一半的时候才会想起你,
我只是听歌听到一半的时候才会想起你,我真的没有很想你,我只是在我不想想你的时候
想起你。  
    这样真好,我没有很想你,,我没有想你想到发疯,我只是想你到眼睛潮湿。   
    我要睡觉,但是我睡不着,在床上我看着无聊的杂志,翻书的时候我想起了你,我睡不着,我摇头要忘却你的影子,可是它印在了杂志上,所以我把杂志扔掉啦。我关上灯,你的样子在黑暗中是那么的明晰,所以我把灯打开。   
    我没有很想你,只是在睡不着的时候想你,只是我不知道是睡不着想你啦,还是想你睡不着。   
    我不要很想你,开始之前忘却之后,情动是头真的长不了一天,眉一皱,头一点。是预言还是选择,我的逻辑没有那么数学化,介入你的视线,不介入你的选择,而预言,它们说最好的版本是安徒生的童话。从此王子和灰姑娘过着幸福的生活。在海远处,水那么蓝,象最美丽的向日葵花瓣,那么清,象最明亮的碎片,却那么深,深得任何锚链都达不到心。深夜里,我只听到美人鱼无声的叹息。   
    我没有很想你,即使想你,也不是我想你的程度,在时间面前我们什么都没有留下。时间这样用来浪费,我不心疼,不想你的时候他们变的一片空白,想你的时候我快乐。不想你的时候我寂寞,快乐不会多一点,回忆在机械的重复,寂寞总会浓一些,不想你的时间只好越来越少    
    我没有很想你,我只是在我高兴的时候想起你,在我不高兴的时候想起你。给我回忆的人不会被回忆欺骗,回忆里的人才会被它欺骗。情人心里的天平,砝码细微如发丝,你笑了,我的天晴了,你沉默了,我的心灰了。我捕捉你的任何眼神,判断你是否还如以前一般热情,我反复查找你的号更新你的资料,衡量你是否还如以前一般眷恋,我在做这些无聊而有趣的事情,穿着空荡的睡衣光脚在屋子里一一细数,然后等着终于有一天答案告诉我可以停止这些那些。你的所有变化我都明了,我在你面前显得冷漠而无所谓,那是软体动物单薄脆弱的壳。   
    我沒有很想你,我想你,然而我只能用文字来发泄来表达我对你的思念.   
    我没有很想你,我想你,然而我只能把对你的思念写进我日记里.   
    我没有很想你,我想你,但只是想你而不打扰你!!!
posted @ 2006-10-05 18:45 konhon 优华 阅读(524) | 评论 (0)编辑 收藏


1. I love you not because who you are, but because who I am when I am with you.
我爱你不是因为你,而是爱上自己和你在一起时的样子。


2. No man or woman is worth your tears, and the one who is, won't make you cry.
没有值得你流泪的男人或女人,值得的那位不会让你哭泣。


3. A true friend is someone who reaches for your hand and touches your heart.
一个真正的朋友是向你伸出手,能抚慰你心灵的人。


4. The worst way to miss someone is to be sitting right beside him knowing you can't have him.
想念一个人最糟糕的方式就是坐在他身旁,却清楚的明白你不能拥有他。


5. Never frown, even when you are sad, because you never know who is falling in love with your smile.
就算不快乐也不要皱眉,因为你永远不知道谁会爱上你的笑容。


6. To the world you may be one person, but to one person you may be the world.
对于这个世界来说,你可能只是普通一人,但对于某人来说,你可能是整个世界。


7. Don't cry because it is over, smile because it happened.
不要因为结束而哭泣,要为曾经拥有而微笑。


8. Make yourself a better person and know who you are before you try and know someone else and expect them to know you.
在你尝试了解他人和盼望他人了解你之前,先要做一个好人和了解自己的人。


9. Don't try so hard, the best things come when you least expect them to.
不要太累,好事往往是在最预料不到的时候出现。


10. Life is a pure flame, and we live by an invisible sun within us.
生命是一束纯净的火焰,我们守着自己内心看不见的太阳而生活。

posted @ 2006-09-26 20:19 konhon 优华 阅读(459) | 评论 (0)编辑 收藏


特蕾莎修女在接受诺贝尔和平奖时曾说过:“你能为促进世界和平做些什么呢?回家爱你的家人吧。”

这是一个平凡的故事,也是一个感人的故事……

Freda Bright says, "Only in opera do people die of love." It's true. You really can't love somebody to death. I've known people to die from no love, but I've never known anyone to be loved to death. We just can't love one another enough.

A heart-warming story tells of a woman who finally decided to ask her boss for a raise in salary. All day she felt nervous and apprehensive. Late in the afternoon she summoned the courage to approach her employer. To her delight, the boss agreed to a raise.

The woman arrived home that evening to a beautiful table set with their best dishes. Candles were softly glowing. Her husband had come home early and prepared a festive meal. She wondered if someone from the office had tipped him off, or... did he just somehow know that she would not get turned down?

She found him in the kitchen and told him the good news. They embraced and kissed, then sat down to the wonderful meal. Next to her plate the woman found a beautifully lettered note. It read, "Congratulations, darling! I knew you'd get the raise! These things will tell you how much I love you."

Following the supper, her husband went into the kitchen to clean up. She noticed that a second card had fallen from his pocket. Picking it off the floor, she read, "Don't worry about not getting the raise! You deserve it anyway! These things will tell you how much I love you."

Someone has said that the measure of love is when you love without measure. What this man feels for his spouse is total acceptance and love, whether she succeeds or fails. His love celebrates her victories and soothes her wounds. He stands with her, no matter what life throws in their direction.

Upon receiving the Nobel Peace Prize, Mother Teresa said, "What can you do to promote world peace? Go home and love your family." And love your friends. Love them without measure.

posted @ 2006-09-26 20:09 konhon 优华 阅读(420) | 评论 (0)编辑 收藏


爱着你就是日日夜夜的想着你,骄傲自豪的谈论着你;爱着你就是眷恋你温暖的怀抱,你深情的吻、你亲切的微笑和你满怀爱意的声音;爱着你就是从来不会忘记我们一起走过的坎坷、我们一起流过的泪和我们一起分享的幸福……

一起欣赏美文《爱着你的感觉》……

To love you is to daydream of you often, think of you so much, speak of you proudly, and miss you terribly when we are apart.

To love you is to cherish the warmth of your arms, the sweetness of your kiss, the friendliness of your smile, the loving sound in your voice, and the happiness we share.

To love you is to never forget the adversity we have overcome, the tears we have shed, the plans we have made, the problems we have solved, and the pain of separation.

To love you is to remember joyfully the days we made memorable, the moments that will live forever in our hearts, the dreams we hope for, the feelings we have for each other, the caresses and touches of love, and the exhilaration of love that fills our hearts.

To love you is to need you, want you, hold you, and know you as no one else can.

To love you is to realize that life without you would be no life at all...

That's a little of what it's like to be in love with you!

posted @ 2006-09-26 20:08 konhon 优华 阅读(453) | 评论 (0)编辑 收藏

每个人都有忧郁的日子。
Everybody has blue days.

那些日子真是惨透了,你觉得心里乱糟糟的、怨气丛生、寂寞、整个人彻底的精疲力竭。
These are miserable days when you feel lousy, grumpy, lonely, and utterly exhausted.

那些日子总会让你感到自己的渺小和微不足道,
Days when you feel small and insignificant,

每件事情似乎都够不着边。
when everything seems just out of reach.

你根本无法振作起来。
You can't rise to the occasion.

根本没有力气重新开始。
Just getting started seems impossible.

在忧郁的日子里,你可能变成偏执狂,觉得每个人都想要吃定你。
On blue days you can become paranoid that everyone is out to get you.

其实情况并不总是那么糟。
This is not always such a bad thing.
你感到灰心、焦虑,可能开始神经质地拼命咬指甲,然后不可救药地陷入一眨眼吃掉三大块巧克力蛋糕的疯狂!
You feel frustrated and anxious, which can induce a nail-biting frenzy that can escalate into a triple-chocolate-mud-cake-eating frenzy in a blink of an eye!

在忧郁的日子里,你会觉得自己在悲伤的海里沉沉浮浮。
On blue days you feel like you're floating in an ocean of sadness.

不论在什么时候,你总有种想哭的冲动,却不知道为了什么。
You're about to burst into tears at any moment and you don't even know why.

最后,你觉得自己犹如行尸走肉,失去生活目标。
Ultimately, you feel like you're wandering through life without purpose.

你不知道自己还可以撑多久,
You're not sure how much longer you can hang on,

然后你想大喊一声:"谁来一枪把我打死吧!"
and you feel like shouting, "Will someone please shout me!"

其实一点小事就让你一天都郁闷难当。
It doesn't take much to bring on a blue day.

也许只是一觉醒来,没有感觉到或者看到自己最棒的一面,
You might just wake up not feeling or looking your best,

发现自己又多了几条皱纹,又重了几斤,或是鼻子上冒出了一个大包。
find some new wrinkles, put on a little weight, or get a huge pimple on your nose.

你可能忘记了约会对象的名字,或是有张可笑的照片被登出来。
You could forget your date's name or have an embarrassing photograph published.

你或许被人抛弃、离了婚,或是被开除,当众出丑,被刻薄的绰号弄得心乱如麻,
You might get dumped, divorced, or fired, make a fool of yourself in public, be afflicted with a demeaning nickname,

或许只因为你得整天顶着一个其丑无比的发型。
or just have a plain old bad-hair day.

也许工作让你痛苦得如坐针毡。
Maybe work is a pain in the butt.

你在强大的压力下顶替他人的位置,
You're under major pressure to fill someone else's shoes,

你的老板对你百般挑剔,
your boss is picking on you,

办公室里的每一个人都让你发疯。
and everyone in the office is driving you crazy.

你可能会头疼欲裂,
You might have a splitting headache,

或重心不稳跌个正着,口臭、牙痛、不停放屁、口干舌燥,
or a slipped dish, bad breath, a toothache, chronic gas, dry lips,

或是指甲长到肉里头了。
or a nasty ingrown toenail.

不管什么原因,你确定上面有人不喜欢你。
Whatever the reason, you're convinced that someone up there doesn't like you.

唉,该怎么办,到底该怎么办呢?
Oh what to do, what to dooo?

嗯,你可能跟大部分人一样,
Well, if you're like most people,

随便找个东西躲起来,以为事情会自行解决。
you'll hide behind a flimsy belief that everything will sort itself out.

结果你得花掉下半辈子的时间回头看,
Then you'll spend the rest of your life looking over your shoulder,

等着一次有一次重蹈覆辙。
waiting for everything to go wrong all over again.

最后你会变成一个易怒的、愤世嫉俗的,或者是 一个可怜兮兮的、哭哭啼啼的受害者。
All the while becoming crusty and cynical or a pathetic, sniveling victim.

最终你绝望地躺在地上,祈求地球将你吞没,或是沉迷在比利.乔的蓝调音乐中不能自拔。
Until you get so depressed that you lie down and beg the earth to swallow you up or, even worse, become addicted to Billy Joel songs.

这的确很蠢,
This is crazy,

因为你只能年轻一次,而且绝对不可能老两次。
because you're only young once and you're never old twice.
posted @ 2006-09-21 20:46 konhon 优华 阅读(532) | 评论 (0)编辑 收藏

1. Stop complaining! 别发牢骚! 
2. You make me sick! 你真让我恶心! 
3. What’s wrong with you? 你怎么回事? 
4. You shouldn’t have done that! 你真不应该那样做! 
5. You’re a jerk! 你是个废物/混球! 
6. Don’t talk to me like that! 别那样和我说话! 
7. Who do you think you are? 你以为你是谁? 
8. What’s your problem? 你怎么回事啊? 
9. I hate you! 我讨厌你! 
10. I don’t want to see your face!我不愿再见到你! 
11. You’re crazy! 你疯了! 
12. Are you insane/crazy/out of your mind? 你疯了吗?(美国人绝对常用!) 
13. Don’t bother me. 别烦我。 
14. Knock it off. 少来这一套。 
15. Get out of my face. 从我面前消失! 
16. Leave me alone. 走开。 
17. Get lost.滚开! 
18. Take a hike! 哪儿凉快哪儿歇着去吧。 
19. You piss me off. 你气死我了。 
20. It’s none of your business. 关你屁事! 
21. What’s the meaning of this? 这是什么意思? 
22. How dare you! 你敢! 
23. Cut it out. 省省吧。 
24. You stupid jerk! 你这蠢猪! 
25. You have a lot of nerve. 脸皮真厚。 
26. I’m fed up. 我厌倦了。 
27. I can’t take it anymore. 我受不了了!

posted @ 2006-09-18 21:27 konhon 优华 阅读(434) | 评论 (0)编辑 收藏

1. you look great today.
  (你今天看上去很棒。)【每天都可以用!】
2. you did a good job.
  (你干得非常好。)【国际最通用的表扬!】
3. we're so proud of you.
  (我们十分为你骄傲。)【最高级的表扬!】
4. i'm very pleased with your work.
  (我对你的工作非常满意。)【正式、真诚的赞扬!】
5. this is really a nice place.
  (这真是个好地方!)【随口就说、但效果很好的表扬!】
6. you're looking sharp!
  (你看上去真精神/真棒/真漂亮。)【与众不同的表扬!】
7. you always know the right thing to say.
8. you're very eloquent.
  (你总是说话得体。)【高层次的表扬!】
9. nice going!
   you did a good job.
  (干得好!)【极其地道的表扬!】
10. the food is delicious.
   (好吃!)【最普通、但非常重要的表扬!】
11. everything tastes great.
   (每样东西都很美味!)
12. your son/daughter is so cute.
   (你的孩子很可爱。)【外国人绝对喜欢听的表扬!】
13. what an adorable baby!
   (多么可爱的孩子。)【只管大胆用!】
14. i admire your work.
15. i respect your work.
   (我对你的工作表示敬意。)【世界通用!】
16. you've got a great personality.
   (你的个性很好。)【一个非常安全的表扬!】
17. you have a good sense of humor.
   (你真幽默。)【美国人极其喜欢的表扬!】
18. your chinese is really surprising.
   (你的中文令人惊讶。)【绝对和其他人不一样的表扬!】
19. your english is incredible.
   (我真不敢相信你的英语。)【用了六星级形容词!】
20. you have a very successful business.
   (你的事业很成功。)【现代人非常喜欢听!】
21. you're very professional.
   (你非常专业。)【专业化的表扬!】
22. your company is very impressive.
   (你的公司给我留下深刻印象。)
23. you're so smart.
   (你非常聪明。)
24. i envy you very much.
   (我非常羡慕你。)
25. your wife is very charming.
   (你的妻子很有魅力!)
26. you two make a lovely couple.
   (你们真是天生的一对!)
27. you're really talented.
   (你很有天赋。)
28. you look nice in that color.
   (你穿那种颜色很好看。)
29. you have a good taste.
   (你很有品位。)
30. you look like a million dollars.
      you look outstanding.=you look like a movie star.
   (你看上去帅呆了。)

posted @ 2006-09-18 21:20 konhon 优华 阅读(443) | 评论 (0)编辑 收藏

情人节快到了,想要用英文跟你的情人说些什麽感动的话吗?让小笨霖提供你一些建议。

1. Thank you for comforting me when I'm sad
Loving me when I'm mad
Picking me up when I'm down
Thank you for being my friend and being around
Teaching me the meaning of love
Encouraging me when I need a shove
But most of all thank you for
Loving me for who I am
感谢你在我伤心时安慰我,
当我生气时你护着我,
当我沮丧时你拉拨我。
感谢你作我的朋友并且在我身旁,
教导我爱的意义是什麽,
当我需要动力时你鼓励我。
但我最想感谢你的是,
爱上像我这样的一个人。
2. Love is more than a word,
it says so much.
When I see these four letters,
I almost feel your touch.
This only happened since
I fell in love with you.
Why this word does this,
I haven't got a clue.
Love 不单是一个字,
它还代表了许多意涵,
当我看到这四个字母时,
我几乎能感受到奶内心的感动。
但是这只发生在,
我爱上你之後,
为何这个字有如此的魔力,
我也搞不清楚。
3. Sweetheart,
My thoughts are deep into you
From the moment that I wake up
And to the whole day through
Happy Valentine's Day
亲爱的,
我深深地想念着你,
从我每天早上起来的那一刻起,
每一分每一秒直到一天结束。
情人节快乐!
4. Thank you for standing behind me
In all that I do
I hope you're as happy with me
As I am with you
感谢你永远支持我,
不论我作了些什麽,
我希望你跟我在一起永远开心,
就像我跟奶在一起时那麽地快乐。
5. If I could save time in a bottle
the first thing that I'd like to do
is to save every day until eternity passes away
just to spend them with you

if I could make days last forever
if words could make wishes come true
I'd save every day like a treasure and then
again I would spend them with you

如果我能把时间存入一个瓶子,
我要作的第一件事就是,
把每一天都存下来直到永恒,
再和你一起慢慢度过。
如果我能把时间化作永恒,
如果我的愿望能一一成真,
我会把每天都像宝贝一样存起来,
再和你一起慢慢度过。
6. To sweetheart or friend,
words can mean much.
Valentine heart to heart,
conveys a loving touch.
给我的爱人或是朋友,
一句话可以代表许多意思,
让我们传递着情人节的讯息,
也传送出爱的感觉。
7. You're always there for me
When things tend to go wrong
It's that faith you have in me
That makes our love strong
当我需要你时你永远在那 ,
就算是我犯了错误也没关系,
是你对我坚定的信心,
让我们的爱更加茁壮。
8. It's your loving and your caring
And knowing that you're near
That gentle touch you have
Make my troubles disappear
是你的爱意和呵护,
知道你就在我的身边,
还有你的温柔和体贴,
让我所有的麻烦全部不见。
9. A better love I couldn't ask for
With your sweet and gently way
And knowing that your love for me
Grows more everyday
我再也没法找到一个比你更好爱我的人,
能比你更加温柔和体贴,
我也深深地相信,
你对我的爱一天比一天更深。
10. We share so much together
And you always pull me through
Thank you for standing behind me
In all that I do
我们分享生命中的每一天,
你永远带领着我,
感谢你一直支持着我,
不论我作了些什麽。

 

posted @ 2006-08-30 21:03 konhon 优华 阅读(410) | 评论 (0)编辑 收藏

要念一个数字是要有点技巧的, 大家请看我整理出来的一些规则.

A. 整数和小数的讲法

a.  3.24
Three point twenty-four.
Three twenty-four.
美国买东西都要含税, 所以多半都带有小数点, 通常小数点可以说 point, 也可以直接省略. 另外比较正式的说法为 three dollar and twenty-four cents, 但是在一般日常生活中几乎是听不到的.
b. 728
Seven hundred and twenty-eight.
这个说法没什么问题吧.
c. 1,245
Twelve forty-five.
One thousand two hundred and fourty-five.
Twelve hundred and forty-five.
一般来说, 四位数的念法是二个数字二个数字一起念, 如 12-45 但有时为了让对方听的更清楚(特别是跟钱有关的时候), 他们会把 thounsand 和 hundred 念出来, 就如同第二句的念法.  另外, 如同第三句的说法, 老美也很喜欢把 one thousand two hundred 直接说成 twelve hundred, 这样子是不是更简单些了呢?
d. 35,891
Thirty-five thousand eight hundred and ninty-one.
五位数的说法是前二数一组, 后二个一组, 中间那个自己一组.
b. 1200
Twelve hundred.
这种末尾有二个零的就用多少 hundred 来表示,  当然也可以说 one thousand and two hundred .
d. 100,000
One hundred thousand.
由于在英语中没有十万这个字, 所以十万要用 one hundred thousand, 一亿要用 one hundred million. 这二个要多练习, 不然以我个人经验,   要用时绝对是讲不出来的.
e. 12.87
Twelve dollar and 87/100 only.
很多人都有机会在美国开支票, 在支票上除了阿拉伯数字之外还要用英语写出数目以求慎重, 整数的第一个字母要大写并且要靠最左边写, 小数部份则用  xx/100 来表示, 并在最后加上 only.
f. 770-2145
Seven seven zero, two one four five.
Seven seven o, twenty-one forty-five.
电话号码习惯上会一个字一个字说, 以求清楚, 但有时为了方便起见, 他们也会以十位数为单位, 二个二个一起说. 

B. 分数, 科学记号的讲法.

a. 1/2
One half.
One over two.
1/2 的说法跟 1/3, 1/4 都不一样, 它不叫 one second, (听起来像是一秒钟) 要用 one half.  而 one of two 比较常用在数学上, 强调 1 除以 2, 平常比较少用这种说法.
b. 1/3
One third.
这种说法大家在中学时都学过了吧. 1/4 就是 one fourth (当然 one quarter 更常见), 1/5 是 one-fifth, 以此类推. 但是如果是 2/3, 则要说 two thirds, 也说是说分母那个 third 要加 s.
c. 1.23*10(-4)
One point two three times ten to the minus four. (negative four)
One point two three times ten minus four.
One point two three ten minus four.
最上面那个是最正确的说法, 但有时为了简便会有不同程度的省略.   像第二, 三个省略适用在别人知道你在说科学符号时, 例如老师上课时, 或同学讨论功课时. 不然别人有可能会误会你的意思.
C. 时间的讲法.
a. 4:00
It's four o'clock.
It's four.
最简单的大家都会.
b. 4:28
Four twenty-eight.
一般的时间就是先讲时, 再讲分就可以.
c. 4:05
Five past four.
Four o five.
要注意从 4:01-4:09 的说法和其它的时间不同, 因为像这一句如果说 four five 是不是很怪呢? 所以要注意.
d. 3:50
Ten to four.
当然你也可以说 Three fifty, 但是 ten to four 这样的说法就相当于中文的还有10分就四点了, 也是很常用不是吗?
e. 5:30
Five and half.
Half past five
这样的说法, 就相当于中文的五点半了!

D. 其它重要的说法

a. 123D
One two three D as in a dog.
在报地址的时候, 常有这种数字和英文字母混合的情况, 但是由于 B, D 和 T 很容易混淆, 所以习惯上会加上一小句话来说明, 如 B as a in boy, T as in a teacher, D as in a dog. 这样别人就可以很清楚了解你在说哪个字母.
b. 5th floor
fifth floor (or simply five)
每次坐电梯时都会有热心的老美问你到几楼 (which floor?) 刚来时很菜不知道, 我都用最正式的说法 fifth floor. 可是其实只要说 five 或是 fifth 也就可以了.

 

posted @ 2006-08-30 20:21 konhon 优华 阅读(457) | 评论 (0)编辑 收藏

1.早上好!很高興再次見到您!
Good morning! N ice to see you again!

2. ......

3. 我期望见到你。
I’m looking forward to seeing you.

4. A:
Q:對不起, 我表達起來有點困難。
Sorry,I have some difficulty in expressing myself.

5. Q: 你能在两分钟內自我推 荐吗?大胆试试吧
Can you sell yourself in two minutes? Go for it.
A: 依我的资格和经验,我觉得我对所从事的每一个项目都很努力、负责、勤勉。我的分析能力和与人相处的技巧, 对贵单位必有价值。
With my qualifications and experience, I feel I am hardworking, responsible and diligent in any project I undertake. Your organization could benefit from my analytical and interpersonal skills.

6. Q:对你目前的工作,能否 做个概括的说明。
Give me a summary of your current job description.
A:

A:AI have been working as a computer programmer for five years. To be specific, I do system analysis, trouble shooting and provide software support. (我干了五年的电脑程序员。具体地说,我做系统分析,解决问题以及软件供 应方面的支持。)

7. Q:你为什么离职呢?
Why did you leave your last job?
A:我希望能获得一份更好的工作,如果机会来临,我会抓 住。
Well, I am hoping to get an offer of a better position. If opportunity knocks, I will take it.

8. Q: 你如何评估自己是位专业人员呢 ?
How do you rate yourself as a professional?
A: 凭借我 良好的学术背景,我可以胜任自己的工作,而且我认为自己很有竞争力。
With my strong academic background, I am capable and competent.


9. Q:你对目前/从前的工作单位有何贡献?
What contribution did you make to your current (previous) organization?
A: 我已经完成三个新项目,我相信我能将我的经验用在 这份工作上。I have finished three new projects, and I am sure I can apply my experience to this position.

10. Q:你怎么认为你对我们有价值呢?
What do you think you are worth to us?
A:我觉得我对贵公司能做些积极性的贡献。I feel I can make some positive contributions to your company in the future.

11. Q:你如何知道 你能胜任这份工作?
What make you think you would be a success in this position?
A: 我在研究所的训练, 加上实习工作,使我适合这份工作。我相信我能成功。 My graduate school training combined with my internship should qualify me for this particular job. I am sure I will be successful.

12. Q:你是一位可以同时承担数项工作的人吗?(你能承受工作上的压力吗?)
Are you a multi-tasked individual? or Do you work well under stress or pressure?
A:是的,我想我可以. / 这种特点就是我目前(先前)工作所需要的,我知道我能应付自如。
Yes, I think so. / The trait is needed in my current(or previous) position and I know I can handle it well.


13. Q:你个性上最大的特点是什么?
What is your strongest trait(s)?
A:乐于助人和关心他人。/ 适应能力和幽默感。/ 乐观和友爱。
Helpfulness and caring. / Adaptability and sense of humor. / Cheerfulness and friendliness.

14. Q: 你的朋友或同事怎样 形容你?
How would your friends or colleagues describe you?()
A: (稍等几秒钟再答,表示慎重考虑。) 他们说陈先生是位诚实、工作努力,负责任的 人,他对家庭和朋友都很关心。
(pause a few seconds)They say Mr. Chen is an honest, hardworking and responsible man who deeply cares for his family and friends.

15. Q:你欣赏哪种性格的人?
What personality traits do you admire?
A: 有"实际行动"的人。 / 诚实、不死 板而且容易相处的人。
(I like) people who possess the "can do" spirit. / (I admire a person who is)honest, flexible and easy-going.

16.Q:作为行政人员,你有什么样的领导才能?What leadership qualities did you develop as an administrative personnel ?
A:我觉得学习如何把人们的积极性 调动起来,以及如何配合协同的团队精神,是我行政工作的主要目标。)
I feel that learning how to motivate people and to work together as a team will be the major goal of my leadership.

17. Q:你通常如何处理別人的批评?
How do you normally handle criticism?
A:沉默是金。不必 说什么,否则情况更糟,不过我会接受建设性的批评。 Silence is golden. Just dont say anything; otherwise the situation could become worse. I do, however, accept constructive criticism.

A:我会等大家冷靜下来再讨论。
When we cool off, we will discuss it later.

18. Q:在工作中,什么事令你 不高兴?
What do you find frustrating in a work situation?
A:作為一名IE工程師,我認為那些不能接受新思想的人更難改變。
As a IE,Minds that are not receptive to new ideas.

19. Q:你如 何处理与同事在工作中的意见不和?
How do you handle your conflict with your colleagues in your work?
A:我要以更清楚文明的方式,提出我的看法,使对方 了解我的观点。I will try to present my ideas in a more clear and civilized manner in order to get my points across.

20. Q:你怎样对待自己的失敗?
How do you handle your failure?
A: 我们大家生来都不是十全十美的,我相信我有第二个机会 改正我的错误。 None of us was born "perfect". I am sure I will be given a second chance to correct my mistake.

21. Q:什么会让你有成就感?
What provide you with a sense of accomplishment.
A:为贵公司竭力效劳。
Doing my best job for your company.

A:尽我所能,完成一个项目。
Finishing a project to the best of my ability.

22. Q:假如你有很多钱可以捐赠,你会捐给什么单位?为什么?
If you had a lot of money to donate, where would you donate it to?Why?
A:我会捐给医药研究,因为我覺得健康是人類最大的財富.
I would donate it to the medical research because I want to do something to help others.

A:我乐意捐给教育机构。
I prefer to donate it to educational institutions.

22. Q:眼下你生活中最重要的是什 么?
What is most important in your life right now?
A:对我来说,能在这个领域 找到工作是最重要的。

To get a job in my field is most important to me.
A:希望能在贵公司任职对我 来说最重要。
To secure employment hopefully with your company.

23. Q:目前什么事是你最关心的?
What current issues concern you the most?()
A:

24. Q:你会在本公司服务多久 呢?
How long would you like to stay with this company?
A:只要我能在我的行业力继续学习和长进,我就会一直留在这里。 I will stay as long as I can continue to learn and to grow in my field.

25. Q:你能预料五年后你会做什么吗?
Could you project what you would like to be doing five years from now?
A:我 希望能充分展示我在这个行业的能力和智慧。I hope to demonstrate my ability and talents in my field adequately.

A:我在上一个工作中积累了一些行政经验,我将来也许要运用我组织和计划上的经验和 技巧。 As I have some administrative experience in my last job, I may use my organizational and planning skills in the future.

A:也许 有机会,我将会从事管理工作。
Perhaps, an opportunity at a management position would be exciting.

A:现在对此问题的预测,尚嫌过早。
It would be premature for me to predict this. (如果不愿正面回答)

A:说不定,我也能做你现在主任的工作呢!
Hypothetically speaking, I might be able to do your current job as a director.(或 CEO 或 president)(甚至还可以這樣打趣的说 )

26. Q: 你喜欢那一种薪水层次标准 ?
What range of pay-scale are you interested in?
A: 坦白地说,我喜欢这份工作,不过我必须要负担我的家庭。(如果有家庭) To be frank and open with you, I like this job, but I have a family to support.

A:薪水固然重要,但这工作伴随而来的责任更吸引 我。
Money is important, but the responsibility that goes along with this job is what interests me the most.

Other Tips (其它建议)
1. Know something about the organization you are applying to. (了解一些你申请工 作单位的情况)

2. Dress properly. Don’t shake hand with the interviewer until he/she extends his/her hand. (穿着要得体,人家伸手时才握手。)

3. Don’t sit down until invited to do so by the interviewer. (人家未请,先別坐 下。)

4. Make eye-contact with the interviewer during the interview. (面试时,眼睛要 看着对方。)

5.Listen actively and stay calm. (注意听,保持冷静。)

6. If invited to a meal, be especially careful about your table manners. (被邀 吃饭时,要特別注意餐桌礼节。)

7. Don’t talk with your mouth full. (嘴里有食物,不可开口说话)

8. Don’t make much noise while you eat. (吃东西不要出声音)

9. Don’t blow your nose or use the toothpick at table. (不要拧鼻涕或用牙签剔牙)

10. Don’t appear to be pushy or overly anxious to get a job.(不必过分表现急着要 工作)

11. Be honest ,but not too modest.(要诚实,但不必太谦虚)

12. Don’t put yourself down or cut yourself up. (不可妄自菲薄或自贬)

13. Try to avoid discussing politics or religion with your interviewer. (避免与 面试人谈政治或宗教)

posted @ 2006-08-29 20:26 konhon 优华 阅读(491) | 评论 (0)编辑 收藏

一. 听说训练中应注意几个问题

一般英语学习者,在全面提高英语的前提下,要提高听、说能力,应首先注意以下三点:

1.注意区分和模仿正确的语音、语调

在英语里有不少读音相近,但意思却截然不同的词汇,象cure[kjue](医愈)和 kill[kill](杀死),menu(菜单)和manure(肥料)等。设想如果有一个医生想说:"I'll cure you."(我要治好你的病。)却因发音不好,说成:"I'll kill you."(我要杀死你。)那病人会吓成什么样子。又比如,有人对你说:" I am thirty.My wife is thirty,too."而你听到的却是:" I am dirty. My wife is dirty,too."你一定会莫名其妙。实际上,所差之外就是一个音素。因此,我们从一开始就要注意区分和模仿正确的语音,语调。在这个基础上提高听、说,才能收到良好效果。

2.创造一定的听、说环境

听、说是一种语言交流,没有一个外语环境或一定的听、说条件,只靠单枪匹马很难收效。当然,现代科学为我们提供了录音机这一工具,我们可以把课文,对话和中外成品磁带录制下来反复听和模仿。还可以把自己的口头作文和复述录下来,仔细审听,发现问题,及时纠正。但是,在自然条件下,听与说是不能分的。一个人听的过程实际是另一个人说的过程。如果有条件的话,最好能把自学的伙伴组织起来,定期开展会话活动,或利用社会上,公园中提供的"外语之角"等条件,既练了说,又练了听,在实际的语言环境中练习,才能取得长足的进步。

3.要有不怕听错,说错,不断苦练的精神

练习听、说的学习者,特别是成年人,往往必听错、说错,不敢主支张口练习。然而,语言是一种习惯,没有反复的操练和实践难以产生熟练的技巧。会话重在达意,只要达到交流思想的目的,这种听、说实践就应该说是基本成功的。出了错,注意总结经验,自学改正就是了。

二.听力训练的四个阶段

⑴入门阶段 这个阶段适合初学者。在学完字母及一些简单句型和词汇后即可开始。一般可以进行三各听力练习:

1)句型练习: 做这项练习时,可以把句型、词汇及语法三项结合起来。这方面有不少国内外出版的句型练习教科书及录音带,如:《英语九百句》(English 900)和《情景对话》(Situational Dialogues),邓炎昌编的《英语会话五十题》和邓荣成编译的《实用英语问答》等。这些课本编排比较科学,由浅入深,循序渐进,照顾到生活常用词汇和句型,耐用做到了关键句型反复出现。配合课本录制的磁带质量也很好,几乎都包括速度较慢的跟读和重复练习。

2)浅显易懂的英语小故事:听小故事也是这一阶段听力训练的重要步骤。如《罗宾汉的故事》(GRIMM'S TALES),<<伊索寓言>>(AESOP'SFABLES)等。<<新概念英语>>第一二册等的也可采用。听故事旨在听懂大意,锻炼把前后内容连贯起来的能力,而不在于模仿语音,语调和熟记句型。听故事还可以扩大词汇,把学到的英语书面符号同声音结合起来。

3)中外录制的教科书课文:中外出版的一些英语教科书如:许国璋主编的《英语》统编教材一到四册,周珊凤,张祥保主编的《大学英语》,英国朗曼公司出版的《基础英语》(ESSENTIAL ENGLISH)及美国麦希尔公司出版的>今日英语>(ENGLISH FOR TODAY)等,内容丰富,课文有相当的长度和难度。如果学习时配合听课文录音,或先听后读或学了之后再听,都可以达到从声音入手反复熟悉课文的目的,既学了课文,又练了听力。最后,在入门阶段,尽管掌握的英语不多,还是应该努力把听和说结合起来,积极利用学过的内容,组织自学伙伴,开展对话。有条件的话,争取能听听中外籍人士用英语介绍生活,学习或英,美情况的小报告,即使兴能勉强听懂一部分也应尝试。

⑵初级阶段 这一阶段仍属基础学习阶段。主要任务是扩大,加深和巩固入门阶段所学成果,可以从以下几方面进行训练习:

1)继续听句型练习和小故事:这一阶段要注意通过时间较长,难度较大,语言现象较复杂的听力材料来继续解决语音,词汇和语法这三方面的问题。如果仍沿用入门阶段的句型练习材料,就要加大单位时间听力材料的数量,并争取在回答或重复时提高自己的准确度。总之,应在材料难度及反应速度方面下功夫。在听小故事方面可听《如此故事》(WHAT A STORY)一类的成品录音带。其特点是在录制故事时,有意识地安排了好几个人插话,提问,以中断某人叙述的方式来进行一些意见交流,这也可算作情景对话,得同简单的问答式对话大不相同,它更接近真实生活,也更自然。

2)选听各种报告录音,扩大听的内容:为了扩大词汇,并逐步适应不同口音和年龄的讲话,这一阶段可选听一些浅易的英美历史、地理、风俗人情的报告。英美人士访华印象的讲话也是很好的内容。这些讲话一般以半小时左右为宜,既增长知识又提高听力。

3)开始收听北京电台对外广播:电台的英语涉及政治、经济、文化等各方面内容,语言比较规范,播音员语音、语调又是楷模,因此听英语广播是学习英语的极好途径。北京电台(Radil Beijing)收听方便,每日内容更新,多数是有关我国各方面发展的消息。由于学习者熟悉这些内容,这就降低了听力难度,所以对听力刚刚入门的人来说是比较合适的。在这一阶段, 听的重点应是北京电台对外的新闻广播、国际形势分析及一些文化评论。听时要摸索新闻广播的一般规律,注意培养听新闻的一些基本技巧和方法。如果一开始感到困难,可以采取以下两个辅助办法,即在听广播之前阅读《北京周报》(BEIJING REVIEW),《中国日报》(CHINA DAILY)或《新华电讯稿》(XIN-HUA NEWS BULLETIN)有关文章。这样,在内容和词汇有一定准备的情况下,听英语广播就会容易得多。另外,可以把新闻和评论录制下来,反复精听,逐句推敲。这也是抽调听力的一个委好训练方法。在这一阶段,仍应进行听说配合的群练,做口头作文,沁报告等等,并开展力扫能及的讨论。

⑶中级阶段 本阶段应从机械训练转向实践,从课本进入社会。解决听外台的能力作国这一阶段的一项主要任务。可进行以下训练。

1)听美国之音(VOA)慢速广播(VOA SPECIAL ENGLISH PROGRAM)或英国广播公司(BBC)英语广播(BBC ENGLISH BY RADIO):这两个节目速度较慢,在词汇选择上也有适当控制,因此作为训练听外台的起步练习是很合适的。开始时可根据自己熟悉的工英国或美国音来选听BBC或VOA,然后逐步向另一台过渡。在听这两种特殊节目毫无困难之后,就可转向正常速度的英美电台广播。电台广播和报刊杂志的内容是紧密联系在一起的。因此,在进行这一训练的同时,应阅读一些英文报刊杂志。

2)视听结合,训练听懂电影,戏剧的能力:看外语电影可以纳入这一阶段的训练。听电影,戏剧中的台词,实际是相当难的,作为起步,可以先看一些翻译成英语的国产电影,如《闪闪的红星》甚至幻灯片《高玉宝》等。然后选看熟悉的影片,如《列宁在一九一八》,《战争下和平》等。最后可尝试听一些语言规范,内容健康的原版英美电影,如《冰海沉船》《百万英磅》《简.爱》《孤星血泪》《雾都孤儿》《红菱艳》以及中央电视台的《星期日英语》(ENGLISH ON SUNDAY)节目中经常播放的一些英美电影对话,不能要求每句话,每个字都听懂,应以是否正确把握住了故事情节和重要的细节为标准。

3)继续前两阶段的某些听力训练:听力训练是长期的,经常的任务因此,各人可以根据自己的薄弱环节,在向新内容发展的同时,坚持进行某些前两阶段采用过的听力练习形式,但难度和词汇量工有所加强,要多听英。美文化和政治经济方面的报告,以及访华学者就当今大家感兴趣和国际问题,青年问题等所作的一小时左右的报告。

[4]高级阶段 本阶段完成后,英语学习者应达到或者接近英美人的听力水平,并能应付各种情况。

1)在听外台方面,要训练听正常速度节目。要从重点听新闻,转向多听专栏评论和报道。

2)在可能条件下,争取听使用英语的学术讨论会,语言学,文学,历史,政治经济等问题的讲座和科普报告,并积极参加报告会后的讨论活动。
二. 3)如有兴趣或需要,可进一步训练听戏剧台词和诗歌朗诵,如莎士比亚,萧伯纳,奥尼尔等名家的戏剧,或英美诗歌名篇。

4)练习听用英语讲授的课程,学习英语是为了掌握一种语言工具,从而更好地精通自己的专业,因此,在这一听力阶段应达到听懂用英语讲授的专业课程或报告,要练习完全用英语进行思维,把耳听,思考,理解和笔录完美地用英语统一起来,如果客观上没有这种听课条件, 大量阅读专业资料,听有关专业风空的英语报告,并积极开展英语讨论,与同行交换看法等,也或以在很大程度上弥补这方面的不足。

三.听力训练的几个具体问题

(1)泛听和精听相结合

在听力训练中,既要能准确无误地听出某些重要的数据,年代,人名,地名及事实,又要兼顾把握大意的训练,这弱就必须所精听与泛听结合起来,交替练习,即把精听和泛听分成各处独立的练习,听时穿插安排,也可把一个故事或报告他成精泛段落,有些部分精听,其余泛听。在精听时,要首先熟悉听力材料中的生词,对有此难句可以反复听:而泛听则首先着眼于量大,只求掌握大意,不必了解每个细节,精听遍数不限,直到完全听懂为止,泛听的遍数由由材料难度和自己的程度来决定,得一般不要超过三遍否则就失去了泛听的意义,泛听时,不宜中间打断,要一气呵成, 精听则可在句子之间或困难之处停下机器,倒带重听。兴泛不精,会养成似是而非,不求甚解的习惯,反之,则见树不见林,抓不住大意。所以这两种训练哪一种也不应偏废。

(2)听力训练应培养的能力和从上下文猜字的能力

1) 在听力训练过程中,往往会碰到听不清或听不懂的情况,原因很多,有进是由于说话人发音不清楚或录音效果不好,有时是因为出现了生词或内容陌生的缘故,这就要靠抓字音及从上下文猜字的能力来解决问题。比如:我们初次听《薄雪花》(EDE LWEISS)这首歌时,可能对其中两处的歌产生疑问,一是"You look happy to meet me"。有人会认为是"You look happy to me ,to me "。但若仔细多听,就会发现 meet me 连读时[t]音部分失去爆破,并不和me 相连。另一难点是"Blossom of smow,may you bloom and grow"这句歌词中,blossom 一字由于节拍关系,唱得委快,[l]音听不清楚,再加上和后面的of连读,给听者造成很大困难,这时需要运用猜字的能力,从上下文进行分析,这是一首关于白色花的歌曲,后面的动词中又有bloom(开放)这个词,只有blossom(花朵)这个词才比较合适,况且只有blossom这个词包含和[sm]这两个从录音带上可以辨认的声音,这样问题迎刃而解,所以,碰到类似情况时,首先要记住能听清的声音,然后根据上,下文的内容和语法关系提供的线索来进行推测,如果可能的话,还可以根据字音查一下字典,这一能力的培养是听力训练中很关键的一个环节,对独立工作,摆脱困难至关重要。

2) 排除杂音和各种干扰的能力:为国培养这一能力,要多听新闻广播,听那些看不见说话人口形的录音报告,要逐渐适应人们说话进加上"well","eh"之类填充语(hesitation fillers)的习惯,以及有时说了一半忽然转念另起一句话的现象,还要努力做到能把录音不清楚不一词半语,或者讲演者降低声音,很快一带而过的词句正确地补充出来。

3) 要有适应英国音,美国音及一些主要方言的能力:听力训练可以采取从一种音入手,再逐步过渡支另一种音的办法。为了更快的掌握听好英国音和美国音的能力,学习者可以主动归纳或对比两种英语在发音,语调上的差别,以便更好地渡过这一关。如美国人在or,er等组合字母后面还要加上[r]音:doctor[ ](英音),[ ](美音):把[a:]音发为[ ]音:can't[ka:nt](英音), [k nt](美音)等发音特点。对英格兰北部,苏格兰地区有此特殊的发音和用字,以及美国黑人英语,澳大利亚,新西兰英语中的一些变异现象,如无特殊需要,一般可以不练,不学。但适当有一些了解,听一,两个样品录音也有好处。

(3)听力训练的时间安排

听力训练需要思想高度集中,故时间安排以每天精神最佳时候为宜。而且,时间不宜过长,第 要连续听一小时以上。听力又是习惯成自然的技巧训练,所以每天安排一段时间。不能三天打鱼,两天晒网,更不能听一段时间后,就一扔半年,一年。

(4)听力测试方法

听力测试有各种形式,可根据本人程度及训练目的,找一些合适的附,有测试题的听力教材做些练习,考核水平。

posted @ 2006-08-24 22:40 konhon 优华 阅读(439) | 评论 (0)编辑 收藏

       1、what is language for?some people seem to think it's for practicing grammar rules and learning lists of words——the longer the words the better.that's wrong. language is for the exchange of ideas, for communication.

  (语言到底是用来干什么的呢?一些人认为它是用来操练语法规则和学习一大堆单词——而且单词越长越好。这个想法是错误的。语言是用来交换思想,进行交流沟通的!)

  2、the way to learn a language is to practice speaking it as often as possible.

  (学习一门语言的方法就是要尽量多地练习说。)

  3、a great man once said it is necessary to dill as much as possible, and the more you apply it in real situations,the more natural it will become.

  (一位伟人曾说,反复操练是非常必要的,你越多地将所学到的东西运用到实际生活中,他们就变得越自然。)

  4、learning any language takes a lot of effort. but don't give up.

  (学习任何语言都是需要花费很多努力,但不要放弃。)

  5、relax! be patient and enjoy yourself. learning foreign languages should be fun.

  (放松点!要有耐性,并让自己快乐!学习外语应该是乐趣无穷的。)

  6、rome wasn't built in a day. work harder and practice more. your hardworking will be rewarded by god one day. god is equal to everyone!

  (冰冻三尺,非一日之寒。更加努力地学习,更加勤奋地操练,你所付出的一切将会得到上帝的报答,上帝是公平的。)

  7、use a dictionary and grammar guide constantly. keep a small english dictionary with you at all time. when you see a new word, look it up. think about the word——use it, in your mind, in a sentence.

  (经常使用字典和语法指南。随身携带一本小英文字典,当你看到一个新字时就去查阅它,想想这个字——然后去用它,在你的心中,在一个句子里。)

  8、try to think in english whenever possible. when you see something, think of the english word of it; then think about the word in a sentence.

  (一有机会就努力去用英文来思考。看到谋事时,想想它的英文单词;然后把它用到一个句子中去。)

  9、practice tenses as much as possible. when you learn a new verb, learn its various forms.

  (尽可能多地操练时态。学习一个动词是,要学习它的各种形态。)

  10、i would also like to learn more about the culture behind the language. when you understand the cultural background(文化背景), you can better use the language.

(我想学习和了解更多关于语言背后的文化知识,当你理解了文化背景,你就能更好地运用语言。)

posted @ 2006-08-24 21:40 konhon 优华 阅读(481) | 评论 (0)编辑 收藏

who knows! 天晓得! 
it is not a big deal! 没什么了不起! 
how come… 怎么回事,怎么搞的。 
easy does it. 慢慢来。 
don’t push me. 别逼我。 
come on! 快点,振作起来! 
have a good of it. 玩得很高兴。 
it is urgent. 有急事。 
what is the fuss? 吵什么? 
still up? 还没睡呀? 
it doesn’t make any differences. 没关系。 
don’t let me down. 别让我失望。 
god works. 上帝的安排。 
don’t take ill of me. 别生我气。 
hope so. 希望如此。 
go down to business. 言归正传。 
none of my business. 不关我事。 
it doesn’t work. 不管用。 
i’m not going. 我不去了。 
does it serve your purpose? 对你有用吗? 
i don’t care. 我不在乎。 
not so bad. 不错。 
no way! 不可能! 
don’t flatter me. 过奖了。 
your are welcome. 你太客气了。 
it is a long story. 一言难尽。don’t play possum! 别装蒜! 
make it up! 不记前嫌! 
watch you mouth. 注意言辞。 
any urgent thing? 有急事吗? 
how about eating out? 外面吃饭怎样? 
don’t over do it. 别太过分了。 
can you dig it? 你搞明白了吗? 
i’m afraid i can’t. 我恐怕不能。 
you want a bet? 你想打赌吗? 
what if i go for you? 我替你去怎么样? 
who wants? 谁稀罕? 
december heartbeat. 黄昏恋。 
follow my nose. 凭直觉做某事。 
cheap skate! 小气鬼! 
go to hell! 去死吧! 
between us. 你知,我知。 
big mouth! 多嘴驴! 
sure thin! 当然! 
i’m going to go. 我这就去。 
never mind. 不要紧。 
can-do. 能人。 
close-up. 特写镜头。 
drop it! 停止! 
bottle it! 闭嘴! 
posted @ 2006-08-24 21:03 konhon 优华 阅读(433) | 评论 (0)编辑 收藏

1. Absolutely! 毫无疑问!

2. Adorable! 可爱极了!

3. Amazing! 太神奇了!

4. Anytime! 随时吩咐!

5. Almost! 差不多了!

6. Awful! 好可怕啊!

7. Allow me! 让我来!

8. Baloney! 胡扯!荒谬!

9. Bingo! 中了!

10. Boring! 真无聊!

11. Bravo! 太棒了!

12. Bullshit! 胡说!

13. Correct! 对的!

14. Crazy! 疯了!

15. Damn! 该死的!

posted @ 2006-08-24 06:00 konhon 优华 阅读(421) | 评论 (0)编辑 收藏


“各式”kiss详解

如果要评选人类最美丽的词语,“吻”(kiss) 应该算一个。王子吻醒了睡美人,公主吻活她的心上人……一个打动人心的童话似乎总是不能离开一个“生命之吻”,而一个深情的吻开启的不仅是爱人的双唇,而是她(他)的心。

LT本期分类词汇奉献与kiss有关的各类说法,在此感谢LT论坛版主oggyjj的贡献!

kiss sb.'s ass 拍马屁
John never kissed the boss' s ass. 约翰从不拍老板的马屁。

kiss-ass 马屁精,谄媚者

kiss good-bye 吻别,被迫放弃

She kiss them good-bye. 她和他们吻别。
If you don't work hard, you can kiss your bonus goodbye. 如果你不努力工作,就拿不到奖金了。)

kiss of death 看上去出于好心实则会导致失败的行为或东西

It's the kiss of death whenever Paul helps with the cooking.
每当保罗帮忙做饭时,总是好心做坏事。

kiss of life 口对口的人工呼吸(生命之吻)

kiss of peace [宗] 接吻礼,团结友爱的接吻

kiss the rod 甘心受罚

We can't evade the issue; all we can do is to kiss the rod.
这个问题我们规避不了,只好俯首受罚。

blow/throw a kiss 飞吻

He blew a kiss at the pretty girl.
他对那个漂亮女孩做了一个飞吻动作。

kiss-me-quick (垂于额上的)鬈发

give a kiss 接个吻

a Judas kiss 口蜜腹剑

snatch a kiss 冷不防接个吻

steal a kiss 偷吻, 冷不防接个吻

kiss off 不在乎;拒绝

You can kiss off that problem now.
现在你可以不为那个问题操心了。

vacuum kiss 真空吻(sucking the air out of one's partner's mouth and lungs)

French kiss 法式接吻(kiss with your mouth open and your tongues touching)

Platonic kiss 柏拉图之吻(short kiss on the check for greeting)

smooch 与…搂抱亲吻
He planted a big smooch on her.(他深深地吻了她。)

peck匆匆一吻
She gave him a peck on the cheek.(她在他脸颊上匆匆一吻。)
posted @ 2006-08-23 19:56 konhon 优华 阅读(448) | 评论 (0)编辑 收藏

1. It's up to you.(由你决定。)
2. I envy [羡慕]you.(我羡慕你。)
3. How can I get in touch with you?
4. Where can I wash my hands? (请问洗手间在哪里?)
5. What's the weather like today?(今天天气如何?)
6. Where are you headed [朝…方向行进]? (你要到哪里去?)
7. I wasn't born yesterday.(我又不是三岁小孩。)
8. What do you do for relaxation[消遣、娱乐]?(你做什么消遣?)
9. It’s a small world.(世界真小!)
10. It’s my treat[请客、款待] this time.(这次我请客!)
11. The sooner the better. (越快越好。)
12. When is the most convenient [方便的;便利的] time for you?
13. Take your time.(慢慢来/别着急。)
14. I'm mad about Bruce Lee.(我迷死李小龙了。)
    I'm crazy[着迷的;狂热爱好的] about rock music. (我对摇滚乐很着迷。)
15. How do I address you?(我怎么称呼你?)
16. What was your name again? (请再说一次名字好吗?)
17. Would you care for[喜欢] a cop of coffee?(要被咖啡吗?)
18. She turns me off.(她使我厌烦。)
19. So far so good.(目前为止,一切都好。)
20. It drives[逼迫;迫使] me crazy.(它把握逼疯了。)
21. She never showed up[出席;露面].(她一直没有出现。)
22. That's not like him.(那不象是他的风格。)
23. I couldn't get through.(电话打不通。)
24. I got sick and tired of hotels.(我讨厌旅馆。)
25. Be my guest.(请便、别客气)
26. Can you keep an eye on my bag?(帮我看一下包好吗?)
27. Let's keep in touch.(让我们保持联系。)
28. Let's call it a day[决定或同意暂时或永久停止(进行某事)].
29. I couldn't help[避免;阻止] it.(我没办法。)
30. Something's come up[发生/出现].(有点事/出事了)
31. Let's get to the point[要点/核心问题].(让我们来谈要点。)
32. Keep that in mind.(记住那件事。)
33. That was a close call.(太危险了/千钧一发)
34. I'll be looking forward to it.(我将期待这一天。)
35. Chances are slim[渺茫的;微小的].(机会很小。)
36. Far from it.(一点也不。)
37. I’m behind in my work.(我工作进度落后了。)
38. It's a pain in the neck[麻烦的事(人)].(那真是件麻烦事)
39. We're in the same boat.(我们处境相同。)
40. My mouth is watering.(我在流口水了。)
41. What do you recommend?(你推荐什么?)
42. I ache all over.(我浑身酸痛。)
43. I have a runny nose.(我流鼻涕。)
44. It's out of the question.(这是不可能的。)
45. Do you have any openings?(你们有空缺吗?)
46. It doesn't make any difference.(没什么差别/无所谓。)
47. I'm fed up[极其厌烦] with him.(我受够他了。)
48. You can count on[指望;依赖] us.(你可以信赖我们。)
49. It doesn't work.(坏了;不动了。)
50.It's better than nothing.(总比什么都没有好。)
51. Think nothing of it.(别放在心上。)
52. I'm not myself today.(我今天心神不宁。)
53. I have a sweet tooth.(我喜欢吃甜食。)
54. I can't express[表示;表达;表明] myself very well in English.
(我不能很好地用英语表达自己。)
55. For the time being.(暂时;暂且;目前)
56. This milk has gone bad.(这牛奶变质了。)
57. Don't beat around the bush. (别拐弯抹角了。)
58. It's up in the air[悬而未决].(尚未确定。)
59. Math is beyond[对某人而言难以想象/理解/估计] me.(我对数学无能为力。)
60. It slipped my mind.(我忘了。)
61. You can't please[使人感到满意和愉快] everyone.(你不可能讨好每一个人。)
62. I'm working on[着手;从事] it.(我正在努力。)
63. You bet!(当然!)
64. Drop me a line[短信].(写封信给我)
65. Are you pulling my leg[同某人开玩笑;取笑]?(你在开我玩笑吗?)
66. Sooner or later.(迟早会的。)
67. I'll keep my ears open.(我会留意的。)
68. It isn't much.(那是微不足道的。)
69. Neck and neck.(不分上下。)
70. I'm feeling under the weather.(我觉得不舒服/精神不好/情绪低落。)
71. Don't get me wrong[误解].(不要误会我。)
72. I'm under a lot of pressure.(我压力很大。)
73. You're the boss.(听你的。)
74. It doesn't make any sense!(毫无意义!)
75. If I were in your shoes[处在某人的位置].(如果我是你的话。)
76. What's this regarding?(这是关于哪方面的?)
77. Over my dead body!(休想!)
78. Can you give me a hand[帮手;援助]?(你能帮个忙吗?)
79. We have thirty minutes to kill[消磨;打发(时间)].(我们有三十分钟空闲时间。)
80. Whatever you say.(随便你。)
81. It'll come to me.(我会想起来的。)
82. You name[具体地(说出来)] it!(你说出来。)
83. Time will tell.(时间会证明的。)
84. I will play it by ear[见机行事;临时现做].(我会见机行事的;到时候再说。)
85. You should take advantage of[利用] it.(你应该好好利用这个机会。)
86. Let's talk over coffee.(我们边喝边谈。)
87. Take it easy.(轻松一点;别紧张;放松放松;再见。)
[这是美国人最喜欢说的话,也可作离别用语。]
88. I'm easy to please[使…高兴;讨…喜欢].(我很容易取悦/相处。)
89. Let's give him a big hand.(让我们热烈鼓掌。)
90. As far as I'm concerned.(就我而言。)
91. I'm all mixed up.(我全搞混了。)
92. Let's get together one of these days.(找一天聚聚。)
93. He's behind the times.(他落伍了/跟不上时代了。)
94. I'm pressed for time.(我时间紧迫。)
95. I'm up to my ears[忙得不可开交;深陷于某事物中] in work.(我忙死了。)
96. You can't do this to me.(你不能这么对我。)
97. Just to be on the safe side. (为了安全起见。)
98. I hope I didn't offend you.(希望没有冒犯你。)
99. It won't take much time.(不会花很长时间的。)
100. It's been a long time.(好久不见了。)
101. It’s nothing.(小事情;不足挂齿。)
102. It’s a long story.(说来话长。)
103. It's about time.(时间差不多了。)
104. It's incredible.(难以置信!)
105. It's hard to say.(难说。)
106. I can't imagine why.(我想不通为什么。)
107. That can't be.(不可能。)
108. That's really something.(真了不起。)
109. Are you sure?(你确信吗?)
110. Are you crazy?(你疯了吗?)
111. Excuse me for a moment.(失陪一会儿。)
112. I mean it. I'm serious. I'm no kidding!(我是认真的。)
113. I'll consider this matter.(我会考虑这件事的。)
114. I'll do something about it.(我会想办法的。)
115. What are you talking about?(你在说些什么?)
116. I'm afraid I can't.(恐怕我不行。)
117. I'm dying[很想] to see you.(我真想见你。)
118. I'm flattered.(过奖了。)
119. I'm not in the mood.(我没心情。)
120. I'm so scared.(我怕极了。)
121. I can't make[赶上] it.(我去不了/我赶不上。)
122. You can never tell.(不知道/谁也没把握。)
123. I won't buy[相信;接受] you story.(我不信你那一套。)
124. It hurts like hell!(疼死啦!)
125. It can't be helped.(无能为力。)
126. Sorry to bother you.(抱歉打扰你。[事前])
Sorry to have bothered you.(抱歉打扰你。[事后])
127. I'm always punctual.(我总是很准时。)
128. You may leave it to me.(交给我来办。)
129. I wish I could.(不行。)[委婉表达法]
130. What's the rush?(什么事那么匆忙?)
131. What's so funny/(有什么好笑的?)
132. I couldn't agree more.(我完全同意。)
133. Stay out of this matter, please.(请别管这事。)
134. Don't just shake you head.(别光摇头,想想办法!)
135. Don't jump to conclusions.(别仓促/过早下结论。)
136. That was a lousy movie.(那电影糟透了!)
137. Have you thought about staying home?(是否考虑在家呆着?)
138. I'll come. I give you my word.(我会来的。我向你保证。)
139. I swear I'll never tell anyone.(我发誓不告诉任何人。)
140. I'll make it up to you.(我会赔偿的。)
141. I'm very / really / terribly / awfully / extremely sorry.(十分抱歉!)
142. Forgive me for breaking my promise.(原谅我食言。)
143. Let's forgive and forget.(让我们摈弃前嫌。)
144. I've heard so much about you!(久仰大名!)
145. Don't underestimate me.(别小看我。)
146. She gives me a headache.(她让我头疼。)
147. It's very annoying.(真烦人。)
148. He often fails to keep his word.(他常常不遵守诺言。)
149. You made me feel ashamed of myself.(你让我感到羞愧。)
150. I hope it turns out all right.(我希望结果很好。)
151. I can't handle this alone.(我无法单独处理这事。)
152. How long will it take to have this radio fixed?(修理这收音机要多久?)
153. Come to me if you're in any difficulty.(有困难来找我。)
154. Who do you think you are?(你以为你是谁?)
155. You're wasting you breath.(你在白费口舌。)
156. It doesn't seem like that.(似乎不象是那样。)
157. Don't get on my nerves!(不要搅得我心烦。)
158. Everything will be fine.(一切都会很好。)
159. I'll be ready in a few minutes.(再过几分钟就好了。)
160. I wonder what happened to him.(我不知道他出什么事了。)
161. You are just trying to save face.(你只是想挽回面子。)
162. His argument doesn't hold water.(他的论点站不住脚。)
163. Your face tells it all.(你的表情透露了一切。)
164. The days are getting longer.(白天越来越长了。)
165. You've got to do something.(你一定要想办法。)
166. I hope this will teach you a lesson.(希望这会给你一个教训。)
167. I feel younger than ever.(我觉得比以前年轻。)
168. It's a hard job, but I hope he can make it.
(这不是件容易的差事,但我希望他能做到。)
169. Don't look wise.(别自作聪明。)
170. I'm afraid all my efforts were in vain.(我担心我的努力全白费了。)
171. What happened to you memory?(你的记性是怎么搞的?)
172. You're going too far!(你太过分了!)
173. Don't bury your head in the sand.(不要逃避现实。)
174. I have no other choice.(我别无选择。)
175. I don't have the nerve to do it.(我没胆/勇气去做。)
176. It's a matter of life and death.(事关生死。)
177. Nothing works.(什么都不对劲儿。)
178. Money will come and go.(钱乃身外之物。)
179. He's been behind bars for almost 30 years.(他坐了将近30年牢。)
180. If I had known that, I could have helped you.
(假如我早知道,我就能帮你了。)[最实用的虚拟语气]
181. I couldn't care less.(我不在乎。)
182. You have my word.(我保证。)
183. He hit the ceiling at the news.(他听到那消息暴跳如雷/大发雷霆。)
184. I don't mind staying up late.(我不在乎熬夜。)
185. You're too outspoken.(你太直率了。)
186. I can't afford it.(我承担/买不起。)
187. I think it's a reasonable price.(我觉得这是个合理的价钱。)
188. I'd like to try on these hats.(我想试试这些帽子。)
189. He puts me to shame.(他使我蒙羞。)
190. Every dog has his day.(凡人皆有得意时。)
191. Don't give me any excuses.(不要给我任何理由。)
192. Are you out of you mind?(你疯了吗?)
193. He's been everywhere.(他到处都去过了。)
194. What's bothering you?(什么在困扰你?)
195. Who is to blame?(该怪谁?)
196. There're a lot of rumors going around.(很多流言流传着。)
197. I don't feel up to that.(我觉得不能胜任那工作。)
198. I'm mad at myself.(我生自己的气。)
199. It's raining cats and dogs.(下着倾盆大雨。)
200. The sky is getting very cloudy.(天空的云越来越多了。)
201. You won't get away with this.(你逃不掉惩罚的。)
202. I'm tired of going to school day after day.(我厌倦每天上学。)
203. Who am I supposed to see?(我应该去见谁?)
204. His idea is childish.(他的想法很幼稚。)
205. I need small change.(我需要零钱。)
206. Don't try to brainwash me.(别想给我洗脑。)
207. I don't seem to have any luck today.(我今天运气不好。)
208. That reminds me.(那提醒了我。)
209. What the hell are you doing?(你到底在做什么?)
210. I can't seem to get to sleep.(我好象睡不着。)
211. You look very serious about something.(你似乎有很严重的事。)
212. I hope I'm not in the way.(我希望没有造成妨碍。)
213. What are you so excited about?(什么事让你如此兴奋?)
214. Tell me about you trouble.(把你的烦恼告诉我。)
215. I feel much better now.(我感觉好多了。)
216. I hope you will get well soon.(希望你很快会恢复。)
217. She is sick in bed.(她卧病在床。)
218. I have a slight fever.(我轻微发烧。)
219. A fool never learns.(傻瓜永远学不会。)
220. This is the schedule for tomorrow.(这是明天的日程安排。)
221. How late are you open?(你们营业到多晚?)
222. I'm here on business.(我来这里出差。)
223. What's Hong Kong famous for?(香港以什么闻名?)
224. What brings you to Beijing?(什么风把你吹到北京来的?)
225. She looks blue.(她满面忧伤。)
226. I just don't know what to say.(我就是不知道说什么。)
227. Let's have fun tonight.(今晚让我们乐一乐。)
228. Thank you for coming to see me off.(谢谢你来为我送行。)
posted @ 2006-07-18 18:56 konhon 优华 阅读(350) | 评论 (0)编辑 收藏

     摘要: 覆盖版本 1.3.1 1. Prototype是什么? 或许你还没有用过它, prototype.js 是一个由Sam Stephenson写的JavaScript包。...  阅读全文
posted @ 2006-07-13 06:53 konhon 优华 阅读(524) | 评论 (0)编辑 收藏

早上起来之后,使用Google免费提供的WIFI( http://wifi.google.com/download.html )上网,
  觉得网速有些慢就打开了Google网页加速器 (
http://webaccelerator.google.com/ )
  上网之后,打开了装有GoogleToolbar(
http://toolbar.google.com/ ) 的浏览器,
  看看自己的日程表,(
http://www.google.com/calendar ),查看了一下自己的安排。
  到Google实验室 (
http://labs.google.com/ )看有没有新的google工具。
  打开自己的Google软件包升级google软件。(
http://pack.google.com/ )
  用Gmail(
http://mail.google.com/ ) 处理email,
  
http://finance.google.com/ 看看股市行情。
  到 GoogleNews(
http://news.google.com/ ) 看看新闻,
  艾,这句英文不理解copy到
http://www.google.com/translate_t 看看google怎么解释。
  上Google网上论坛 (
http://groups.google.com/ )看有没有自己感兴趣的消息。
  用 GoogleReader(
http://reader.google.com/ ) 看看朋友们的blog更新了没有,
  然后用GoogleTalk(
http://talk.google.com/ ) 跟他们聊聊天。
  朋友说起了一个陌生的名词,赶紧去
http://answers.google.com/ 看看是什么意思,免得让朋友鄙视。
  听朋友说起,发生了什么上不了新闻的大事,赶紧搜索一下BLOG(
http://blogsearch.google.com/ ),
  上不了新闻,总有人写在blog里面巴。
  突然很想要自己昨天搜索的一个页面的信息,一时想不起来,没有关系
  到Google搜索历史 (
http://www.google.com/searchhistory )看看。
  为了更好的搜索,先设置一下自己的个性化搜索再说(
http://labs.google.com/personalized ).
  在网上逛了一圈之后,觉得某个页面有意思看不完的就用Google书签(
http://www.google.com/bookmarks/ )记下来,
  看得完的就用google记事本(
http://www.google.com/notebook/ )记下中间的精彩词句。
  看到深有感触的时候,想用Blogger(
http://www.blogger.com/ ) 写自己的blog,
  在写blog时使用 GoogleImage(
http://www.google.com/imghp?hl=en&tab=wi&q =)搜索漂亮的图片点缀一下,
  然后用Picasa(
http://www.picasa.com/ ) 处理一些图片后上传,
  这时他突然忘记电脑中某些文件放在哪儿了,
  于是用GoogleDesktop(
http://desktop.google.com/ ) 搜索了一下自己的电脑,
  很快就在某个角落里找到了那些尘封已久的文件。
  自己的个性化主页(
http://www.google.com/ig )也该打理打理了,打理一下,顺便看看
  Google目录(
http://catalogs.google.com/ Google)和 google网页目录( http://www.google.com/dirhp ).
  在网上瞎晃也挺无聊的,来点悬的 去Google火星(
http://www.google.com/mars/ ),
  Google月球 (
http://moon.google.com/ )转转。
  这时,收到了GoogleAlert(
http://www.google.com/alerts ) 的提醒,
  说关注的笔记本电脑本周已经到货,兴致高了起来,
  就打开 GoogleLocal(
http://local.google.com/ ) 想了解一下本地还有没有其他的这方面信息的,
  接着用 Froogle(
http://froogle.google.com/ ) 做了购物之前的对比,
  对比完之后觉得这家店的商品不错,买了。
  有了新的就扔旧的,男人的本色体现。要处理掉旧的笔记本电脑也很方便,
  立马到GoogleBase(
http://base.google.com/ ) 发布了相关信息,等待买家来临。
  再到
https://adwords.google.com/select/ 查看所售产品的买家。
  要生活就得工作,工作就是做一家网站,
  当然啦,说得好听点叫"事业",男人嘛,都是有点虚荣心的。
  网站使用的是GooglePages(
http://pages.google.com/ )
  提供的主机空间,每天用sitemap(
https://www.google.com/webmasters/sitemaps/ )
  向Google提交更新信息。作这个可不是活雷锋,做网站做的是生意。
  想查询一下昨天GoogleAdsense(
http://www.google.com/adsense ) 的收入多少,
  因为它是收入来源阿,呵呵,还不错呢。
  接着用GoogleAnalytics(
http://www.google.com/analytics ) 查看了一下今日网站的访问情况,
  顺便思考了一下网站的定位和今后的发展方向。
  觉得每天自己都要 用GoogleAnalytics分析很麻烦,写个程序自己分析多好,
  于是到
http://code.google.com/ 下载开发包开发一个小程序挂在google桌面栏( http://deskbar.google.com/ )上,
  到google的web API( http://www.google.com/apis ) 看google共来了哪些API函数可以调用。
  折腾了大半天也累了想慰劳一下自己,于是就到GoogleBookSearch(
http://books.google.com/ ) 和GoogleVideo( http://video.google.com/ )
Google音乐(
http://www.google.com/musicsearch )找了一些书和视频来看。发现一部电影不错,于是用
GoogleMovieShowtimes(
http://google.com/movies )搜索它在本市的上映时间。
  正在优哉游哉的时候,GoogleTalk上有个朋友帮忙找一些论文方面的资料,
  为避免影响自己看电影,赶紧让这个"懒人"使用GoogleScholar(
http://scholar.google.com/ )。
  原来这部电影现在正在上映中,兴奋不已,恨不得立马杀进电影院。
  可是,可是,电影院在哪里呢?用GoogleMaps(
http://maps.google.com/ )查询到电影院的具体位置后,
  想叫个出租车直接去电影院,于是使用GoogleRidefinder(
http://labs.google.com/ridefinder )
  找到出租车信息,很快就坐在电影院里了。看电影时觉得有个演员看着眼熟,
  于是拿起手机,用GoogleMobile(
http://mobile.google.com/ )
  搜索关于他的信息,然后用GoogleSMS(
http://sms.google.com/ )订阅。
  看完电影已经是深夜,回到家里,突然想起该计划一下下月的欧洲度假了,
  上Google地球(
http://earth.google.com/ ),看一下国家地貌,
  用Google旅行计划者 (
http://www.google.com/transit )看一下旅游地的设施分布,下榻宾馆。
posted @ 2006-07-10 06:32 konhon 优华 阅读(541) | 评论 (0)编辑 收藏