Archive for the ‘ 实用工具 ’ Category

MSN、QQ在线聊天代码

QQ的在线交谈代码:<a href=”tencent://message/?uin=12345&Site=在线QQ&Menu=yes”>在线qq交流</a>

MSN从7。5开始加入了命令行控制,你可以在网页中加入“与我交谈”这样的按钮了,访问者点击就可以直接用他的MSN与你对话,代码是

建立对话:msnim:chat?contact=[邮件地址]

添加好友:msnim:add?contact=[邮件地址]

语音聊天:msnim:voice?contact=[邮件地址]

视频聊天:msnim:video?contact=[邮件地址]

用的时候把[邮件地址]写成你的MSN账号,不要方括号,用链接即可,如

与我交谈

加我为好友

MSN同时也有网页版在线聊天代码,详细请看msn官方网站。

http://im.live.cn/imme

最新MACBOOK PRO

MAC BOOK PRO

MAC BOOK PRO

According to the source the above picture is the new Macbook Pro grabbed with a camera phone. Some interesting details about the Pro were also included:
The ‘Touchpad Dock’ rumor is false
A new magnetic opening/closing system is in place
The top of the ‘shell’ is gloss, similar to the iPhone and the bottom is aluminum.
The iSight is hidden nicely in the glossy frame
The keyboard is similar to the MacBook Air keyboard

‘Touchpad Dock’谣言是假的,
一种新的磁性开放/关闭系统,
顶部的’壳’是光猾质感的,类似iPhone,底部是铝,
该iSight摄像头是隐藏在很好的光泽框架中,
键盘类似MacBook Air的键盘。

If this picture is real the “TouchPad Dock” rumor is killed, although the touchpad in the picture does look like it may be made with a different material than the past — possibly glass making the current touchpad rumors half true I suppose. Also to note from the picture there does not seem to be drastically curved unlike the original “photo” of the Macbook Pro. This is in agreement with many other sources across the web that have said that the new Macbook Pro does not have curved edges.

Also included from the source is what is claimed to be a mockup of a Macbook Pro ad designed for the Apple website. Remember the source is on Apple’s design team .

You’ll have to make your own conclusions but we think the images above are fairly reasonable and match a lot of the current MacBook Pro expectations. We hope it’s true and will continue watching and waiting for more Macbook Pro information.

Linux的下载命令wget

wget命令可以在linux下进行下载文件,这里的用法是摘自其GNU的帮助文档,由于都是E文,所以亲自用了一下,并记录其要点,以便日后翻阅:

Simple Usage 简单用法:
1、Say you want to download a URL. Just type:
wget http://fly.srk.fer.hr/ 最简单直接下载

2、But what will happen if the connection is slow, and the file is lengthy? The connection will probably fail before the whole file is retrieved, more than once. In this case, Wget will try getting the file until it either gets the whole of it, or exceeds the default number of retries (this being 20). It is easy to change the number of tries to 45, to insure that the whole file will arrive safely:
wget –tries=45 http://fly.srk.fer.hr/jpg/flyweb.jpg 注:–tries=45是当服务器无反应时,连续重试连接45次,当为0是则无限次重下载.

Now let’s leave Wget to work in the background, and write its progress to log file log. It is tiring to type –tries, so we shall use -t.
wget -t 45 -o log http://fly.srk.fer.hr/jpg/flyweb.jpg 注:-o log 把显示的信息写信到log文件中,亦可改为:wget -t 45 -o log.txt http://www.wcsky.com 即信息写入到log.txt文件中。

The ampersand at the end of the line makes sure that Wget works in the background. To unlimit the number of retries, use -t inf.

The usage of FTP is as simple. Wget will take care of login and password.
wget ftp://gnjilux.srk.fer.hr/welcome.msg

Advanced Usage 高级用法
1、Create a five levels deep mirror image of the GNU web site, with the same directory structure the original has, with only one try per document, saving the log of the activities to gnulog:
wget -r http://www.gnu.org/ -o log 注:-r 下载http://www.gnu.org/文件的镜像内容。

The same as the above, but convert the links in the HTML files to point to local files, so you can view the documents off-line:
wget –convert-links -r http://www.gnu.org/ -o gnulog 注:下载http://www.gnu.org/文件的镜像内容以及内容中的链接为本地的链接。

