2005年5月30日星期一

Mashups:Web 应用程序新成员

  Mashup 是一种令人兴奋的交互式 Web 应用程序,它利用了从外部数据源检索到的内容来创建全新的创新服务。它们具有第二代 Web 应用程序的特点,也称为 Web 2.0.这篇简介性的文章对 mashup 是什么、目前流行的不同种类的 mashup 以及 mashup 开发人员用于创建自己的应用程序的支持技术进行了探索。另外,您还将看到 mashup 开发人员面临的一些新的技术和社会挑战。

  简介

  一种新型的基于 Web 的数据集成应用程序正在 Internet 上逐渐兴起。通常用术语 mashup 表示,它们的流行萌芽于对交互式用户参与和集成第三方数据的类似于科学怪人方式的重视。我们使用萌芽一词是有一定原因的;mashup Web 站点的特点就表现为它正在 Web 上扎根发芽,它们利用了从组织边界之外的数据源获取的内容和功能。

  mashup 这种隐晦的数据集成定义当然不是非常严格。要深入了解什么是 mashup,就应该了解一下这个单词的起源:它源于流行音乐,mashup 是从两首不同的歌曲(通常属于不同的流派)中混合演唱和乐器的音轨而构成的一首新歌。与那些 “bastard pop” 歌曲类似,mashup 也是内容的一种不常见的创新组合(通常都源自于无关的数据源),这都是人工进行合成的(而不是通过计算机来合成的)。

  那么,mashup 看起来到底是什么样子呢?ChicagoCrime.org 的 Web 站点上有非常直观的例子,它解释了地图 mashup 到底是什么。最初广泛流行起来的 mashup 之一是一个 Web 站点,它将芝加哥警局在线数据库中的犯罪记录与 Google Maps 上的地图复合在一起。用户可以与 mashup 站点进行交互,例如告诉它在图形界面上显示一个包含图钉的地图,图钉展示南加州最近所有入室抢劫案件的详细信息。这种概念和呈现方式非常简单,犯罪和地图数据复合之后提供的可视化的功能非常强大。

  在 Mashup 流派 中,我们探索了流行的 mashup,包括地图 mashup.相关技术 简要介绍了与 mashup 的构建和操作有关的技术前景。技术挑战 和 社会挑战 分别介绍了影响 mashup 的主要技术挑战和社会挑战。

  Mashup 类型

  在本节中,我们将简要介绍对出名的 mashup 类型进行的一些调查。

  地图 mashup

  在这个阶段的信息技术中,人们搜集大量有关事物和行为的数据,二者都常常具有位置注释信息。所有这些包含位置数据的不同数据集均可利用地图通过令人惊奇的图形化方式呈现出来。mashup 蓬勃发展的一种主要动力就是 Google 公开了自己的 Google Maps API.这仿佛打开了一道大门,让 Web 开发人员(包括爱好者、修补程序开发人员和其他一些人)可以在地图中包含所有类型的数据(从原子弹灾难到波士顿的 CowParade 奶牛都可以)。为了不落于人后,Microsoft(Virtual Earth)、Yahoo(Yahoo Maps)和 AOL(MapQuest)也很快相继公开了自己的 API.

  视频和图像 mashup

  图像主机和社交网络站点(例如 Flickr 使用自己的 API 来共享图像)的兴起导致出现了很多有趣的 mashup.由于内容提供者拥有与其保存的图像相关的元数据(例如谁拍的照片,照片的内容是什么,在何时何地拍摄的等等),mashup 的设计者可以将这些照片和其他与元数据相关的信息放到一起。例如,mashup 可以对歌曲或诗词进行分析,从而将相关照片拼接在一起,或者基于相同的照片元数据(标题、时间戳或其他元数据)显示社交网络图。另外一个例子可能以一个 Web 站点(例如 CNN 之类的新闻站点)作为输入,并在新闻中通过照片匹配而将照片中的内容以文字的形式呈现出来。

  搜索和购物 mashup

  搜索和购物 mashup 在 mashup 这个术语出现之前就已经存在很长时间了。在 Web API 出现之前,有相当多的购物工具,例如 BizRate、PriceGrabber、MySimon 和 Google 的 Froogle,都使用了 B2B 技术或屏幕抓取的方式来累计相关的价格数据。为了促进 mashup 和其他有趣的 Web 应用程序的发展,诸如 eBay 和 Amazon 之类的消费网站已经为通过编程访问自己的内容而发布了自己的 API.

  新闻 mashup

  新闻源(例如纽约时报、BBC 或路透社)已从 2002 年起使用 RSS 和 Atom 之类的联合技术来发布各个主题的新闻提要。以联合技术为基础的 mashup 可以聚集一名用户的提要,并将其通过 Web 呈现出来,创建个性化的报纸,从而满足读者独特的兴趣。Diggdot.us 正是这样的一个例子,它合并了 Digg.com、Slashdot.org 和 Del.icio.us 上与技术有关的内容。

  相关技术

  本节概要介绍了可以促进 mashup 发展的技术。

  架构

  mashup 程序从架构上是由 3 个不同的部分组成的,它们在逻辑上和物理上都是相互脱离的(可能由网络和组织边界分隔):API/内容提供者、mashup 站点和客户机的 Web 浏览器。

  API/内容提供者。它们是(有时是未知的)正在进行融合的内容的提供者。在 ChicagoCrime.org mashup 的例子中,提供者是 Google 和芝加哥警察局。为了方便数据的检索,提供者通常会将自己的内容通过 Web 协议对外提供(例如 REST、Web 服务和 RSS/Atom,稍后将加以介绍)。然而,很多有趣的潜在数据源可能并没有方便地对外提供 API.从诸如 Wikipedia、TV Guide 和所有政府和公共领域的 Web 站点上提取内容的 mashup 都是通过一种称为屏幕抓取(screen scraping) 的技术实现的。 在这种情况中,屏幕抓取就意味着使用一种工具从内容提供者那里提取信息的过程,这个工具会尝试对提供者的专为阅读而设计的页面进行分析。

  mashup 站点。即 mashup 所在的地方。非常有趣的是,这不过是因为这里是 mashup 逻辑所在的地方,而不是执行这些逻辑的地方。从一方面来说,mashup 可以直接使用服务器端动态内容生成技术(例如 Java servlets、CGI、PHP 或 ASP)实现为类似传统 Web 应用程序。

  另外,合并内容可以直接在客户机的浏览器中通过客户机端脚本(即 JavaScript)或 applet 生成。这种客户机端的逻辑通常都是直接在 mashup 的 Web 页面中嵌入的代码与这些 Web 页面引用的脚本 API 库或 applet(由内容提供者提供)的组合。mashup 使用的这种方法可以称为胖 Internet 应用程序(RIA),这意味着它们是以交互式用户体验为导向的。(胖 Internet 应用程序具有 “Web 2.0” 的一个特点,Web 2.0 是 WWW 的新一代服务。)客户机端进行数据集成的优点包括:对 mashup 服务器的所产生的负载较轻(数据可以直接从内容提供者那里传送过来)、具有更好无缝用户体验(页面可以请求对内容的一部分进行更新,而不用刷新整个页面)。Google Maps API 的设计就是为了通过浏览器端的 JavaScript 进行访问,这是客户机端技术的一个例子。

  通常,mashup 都使用服务器和客户机端逻辑的组合来实现自己的数据集成。很多 mashup 应用程序都使用了直接由用户提供的数据,(至少)使一个数据集是本地的。另外,对多数据源的数据执行复杂查询(例如 “请显示在 Kevin Bacon 的电影中出演角色的男演员所购买的房产的平均价格”)所需要的计算是不可能在客户机的 Web 浏览器中执行的。

  客户机的 Web 浏览器。这是以图形化的方式呈现应用程序的地方,也是用户交互发生的地方。正如上面介绍的一样,mashup 通常都使用客户机端的逻辑来构建合成内容。

  Ajax

  关于 Ajax 究竟是否是一个缩写词(有人认为它表示 “Asynchronous JavaScript + XML”)还存在争论。不论如何,Ajax 都是一个 Web 应用模型,而不是一种特定的技术。它包括几种关注内容的异步加载和呈现的技术:

  XHTML 和用于确定呈现风格的 CSS

  浏览器为动态显示和交互所提供的文档对象模型(DOM)API

  异步数据交换,通常是 XML 数据

  浏览器端的脚本,主要是 JavaScript

  将这些技术结合在一起使用时,它们的目标是通过与内容服务器交换少量的数据为用户创造平滑、良好的 Web 体验,而不用在用户执行某些操作之后重新加载并重新呈现整个页面。我们可以使用各种 Ajax 工具包和库(例如 Sajax 或 Zimbra)为 mashup 构建 Ajax 引擎,这通常是使用 JavaScript 实现的。Google Maps API 包括一个专用的 Ajax 引擎,它对用户体验的影响着实强大:它的工作方式类似于一个真正的本地应用程序,其中没有滚动条可以操作,也没有移动按钮强制页面重新加载。

  Web 协议:SOAP 和 REST

  SOAP 和 REST 都是与远程服务进行通信所使用的与平台无关的协议。作为面向服务的架构范式的一部分,客户机使用 SOAP 和 REST 与远程服务进行交互,而不用了解它们底层的平台实现:服务的功能完全是由它请求和收到的显影消息描述来实现的。

  SOAP 是 Web 服务范式中的一种基本技术。最初它是 Simple Object Access Protocol 的缩写,现在代表 Services-Oriented Access Protocol(或直接缩写为 SOAP),这是因为它的重点已经从基于对象的系统转向消息交换的交互操作。SOAP 规范中有两个关键组件。第一个组件是使用 XML 消息格式进行平台无关的编码,第二个组件消息结构,包括消息头和消息体。消息头用来交换非特定于应用负载(消息体)的相关信息,例如认证信息。SOAP 消息体封装了应用程序特有的负载。Web 服务的 SOAP API 是由 WSDL 文档来描述的,它们本身都描述了一个服务对外提供哪些操作,它可以接受的消息格式(使用 XML Schema),以及如何对其进行寻址。SOAP 消息通常都是通过 HTTP 协议传送的,不过也可以通过其他方式传送(例如 JMS 或 e-mail)。

  REST 是 Representational State Transfer 的缩写,这是一种只使用 HTTP 和 XML 进行基于 Web 通信的技术。它的简单性和缺少严格配置文件的特性使它与 SOAP 很好地隔离开来,并且吸引了大家广泛的兴趣。与我们在现代变成语言中可以找到的典型基于动词的接口不同(它们构成了各种方法,例如 getEmployee()、addEmployee()、listEmployees() 等)不同,REST 从根本上来说只支持几个操作(即 POST、GET、PUT、DELETE),这些操作适用于所有的消息。REST 强调信息本身,称为资源。例如,一个员工的资源记录是由 URI 标识的,这可以通过一个 GET 方法获得,并使用一个 PUT 操作进行更新,等等。使用这种方法,REST 就与文档文本风格的 SOAP 服务非常类似。

  屏幕抓取

  正如前面介绍的一样,缺乏内容提供者提供的 API 通常会强制要求 mashup 开发人员采取屏幕抓取的方式来提取自己希望集成的信息。抓取(Scraping) 是使用软件工具处理并分析最初为人们阅读而编写的内容,从而从中提取出可以通过编程进行使用和操作的信息的语义数据结构表示。有些 mashup 使用屏幕抓取技术来获取数据,特别是从公用领域提取数据。例如,房地产地图 mashup 就可以在制图供应商提供的地图上显示售价和租价,这些数据可能是从当地的记录办公室抓取来的 “comp” 数据。另外一个抓取数据的 mashup 项目是 XMLTV,这是一组汇聚了各地电视节目清单的工具集。

  屏幕抓取通常被认为是一个不雅的解决方案,这是有一定的原因的。它有两个主要的固有缺点。第一个缺点在于,与使用接口的 API 不同,抓取在内容提供者和内容消费者之间没有明确的联系。抓取者必须围绕一个源内容模型设计自己的工具,并且希望提供者一直采用这种模型来呈现内容。Web 站点倾向于周期性地更新外观,以保持新颖和时髦,对于抓取者来说,这是一项非常头痛的维护任务,因为工具很可能会失效。

  第二个问题是缺少成熟的可重用屏幕抓取工具包软件,通俗地说就称为 scrAPI.此类 API 和工具包的消亡很大程度上是由于每种抓取工具都有极为特定于应用程序的需求。这为开发人员带来了过多的开发工作,他们必须对内容进行反向工程处理、开发数据模型、分析并从提供者站点上汇集原始数据。

  语义 Web 和 RDF

  屏幕抓取不好的一面直接源自于一个事实:为阅读而创建的内容并不太适合机器自动处理。这促进了语义 Web 的诞生,它是现有 Web 的增强版本,在为人们设计的内容中增加了足够多的可供机器阅读的信息。在语义 Web 环境中,信息这个术语与数据有所差异;数据只有在传达了自己的含义(即数据可被理解)之后才会变成信息。语义 Web 的目标是创建 Web 基础设施,使用元数据对数据进行增强,从而使数据变得有意义,最终使数据变得适合进行自动化、集成、推理和重用。

  被称为资源描述框架(RDF)的 W3C 系列规范就是服务于这个目的的技术,它用来建立描述数据的语义结构。XML 本身并不足以实现这种功能;它太过随意,我们可以使用很多方法进行编码来对相同的数据进行描述。RDF-Schema 补充了 RDF 的能力,提供了以机器可读的方式编码概念的功能。一旦可通过一种数据模型描述数据对象,RDF 就提供了通过主语-谓语-对象三元组(主语 S 与对象 O 具有关系 R)在数据对象之间构建关系的能力。数据模型与关系图之间的区别让我们可以进行存在式的构建,这是可以进行搜索和形式化推理的知识的层次化结构。例如,我们可以定义这样一个模型:“肉食动物” 是 “动物” 的一个子类,条件是它 “吃” 其他 “动物”;并创建两个实例:一个实例是印度豹和北极熊,并提供它们的生存环境;另外一个是瞪羚和企鹅,并提供它们的生存环境。假设我们将这些单独的模型实例集成在一起,就可以推论说印度豹可能会以瞪羚为食,但却不会吃企鹅。

  RDF 数据在很多领域中都迅速得到了应用,包括社交网络应用程序(例如 FOAF —— Friend of a Friend)和联合(例如 RSS,接下来就会介绍)。另外,RDF 软件技术和组件都正在成熟到一定规模,尤其是在 RDF 查询语言(例如 RDQL 和 SPARQL)、编程框架和推理引擎(例如 Jena 和 Redland)领域。

  RSS 和 ATOM

  RSS 是一系列基于 XML 的联合格式。在这种情况中,联合(syndication)是指一个发布内容的 Web 站点可以创建 RSS 文档并在 RSS 发布系统中注册自己的文档。支持 RSS 的客户机可以查看新内容,并通过适当的方式连接到这些内容上。RSS 已经被用来联合广泛的内容,从新闻到头条、CVS 或 WIKI 页面的修改日志、项目更新甚至诸如无线电节目之类的视听数据。版本 1.0 基于 RDF,但最新的 2.0 版本不以 RDF 为基础。

  Atom 是一种更新但非常类似的联合协议。它是 Internet Engineering Task Force(IETF)提出的一项草案标准,人们希望通过 Atom 提供比 RSS 更好的元数据维护;提供更好、更为全面的文档,并结合构建通用数据表示的概念。

  这些联合技术对于集成基于事件或更新驱动内容的 mashup 来说都非常有用,例如新闻和 weblog 聚集程序。

  技术挑战

  与其他数据集成领域一样,mashup 开发也充斥着许多亟待解决的技术挑战,随着 mashup 应用程序特性和功能的进一步丰富,这种挑战也变得更加严峻。本节简单介绍了一些挑战,其中有些挑战目前已经能够解决或缓解,而其他问题依然没有解决。

  数据集成挑战:语义和数据的品质

  品质调查显示,当今的企业 IT 首要关注的问题就是是企业虚拟组织中的数据集成。(在这种情况中,我们使用了 虚拟组织(virtual organization) 这个术语表示很多联合业务单元的组合,每个业务单元都包含在自己的管理域中。)与很多发现自己忙于集成传统数据源的企业 IT 管理人员一样(例如,创建可以反映当前业务状况的企业仪表板),mashup 开发人员需要面对类似源自于在异构数据集之间共享语义的挑战。因此,要了解 mashup 开发人员是如何为此作出准备,只需了解企业 IT 所面临的集成挑战。

  例如,我们必须设计数据模型之间的转换系统。在将数据转换成通用的格式时、在映射不完整时(例如,一个数据源可能有一个模型,其中一个地址类型包含了一个国家字段,而另外一个模型中没有这个字段),我们必须进行一些合理的假设。尽管已经面临这些挑战,但是 mashup 开发人员可能并不是源数据模型领域的专家,因为这些模型可能是第三方的产品,这些合理的假设可能并不直观清晰,这更加剧了挑战的严峻性。

  除了缺少数据和映射不完整之外,mashup 设计者可能会发现他们希望集成的数据并不适合进行机器自动化处理;这将带来很多净化工作。例如,执法逮捕记录可能不一致:记录中可能为名字使用了常用的缩写形式(例如,一条记录中使用的是“mkt sqr”,另外一条记录中使用的是“Market Square”),这使得关于等同性的自动推理变得非常困难,即使采用很好的启发式规则也很难实现。语义建模技术,例如 RDF,可以帮助简化对不同数据集之间自动进行推理所面临的问题,这些数据集是内嵌在数据存储介质中的。对于传统的数据源来说,通常需要投入大量人力物力,进行分析和数据净化工作,然后才能将其用于语义建模技术。

  mashup 开发人员可能还必须面对 IT 集成管理人员不需要面对的一些问题,其中一个问题是数据污染。作为应用程序设计的一部分,很多 mashup 都要求公共用户提供输入。wiki 应用程序领域的研究表明,这是一把双刃剑:它可能非常强大,因为可以提供开放的贡献和最佳的数据革新,但这又会导致不一致、不正确或容易产生误导的数据项。后者可能会危及数据的可信度,最终降低 mashup 带来的价值。

  mashup 开发人员需要面对的另外一种集成问题是由于获取数据必须采用屏幕抓取技术而引起的。正如上一节所讨论的一样,分析和获取工具以及数据模型都需要大量与反向工程相关的工作。在最理想的情况下,可以创建这些工具和模型,但依然存在一个问题:源站点如何呈现自己的内容,这可能会破坏集成过程,并导致 mashup 应用程序出错。

  组件挑战

  尽管 Web 开发的 Ajax 模型可以比传统的整个页面刷新技术提供更为丰富而且更加无缝的用户体验,但是也带来了一些难题。作为基础来说,Ajax 要求将浏览器的客户端脚本功能与自己的 DOM 配合使用,实现一种内容交付方法,这完全是由浏览器设计者所设想的。(可能 Ajax 类似于黑客的特性增加了它的吸引力。)然而,这使基于 Ajax 的应用程序具有相同的浏览器兼容问题,这些问题从微软开发 Internet Explorer 以来就一直困扰着 Web 开发人员。例如,Ajax 引擎利用了一个 XMLHttpRequst 对象来与远程服务器异步交换数据。在 Internet Explorer 6 中,这个对象是使用 ActiveX 实现的,而不是使用本地 JavaScript 实现的,这要求必须启用 ActiveX.

  更加基本的一个需求是 Ajax 要求必须在用户的浏览器上启用 JavaScript.这对于大部分人来说可能是一个合理的假设,但是对于某些特定的用户,他们的浏览器或自动化工具可能不支持 JavaScript,也可能没有启用对 JavaScript 的支持。这种工具有 robot、spider 和 为 Internet 和 Intranet 搜索引擎搜集信息的 Web 爬行榜。如果没有功能方面的让步,基于 Ajax 的 mashup 应用程序也可能会发现自己失去了部分用户群,搜索引擎的吸引力也会降低。

  使用 JavaScript 来异步更新页面中的内容还会产生用户界面的问题。由于内容不再需要链接到浏览器地址栏中的 URL 上,用户可能无法体验到正常使用浏览器的 BACK 按钮或书签时的功能。另外,尽管 Ajax 可以通过请求增量内容更新来减少延时,但不好的设计可能会对用户体验造成负面影响,例如当更新粒度非常小时,所更新的数量和负载会占据所有的可用资源。另外,在加载界面或更新内容时,我们还需要关心如何为用户提供支持(例如,使用诸如进度条之类的可视化反馈技术)。

  与任何分布式交叉领域的应用程序一样,mashup 开发人员和内容提供者同样也需要解决一些安全性问题。身份的概念可能会成为一个棘手的主题,传统 Web 主要是为匿名访问而构建的。单点登录是一种令人满意的特性,但在这方面存在多种彼此竞争的技术(从 Microsoft Passport 到 Liberty Alliance),因此可能会导致产生杂乱的身份命名空间,我们必须对之进行集成。内容供应商可能会在自己的 API 中采用身份验证和授权模式(这需要安全身份或安全确认属性的概念)来强制采用涉及付费订阅或敏感数据的业务模型。敏感数据也可能要求一定的机密性(即加密),我们必须要清楚何时将它们与其他资源集成在一起,而不会带来风险。身份对于审计和法规遵从性来说也非常重要。另外,由于数据集成是在服务器和客户端同时发生的,因此从用户到 mashup 服务进行的身份和证书委托也可能会成为一个需求。

  社会挑战

  除了上一节介绍的技术挑战之外,随着 mashup 的进一步普及,也出现了(或即将出现)一些社会问题。

  mashup 开发人员需要面对的一个最严重的社会问题就是:在知识产权的保护和消费者的私密性与公用化以及信息的自由流动之间达成一种平衡。不知情的内容提供者(屏幕抓取的目标)、提供 API 来帮助数据检索的内容提供者都可能需要确定其内容是否正在被他人以未获得自己批准的方式使用。有关 Web 聚合和规则的介绍,请参见 参考资料。

  mashup Web 应用程序仍然处于萌芽阶段,只是有一些开发爱好者在业余时间编写 mashup.这些开发人员可能并没有意识到(或不关心)安全性之类的问题。另外,内容供应者也只是刚刚开始看到为基于机器的内容访问提供 API 的价值所在,而且还有很多人不认为这是一个核心业务关注点。这一切结合在一起,导致目前的软件质量低下,因为诸如测试和品质保证等工作的优先级都要低于概念验证和创新的优先级。为促进软件开发过程的成熟,社区必须作为一个整体协同工作,制定开放标准和可重用的工具包。

  在 mashups 可以从一种炫酷的玩具变成程序的应用程序之前,还需要做大量的工作,形成高度健壮的标准、协议、模型和工具包。为此,主要的软件开发业界先驱、内容提供者和企业家必须认识到 mashup 的价值,它意味着可行的商业模型。API 提供者需要确定是否对自己的内容收取费用,如果需要收取费用,应该怎样收费(例如,通过订阅还是按使用次数收费)。或许他们将提供不同级别的服务品质。有些市场提供者,例如 eBay 或 Amazon,可能会发现免费 API 将提高产品周转。mashup 开发人员可能要寻求一种基于广告的创收模型,或者构建有趣的 mashup 应用程序赢得人们的认同。

  结束语

  mashup 的确是一种相当新颖的 Web 应用程序。源于语义 Web 领域的数据建模技术和松耦合、面向服务、与平台无关的通信协议相结合,最终将提供一种开发可充分利用并整合大量 Web 信息的应用程序所必需的基础设施。随着 mashup 应用程序越来越多地被人们所关注,了解它将对某些社会问题(例如公共使用和知识产权保护之间的问题)和其他应用程序领域(跨组织边界集成数据,例如网格计算和 B2B 的工作流管理)产生怎样影响,这一点非常有趣。

  要深入了解 mashup 的开发,请关注 developerWorks 的系列新教程,它将教您构建自己的 mashup.实际上,这个系列的文章还会向您介绍语义 Web 技术和使其他人创建自己的 mashup 的现有技术。

  来源:http://www.ibm.com/developerworks/cn/xml/x-mashups.html