2、Retrieve only one HTML page, but make sure that all the elements needed for the page to be displayed, such as inline images and external style sheets, are also downloaded. Also make sure the downloaded page references the downloaded links.
wget -p –convert-links http://www.server.com/dir/page.html

The HTML page will be saved to www.server.com/dir/page.html, and the images, stylesheets, etc., somewhere under www.server.com/, depending on where they were on the remote server.

3、The same as the above, but without the www.server.com/ directory. In fact, I don’t want to have all those random server directories anyway–just save all those files under a download/ subdirectory of the current directory.
wget -p –convert-links -nH -nd -Pdownload http://www.server.com/dir/page.html

wget -Pdownload http://www.wcsky.com 注:下载http://www.wcsky.com里的面容到download文件夹中,如果此文件夹不存在,它会自动创建。

4、Retrieve the index.html of www.lycos.com, showing the original server headers:
wget -S http://www.lycos.com/ 注:-S : 用来显示服务器端的头信息,

5、Save the server headers with the file, perhaps for post-processing.
wget -s http://www.lycos.com/ 注:-s:下载其URL文件,并把头信息写入到文件中。

6、Retrieve the first two levels of wuarchive.wustl.edu, saving them to /tmp.
wget -r -l2 -P/tmp ftp://wuarchive.wustl.edu/

7、You want to download all the GIFs from a directory on an HTTP server. You tried wget http://www.server.com/dir/*.gif, but that didn’t work because HTTP retrieval does not support globbing. In that case, use:
wget -r -l1 –no-parent -A.gif http://www.server.com/dir/

More verbose, but the effect is the same. -r -l1 means to retrieve recursively (see Recursive Retrieval), with maximum depth of 1. –no-parent means that references to the parent directory are ignored (see Directory-Based Limits), and -A.gif means to download only the GIF files. -A “*.gif” would have worked too.

8、Suppose you were in the middle of downloading, when Wget was interrupted. Now you do not want to clobber the files already present. It would be:
wget -nc -r http://www.gnu.org/

wget -c http://www.wcsky.com/1.mp3 注:-c:用于断点续传。超实用!!

9、If you want to encode your own username and password to HTTP or FTP, use the appropriate URL syntax (see URL Format).
wget ftp://hniksic:mypassword@unix.server.com/.emacs

Note, however, that this usage is not advisable on multi-user systems because it reveals your password to anyone who looks at the output of ps.

10、You would like the output documents to go to standard output instead of to files?
wget -O – http://jagor.srce.hr/ http://www.srce.hr/

You can also combine the two options and make pipelines to retrieve the documents from remote hotlists:wget -O – http://cool.list.com/ | wget –force-html -i -

负离子常识

1、什么是空气负离子?
  空气是多种气体的混合物,其中主要成分是氮、氧、二氧化碳和水蒸气。通常,空气中的各种气体分子都很稳定,呈中性,即不带电。然而,由于自然界的宇宙射线、紫外线以及雷电、风浪、植物等的作用,会导致周围空气电离,产生负离子,也叫空气负离子。空气负离子实质上就是带负电荷的空气粒子。通常人们所说的空气负离子是指的负氧离子,它是空气中的氧分子结合了自由电子而形成的。自然界的放电(闪电)现象、光电效应、燃烧过程、喷泉、激浪、瀑布等都能使周围空气电离,形成正、负离子。

2.空气中负离于的多少与哪些因素有关?
  在自然界的空气中,负离子的多少和气候、地理条件以及大气污染等有关,据测定:6-,9月份负离子浓度最高,1-3月份则最低,其余月份则介于两者之间。
  在地球表面,负离子浓度一般为几千个/立方厘米。大城市剧场中,仅为10-30个/立方厘米,大城市房间一般为40-50个/立方厘米,街头绿化地带为 100-200个/立方厘米,公园里为400-600个/立方厘米,郊外可达700-1000个/立方厘米,而在海滨、山谷、瀑布等处可高达到20000 个/立方厘米以上。

3.空气负离子的多少对人体有什么影响?
  空气负离子就象食物中的维生素一样,对人的生命活动有着很重要的影响,所以又称空气维生素。它能促进人体的生长发育和防止多种疾病,主要表现在:
(1) 对呼吸系统:改善肺功能。吸入负离子30分钟后,肺吸收氧气增加20%,排除二氧化碳增加约14.5%。
(2)对心血管系统:有明显的降压作用,可改善心肌功能,增加心肌营养,使周围毛细管扩张,皮温升高。
(3)对神经系统:可使人精神振奋,改善睡眠,有明显的镇静和镇痛作用。
(4)对新陈代谢:它能激活机体里的多种酶,吸收负离子后,可降低血糖、胆固醇、增加血钙、尿量、尿中氮和肌酐,加速骨骼生长,防止坏血病、佝偻病、维生素缺乏症。
(5)对血液:可使白血球、红血球、血红蛋白、网状红细胞和血小板增加,血沉减慢,球蛋白增加,PH升高,血凝时间缩短。
(6)对免疫能力:可改善机体的反应性,活跃网状内皮系统的机能,增加机体的抗病能力。

4.空气负离于在医疗保健上有什么应用?
  常见的是吸入空气负离子,治疗呼吸道疾病。国外1300例支气管哮喘病人,经负责制离子治疗后,控制发作病人55%,病情减轻35%,无效果10%。
  对一些呼吸道传染病,负离子也有良好的治疗作用。如儿童百日咳,25%的病人,治疗3~5次可愈,部分病人则要10―15次才愈。
  对慢性鼻炎、慢性咽喉炎,每次吸入20,–30次,有良好的疗效。
  空气负离子治疗的疾病还有:神经官能症、失眠、偏头痛、高血压、痛经、月经性皮炎、外伤、烧伤等。
负离子没有毒,没有副作用。一般说,将空气负离子作为辅助治疗手段,是比较理想的。

5.负离子发生器是个什么物品?
  空气负离子如同阳光、一样,是人类必不可少的物质。但负离子的寿命很短,在清洁的空气中只有几分钟,而在污浊的环境里仅有几秒钟,甚至更短。
  在旷野、海滨、山村、瀑布、喷泉等地,由于大气压低,灰尘少,温度高,空气中电离出的负离子多,其寿命可达到20多分钟;而在城市,特别是工矿区,人口密集,烟囱林立,烟尘剧增,还有汽车排出的废气,空气被污染,负离子数量大大减少,破坏了生态平衡,人们的健康受到威胁。
  自然现象的启示,人们开始用人工的方法产生负离子,释放到周围的空气中,净化空气,改善人们的生活环境。这种用人工产生空气负离子的设备就称为空气负离子发生器或负离子发生器。
负离子发生负离子的原理
负离子是通过负离子发生器利用脉冲、振荡电器将低电压升至直流负高压,利用碳毛刷尖端直流高压产生高电晕,高速地放出大量的电子(e-),而电子并无法长久存在于空气中(存在的电子寿命只有nS级),立刻会被空气中的氧分子(O2)捕捉,形成负离子,它的工作原理与自然现象“打雷闪电”时产生负离子的现象相一致。

负离子的健康含量
据有关科技研究表明,空气中负氧离子的含量是空气质量好坏的关键。负离子不仅可高效杀灭家居空气中因长期密闭而日趋增多的烟雾、灰尘、细菌,更可中和空气中的正离子,活化空气,改善肺功能,改善心肌功能,改善睡眠,促进新陈代谢,增强人体抗病能力,是家居生活不可缺少的健康卫士。如果长期呆在密闭的空调房内,空气中灰尘、烟雾、有害细菌、正离子含量快速上升,就容易引发”空调病”,(头晕、失眠、神经衰弱、免疫力下降、记忆力衰退 ┈┈)症状的发生,成为健康生活的大敌。这时候如何中和过多正离子、杀灭空气中的细菌就成为解决家居空气污染的关键.

搜索引擎的原理

其实我们用mysql都可以做出一个google来,因为大家所访问的搜索结果页面都是数据库结果集的缓存,怎么理解这个问题呢?我来举例说明。
我们假设在mysql数据库中从13亿条数据中搜索mp3关键字,需要耗时1分钟,那么做为用户的我们是无法忍受的,那么我们如何来改善这个结果呢?我 们就要设计数据库结果集缓存了,也就是第一个人搜索的时候去数据库查找搜索结果,之后建立数据库结果集缓存,在规定时间内,如果还有人搜索mp3的,就直 接将数据库结果集中的数据返回给用户,而不再搜索数据库了,这样就大大提高了用户的访问速度,一般可以把速度提升到小于1秒!过了规定时间以后重新建立数 据库结果集缓存就可以更新结果列表了。