2005年5月28日星期六

提交表单后PHP不能获取提交内容

  问题:网页上提交表单之后,PHP为什么不能获取提交的内容?然而在老版本的PHP上运行却正常。

  新版的PHP已经废弃了原来的表单内容处理方式,即不再把提交的表单的内容直接复制到一个同名变量中。解决办法有四个:

  1. 修改php.ini,查找 register_globals,将其值修改为 On。这样就可以像原来一样,例如,提交的表单中包括一个名为"username"的变量,那么在php中就可以直接使用$username来访问该变量。但是,除非你要使用一段旧的代码而考虑到兼容性问题,否则不建议使用该方法。

  2. 使用 $HTTP_GET_VARS、$HTTP_POST_VARS数组来访问,例如写成$HTTP_POST_VARS["username"]的形式。不过该方法也不建议采用。

  3. (推荐)使用 $_POST、$_GET等数组来访问,例如写成 $_POST["username"]的形式。建议采用这种方法。

  4. (推荐)使用 import_request_variables 函数。该函数将提交内容导入到变量中。例如 import_request_variables("gp", "rvar_");第一个参数可以选择g,p,c,分别表示导入 GET,POST,COOKIE 变量;第二个参数为导入后的变量前缀。执行上面的语句后即可使用 $rvar_username 来访问提交的 username 变量。使用import_request_variables("gp", "");可以兼容以前的PHP程序。

  Tips: 第三项中提到的预设变量有: $GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIE, $_FILES, $_ENV, $_REQUEST, $_SESSION等。详细信息请参考PHP手册。