那么为什么我们没人碰到搜索非常慢的情况呢?也就是说为什么我不会成为第一个搜索的某个关键字的人呢?
其实非常简单,我们访问google,baidu的时候,我们只能访问到数据库结果集缓存,其实我们根本就访问不到搜索引擎的数据库。这样就可以保证每个人使用搜索引擎的时候,速度都很快!

那么搜索引擎的数据库结果集缓存怎么更新呢?也就是我们看到的数据库排列结果如何变化呢?
其实搜索引擎会根据大家搜索关键字的频率,从高到低来用机器人(程序)自动搜索数据库,建立或更新数据库结果集缓存,这样更新,即时数据库耗时5分钟才 产生结果集,也不会有人投诉太慢的,呵呵。当用户再搜索相同的关键字时,就发现结果排列发生变化了。为了应对全球搜索的反应,所以google会在全球建 立3大数据中心,共投入了45万台服务器,一些做抓取,一些更新缓存,一些做用户服务的。因为每个数据中心缓存更新的时间并不同步,所以才会发生 google dance的现象。如何验证这个理论,你可以对比一个高频关键字和一个低频关键字的更新时间,你会发现高频关键字搜索结果更新速度远远超过低频关键字。

那么搜索结果有13亿,是不是需要建立庞大的数据库结果集缓存呢?如果有上亿的关键词那么不是需要非常多硬盘空间?
其实不管搜索结果有多少,数据库结果集缓存只会建立最高频率搜索的结果集,也就是每个搜索关键字的结果集有个最大页数,大家都知道,搜索结果列表访问最 多的就是列表的前3页,但是又不能保证没有人会翻几十页,所以为了验证我的理论,测试结果表明baidu结果集缓存了76页,之后的结果会告诉你“提示: 限于网页篇幅,部分结果未予显示。”,google的结果集缓存了100页,其实真的有人能翻页翻到100页的,恐怕也真是凤麟毛角了。那么就算每一页的 缓存结果为2K,100页就是200K,看来需要一个海量的磁盘阵列来存储数据库结果集缓存是不可避免的。

那么众多的关键字,搜索引擎怎么知道应该建立哪写关键字的数据库结果集缓存呢?万一建立的关键字的数据库结果集缓存根本就没人查询那不是不很浪费硬盘空间?如何做好协调,既要合理使用硬盘空间,又要满足用户?
其实这个问题也不难解决,一定要建立关键字库,不断更新用户使用的关键字,并且记录关键字查询的次数,如果是一个从来没人用过的关键字,或者认为没必要 建立缓存集的关键字,搜索引擎都会告诉你,找不到和您的查询 “kkdnwos” 相符的网页。其实谁能保证这个世界真的没人使用那个关键字呢?肯定有的,只是你查询的关键字还不在搜索引擎的关键字数据库中,只要你每天都搜几次那个关键 字,相信再不久的将来,这个关键字会有搜索结果的。呵呵!

正则常用例子

正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。