2005年5月26日星期四

预防夺命杀手-高血压

  人体的血压易受多种因素影响而发生波动,正常生理状态下,血压常会随着人们的饮食、起居、脑力活动、体力活动及情绪变化等有一定的波动,这种波动是有一定范围的,是血压为适应生理需要而进行自我调节的结果,属于正常反应。若血压高出正常范围者,即可称为高血压。高血压是一种以动脉压升高为特征,伴有心、脑、肾等器官异常的全身性疾病。早期表现为血压升高和神经系统功能失调(头痛、头昏、头胀、失眠、心悸、健忘等),后期出现各有关脏器的功能不全。

  这些天公司进行了体检,我才发现自己的血压已经到了高血压的临界值(临界高血压是140/90毫米汞柱),危险啊,健康对于一个人来说才是根本,没有了健康,其他什么东西都是空谈。

  我查看了一些资料,上面说:合理膳食、适量运动、戒烟限酒、心理健康为人类心脏健康的“四大基石”。因此我决定采取以下措施来降低血压:

  合理安排膳食结构,不吃脂肪、高胆固醇食物,限制过量热能,防止超常体重。限制食盐。每天食盐量小于5克,多喝酸牛奶。不吸烟不喝酒。心理健康、生活规律、保持良好的心境和情绪稳定。适当运动,锻炼身体。

  相对其他几项来说,锻炼运动对于我来说比较难以坚持,做为一个知识工作者,平时的运动量就非常少,工作也很忙碌。因此我决定每天早上进行晨练,这样即可以锻炼身体又不影响正常工作,花费的时间也较少。

  战胜高血压是一个漫长的过程,必须有好的心态和积极的行动,必须坚持良好的生活方式和科学地降压方法,要持之以恒,如果我能长期坚持这些的标准,相信一定会有所收获。我的目标就是:把我的血压降低到高压小于110毫米汞柱,低压小于75毫米汞柱。

  参考:高血压有哪些危害

  轻型高血压(低压为90-104mmHg),如果不给予治疗,7-10年后约10%的病人会死亡,50%左右的病人发生左室肥大、视网膜病变、脑血管疾病、心脏以及肾脏功能障碍甚至衰竭。

  中重度高血压(低压大于105mmHg),若不及时治疗,5年之后约有一半左右的病人会发生心血管并发症,年龄越大出现并发症的机会越多。

  低压低于130mmHg时,病情进展较为缓慢,若将血压稳定在理想水平,可延缓心血管并发症的发生。

  低压超过130mmHg且合并有心、脑、肾功能障碍时,若不及时治疗,心、脑、肾等脏器会出现功能衰竭,反过来又会使血压上升,往往在半年内夺去病人的生命。

2005年5月16日星期一

Windows2003中不允许的父路径问题

  今天解决了一个问题。

问题:

Active Server Pages 错误 ''ASP 0131''

不允许的父路径

/Main/default.asp,行 2

包含文件 ''../public/ucode.asp'' 不能用 ''..'' 表示父目录。

解决方法:

类似 ../ 父路径的问题.IIS6 为提高安全性,默认设置是禁止使用父路径,所以你的程序会出错,解决方法也很简单,在IIS6的站点属性中选择“使用父路径”即可。

IIS6==>站点属性==>主目录==>配置==>选项==>启用父路径

这样就可以了, 告诉你个详细的方法,在IIS6里点帮助(F1),然后搜索“父路径”,里面有详细的设置方式。

2005年5月13日星期五

在HTML文件引入其它HTML文件的几种方法

在论坛中常常有网友问到,可以在一个html的文件当中读取另一个html文件的内容吗?答案是确定的,而且方法不只一种,在以前我只会使用iframe来引用,后来发现了另外的几种方法,那今天就总结这几种方法让大家参考一下。

1.IFrame引入,看看下面的代码

--------------------------------------------------------------------------------
<IFRAME NAME="content_frame" width=100% height=30 marginwidth=0 marginheight=0 SRC="import.htm" ></IFRAME>
--------------------------------------------------------------------------------

你会看到一个外部引入的文件,但会发现有一个类似外框的东西将其包围,可使用

--------------------------------------------------------------------------------
<iframe name="content_frame" marginwidth=0 marginheight=0 width=100% height=30 src="import.htm" frameborder=0></iframe>
--------------------------------------------------------------------------------

但你会发现还会有点问题,就是背景色不同,你只要在引入的文件import.htm中使用相同的背景色也可以,但如果你使用的是IE5.5的话,可以看看这篇关于透明色的文章 如果想引入的文件过长时不出现滚动条的话在import.htm中的body中加入scroll=no

2.<object>方式

--------------------------------------------------------------------------------
<object style="border:0px" type="text/x-scriptlet" data="import.htm" width=100% height=30></object>
--------------------------------------------------------------------------------

3.Behavior的download方式

--------------------------------------------------------------------------------
<span id=showImport></span>
<IE:Download ID="oDownload" STYLE="behavior:url(#default#download)" />
<script>
function onDownloadDone(downDate){
showImport.innerHTML=downDate
}
oDownload.startDownload('import.htm',onDownloadDone)
</script>
--------------------------------------------------------------------------------

2005年5月12日星期四

VB代码撰写约定

  这是一家公司软件部规定的VB组代码撰写暂行约定。对于VB项目的协同开发有一定的帮助和指导。

一、变量和对象

    程序中的变量遵循匈牙利表示法,即“前缀+变量含义”,变量的含义为一个或多个英文单词,每个单词的第一个字母大写,不要用汉语拼音代替。变量前缀为三个小写字母示意其类型,所需添加的前缀遵循微软在MSDN中的建议。列表如下:

 

    基本数据类型

变量类型

前缀

示例

Boolean

bln

blnFound

Byte

byt

bytRasterData

Collection object

col

colWidgets

Currency

cur

curRevenue

Date (Time)

dtm

dtmStart

Double

dbl

dblTolerance

Error

err

errOrderNum

Integer

int

intQuantity

Long

lng

lngDistance

Object

obj

objCurrent

Single

sng

sngAverage

String

str

strFName

User-defined type

udt

udtEmployee

Variant

vnt

vntCheckSum

   

    控件或窗体、模块对象

控件类型

前缀

示例

3D Panel

pnl

pnlGroup

ADO Data

ado

adoBiblio

Animated button

ani

aniMailBox

Check box

chk

chkReadOnly

Combo box, drop-down list box

cbo

cboEnglish

Command button

cmd

cmdExit

Common dialog

dlg

dlgFileOpen

Communications

com

comFax

Control (在过程中使用的类型未明的控件变量)

ctr

ctrCurrent

Data

dat

datBiblio

Data-bound combo box

dbcbo

dbcboLanguage

Data-bound grid

dbgrd

dbgrdQueryResult