匹配GBK中文字符的正则表达式: [\u4e00-\u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

匹配双字节字符(包括汉字在内):[^\x00-\xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

匹配空白行的正则表达式:\n\s*\r
评注:可以用来删除空白行

匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

匹配首尾空白字符的正则表达式:^\s*|\s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
评注:表单验证时很实用

匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用

匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}
评注:匹配形式如 0511-4405222 或 021-87888822

匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始

匹配中国邮政编码:[1-9]\d{5}(?!\d)
评注:中国邮政编码为6位数字

匹配身份证:\d{15}|\d{18}
评注:中国的身份证为15位或18位

匹配ip地址:\d+\.\d+\.\d+\.\d+
评注:提取ip地址时有用

匹配特定数字:
^[1-9]\d*$    //匹配正整数
^-[1-9]\d*$   //匹配负整数
^-?[1-9]\d*$   //匹配整数
^[1-9]\d*|0$  //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$   //匹配非正整数(负整数 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正

匹配特定字符串:
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串

巧用系统命令看是否中毒

知识重点:巧用系统命令看是否中毒命令是再CMD中输入,不是运行框中一、检测网络连接如果你怀疑自己的计算机上被别人安装了木马,或者是中了病毒,但是手里没有完善的工具来检测是不是真有这样的事情发生,..

巧用系统命令看是否中毒
命令是再CMD中输入,不是运行框中

一、检测网络连接

如果你怀疑自己的计算机上被别人安装了木马,或者是中了病毒,但是手里没有完善的工具来检测是不是真有这样的事情发生,那可以使用Windows自带的网络命令来看看谁在连接你的计算机。

具体的命令格式是:netstat -an这个命令能看到所有和本地计算机建立连接的IP,它包含四个部分——proto(连接方式)、local aDDRess(本地连接地址)、foreign address(和本地建立连接的地址)、state(当前端口状态)。通过这个命令的详细信息,我们就可以完全监控计算机上的连接,从而达到控制计算机的目的。

二、禁用不明服务

很多朋友在某天系统重新启动后会发现计算机速度变慢了,不管怎么优化都慢,用杀毒软件也查不出问题,这个时候很可能是别人通过入侵你的计算机后给你开放了特别的某种服务,比如IIS信息服务等,这样你的杀毒软件是查不出来的。但是别急,可以通过“net start”来查看系统中究竟有什么服务在开启,如果发现了不是自己开放的服务,我们就可以有针对性地禁用这个服务了。

方法就是直接输入“net start”来查看服务,再用“net stop server”来禁止服务。

三、轻松检查账户

很长一段时间,恶意的攻击者非常喜欢使用克隆账号的方法来控制你的计算机。他们采用的方法就是激活一个系统中的默认账户,但这个账户是不经常用的,然后使用工具把这个账户提升到管理员权限,从表面上看来这个账户还是和原来一样,但是这个克隆的账户却是系统中最大的安全隐患。恶意的攻击者可以通过这个账户任意地控制你的计算机。

为了避免这种情况,可以用很简单的方法对账户进行检测。

首先在命令行下输入net user,查看计算机上有些什么用户,然后再使用“net user+用户名”查看这个用户是属于什么权限的,一般除了Administrator是administrators组的,其他都不是!如果你发现一个系统内置的用户是属于administrators组的,那几乎肯定你被入侵了,而且别人在你的计算机上克隆了账户。快使用“net user用户名/del”来删掉这个用户吧!

联网状态下的客户端。对于没有联网的客户端,当其联网之后也会在第一时间内收到更新信息将病毒特征库更新到最新版本。不仅省去了用户去手动更新的烦琐过程,也使用户的计算机时刻处于最佳的保护环境之下。

wordpress更新通知服务器url列表

还是在设置(Options),选择下一个叫做录入(Writing)的选项,并移到页面下方的更新通知的地址栏。这里你可以输入一些更新服务器,每行一个地址。它们是一些接受你的博客更新消息的网站,当您发布一篇新文章时,WordPress 会自动 ping 下列地址,以通知这些网站你的博客有更新。
这一步可以让你的博客更加社会化,同时通过这些更新服务器也可以给你的网站带来流量。上网冲浪的人们通过像 Technorati 和 Sphere 这样的网站可以很容易就发现你刚刚发表的文章的标题,如果他们对你的文章内容感兴趣,那么他们就会访问你的网站。下面是我在WordPress 官方网站找到的一个 Ping 服务的地址列表,你可以复制它们并粘贴在你的更新服务器的更新通知地址栏里: 阅读全文

做好准备迎接新的平台大战。Google Gears 直指微软领地

Google 在去年五月发布了 Gears, 之后的一年里 Gears 被认为是一个小众产品,只会有很少开发者和用户用它来开发能够离线访问的 web 程序。兴许你还能回想起当年的争论:在到处都有网络连接的情况下,究竟谁需要离线访问功能,而且还没有足够的程序支持,等等。不到一年的时间,就在几周 前,Google 亮出了他的王牌:Gears 助力 MySpace 加速邮件系统。其实 Google 早就加入了这场提供新 web API 的比赛,但是居然一年了都没有人注意到。

将 来的浏览器很可能会变成运行所有程序的虚拟机。在这种情况下,操作系统会变的透明,就像 Adobe 所作的,它的 Flash 技术是现在使用的最普遍、最统一的 web 虚拟机,而微软则要自保(它的利润的来源)了。Google 不隐瞒他们想瞄准并且攻击微软的野心,他们知道,要做到这点的最好方法就是上移一层把操作系统架空,让浏览器成为标准且强劲的应用程序虚拟机。

很难在一片评论里表达清楚 Gears 如何改变并且增加 web 程序的功能。以前使用基于浏览器的 Javascript 脚本,MySpace 中的一些类似邮件列表和排序、根据好友列表过滤这样的功能会让人感觉很慢,而当浏览器向服务器发送多个请求时,进度条还可能会定住,沙漏图标在不停的旋 转。而现在,安装 Gears 只要在确认框点击一下并且等待几秒钟,安装之后,以前让用户抓狂的那些功能现在感觉起来就好象是浏览器自带功能一样。Google 给我们秀了一把 Gears 与 MySpace 集成后的能力,这唤醒了大部分人关注他真正的意图:不再仅是离线浏览,而是直接针对 Adobe 和微软所采取的行动。

截至目前为止,Google 拥有一系列共计 28 个基于 web 的程序, 这些程序在全世界有数百万的用户。Google 开发 web 程序的技术都是基于标准的 HTML、CSS 和 Javascript。选择 Ajax 仅仅是因为这是最好的解决方案,但是 Google 还要做更多以面对现实,那就是每个类似的 web 开发技术体系都是被一个直接竞争者所开发、控制。Google 对开源浏览器 Firefox 的开发给予了强大的支持,并且支持开放 web 标准作为他们的技术体系之选。Google 这么做是因为他们的 web 程序都依赖于开放标准,Firefox 的失败会导致 Internet Explorer 复生并且把 web 的控制权拱手让给微软。

以前,只用基于浏览器的 Javascript 来支持 web 程序对 Google 来说不是个问题。直到竞争者领先一步发布了他们自己的第二代 web 平台,分别是 Flex/AIRSilverlight, 情况才发生了变化。基于 web 的程序在有了类桌面的界面和功能后能够做什么,从这一方面开说,微软和 Adobe 已经超前了一大步。用不了多久,大大小小的竞争者就会使用竞争性技术平台创建竞争性程序,那会使 Google 的产品看起来像是还停留在上个世纪九十年代的样子。

留给 Google 的选择现在很明了了:要么放弃使用基于浏览器的 Javascript 和开放标准进行开发,转而接受新技术中 的一种,要么继续坚持使用核心 web 技术并且发展这些技术直到成为可行的替代技术。Google 的问题是,新标准和预期的浏览器功能很快就会带来富 web 技术,但是开发那些标准的进度却如此缓慢,以至于很可能需要几年时间才能看到那些标准被广泛的应用。新的 HTML 标准,HTML5,特别关注扩展本地浏览器对 web 程序的支持能力,在不用附加私有运行时的情况下。Google web API 的基础就是这些同样的功能以及其他的附加功能。

由于标准开发的极其缓慢,导致通向更快更好,而且仍旧免费开放的 web 程序之路被堵死了,所以 Google 决定通过 Gears 自己进入这个市场。想法其实很简单:把明天的 web 技术带 到今天的浏览器里。这些特定的功能大部分都来自新的 HTML5 规范,但是标准制定小组已经在上面花费了好几年。不想再等这个小组完成规范,Google 自己通过件对浏览器进行扩展,实现了这些功能并且达到了那个小组能达到的最高水平。他们宁愿在短期内抛弃标准(原话是“以后再考虑实现”)也要把他们的 web 程序带到能够对抗 Flash 和 Silverlight 的下一代标准。

Gears 有一个 30 人左右的小组开发,这个小组是 Google 内部开源小组的一部分。这个小组由 Vic Gundotra 带领,再一次讽刺的转变过程中,他由微软的传教士成为 Google 的高级开发者。这个一小组开发者着手进行开发,并且保持 Google 对 Javascript 和开放浏览器虚拟机的兴趣。理论上,他们看起来很可能被大组织或者微软和 Adobe 正在投入各自平台的预算所超过。为了改变这个状况,他们把 Gears 从 Google 中分离出来(字面上也是——现在这个项目名称就只是“Gears”)并且在开源协议下发布源代码。

第一个发行版将只关注于 HTML5 里面提议的新功能中他们认为最重要的功能:基于客户端的结构化数据和对象存储。 由于选择了首先实现客户端存储,所以下一年里 Gears 会被构架成一个离线应用程序解决方案,由于其他的竞争者好像都没有注意到这个这么巨大目标,所以如果他们不是有意而为之,那么肯定会发展的很好。 Google 本来有可能开发他们自己的浏览器,某些博客里的推测和谣言也都指出了这一点,但是浏览器市场竞争激烈,却平淡乏味,而且通常会失败。另外,即使他们开发了 自己的新浏览器,他们还要驱使用户接受这个新浏览器,在决定性的市场聚集起来之前只能等待,就是这样,市场上还会有 70% 或者 80% 甚至 90% 的人不使用 Google 的浏览器,却想使用 Google 的程序。

这种情况下,可选的捷径就是跳过浏览器直接在上面增加一层——Google 自己的 web 层。所有常用浏览器都提供了让开发者扩展功能的机制,这样一来,Google 要做的就是对每个浏览器开发对应的插件。这能让新的 web API 能够适应所有的桌面而不需要用户去适应,最重要的,这比起进入浏览器市场来说见效快而且痛苦少。现在可以让浏览器来做所有无聊的事情:渲染 HTML、显示界面、用户选项等等,与此同时 Google 却在改变现状,埋头向前冲。

现在 Gears 支持大量完整的新功能,有一些新功能是和微软、Adobe 他们的下一代 web API 相同的,而其他的则是 Google 自己创造出来的。现在函数调用已经对开发者开放了,包括后台处理(不会再有沙漏出现)、客户端图像处理、位置感知、更好的文件上传功能,还有浏览器内本地数据库。

要让新 API 和开发平台的应用被采用需要两方面的支持,一方面是用户的支持,因为这需要用户安装新的插件;另一方面是开发者的支持,使用 Gears 不会让开发变得更容易,这是因为这和开发其他的使用基于浏览器的 Javascript 的程序没有区别,Gears 只是给开发者提供了一系列更多的可以在浏览器内实现的功能而已。Javascript 和 web 开发者不需要学习任何新知识,用户也要做的也只是安装一个插件(与浏览器绑定的交易肯定会发生,所以这一步都可以忽略了)。Flash 花了 5 到 6 年才足够普及,能够让开发者有信心专注于使用 Flash 开发,不过有了 Google 的支持,Gears 可能只需要用一半甚至更小的时间就能做到。

在这场竞赛中,Google 没有任何损失反而赢得盆满钵丰,Google 一下子就启动了这个新 web API 的基于标准且开源的替代方案。与其他的竞争对手不一样,Google 没有兴趣控制这个平台或者直接用来盈利。相反他们却在试图维持现状:大部分程序使用浏览器里的 Javascript 开发,如果有更多需求那就使用 Flash 或者类似的技术

上一次平台大战结束了很久了,但是每次你都能看到类似的技术经验:大公司失败,小公司成功。给这个平衡增加点开源的砝码,结果还是没有一个单独的公 司能够占优势。有这么多大公司的加入,而且如此的利益攸关,我们肯定要亲眼见证一场漫长的持久战。只有时间能够告诉我们 Google 的做法能不能带领 web 向前发展。

Google Gears 介绍

Google Gears是一款Google开发的软件,让使用者可以离线上网,但目前仍处于beta阶段。这套软件透过SQLite 数据库让本地端能够把资料暂存起来。所以网页是透过暂存区取得的,而不是从实际的网络上取得。而且,Web 相关的程式可以周期性的透过 Google Gears 将本地暂存的资料与网络上的资料做同步。如果网络暂时无法使用,这个同步过程将会延后,直到网络恢复为止。因此,Google Gears 的 Web 相关应用并不是即时的。

Google Gears是一个自由和开源软件,以BSD 许可证发布 。

简介

Google Gears通过以浏览器扩展的方式添加JavaScript API使得浏览器的脚本能够访问本地的缓存数据库。本扩展仅支援 Firefox 和 Internet Explorer 并需工作于Windows、Mac OS X 或者 Linux 下。当前已有一个能够支援Safari浏览器的开发版。当前,Google Reader 和 Google文件 是Google 仅有的两个能够使用 Google Gears 的程序,然而也有另外的Web程序,例如Remember the Milk已经添加了Google Gears 这个功能。在Google Reader 中,在线模式和离线模式需要认为切换,这主要是由于数据传输过程中有所区别。在别的程序中,例如Remember the Milk,在线模式和离线模式能够无缝切换。

Google Gears有三个主要的API组件:

* 一个本地服务器,用来存储和读取离线程序资源 (包括HTML, JavaScript, images等)。
* 一个小型数据库(以SQLite构建),用来储存本地数据。
* 一个工作池,用来让开发者将本地数据与服务器端后台同步。

支援

通过使用一个Greasemonkey 脚本 created by one of the Google Gears engineers,Google Gears 能够在一些原本不被支持的站点上启用。