Data-bound list box

dblst

dblstJobType

Data combo

dbc

dbcAuthor

Data grid

dgd

dgdTitles

Data list

dbl

dblPublisher

Data repeater

drp

drpLocation

Date picker

dtp

dtpPublished

Directory list box

dir

dirSource

Drive list box

drv

drvTarget

File list box

fil

filSource

Flat scroll bar

fsb

fsbMove

Form

frm

frmEntry

Frame

fra

fraLanguage

Gauge

gau

gauStatus

Graph

gra

graRevenue

Grid

grd

grdPrices

Hierarchical flexgrid

flex

flexOrders

Horizontal scroll bar

hsb

hsbVolume

Image

img

imgIcon

Image combo

imgcbo

imgcboProduct

ImageList

ils

ilsAllIcons

Label

lbl

lblHelpMessage

Lightweight check box

lwchk

lwchkArchive

Lightweight combo box

lwcbo

lwcboGerman

Lightweight command button

lwcmd

lwcmdRemove

Lightweight frame

lwfra

lwfraSaveOptions

Lightweight horizontal scroll bar

lwhsb

lwhsbVolume

Lightweight list box

lwlst

lwlstCostCenters

Lightweight option button

lwopt

lwoptIncomeLevel

Lightweight text box

lwtxt

lwoptStreet

Lightweight vertical scroll bar

lwvsb

lwvsbYear

Line

lin

linVertical

List box

lst

lstPolicyCodes

ListView

lvw

lvwHeadings

MAPI message

mpm

mpmSentMessage

MAPI session

mps

mpsSession

MCI

mci

mciVideo

Menu

mnu

mnuFileOpen

Month view

mvw

mvwPeriod

MS Chart

ch

chSalesbyRegion

MS Flex grid

msg

msgClients

MS Tab

mst

mstFirst

OLE container

ole

oleWorksheet

Option button

opt

optGender

Picture box

pic

picVGA

Picture clip

clp

clpToolbar

ProgressBar

prg

prgLoadFile

Remote Data

rd

rdTitles

RichTextBox

rtf

rtfReport

Shape

shp

shpCircle

Slider

sld

sldScale

Spin

spn

spnPages

StatusBar

sta

staDateTime

SysInfo

sys

sysMonitor

TabStrip

tab

tabOptions

Text box

txt

txtLastName

Timer

tmr

tmrAlarm

Toolbar

tlb

tlbActions

TreeView

tre

treOrganization

UpDown

upd

updDirection

Vertical scroll bar

vsb

vsbRate

 

    数据库对象

数据库对象

前缀

示例

Container

con

conReports

Database

db

dbAccounts

DBEngine

dbe

dbeJet

Document

doc

docSalesReport

Field

fld

fldAddress

Group

grp

grpFinance

Index

ix

idxAge

Parameter

prm

prmJobCode

QueryDef

qry

qrySalesByRegion

Recordset

rec

recForecast

Relation

rel

relEmployeeDept

TableDef

tbd

tbdCustomers

User

usr

usrNew

Workspace

wsp

wspMine

 

    除此之外,还要对于一些不同的级别的变量加额外的前缀,举例如下:

级别

前缀

示例

全局变量

g

gstrUserName

模块级变量

m

mblnCalcInProgress

过程级变量

None

dblVelocity

 

    对于用户使用type关键字定义的数据类型,在三个字母的前缀前再加u。例如:一个用户定义的叫Client类型的变量,其前缀为ucli。

 

    关于变量使用方面,建议如下:

1、变量要先声明再使用(在窗体代码的第一行加上Option Explicit,来禁止未声明变量的调用,或者在菜单Tools->Options->Editor中选中Require Variable Declaration项。)

2、尽量使用Long型的变量来代替Integer类型,这样做可以减少一些数据溢出的错误,而且,在Win32平台上,CPU处理32位的数据比16位的数据速度更快。

3、尽量少用Variant变量,尽可能地给出每一个变量明确的类型

4、尽量不在API声明中使用As Any,如果遇到其默认的参数为As Any的情况,则针对每一个所需的参数类型声明该API函数,例如ReadFile函数默认的声明为:

Public Declare Function ReadFile Lib "kernel32" Alias "ReadFile" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long

小组成员须将其改为:

Public Declare Function ReadFileByt Lib "kernel32" Alias "ReadFile" (ByVal hFile As Long, lpBuffer As Byte, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long

Public Declare Function ReadFileInt Lib "kernel32" Alias "ReadFile" (ByVal hFile As Long, lpBuffer As Integer, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long

Public Declare Function ReadFileLng Lib "kernel32" Alias "ReadFile" (ByVal hFile As Long, lpBuffer As Long, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long

 

5、不要将类型转换的工作交给VB自动去做,而使用以下类型转换函数

CBool(expression)

CByte(expression)

CCur(expression)

CDate(expression)

CDbl(expression)

CDec(expression)

CInt(expression)

CLng(expression)

CSng(expression)

CStr(expression)

CVar(expression)

 

二、窗体布局

    窗体内各个控件的布局,建议如下:

    1、所有与窗体上、下、左、右四条边界相邻的控件与窗体的边缘相距120缇

    2、各个控件之间的间距为:相关控件60缇,非相关控件120缇

    3、按钮控件大小建议为高300缇,长1200缇,这也是操作系统默认按钮的大小

    4、各个控件的字体建议为宋体五号字

 

三、代码

  1、程序的启动对象

  程序一率从Main()函数开始执行(选择菜单View->Project Explorer,在工程窗口内右键点击当前项目,选择菜单“… Properties”->General,在Startup Object下拉框中选择sub main)

  2、代码缩进与间距

  每个单位的代码缩进为一个TAB,非相关代码留一行空白的间隔,例如:

  Private Function GetMax(Byref lngArray() As Long) As Long

  GetMax=0

  Dim lngMax As Long

  Dim lngCount as long

  For lngCount =0 to Ubound(lngArray)

  If lngArray (lngCount)>lngMax Then

  lngMax=lngArray(lngCount)

  End If

  Next

  End Function

  3、注译

  程序的注译越详尽,越仔细越好。以下提及的,必须加注译。

  程序中声明的每一个变量,能加上注译最好,至少用来运算或者保存关键数据的变量必须加上注译。

  对于每一段逻辑上实现某个基本功能的几句代码,最好在其上一行加上简单注译。

  对于每一个自定义的函数,不管大小都必须加上注译,而且注译的格式如下:

  '******************************************************

  '

  '函数所实现的功能

  '函数的参数1的含义:XXXXX

  '函数的参数2的含义:XXXXX

  '……

  '函数返回值所代表的错误信息:XXXXX(函数尽可能声明为Function,不要声明为Sub,

  '函数的返回值为0表示执行成功,为其它值表示执行失败)

  '

  '******************************************************

  Public(Private) Function ForExample(……………………) As Long

  '…………………………………………

  End Function

  4、错误处理(未定)

  在Main()函数或主窗体Load过程中添加如下代码:

  '******************************************************

  '

  '打开错误日志文件,在Form_Unload()中关闭

  '

  '******************************************************

  Dim strExePath As String

  If Right(App.Path, 1) = "" Then

  strExePath = App.Path

  Else

  strExePath = App.Path & ""

  End If

  intErrLogFileHandle = FreeFile()

  Open strExePath + "Err.log" For Append Shared As intErrLogFileHandle

  在主窗体退出函数中添加如下代码:

  '******************************************************

  '

  '关闭错误日志文件

  '

  '******************************************************

  Close #intErrLogFileHandle

  在某个Module中添加:

  '******************************************************

  '

  '写入错误日志

  '

  '******************************************************

  Public Sub WriteErrLogFile(ByVal strSub As String, ByVal strErr As String)

  Print #intErrLogFileHandle, Date, Time, strSub, strErr

  End Sub

  在每个过程或自定义的函数中,使用如下的系统错误捕获机制:

  Public Function ForExample(…………) As Long

  On Error Goto FuncError

  ForExample=True

  ………………………

  ………………………

  Exit Function

  FuncError:

  ForExample=False

  WriteErrLogFile " ForExample ", "错误号:" & Err.Number & ",错误源:" & Err.Source & ",错误描述:" & Err.Description

  MsgBox  "……… ", vbCritical

  '在此作内存资源回收工作

  End Function

海外网站资源索引

    一些海外英文资源的链接,包括主机评论,低价主机,免费主机,免费空间,博客工具,广告联盟,搜索优化,目录索引,站长讨论,站长资源等。本网址链接为本人几个月来辛苦收集的原创资源,每个都手工校验过,请勿滥用里面的资源。

主机评论 HostReview

Web Hosting Stuff - Hosting Companies Ranked & Reviewed
WebHostingTalk Forums - Web Hosting Forum

低价主机 CheapHosting

1&1 Internet Inc. - Web Hosting Services and Domain Name Registration
DeltaWebHosting - Cheap Web Hosting Services - Home
Go Beyond. Exceed. Surpass Hosting
Hostinginsiders.com - FREE domain name included
RiotHost.com - Ultimate Web Deals
Robotical World Hosting - Escape from Reality
Startlogic.com - The Best Webhosting You Will Ever Get!
Vega Host - Affordable Web Hosting, Domain Name Registration & Web Design Services
www.3ix.org - 3iX provides reliable, low cost web hosting

免费主机 FreeHosting

Doteasy - 100MB Free Web Hosting, Free Email, Domain Names for Business and Individuals
Free Web Hosting - FreeWeb-Hosting.com
Free Webspace and Free Web Hosting Services
FreeWebHostingTalk
Microworld Dotcom - Network Solutions for Global Success
netrulon.com - Free Web Hosting
The Zack Network Web Hosting Services
Wagoo - 199MB Free Web Hosting, Free Email, Domain Names for Business, Free phpBB Forum

免费空间 FreeHomepage

Free Web Hosting
Free websites and webpages, photo albums, chatrooms and more by FreeWebs
Free Webspace and Free Web Hosting Services

博客工具 BLOG

Movable Type
Word Press

广告联盟 AffiliateProgram

Affiliate Programs Directory - Lists over 840 Affiliate Programs!
goClick.com - Targeted, High-Quality, Pay-Per-Click Advertising
Webmaster money resources - affiliate programs reviewed.

搜索优化 SEO

Search Engine Optimization, Google Optimization - SEO Chat
SEOZip - SEO Answers in a ZIP....

目录索引 WebDirectory

01Webdirectory.com - Best of Web Directory
General Internet Directories - SearchEngineOne
Jayde.com - The B2B Search Engine
Strongest Links - Directory list
Web Directory - Ajdee.com directory
Web Directory - PureDirectory.com
Web Directory by HotVsNot.Com
Web Directory Directory

站长讨论 WebmasterForum

Webmaster-Talk.com Webmaster Forum - Web Design, PHP, SEO, Hosting, Graphics and more
WebmasterWorld News and Discussion for the Independent Web Professional

站长资源 WebmasterResource

Web Site Development Resources Directory
Webmaster Resources - Free Web Tools

关键词搜索次数查询

可以帮助你选择关键字,避开激烈的竞争,独辟蹊径。

1、百度搜索关键字搜索频率查询 

http://www2.baidu.com/inquire/dsquery.php

2、网易搜索关键字搜索次数及价格查询 

http://adpsearch.163.com/find_price.php

3、搜狐搜索关键词搜索次数/类目固定排序报价查询 

http://db.sohu.com/regurl/pv_price/query_consumer.asp

4、新浪搜索关键字价格查询 

http://chaxun.sina.com.cn/

2005年5月11日星期三

中英文网页切换

使用如下代码实现中英文网页切换。

<script>
<!--
if (navigator.appName == 'Netscape')
var language = navigator.language;
else
var language = navigator.browserLanguage;
if (language.indexOf('zh-cn') > -1) document.location.href = 'http://www.williamlong.info/';
else if (language.indexOf('en') > -1) document.location.href = 'http://www.williamlong.info/index.htm';
else
document.location.href = 'http://www.williamlong.info/';
//-->
</script>

2005年5月10日星期二

Google发现的十大真理

Google的价值观:永不满足,力求最佳

Google 创始人之一 Larry Page 指出:“完美的搜索引擎需要做到确解用户之意,切返用户之需”。就搜索技术的现状而言,我们需要通过研究、开发和革新来实现长远的发展。Google 致力于成为这一技术领域的开拓者。尽管 Google 已是全球公认的业界领先的搜索技术公司,但其目标是为所有信息搜寻者提供更高标准的服务,无论用户是坐在波士顿的台式机旁,还是正在驾车穿过波恩,或是漫步在曼谷街头。

为了实现这个目标,Google 一直在孜孜不倦地追求技术创新,突破现有技术的限制,随时随地为人们提供快速准确而又简单易用的搜索服务。

1. 以用户为中心,其他一切纷至沓来。

创建伊始,Google 即以提供最佳的用户体验为其中心任务。虽然很多公司主张客户利益优先,但难以抗拒各种诱惑,往往会牺牲客户的少量利益来增加股东价值。 Google 的一贯态度是:如果所做的更改不会给网站访问者带来任何优势,则将坚定不移地予以拒绝:

    • 界面清晰易用;网页加载迅速;绝对不出售搜索结果中的排名位置。
    • 在网站上刊登的广告应提供相关的内容,且不会影响用户的体验。

Google 始终秉持着用户第一的理念,因而从网上赢得了最忠诚的用户群体。用户群体的增长并不是通过电视广告活动,而是通过用户的交口称颂来实现的。

2. 最好的方式是将一件事情做到极致。

Google 要做的就是搜索。Google 不做星座预测,不做财经咨询,也不做聊天。而是带领着世界上最大的研发队伍,心无旁骛地攻克搜索问题。Google 知道自己擅长什么,也知道如何可以做得更好。通过持之以恒地对难题进行反复的探索,Google 始终能够解决困扰他人的复杂难题,并不断地改进已被公认为网上最佳的服务。借助于 Google 错别字改正程序以及 Google 工具栏等创新工具(通过后者用户可以从任何一个网站进行 Google 搜索)使得数百万用户能够享受到快捷、完美的信息搜索体验。Google 的全体员工均专注于创造“完美的搜索引擎”,并为实现此目标而孜孜不倦地努力工作。

3. 快比慢好。

Google 相信瞬间带来的喜悦。您需要解答的时候,是希望马上会得到解答的。这点是勿庸置疑的吧? Google 可能是世界上唯一一个努力让其用户尽快离开自己网站的公司。Google 执着地消减自己网页上的每一个多余的比特和字节,不断地提高服务环境的效率,并一次次地打破自己创造的速度记录。其他人认为大型服务器是处理海量数据的最快捷方式。但 Google 却发现联网的 PC 机速度更快。在他人已接受搜索算法所决定的明显速度限制时,Google 却写出了新的算法,证明了速度无限的真理。 Google 一直在不断地努力,让速度再快一点。

4. 网络需要民主的作风。

Google 之所以成功,原因在于它依赖数以百万计的向网站发布信息的用户来确定哪些网站提供的内容具有价值。Google 不依赖一组编辑人员或仅仅根据某个词汇出现的频率来为每个网页评级,而是采用一项突破性技术,即 PageRank™。PageRank 对一个网页所链接的所有网站进行评估,为它们分配一个值(在一定程度上参照了与相应网站链接的网站)。通过分析网络的整体结构,Google 能够确定哪些网站被最对其信息感兴趣的用户“投票”评为最佳信息来源。随着网络规模不断增长,每一个新网站将成为另一个信息点,同时也是要记入的另一张选票,该技术也会不断地得到改善。

5. 您不必坐在台式机前也能获得所需的答案。

世界的流动性越来越强,人们很难再局限于一个固定的角落。无论是通过 PDA,还是无线电话,甚至是在汽车里,人们都希望随时获得所需的信息。Google 在这一领域开发了多种创新技术,其中包括 Google Number Search。通过这一技术,人们从具有上网功能的手机以及即时转换系统(将以 HTML 格式编写的网页转换为手机浏览器可以读取的格式)上查找数据时,可以大大减少键击次数。借助于这一系统,人们能够从 Palm PDA、Japanese i-mode、J-Sky 和 EZWeb 等原先不能显示网页内容的设备上打开数十亿个网页,以查看网页内容。尽管搜索引擎在任何地方都可以帮助用户找到所需的信息,但 Google 仍然在不断地探索新技术和提供新的解决方案。

6. 您可以通过正当途径赚钱。

Google 是一个企业。它通过以下两种方式来获取收入:向其他公司提供搜索技术;向广告客户提供在 Google 或网络的其他网站上刊登广告的服务。然而,您可能从未在 Google 上看到过广告。这是因为,除非广告与所显示的搜索结果页内容相关,否则 Google 不允许在我们的搜索结果页上展示任何广告。因此,只有某些搜索才会在搜索结果的上方或右侧显示赞助商链接。Google 坚信,仅当广告与您要查找的内容相关时,才会为您提供有用的信息。

Google 同样也证明了广告不必过分渲染也能够切实有效。Google 不接受弹出式广告,因为这会干扰用户查看所请求的内容。我们发现,文字广告 (AdWords) 的内容在与其读者相关时,所带来的点击率要比随机显示的广告高得多。Google 的优化小组与广告客户合作,以提高广告系列在有效期内的点击率。因为点击率越高,表明广告与用户感兴趣的内容的相关性越高。任何广告客户,无论其规模大小,都可以利用这一针对性强的媒介。既可以通过我们的自助式广告服务计划在数分钟内在线投放广告,也可以在 Google 广告服务代表的帮助下发布广告。

在 Google 上刊登的广告总是明确地标记为“赞助商链接”。不损害我们搜索结果的完整性是 Google 的核心价值观。我们绝对不会操纵排名位置来将我们的合作伙伴放在搜索结果中排名较高的位置。没有人能够购买更高的 PageRank(网页评级)。我们的用户信赖 Google 的客观公正性,任何短期利益都不能够构成破坏这种信任的理由。

成千上万的广告客户使用我们的 Google AdWords 计划来推广他们的产品,我们相信 AdWords 是同类计划中规模最大的一个。此外,成千上万的网站管理人员利用我们的 Google AdSense 计划,刊登与其网站内容相关的广告,以增加收入和改善用户的体验。

7. 信息始终在不断地累加。

当 Google 索引中包含的互联网上的 HTML 网页超过任何其他搜索服务之后,我们的工程师开始将精力转到那些不太容易获得的信息上。有时只是合并新数据库的问题,如添加电话号码、地址查询以及企业目录。有时却需要更多的创造性工作,如增添可搜索超过 10 亿张图片的功能,或增添对原始格式为 PDF 文件的网页进行查看的方式。由于 PDF 格式的大量使用,我们需要扩展所搜索的文件类型的列表,以支持使用 Microsoft Word、Excel 和 PowerPoint 等多种格式创建的文档。为了满足无线用户的需要,Google 开发了一种独一无二的技术,可将 HTML 格式的文件转换为移动设备可读取的格式。该列表不会就此终止,因为 Google 的研究人员将持续不断地探索新的方式,将全球范围内的所有信息提供给寻找答案的用户。

8. 对信息的需求超越了国界。

尽管 Google 的总部位于加利福尼亚州,但我们的办事处遍布全球,我们的宗旨是帮助全世界的用户获得所需的信息。为了实现这一目标,我们维护着十多个互联网域;在我们所提供的搜索结果中,超过一半提供给美国境外的用户。用户可以根据自己的喜好,从 Google 支持的 35 种语言中任选一种来展示搜索结果。此外,我们还提供翻译功能,无论用户的母语是哪种语言,都可以搜索到所需的内容;不喜欢使用英语搜索的用户可以将 Google 界面自定义为大约 100 种语言中的任意一种。为了更快地补充新语种,Google 为志愿者提供机会帮助做一些翻译工作,Google.com 网站上提供了供翻译使用的自动工具。这一流程大大改善了我们为用户(甚至位于地球上最偏远角落的用户)提供的服务的种类和质量。

9. 没有西装革履也一样严肃认真。

Google 的创始人一再声明公司所重视的惟有搜索。他们创建公司的理念是工作应具有挑战性,而挑战可以带来乐趣。正是由于这一点,Google 的企业文化不同于其他公司,而并不是因为这里到处都有熔岩灯和大橡胶球。同样,对于我们的在线服务,Google 始终将用户放在首位;而对于日常生活,Google Inc. 将自己的员工放在首位。我们重视团队的功绩,并为个人的成就而倍感自豪,这些都促成了公司的全面成功。新想法经过交流和试验,然后以惊人的速度投入实际应用。其他公司的会议可能会占用几个小时,而在这里通常只不过是在排队购买午餐时的一次聊天,写代码的人和写检查程序的人之间不存在任何屏障。这种畅所欲言的环境提高了员工的工作效率,并促进了员工之间的友爱,而这种氛围又因肩负数以百万计的人们对 Google 搜索结果的信赖而进一步加强。为希望做出重大贡献的人员提供适当的工具,他们定然不负您的期望。

10. 只是优秀还不够。

为您提供的服务始终超出人们的预期。Google 不会将最好视为终点,而是看作一个新的起点。通过创新和反复探索,Google 选择行之有效的技术,并以异乎寻常的方式不断进行改进。搜索对于拼写正确的文字没有问题,对于拼写错误的文字会怎样呢?我们的工程师透视用户的需求并相应地开发错别字改正程序,就像知道用户在想什么一样。在 WAP 手机上进行搜索时的时间太长?我们的无线技术部门开发了 Google Number Search,将每个字母击键三次减少为只击一次。尽管我们的客户群体数以百万计,Google 仍然能够迅速找到发生冲突的位置,随即加以解决。但是,Google 与众不同的一点,就是在全球用户还未明确意识到自己的需求之前为其做出周密考虑,并开发出富于创新的工具和产品来满足他们的需要。这种永不满足现状的态度就是深藏在世界上最佳搜索引擎背后的终极驱动力量。

来源:Google网站帮助文档

2005年5月9日星期一

香港本地电视台简介

  本文对香港主要电视台进行一些简要介绍。

  无线电视的两个频道,翡翠台及明珠台,每年播放近一万五千小时的节目,为香港超过二百零五万个家庭提供电视娱乐节目 ,是全球制作华语节目最多的电视台。发行海外超过三十多个国家,供全球近三千万人收看无线电视制作的节目。

  亚洲电视制做的节目包括剧集、资讯综艺节目、新闻时事报道及妇女儿童节目等,每年超过三千小时,发行到欧亚美澳四大洲超过三十多个国家。

  无线电视和亚洲电视,覆盖香港,澳门和广东省大部分地区。

  凤凰卫视中文台提供中外制作的优质特备节目,包括新闻、资讯娱乐、体育、音乐节目及戏剧等。

  凤凰卫视电影台提供每天二十四小时的精采中西经典名片和卖座新片,每月播放超过280部电影。

  凤凰卫视中文台和电影台,覆盖亚洲大部分国家和地区。

  亚洲电视简介

  亚洲电视是香港两大无线电视台之一,成立于一九五八年,原名为「丽的映声」,一九八一年十一月改称「丽的电视」。一九八三年改为「亚洲电视有限公司」,简称ATV。

  亚洲电视现为亚洲地区具有影响力的电视台,为大众提供的各类高质素的节目,赢得良好的口碑。

  亚洲电视自制的节目包括剧集、资讯综艺节目、新闻时事报道及妇女儿童节目等,每年超过三千小时,发行到欧亚美澳四大洲超过三十多个国家。为方便各地观众收看,亚视向世界各地发行的节目配有当地适用的语言,包括普通话、越南话、泰语、柬埔寨语、英语、日语及韩语。

  在香港,亚洲电视分别于在两个频道播放,广东语频道为「本港台」,每周广播时间约为一百五十五小时;英语频道为「国际台」,每周广播时间约为一百四十小时。

  剧集为亚洲电视制作的重头戏,每年的制作约为六百小时。亚视剧集新颖、富创意、多元化、拍摄认真严谨,追求完美画面和明快节奏,被同行公认达国际水平。

  亚视早年的剧集《陈真》、《霍元甲》、《大地恩情》等,深受内地观众喜爱。近年出品制作的高质素剧集,包括:《再见艳阳天》、《我和僵尸有个约会》I & II、《踪横四海》、《影城大亨》、《世纪之战》、《你想的爱》、《美丽传说》、《电视风云》及《侠骨仁心》等等。

  亚洲电视每年均会举办一些大型综合节目,除早前的《亚洲小姐竞选》、《香港男士竞选》外,还有《十大电视广告颁奖礼》、《亚视台庆盛会》等,内容丰富,别开生面;而与中央电视台等合办的中秋晚会《香江明月夜》,更是口碑载道。而去年突破台庆及竞选节目型式的《腾飞在今秋》及《中华演艺人才选拔赛》更是大胆尝试的成果。

  亚洲电视的资讯类节目,在华人世界备受推崇,真真正正做到『亚洲电视,资讯第一』。亚洲电视制作的《寻找他乡的故事》系列I、II&III,分别获得九八、九九及二千年香港电视节目欣赏指数调查最高奖,足见亚洲电视制作之质数;得奖并没有减退亚洲电视推陈出新及创作的热情,去年推出《寻找隐世医术》引来很大的回响;而由亚视斥资制作的《星光伴我行》,同样叫好叫座。为配合国家推动开发大西北的计划,亚洲电视更不惜动用庞大之人力物力,拍摄资讯纪录片《西北开发之旅》;亚洲电视更开香港电视史先河,首创报章社论式节目《亚视评论》,立论公允、切中时弊、深受赞赏。时事纵横谈节目《张立平常谈》,专栏作家张立平常心谈天下事,在平常中见禅机。

  亚洲电视新闻及公共事务部每日为全港观众提供「深入明快」的新闻报道,并透过互联网与人造卫星传送世界各地。精心制作的专题片,曾在纽约国际电影电视节、芝加哥国际电视节和新加坡电视展获奖。而去年推出之《探访人间一人有一个故事》及《六十分钟时事追击》亦分别在二千年香港电视节目欣赏指数调查中获奖,成绩可见一斑。


  无线电视简介

  香港电视广播有限公司(即:香港无线电视,简称TVB)於一九六七年十一月十九日正式启播,是全港首间商营无线电视台。

  无线电视成立初期只有员工约二百名,经多年发展,至今已拥有职、艺员约三千六百名,其中包括约七百名合约艺员。

  无线电视的电视城座落於九龙清水湾道,实用面积逾八万平方米。电视城设备齐全,提供共四个外景拍摄场地及十四个录影厂,方便制作各种高质素的节目。

  无线电视的主要业务包括电视广播、节目制作及其他有关广播的活动,例如节目及录影带的发行及卫星广播等。无线电视的两个频道,翡翠台及明珠台,每年播放近一万五千小时的节目,为香港超过二百零五万个家庭免费提供电视娱乐节目 ,是全球制作华语节目最多的电视台。另外,我们更将部份节目配上多种不同语言 ,发行海外超过三十多个国家,供全球近三千万人收看无线电视制作的节目。

  在黄金广播时段,翡翠台及明珠台平均收视分别享有八成一及七成六,由此可见其受欢迎程度。

  无线电视制作的剧集主要包括《射雕英雄传》、《神雕侠侣》、《倚天屠龙记》、《封神榜》、《碧血剑》、《小宝与康熙》、《寻秦记》、《陀枪师姐》I & II & III、《七姊妹》、《美丽人生》、《创世纪》、《南龙北凤》、《西游记》及《情深深雨蒙蒙》等等。

  历年来,无线电视一直为广大观众献上各类型认真制作的节目,所制作的娱乐 、新闻及公共事务节目及宣传短片等屡获殊荣,至今共获得国际重要奖项逾二百六十多项,成绩斐然。在一九九七年,无线电视更被选为亚洲五十间最具竞争能力企业之一、全港二十大傑出商业机构及全亚洲二百卓越公司之一。

  展望将来,无线电视定必继续贯彻「全力以赴、做到最好」的精神,制作更多精采的电视节目及发展崭新的广播科技,以答谢香港市民及世界各地华人的爱戴及支持。


  凤凰卫视简介

  凤凰卫视于一九九六年三月三十一日启播,全力为亚太地区及欧洲的观众提供高素质华语电视节目。

  凤凰卫视控股有限公司主要由三家股东所组成:今日亚洲有限公司、香港卫星电视有限公司及华颖国际有限公司。卫星电视有限公司由美国新闻集团全资拥有,有丰富的营运国际媒体经验。今日亚洲的主要股东实力雄厚,在中国大陆市场上有丰富的企业运作经验,多年来已在石油、贸易、公路、地产、实业以及文化等领域投资近百亿。今日亚洲与中国大陆各界广泛密切的关系,为凤凰卫视进入中国市场创造了良好的环境。华颖国际有限公司是中国银行全资附属公司,在中国及国际财务运作方面有丰富的经验,并对于中国市场的开拓有深刻的理解和广泛的资源。凤凰卫视由九六年启播至今,已成功由单一频道发展为多频道平台,包括已开播的凤凰卫视中文台、凤凰卫视电影台、凤凰卫视欧洲台、凤凰卫视资讯台以及将于短期内推出的美洲台及粤语台。

  凤凰卫视中文台现时透过亚卫三号S播出讯号,覆盖亚太五十多个国家和地区近三十四亿人口。她是一家二十四小时全天候播出的卫星电视台,其节目取向主要反映亚洲华人地区内各种社会文化动态及生活方式。 是香港唯一一家全部用普通话一天24小时昼夜播出的电视台。她立足香港,以沟通大陆港台两岸三地及亚洲乃至全世界的华人为宗旨,将历史悠久、博大精深 的中华文明传播给世人,并帮助所有同一血脉的同胞,认识纷纭复杂、多姿多彩的世界。

  不断创新、超越自己,是凤凰卫视中文台节目制作的目标。自开播以来,《时事直通车》、《相聚凤凰台》、 《音乐无限》、《非常男女》、《凤凰早班车》、《锵锵三人行》、《小莉看时事》及《一点两岸三地谈》等节目不但成为观众最喜爱的名牌节目,亦使凤凰卫视成为电视界的一位潮流领导者。

  凤凰卫视集合了一群已为大众所熟知的媒体精英,吴小莉、窦文涛、陈鲁豫等引领你了解新闻热点,走进明星世界,享受最酷的娱乐情报、珍闻轶事。

  凤凰卫视中文台的节目主持人集大陆、香港、台湾以至海外的精英,各人风格清新时尚、工作认真投入。其中吴小莉曾获中国总理的赞扬,被誉为最受欢迎的节目主持人。

  凤凰卫视电影台,于一九九八年八月二十八日启播,不但与凤凰卫视中文台形成"姐妹台",更重要的是标志凤凰卫视由单一频道的电视台,向发展为多频道平台迈出了一大步,并将收费电视引入了凤凰的业务模式。

  凤凰卫视电影台的开播,为凤凰的广大家庭观众提供足不出户亦可阖家观赏电影的好机会,除了丰富家庭生活,更为塑造"东方好莱坞",振兴香港影业和发展华语电影作出贡献。 凤凰卫视电影台是加密卫星频道,全天候二十四小时播出,每月播放量超过二百八十部。在每晚九时的黄金时段播出特级猛片及国际得奖电影,做到日日好戏连场。

  除此以外,凤凰卫视电影台更推出多个有关中外影坛咨询的栏目如[好莱坞情报]、[凤凰放送站]和[美国十大卖座电影榜]等,内容精彩,包括明星专访、新片制作实录、幕後花絮、电影票房跟踪、电影台最新节目情报等资讯,为影迷提供最快最新的影坛消息。

  作为一家国际华语卫星电子传媒,凤凰卫视的使命是把全球华人距离拉近,成为华语电视节目提供商的领导者。为达到这个目标,我们除了强化现有频道的运作外,会于短期内推出多个新频道,以满足世界各地华人观众对不同种类节目的殷切需求。
 
  在中国,凤凰卫视备受认同。由Gallup Organisation(盖洛普)在1999年进行的调查(刊登于财富杂志1999年10月号)显示,约36%受访者认识"凤凰卫视"知名度与国际知名品牌麦当奴快餐不像伯仲,高于通用汽车,爱立信移动电话、汇丰银行等著名品牌。

  来源:本站根据相关资料整理

2005年5月8日星期日

自定义数据库自动编号初始值和步进值

  自定义数据库自动编号初始值和步进值问题: 如何定义数据库的自动编号字段的初始值和步进值?如何定义自动增加字段的初始值和步进值?如何使删除过数据的自动增加字段的开始值重新从1开始?

  回答: 通过以下语句,你可以在建表的时候指定其起始值和步进值:CREATE TABLE tblNewOrder2 ( OrderId AUTOINCREMENT (1000, 10), ItemId LONG, Quantity LONG)

  你也可以用下面的语句修改下一个起始值和步进值:ALTER TABLE tblOrder ALTER COLUMN OrderId COUNTER (2000, 50)

  要重新开始:ALTER TABLE tableName ALTER COLUMN OrderId COUNTER (1, 1) 在 VBE 界面里面用以下代码:docmd.runsql "ALTER TABLE tableName ALTER COLUMN OrderId COUNTER (1, 1)"

  这里要注意的是自动编号往往被用作标识记录的唯一性,但是 Jet 在用 DDL 语句更改自动编号的同时不会保证修改后的自动编号仍然保持唯一性,因此会出现标识号重复的现象。要避免这一现象最好把自动编号设定为主键、或者不可重复。

2005年5月5日星期四

伟大领袖金日成将军举起了枪

  本文选自朝鲜小学教科书,原题目“伟大领袖金日成将军举起了枪”

  明朗的朝阳从帘隙映入了洞口,李警卫小心翼翼地拉开了帘子。金日成将军放下了笔,吹灭了汽灯。他看着洞外,笑了笑:“又是一夜过去了。时间过的这么快,不抓紧怎么行啊!”李警卫:“将军,你不要太累了……。”金日成将军笑了笑:“出去走走吧!”

  从洞里出去,就看到了山上山下。山上山下都覆盖着白雪,但白雪间,夹杂着烧焦的树木,炸弹的残骸,控诉着美帝国主义的罪恶。山下,英雄的人民军战士们,纷纷从掩体内走出,正在准备又一天的战斗。金日成将军快步向山下走去。战士们看到金日成将军,连忙上来向伟大的领袖问候。金日成将军亲切地慰问战士:“夜里冷不冷?”“不冷!”“大家有信心坚持到取得胜利吗?”“在将军的领导下,我们有万分信心!”

  这时,一个通信兵来了:“报告将军,中国同志的志愿军司令彭德怀来了!”金日成将军说:“还不请中国同志过来?”

  山洞内,警卫员倒上了茶水。金日成将军亲切地招呼彭德怀司令:“请喝茶。我们现在在战争年代,条件不太好,只能这样款待你了。”

  彭德怀司令敬慕地看着金日成将军:“你们在这样恶劣的条件下,还能坚持和美帝国主义战斗,我们很佩服。”

  金日成将军:“为了祖国的解放,我们是不惜一切代价和努力的。”

  彭德怀司令:“也只有在你的领导下,才有这样强大的力量。”

  金日成将军:“别这么说,还有你们的帮助嘛。打击美帝国主义,有什么困难吗?”

  彭德怀司令:“困难很多,如果没有先前你们对美军的战斗,我们是没有经验的,也会更加困难。”

  金日成将军:“我们的战士都有和美军作战的经验,他们可以直接帮助你们指导。”

  正当两人欢声笑语时,洞外,突然响起了警报声。一个战士跑进来:“美军飞机要来了!”周围的人,马上紧张起来。金日成将军把手一挥:“来了就打击他!”

  不过一会儿,飞机的呼啸声,炸弹的爆炸声,枪声,就在山岭间回荡交错了。金日成将军拿过一支38式步枪:“我们出去看看吧!”李警卫:“将军,这样太危险了!”彭德怀司令也连忙劝阻。金日成将军笑了,举了举手中的枪:“这支枪就是我从日本人手里缴来的,当时面对面的战斗,总比现在危险吧!”

  金日成将军持枪来到洞口,只见数架美帝国主义的飞机,不停地来回投弹,每次飞过,都有爆炸在地上响起。英勇的人民军战士们,不停的射击着美国飞机。

  金日成将军愤怒地拧起眉头,他看到又一架美国飞机准备从阵地上飞过,他举起了枪,瞄准了敌人的飞机。当敌人对准了我们的阵地,正在往下飞来时,将军开枪了。瞬间,一团巨大的火团,在空中爆发燃烧了,残骸纷纷落下。战士们欢呼起来。剩下的美国飞机惊呆了,他们再也没有勇气继续,纷纷向南方逃跑了。战士们在阵地上,向着金日成将军欢呼:伟大领袖金日成万岁!伟大将军金日成万岁!

爷爷,您终于回来啦!

  2005年4月30日,中国国民党主席连战回到母校陕西省西安市后宰门小学参观访问。连战一行观看后宰门小学学生的节目表演,其中一个诗朗诵节目“爷爷,您终于回来啦”最近一段时间在台湾和中国都爆热,其浏览率节节上升。下面是该节目的实况剧本:

  全体撕心裂肺地喊:您终于~~回来啦~~~!!(全体表情夸张地咧着嘴,身体向前,手臂张开作拥抱太阳状 )

  (连家全体拍手 神猪【注:连战儿子连胜文】笑到不行)

  右2男女童:这里 曾经是您的母校(右手向右伸)

  左2男女童:这里 曾经有您的童年(左手向左伸)

  中2女童:请聆听 来在童心的问候(站上前 作西子捧心状)

  全体:爷爷 您好!(全体向前鞠90度躬)

  (连战憋笑)

  全体:石榴花开~~ 绿树青青~~

  中2女童 :铜锣下的知识窗(两人对视颔首)

  有2男女童:整洁的教舍

  左2男女童:宽阔的草坪

  全体:我们沐浴在春天的百花园~(全体伸出双臂 敞开怀抱)

  全体:晨光映染了我们的笑脸(全体从左往右缓缓转身)

  (连战挖眼屎)

  全体:晚霞衬托了我们的笑脸(全体从右往左缓缓转身)

  女童:爷爷呀爷爷,母校已经变了模样(用手表现发自内心的激动)

  您的心海ㄦ 是否溅起 波浪~(叹)

  (连战挖眼屎)

  全体:多少个相思 放飞我期盼的信鸽

  多少个凝望 隔海的亲人(全体向左倾 ,用手指着天) 要~回~乡~~

  女童:多少个梦里

  全体:是我们团员的好时光(左右抱在一起了! 中间的搞T 我快笑疯了)

  全体:两岸的小朋友 手拉手ㄦ(彼此牵起手,作天真活泼状) 把歌ㄦ唱

  您回来拉! 您终于回来拉!

  (连家拍手 神猪在后面狂笑)

  全体:爷爷啊您的母校欢迎您(再次伸出双手,作拥抱太阳状)

  这片故土留恋您 留恋您

  男童:爷爷您看那 (作示意连战状)

  全体:里头的幼苗在茁壮成长(全体作举起太阳状)

  女童:爷爷 您听那 (作侧耳倾听状)

  全体:我们正在播种童年的理想(全体作迎接解放军状)

  (连战跟方禹说悄悄话ㄦ)

  全体:爷爷 谁能忘记自己的童年哪?(全体作语重心长状)

  女童:云彩记着你的身影

  全体:爷爷谁能忘记生命的摇篮哪?(全体作殷切盼望摊手状)

  男童:母校的土地里留着你的足迹(用手往地下示意)

  全体:(撕心裂肺地喊) 爷爷您回来啦!!! 您终于回来啦!!!

  你的母校热情欢迎您!!!

  祝您健康幸福快乐!!!!(全体小脑袋作小鸡啄米状)

  男童 敬礼 礼毕 向左转 齐步走

  语毕全场哄堂

2005年5月4日星期三

娘,大哥他回来了!

  这是最近在网上广为流传的御用文人钮保国写的“诗歌”《娘,大哥他回来了》。我看过之后起了一身的鸡皮疙瘩,真是太肉麻了啊。这难道就是中国这几十年来的文化象征吗?不知道国民党主席连战看到这首诗歌会做何感想。

  娘,大哥他回来了!

  当你跨出机舱的那一刻

  我就认出了你

  父亲一般伟岸的身躯

  母亲一般睿智的眉眼

  在你的身上依然是那样的明显

  唯有那零乱的白发

  让人生出无限的感慨

  走上前去,说一声

  大哥,你回来了

  我的喉咙像是被什么东西所堵塞

 

  想当初为推翻帝制

  是你拉着我的手

  在村口的大树下

  一同告别了咱娘

  并肩踏上了北伐的战场

  当取得胜利的时候

  是你让我写信告诉咱娘

  忠孝不能两全

  “革命尚未成功,同志仍须努力”

 

  九一八的枪声

  激起了你我兄弟的男儿血性

  你手持汉阳造血染台儿庄

  我手握大刀片喋血平型关

  在战壕中你我分享着一口干粮

  在青纱帐里你我一同擦拭刀枪

  淞沪战役

  敌后战场

  武汉保卫战

  战斗在太行山上

  你我相互鼓励

  誓言打回老家去

  让侵略者血债血偿

  保卫黄河

  保卫长江

  保卫全中国

 

  政治上的歧见使你我渐行渐远

  政见的不同使你我兵戎相见

  腥风血雨的战场上

  杀红了双眼的你我几近疯狂

  几十年的相互敌视

  亲者痛仇者快

  几十年的不依不饶

  让咱娘气瞎了双眼

  娘曾在弥留之际呼唤着大哥你的名字

  说不见着大哥你她死不瞑目

  然而娘撑到了最后

  还是眼睁睁地望着东方

  无奈地撒手人寰

 

  五十六年后的今天

  你终于回来了

  跨过海峡,越过高山

  一路风尘

  掩饰不住你急迫的心情

  一路上低头不语的兄弟啊

  最终来到我们离开家乡时

  娘送别我们的那棵大树下

  我手中捧着咱家的族谱

  你手里拿着一炷祭祖的高香

  我们两人一起来到娘的坟前

  我叫一声

  娘,大哥他回来了

  你哭一句

  娘,儿子回来晚了

  两个在战场上从不知屈膝的汉子

  两个几十年来谁也不服谁的男人

  如高山塌陷般地跪倒在了娘的坟前

  任凭泪水哗哗地流淌

  任凭夕阳西下,月亮升起在树梢间

 

  我对着黄河大声喊

  娘,大哥他回来了

  黄河之水涌起了欣慰的泪花

  我对着长江大声喊

  娘,大哥他回来了

  三峡大坝轰然的水声就像那迎宾的礼炮

  我对着长城大声喊

  娘,大哥他回来了

  长城内外刚刚盛开的杜鹃

  红艳艳的,好像是特意为你铺就的红地毯

  我对着昆仑大声喊

  娘,大哥他回来了

  昆仑回应着

  就像是家乡的父老

  簇拥在咱家老宅的门口

  扶老携幼,口中喃喃

  回来了,回来了,回来了

 

  冥冥之中我们好像听到了娘的声音

  她又一次给我们讲起了

  一根筷子容易被折断

  一把筷子就永不会被折弯的道理

  她老人家还念叨

  自从盘古开天地

  咱家辈辈出英豪

  万物本乎天

  人本乎祖

  德以孝为先

  还嘱咐我们“这个家离开谁都不行”

  “江山社稷需要你们兄弟二人的两副肩膀共同承担。”

 

  乡亲们扶老携幼

  簇拥在咱家的老宅前

  看到我们兄弟二人伟岸的身躯

  又走在了一起

  他们情不自禁地

  鼓起了掌

  这掌声代表着娘的心愿

  这掌声代表着乡亲们的心声

 

  人们奔走相告

  “他家大小子回来了”

  “他家大叔回来了”

  “他家大爷回来了”

  这一声声的“回来了”

  让人不禁心头一热

  这一声声的“回来了”

  让人不能自已而泪水涟涟

 

  大哥呀大哥,你早该回来了

  咱俩早该摈弃前嫌

  兄弟阋墙

  鹬蚌相争

  渔利的总是门外的豺狼

  要想在外人面前真正地昂起头颅

  还需要你我兄弟联手实现梦回唐朝

  咱家门外的豺狼

  贼心不死啊

  随时都想闯进门来

  祸害咱家的牲畜

  偷吃咱家的牛羊

  我们兄弟俩可要看清呀

  咱娘在生前可一再叮嘱

  咱家的名字叫“中国”

  书同文、田同亩

  不管到了什么时候

  谁也不准更名改姓

  谁也不准割地分田

  不准让文字异形

  不准让田畴异亩

  这是娘的嘱咐

  也是晚辈的希望

  大哥呀,“中国”两个字比你我的生命

  更重要

 

  大哥他回来了

  消息犹如闪电一般

  瞬间传遍了大江南北

  传遍了家乡的村村寨寨

  人们期待着

  期待着你我共同匡扶社稷

  期待着你我的

  第三次握手

  再铸辉煌

2005年5月2日星期一

国内搜索引擎优化热门关键字数据参考网址

  在制作网站前,首先要分析好你的用户和市场,这样才能更有利于你的网站在搜索引擎里的优化,下面是一些搜索引擎关键字排行榜的参考数据.

  一搜 (Yahoo CN)
  一搜关键字搜索排行榜
  http://www.yisou.com/top_index.html

  搜狐 (SOHU)
  搜狐关键字搜索排行榜
  http://zt.search.sohu.com/topsearch/index.html

  百度 (BAIDU)
  百度中文搜索风云榜
  http://top.baidu.com/

  网易(163.COM)
  网易搜索排行榜
  http://so.163.com/list.htm

2005年5月1日星期日

被Adsense除名后怎么办?

What to do when you're kicked out of Adsense(被 Adsense 除名后怎么办?)

I see threads here all the time from people who are either concerned with getting the "fraudulent clicks" letter, or they've gotten them and now want to know how to get back in.

我总是会见到一些人在这里讨论刚刚接到“欺诈点击”信,或者已经接到过信,现在想重新回到google怀抱。
I am one of a handful of people (that I'm aware of) who have had my account knocked out for invalid clicks and been reinstated a couple of months later.
我就是因无效点击而被禁用帐户而后经过几个月又重新恢复的站长(我所知道的)之一。
So, here's a little tip guide primer on what to expect and what to do.
关于这些问题,这里有一些小技巧。
A few things first:
首先要明确的:
A) You will not receive any check that is currently unprocessed. Consider that payment forfeited (and don't threaten google with a lawsuit to recover it - it will just make things much, much worse).
一、目前未支付的费用不再支付。这个属于支付罚没(不要试图威胁GOOGLE诉诸法律手段解决,这只会使事情更坏)
B) Do confess to them any and all circumstances where you might have screwed up. If you didn't screw up and are genuinely baffled you will need your server logs to locate suspicious activity. I highly recommend getting click tracking software to monitor your ads for exactly this scenario. If you don't have server logs or tracking software, YOU are at fault by default.
二、承认任何可能的作弊行为。如果你没有作弊,而且觉得很冤枉,这就需要服务器的日志来定位可以活动。我极力推荐采用追踪软件监控广告的精确投放情况。如果你没有日志或追踪软件,那只能说你从一开始就错了。
C) The account disabling was both automated and then verified manually. Google examines the location of where clicks were coming from. If they see that too many clicks are from the same geographic area as where they send your check (or the ip you log in from) that sets off a red flag. Competitors clicking on your ads is something Google is well aware of and can track as well (they know their geographic area too)
三、帐号是自动禁用和手工验证结合的。Google检测点击来自的位置。如果有太多的点击来自将来寄给你支票的地方,或者你登陆后台的ip,这就是危险的信号。GOOGLE同样知道竞争对手在点你的广告,这也会被记录在案(他们同样知道他们的地理位置)。
To get your account reinstated:
想恢复你的帐号:
A)        Write google an apology and discuss steps you've taken so the situation won't arise in the future. Don't avoid blame, even if you knew nothing about what your friends were doing when they decided to "help" you by clicking on your ads. The fact is, by revealing information about how you make money to someone else, you are setting yourself up for this situation. I'm not being judgemental, just telling you how Google sees it. In your letter to them, recognize and admit this.
一、写信给GOOGLE道歉并阐述你如何确保以后不再出现此类行为。不要规避过失,即使你并不知道你的朋友们想“帮助”你的时候点了你的广告。实际上,提醒别人你是如何挣钱的就会使你陷入此种境地。我不想评判什么,只是告诉你GOOGLE如何看待这个。给GOOGLE的信中,承认过失。
B)        Offer to make good on any fraudulent clicks. They won't take you up on it, but they will know that you are genuinely sorry and want to keep their business.
二、为欺诈点击买单。他们不会收你的钱,但他们会认为你的道歉是真诚的,并且想继续合作下去。
C)        Contact someone at google directly. Don't just send off a random email to adsense@google.com. Go to a webmasterworld conference. Meet someone in their company. Use that In when the conference is over. Worst case scenario, BUY an In into the company. Does someone you know have an In there? Offer to pay them to to speak to their In on your behalf. A big adwords spender with a personal ad rep is a good place to begin.
三、直接联系GOOGLE的工作人员。不要只随便丢封电子邮件给adsense@google.com。加入webmasterworld会议,会见一些公司的人,会议结束后用In(谁知道这鬼是什么东东?)。最坏的情况,买个In进入公司。你知道那里谁有In么?出钱让他们代表你直接跟In谈谈。来头较大的adwords会员做这个比较好。
D)        Seek out text ad competition immediately. Even if the ads aren't as high-paying as Googles (and they won't be), it will break the sting of losing all of your income until Google does come back around to review your case.
四、马上搜索文本广告竞争对手,即便这广告的费率不高(实际也不会高的)。这将削弱失去所有收入带来的阵痛直到GOOGLE回来检查你的问题。
E)        Be persistent, but polite. Send a letter (a new one) once a week. Keep reiterating your loyalty to their program and how you are prepared to write letters forever until they will understand you are committed to following their rules if they will reaccept you.
五、坚持每周礼貌地给GOOGLE发信(不要千篇一律)。告诉他们你对ADSENSE的诚意,告诉他们你会一直写信直到他们意识到你将遵守游戏规则如果他们重新接纳你。
Now for the bad news....
一些坏消息。。。
None of this will probably help. To be reviewed for readmission, your site must be large enough that the revenue is worth a potentially risky business move.
或许这些都没用。要想获得被审查的机会,你的站必须大到值得冒重新接纳潜在的风险。
If they don't answer your letters anymore and all hope is lost, you are now left with basically one recourse assuming you really want to be in their program: Change your domain name, bank account, IP address, ISP and site design. Wait two months, then take on a partner you trust. Reapply for the program under this new partner's name and address, (now especially possible given Google's automatic deposit program). Learn from your mistakes and never do anything that can potentially result in your ads being clicked on fraudulently again. So, really, get a partner you can trust will not click as well.
如果他们没有回复你的邮件,所有希望就落空了。如果真的很想重新加入,你只有一条最基本的路可走:换域名、银行帐号、IP地址、ISP还有站点设计,等两个月,然后请个你可以信赖的朋友,用你朋友的名字和地址重新申请帐号()。吸取教训,不要再做任何可能导致欺诈点击的事了。千万,你的朋友也不要让他点击。
To anyone else who hasn't been kicked out yet and never wants to be:
写给那些还没被踢而且永远不想被踢的:
A)        Shut up about how you make money when talking to friends and family. Let them privately think you run a bestiality porn site or something. It's still better than them clicking on your ads
一、跟朋友/家人绝口不谈你是如何挣钱的。让他们私下认为你在开一个XXX站或别的什么也比他们点你的广告要好。
B)        Disable ads for your own ip and local geographic region, if you have access to that data and it won't hurt your business. Ditto with your competition's ip address. If you don't know it, write him an email pretending to be a customer and look at his return headers.
二、如果可以的话(不少赚钱的前提下),在你自己的IP或本地区IP段禁用广告。对竞争对手IP,也这样做。如果不知道的话,可以假装是他的顾客发封邮件过去然后看回信的邮件头。
C)        Get click-monitoring software and check it daily. Be vigilant in notifying Google about what YOU think is fraud, even if they don't. Your notifications to them will come in especially handy should your account ever be flagged by them. You'll be remembered as honest.
三、抓一个点击监控软件并每天检查。提高警惕,随时通知GOOGLE告诉他们你认为哪些点击是可疑的,即便他们不是。如果你的帐户曾经被他们注意过(异常),这个通知就特别有用。这会留下诚实的印象。
D)        Think of Google for the long term, not the short term. So you're having a bad month and think clicking on an ad you might be interested in anyway doesn't hurt anyone? You're wrong. This month might be bad. Next month will be good. Google revenue is about long term averages. Is a few cents click worth the loss of thousands of dollars in the long term? Definitely not.
四、考虑GOOGLE眼光放长远一些。有个月广告很疲软,你就想点一下,你也许想这不会伤害任何人。错了。这个月可能很不好,下个月就可能会好。GOOGLE收益应该是长销平均的收益。长远看,为了几分钱的点击而几千美圆,值得么?显然不!
Take it from me, I've been there, been put out on the street, and eventually been reaccepted (after a lot of hard work). It can and does happen to any of us. Just make sure the odds of it happening to you are as slim as possible.
我就像被赶出来丢弃到街上,然后又很偶然的被重新接纳了(经过一系列努力)。这情形会而且已经发生在我们身上。让它的几率越来越小吧。

原文出自http://www.webmasterworld.com/forum89/5794.htm