2006年12月29日星期五

断网后互联星空的浏览器劫持

  “台湾地震断网”,老流氓“互联星空”乐了,因为他们又会借机大捞一笔了,这里有我的截图为证。

  首先解释一下什么是DNS劫持。严格来说中国电信的这种行为不能算是DNS劫持,但似乎除了这个名词也没有更适合的词来形容这种行为了,所以就需要解释一下DNS劫持的来龙去脉。

  DNS劫持是网络安全界常见的一个名词,意思是通过某些手段取得某一目标域名的解析记录控制权,进而修改此域名的解析结果,通过此修改将对此域名的访问由原先的IP地址转入到自己指定的IP,从而实现窃取资料或者破坏原有正常服务的目的。

  而中国电信是通过IE浏览器搜索功能来推送电信的114搜索。其具体原理是与IE本身的实现相关。简单来说,IE对于输入的网址,如果无法正常解析其域名或者输入的根本就不是域名的话,会调用它自身定义的搜索引擎来搜索这个地址。这个搜索引擎,默认是MSN,电信为了将这部分流量变成自己的流量,就对MSN的搜索地址进行了DNS劫持了,具体细节就是在中国电信的几个DNS服务器中作手脚,将对auto.search.msn.com这个域名解析的应答篡改为他们自己的IP地址,劫持了用户和网站之间的HTTP会话和通信,强制将用户未请求的内容显示在用户的浏览器中。

  这次的现象是,当我访问Bloglines,因为海底光缆断了,因此这个网站就无法访问,本来应该显示“该页无法显示”的信息,但是我的浏览器却返回了如下的界面。

断网后的互联星空的挟持

互联星空的网站挟持(点击图片查看大图)

  访问正常网站,却被挟持到了互联星空的网址,内容不仅仅有色情引诱的图片,还有Google Adsense的广告,互联星空真是赚钱贩毒两不误啊。

  防止互联星空的这种挟持,可以在IE中进行如下的设置,设置界面如截图所示。

IE设置界面

  设置好了以后,输入错误地址就不会进入互联星空了。

  中国电信互联星空真是网络界的好榜样啊,难怪中国的网络上到处都是流氓。

2006年12月28日星期四

百度左侧赞助商广告的分析

  前几天我曾经写了篇文章《百度尝试竞价广告新模式》,是因为有人告诉我百度可能在测试新的广告模式。经过一段时间的观察,以及热心读者的反馈,我对于百度这种广告方式的动机有了新的推测。

  1、竞价广告模式不变

  没有迹象表明百度会对目前的竞价广告模式进行调整。百度的竞价广告目前还是主要对应于热门的单一关键词,就是说,搜索某一个热门词汇,百度会将竞价广告隐藏在搜索结果中,但是搜索两个以上的词汇,一般就不会出现竞价广告,除非这个词汇是较为常用的词汇。

  对于多个词汇不显示竞价广告,可能主要是为了防止搜索体验降低。例如,在百度中搜索“软件”,第一条是关于“软件”这个关键词的竞价广告,但是如果用户搜索“操作系统 软件”,如果百度还是在第一条显示关于“软件”的竞价广告,那么会极大降低搜索体验,并且让用户产生“百度搜索的不准确”这样的印象,可谓得不偿失。

竞价广告模式

  2、右侧赞助商广告模式

  然而,没有广告的话,大量搜索流量就没有给百度带来实际的盈利,因此对于“操作系统 软件”这样的搜索,百度使用了“右侧赞助商广告”这样的形式,将广告和搜索结果明显区分开,赞助商广告中包含关于“操作系统”和“软件”两个关键字的广告内容。

右侧赞助商广告模式

  3、左侧赞助商广告模式

  右侧赞助商广告的劣势是明显的,因为广告和搜索结果区分开,所以用户对于广告的点击率就很低,因为大部分用户不喜欢点击广告,为了提高广告点击率,百度在一些高价关键字的组合搜索增加了左侧赞助商广告。比如“加密狗”是一个高价的关键字,则大部分包含这个关键字的搜索结果都会出现左侧赞助商广告,这类广告会使用“赞助商广告”的标识,并在颜色上稍加区分,以便让用户不至于感觉到搜索不准确。

左侧赞助商广告模式

  百度左侧赞助商广告的颜色区分并不明显,这显然是为了得到更多的点击,百度也可以赚更多的广告费。但是大量的普通搜索都会产生这样的难以分辨的左侧广告,无疑会让大量用户产生疑虑,这种广告方式就有点“杀鸡取卵”的味道了。

  Google的左侧赞助商广告使用的是淡蓝色背景,广告和搜索结果区分起来较为容易,大家可以比较一下两者的色彩差别。

Google广告形式

  针对这种广告形式,其他人也有一些分析和观察,邦比快跑就发邮件给我,阐述了一下他对于百度这种广告的研究心得,邮件内容如下:

  前几天你在文章里写了百度竞价广告的一种新模式,今天我恰好看碰到了,作了一个小小的测试,发现了一些好玩的东西。经过测试有如下规律。

  首先并不是所有人都能看到赞助商链接的结果。所以这个功能的确是在测试中。下面所说的是能够看到此结果的情况。

  1、如果只搜索商品本身,比如雨伞、快餐、加密锁等显示的就是推广。

  2、如果搜索的是带有修饰词的商品(一般来讲就是商标了)比如:杭州雨伞,海尔洗衣机,丽华快餐等等,结果可能就是赞助商。

  3、如果搜索的是带有修饰词的商品,但是广告本身恰好是针对这个词的,那么显示的还是推广。比如戴尔电脑。

  4、如果使用看不到赞助商链接的电脑来搜索如2所说的东西。则没有赞助商链接,但是也没有对应的推广。

  基于以上几条,我的结论是,百度正在试图增加广告的显示。比如把快餐这个词的广告打在所有包含这个词的搜索结果里面。但是担心引起纠纷(比如搜索海尔洗衣机的时候,出现的结果全都是其他洗衣机的广告,可能会引起诉讼),所以用深色和“赞助商链接”加以区分。当然,担心误点也应该是一部分原因,但也许不是主要的。

2006年12月27日星期三

台湾地震导致全国断网

  据新浪网、新京报的报道,昨天晚上八点二十分,在南海海域(北纬21.9度,东经120.6度)发生7.2级地震,台湾媒体的报道称地震威力“相当于6颗原子弹在距离地下22公里处爆炸”,并称“大陆福建和泉州等地均有震感”。地震已造成1人死亡,3人受伤。

地震示意图

地震示意图(图片来源:新京报)

  东方网讯的消息称,不少大陆地区的网通、电信用户反映,无法正常访问国外网站,包括雅虎在内的多家国际知名网站均无法正常访问,MSN等IM也无法正常登陆。中国网通以及中国电信集团公关处人士也证实,昨晚台湾地区的地震影响到内地出口光缆,造成国内访问国外网站故障。

  我自己也可以证实,从今天早上起,MSN无法登录,del.icio.us上不去,Feedburner上不去,我购买的一个DreamHost也无法访问,Bloglines进不去,Yahoo无法访问,很多国际著名的网站都无法访问,不过奇怪的是,Google的系列网站包括Gmail,Blogspot,Reader都访问正常,这次断网突发事件中,Google的网络表现非常出色,值得表扬,看来还是Google的网络和服务器还是更为稳定啊。

  DreamHost的无法访问对不少Blogger有影响,因为我知道很多人都购买了这类主机,对于这种光缆的物理损坏,恐怕谁都无能为力。

  目前的状况倒是可以很好的体会一下ChinaNet的感觉,因为大多数国外网站都上不去,只能上国内网站,这可实在是一件悲惨的事情,希望台湾的海底光缆能够尽快修好。此次事件使得我Feedburner的Feed暂时无法访问,请使用阅读器的直接访问我的网站来阅读最新文章。(感谢读者rojoro的爆料)

新浪投票图

新浪投票图(图片来源:新浪)

2006“年度汉字”

  日本汉字能力鉴定协会公布,“命”字当选为日本2006年的年度汉字。“命”字之所以当选,主要是因为日本王室今年迎来天皇长孙,以及日本国内发生了一系列学生受辱自杀事件和虐待儿童事件。

  对于我来说,我也想选一个中国的2006年的年度汉字,我选择的汉字是“民”。

  这个“民”,是时代周刊选出的年度人物:网民。《时代》周刊的格奥斯曼写道:“由于互联网使用者控制了全球媒体、建立并为‘新的数字民主社会’奠定了框架、无偿提供内容并击败职业人士,《时代杂志》2006年的年度人物是互联网使用者。”

  对于网民占到总人口70%的美国来说,的确是这样的,网民改变了这个国家。然而对于生活在社会中下层,九成不会上网的中国民众来说,或许不是这样的,我们的互联网上是什么呢?我看到的是在一年内不断在网络中上窜下跳的所谓“网络暴民”。

  去年的这个时候,我选的“年度汉字”是“封”,那时选这个字最主要的原因是“网站备案”和“维基百科被封”两个事件,今天我选的“民”,也是根据今年的一系列事件选择的,其中包括“ Google搜索南京大屠杀事件”,“Google翻译事件”,“孟广美事件” ,“追杀流氓老外事件”,“铜须门事件”等等,在这些事件中,外国人(以及港台人)在“民”这个字上吃尽了苦头,因为他们不了解中国网民(特别是网络暴民)的心理,不知道他们在想些什么,正因为这些不了解,才导致他们屡屡犯一些不该犯的错误,被“网络暴民”耍的晕头转向,还不知道让自己陷入被动的原因是为什么。

  “网络暴民”是否真的就什么都不怕吗?非也,他们也是有害怕,他们害怕那些了解他们的人,害怕那些掌握他们命运的人。别看他们闹起事来貌似声势浩大,其实本质上是一群乌合之众、一盘散沙,比如去年四月的反日风波中,开始的时候四处闹事,最后被抓了一批,关了个五年十年的(那个叫汤晔的家伙实在是倒霉透顶),结果第二天果然就再没有一个人敢跑上街呼喊什么口号了。

  这也应验了清末民初时候的一个古老的说法:洋人怕百姓,百姓怕官,官怕洋人。王小波曾经在他的《百姓·洋人·官》一文中绘声绘色地描述到:“中国的老百姓人多,和洋人起了争执,就蜂拥而上,先把他臭揍一顿——洋人怕老百姓,是怕吃眼前亏。洋人到了衙门里,开口闭口就是要请本国大使和你们皇上说话,中国的官怕得要死——不但怕洋人,连与洋人有来往的中国人都怕。老百姓怕官,因为中国是个官本位国家,老百姓见了官,腿肚子就会筛起糠来,底气不足,有民主权利,也不敢享受。对于绝大多数平头百姓来说,情况还是这样。”

  所以,尽管时代周刊选出来网民为年度人物,但是在中国,人口不到10%的网民还算不上什么,百度的梁冬甚至认为这些网民在扮演破坏者而不是创造者的角色。诚然,今年发生的那么多事件,总让人对中国的网民感到遗憾,然而我们应该看到,网民也在不断成长和成熟,今天他们不懂事,明天或许会懂。当越来越多的网民将更多精力投入到积极的创造上面去,那么相信未来的某一天,中国网民也可以成为影响社会的风云人物。

2006年12月26日星期二

一百个最有用的网站地址

  此文为翻译英国卫报的科技频道的2006年12月21日的一篇文章,文中列举了一百个最有代表的英文网站,有一定参考价值,翻译过程中将部分Google的英国网站uk转换为国际网站com地址。以下是全文。

  两年前,大多数英国人没有使用过宽带网络,Web 2.0也刚刚进入开发人员的视野,这一切在2006年发生了巨大变化。

  在2004年,互联网和现在是不同的,例如,那时没有youtube,而大部分英国人没有宽带上网,而现在,一切发生了戏剧性的变化,现在,超过75%的用户拥有宽带连接,而已经到来的Web2.0带来的用户和网站的互动就如同操作自己机器上的软件一样,所以我们要重新“百里挑一”地选择出当年最有用的网站。

  这些网站有些有了新的发展,有些则经受了时间的考验,一如以往,我们有20大类总共100个地点地址。当然,并不意味着这些站点你都会喜欢(就算你所说的博客),你可以通过电子邮件为我们提供的宝贵建议,我们会将好的网站列入。

  自从上次评选之后诞生了很多新类型,当年的很多站点至今依然存在,而且还是依然那么有用,有一种类型消失了,例如手机类,主要原因是传输速度跟不上带宽。

  应用程序

  为什么要在浏览器中运行一个应用软件?因为可以与不同位置的人们分享任务,这在进行有密码保护的工作时候非常有效。backpackit.com因其简单的任务,basecamphq.com因其成熟的项目而当选。Tadalis很简单,类似于DOS。而Google的Documents & Spreadsheets需要一个Google帐号(免费的),而且它不打算与微软竞争。Wikicalc是一个免费的在线电子表格,发展也非常迅速。

  backpackit.com

  basecamphq.com

  tadalist.com

  docs.google.com

  softwaregarden.com/wkcalpha

  博客阅读

  互联网上有着无数的博客服务网站,用户需要选择最好的。通过RSS和博客搜索引擎就可以简化工作。Technorati虽然有时候比较诡异,但是一般情况下是一个可以值得信赖的博客导航网站。Icerocket很善于粘住用户。网民需要在网上找到能包含自己最感兴趣的事,那么Newsgator 和 Google Reader就是一个很好的选择。另外,Bloglines也是一个很好的信息获取网站。

  technorati.com

  icerocket.com

  newsgator.com

  google.com/reader

  bloglines.com

  博客写作

  网民需要找到一个好工具来写作,而不仅仅是阅读。开源和免费的软件程序Wordpress就突显了出来,它因自己的创造性、管理能力和发布信息的工具,已经将它的竞争对手远远抛在了身后。Wordpress.org是一个免费的软件;wordpress.com提供免费包的付费、管理版。Blogger是剩下的里面最好的。Vox灵巧、简单而且免费,同时包含了很多的社交应用功能。Statcounter统计非常棒,能为你的网站提供很好的统计数据。免费的Google Analytics也非常好。

  wordpress.org

  blogger.com

  vox.com

  statcounter.com

  google.com/analytics

  电子邮件

  Google的Gmail是基于网络的电子邮件系统,缺点就是在英国还是只有受邀请才能使用。但是,Yahoo的免费邮件服务是一个厉害的竞争者,而微软也有Live Mail。与微软以前的Hotmail服务不同,如果你30天中不登陆的话,它不会删除你所有的旧信。在所有这些免费服务商中,Bluebottle因为它对垃圾邮件的过滤功能而深受人们喜爱。免费版本提供250MB的存储空间,并且支持POP3 和SMTP标准,因而网民从中可以获得一个很好的邮件程序和网络通道。另外还有TempInbox,它提供免费、临时的邮件帐号,而且不需要注册。

  mail.google.com

  mail.yahoo.com

  mail.live.com

  bluebottle.com

  tempinbox.com/english

  游戏

  如今互联网上有许多视频游戏网站,你需要一个像Gametab这样的导航帮你找到最好的。Pocketgamer深入研究了手控游戏,Gamasutra收集得非常全面。Gamesfaqs拥有常见问题解答和预演(另外还有游戏的秘笈、复盘和预览等)。ESRB允许按照年龄段来搜索。

  gametab.com

  pocketgamer.co.uk

  gamasutra.com

  gamefaqs.com

  esrb.org/ratings/index.jsp

  地图

  在Google地图和人造卫星图像出现以前,每个人都会看Ordnance Survey的数据,这意味着它们之间没有什么区别。Ordnance Survey已经升级了自己的网站,可以告诉你该买一个地区的哪个地图。它的地名搜索非常棒。与此同时,New Popular Edition能够显示地区在上个世纪40年代时的样子,这非常不错。

  maps.google.com

  streetmap.co.uk

  multimap.com

  ordnancesurvey.co.uk

  npemap.org.uk

  主流新闻

  BBC继续在自己的道路上行进,它提供了多种媒体形式,同时允许用户添加自己的评论。《纽约时报》网站虽然关闭了一些内容,但是它依然非常强大。这两个网站的RSS feeds在bbcriver.com和nytimesriver.com上可以使用手机来阅读。Google新闻也尽其所能,虽然头条依然是最新的,而不是最为准确的。Nowpublic是OhMyNews来自美国的竞争对手,宣称拥有52,000个配备移动电话的业余记者,而且这些人的位置可以通过GPS或者手机定位来获得。

  news.bbc.co.uk

  nytimes.com

  news.google.com

  english.ohmynews.com

  nowpublic.com

  推荐新闻

  Web 2.0所能做到的一件很好的事情就是,它能够让许多人来投票。虽然可能会被滥用,但是一般情况下还是能够起到很好的作用。那些能让网民投票的网站,以及博客热衷于讲故事的网站(memoerandum)现在越来越多了。最大的就是Digg,今年年初已经超过了Slashdot。Reddi如今被《连线》杂志所收购。Findory有点不同,你越用它学到的就越多。

  digg.com

  reddit.com

  memeorandum.com

  megite.com

  findory.com

  特色

  Snopes披露难以置信的故事、诡计和城市传说,并且揭穿或者证实这些故事。另外,还有100个看上去无用,但是非比寻常的网络博物馆。其中包括虚拟卫生纸博物馆、老计算机网罗博物馆和交通信号标识博物馆。网民可以通过Weird网站上的链接找到许多其他有趣的网站。Onion是网上的讽刺文学杂志,不过它对美国存在偏见。如果要休息5分钟,那么可以浏览B3ta。这个英国网站每周发送一次酷站的直邮,它还有一个信息公告板供人们粘贴有趣的处理图。但是需要注意的是:有人认为,它常常会产生人身攻击,对于工作的人来说并不安全。

  snopes.com

  ringsurf.com

  theweirdsite.com

  theonion.com

  b3ta.com

  政治

  对Theyworkforyou和 Publicwhip 来说,MySociety依然是不可战胜的,因为它将Hansard纳入旗下。但是,博客已经开始向大众披露一些政治人物上不了台面的事情。Guido Fawkes有来自威斯敏斯特市的许多内部消息,而NO2ID经常会引发有关政治和科技方面的争论。与此同时,NHS 23是一个wiki网站,经常讨论政治、技术和国民健康保险制度等话题。

  theyworkforyou.com

  publicwhip.org.uk

  5thnovember.blogspot.com

  no2id.net

  editthis.info/nhs_it_info

  公共行为

  需要揭露一些当权者的弊政了。网络的不同之处在于它的不断成长,政治家如今也上网。而且也有一些请愿的网站。Pledgebank 和HearfromyourMP都是MySociety (mysociety.org)家族下的网站,让市民和决策者之间有个交流,这样才使得人们有所期待。包括The Virtual Activist的Netaction网站,是网民在线提出方案的一个重要工具。那些对发展自己地区有兴趣的人可以上Timebank,可以找到一些用于打发业余时间的组织。

  pledgebank.com

  petitions.pm.gov.uk

  hearfromyourmp.com

  netaction.org

  timebank.org.uk

  电台

  广播现在已经传递到千家万户。BBC在这里占据优势地位,但是依然有许多地方站从AOL的短讯中获取即时的新闻,这非常有趣。雷达和无线电设备遍布世界,所以你总能找到可以听的东西。Reciva做的事情也是一样,但是如果你购买了它的网络收音机,你可以在线添加你自己喜欢的节目。

  bbc.co.uk/radio

  shoutcast.com

  radio-locator.com

  live-radio.net

  reciva.com

  音乐

  能够发现与你喜欢的音乐相似的素材,这一点显得越来越重要,无论是收听者还是唱片公司都希望从中获利。Last.fm需要在你的机器上运行一个软件,显示其他人有此音乐的人喜欢的是什么。Pandora称你需要一个美国的邮编,给它一个然后你就可以听到精心挑选的节目了。Liveplasma能够搜索相关的电影和音乐。Tuneglue是last.fm与EMI投资的一个新网站,使用Amazon和last.fm的数据。Goombah需要下载,而且只能在iTunes中播放音乐,但是有时也还是比较重要。

  last.fm

  pandora.com

  liveplasma.com

  audiomap.tuneglue.net

  goombah.com

  参考

  Wikipedia占据了索引网站的主导地位,部分原因是因为它的网页与Google高度相关。用户撰写的东西,虽然不是十分可信,但是却是非常有趣的。Wikipedia一直与大英百科全书竞争,而大英百科全书不是免费的。另外一个可选的网站是HighBeam 百科全书,它从哥伦比亚百科全书上搜索了超过57,000篇文章。另外,Jim Martindale索引创建于1994年,提供了大量的索引资源。对于单词来说,最好使用Onelook,它提供了931个词典中的750万单词。而且它还能够根据单词的意思来查找到单词。最后,Teldir与世界上的在线电话簿相联系。

  en.wikipedia.org

  encyclopedia.com

  martindalecenter.com

  onelook.com

  infobel.com/teldir

  科学

  Alphagalileo提供了欧洲面对民众的科学信息,是eurekalert的对应网站。Eurekalert是美国的协会,主要是为前沿科学发布宣言的。Space.com依然关注于空间科学。Nasa包含了财富方面的信息。气候变化重要性的突显使得有气候变化学家撰写的RealClimate博客的地位也越来越高了。

  alphagalileo.org

  eurekalert.org

  space.com

  nasa.gov/home

  realclimate.org

  搜索

  Google依然是我们获取信息的主要手段(占据所有搜索用户的一半),但是这并不意味着它是最好的。如今的搜索可以包含硬件、博客、图像、点对点甚至是过去的历史记录。Blinkx因其对视频的专著依然是独特的,而Ask也取得了很大的进步,虽然它只吸引了很少的用户。

  google.com

  search.yahoo.com

  search.msn.com

  blinkx.com

  ask.com

  社会软件

  网民可以在网上找到与自己兴趣相同的人,可以创建自己的个人空间与别人分享。社交网络现在越来越多,但是依然没有阻止MySpace成为老大。Bebo也很流行。Habbo吸引了很多年轻人,而Friendster 和LinkedIn则吸引了很多年龄大的网民。

  myspace.com

  bebo.com

  habbo.com

  friendster.com

  linkedin.com

  视频

  虽然YouTube上的人非常多,但是它不是唯一能够找到视频的网站。Revver提供了一个收益分享系统,当别人观看你的视频的时候,你就可以获得一定的现金。你也可以在brightcove 和currenttv创建自己的电台。另外,Videojug上演示了怎么去做那些可能有用的工作。

  youtube.com

  revver.com

  brightcove.com

  currenttv.com

  videojug.com

  虚拟世界

  与MySpace等社交网站不同的是,虚拟世界给你一个替身,用于代表虚拟世界中的你。宽带的使用加速了计算机运行速度,使得这一切变成可能。BBC在Second Life上举行一场音乐会,这听起来比较诡异。IBM首席执行官拥有了一个替身,这使得Habbo Hotel上人满为患。World of Warcraft拥有数百万的用户,并且在寻找自己的文化。用户也可以在Sims在线上玩耍。大量新人的涌现是否会让这个世界上的人与人之间变得更加冷漠,这依然是一个未知的问题。

  secondlife.com

  habbohotel.co.uk

  worldofwarcraft.com

  thesimsonline.com

  eqplayers.station.sony.com/index.vm

  来源:英国卫报,翻译:William Long ,部分翻译参考赛迪网

2006年12月25日星期一

Google Translate机器翻译错误的技术分析

  前几天又发生了一次针对Google的所谓“辱华事件”,一篇号召网民“抵制Google翻译工具”的帖子在某著名论坛上出现,帖子指责Google的翻译工具出现离奇的“张冠李戴”现象,甚至有伤害中国人感情的嫌疑,对Google的不正确翻译,该文列举了一些例子,如“I thought this was shame”(我认为这是耻辱)被译为“我认为这是中国的耻辱”等等。

Google翻译中出现的错误

  该篇文章发表后,引起了很多人的注意,不少媒体都进行了转载,之后,Google Translate翻译服务也迅速修正了这个技术错误。

Google翻译修正了技术错误

  由于我自己也是经常使用Google翻译工具,因此我就结合一下我对Google Translate翻译工具的理解来阐述一下这种错误可能产生的内在原因。

  以往的翻译通常都是使用一个一个词地“死译”,由于词义的多变性,同样一个单词在不同的场合下可能会出现完全不同的含义,因此原先的那种翻译效果可谓“惨不忍睹”,翻译质量普遍很差,基本上没有什么参考价值,大家可以使用词霸或者Yahoo翻译来随便翻译一两篇英文来实验一下。百度因为“更懂中文”,因此没有全文翻译产品,只有一个简单的单词翻译功能。

  Google Translate翻译服务是目前中文翻译领域中表现最为突出的一个,主要原因是Google翻译于今年进行了一次创新,使得Google翻译具有人工智能的词义辨识能力,也就是说,通过Google搜寻不同字词同时出现在同一网页的频率来确定字词间的关联性,以这种人工智能的方法来进行真正意义上的全文翻译。

  在Google眼中,一个字词的意义经常能从其他与它并用的字眼而获得,Google有天然的优势—已经索引过的海量资料库,通过对海量的多语言数据进行对比学习,找到不同语言之间的语法和文字对应规律,实现了机器自动学习功能。

  Google的这种智能识别翻译虽然极大地提高翻译质量,但是总的来说翻译水准还是不能达到很高的水平,出现一些技术上的错误也在所难免。例如这次出现的这个翻译错误问题。

  我推测这个错误可能是这么产生的,就是在Google的自动机器学习过程中,主要学习的是一些西方文献以及其翻译结果,由于西方对于中国的评价大多都是负面的,因此某些“不好的字眼”经常和“中国”一道出现,当出现的频率很高的时候,Google就根据以往的常识,将这个“不好的字眼”和“中国”进行了一定关联,于是就出现了这种智能推测,导致了所谓的“Google辱华翻译事件”。

  当然,这个技术问题解决起来也不难,就是扩大Google翻译的机器学习资料库,从不同的环境多分析一些资料(比如也分析一下人民日报的信息),这样推测词义出现的偏差可能会小一些,结果也会更为“中立”一些。

  总的来说,Google放弃传统的翻译方式,改而使用机器自动分析统计识别的方法,是一大进步,极大提高了文章的翻译质量,后续Google应该做的是优化识别统计算法,扩大自动学习资料库,使得翻译的结果更加准确。然而令人不解的是,某些怀有不可告人动机的人不去研究技术和算法上的问题,而专门去找一些奇怪的缺陷错误,并将这种纯粹的技术问题上升到政治层面,早先有“Google搜索南京大屠杀事件”,现在又有“抵制Google翻译事件”,是的,哪里有臭味,哪里就有苍蝇的身影,苍蝇改不了逐臭,正如狗改不了吃屎一样,我奉劝那些专门搜寻这方面材料的那些人,不要再做那些妖言惑众、哗众取宠的事情了,这么做不仅侮辱了自己的智商,同时也侮辱了广大网民的智商。当今社会是一个竞争激烈的社会,需要不断学习新知识,学习,不仅仅是学习知识,更重要的是学习分析问题的能力和技巧,如果只知道固步自封、闭门造车,整天想一些歪门邪道,不去想办法提高知识和技能,那么迟早有一天会被这个社会所淘汰。

2006年12月24日星期日

防止PayPal帐号冻结和解冻的经验

  根据维基百科的介绍,PayPal是目前全球最大的在线支付提供商,PayPal在多个国家的业务被视作属于金钱传送,有不少用者在不知情下被PayPal冻结账户,账户内的钱也随之被PayPal扣押。通常的情况是:PayPal通过电子邮件通知客户账户由于风险安全问题受到限制,希望客户提供一些资料(通常为但不限于客户的身份证明和账户注册地址证明);在PayPal通过审查相关信息并做出客户是否有悖于PayPal公司规定或法律规定的判断后,PayPal会采取解除限制、终止向该客户提供服务或其他的解决方法。PayPal公司会最终将冻结资金归还给客户,除非由司法机关认定客户涉嫌洗钱或其他金融犯罪。

  下面是一篇来自易趣外贸论坛的文章,该文作者有多年的外贸经验,对PayPal的使用也小有心得,因此写文章给大家分享一下关于PayPal的防冻策略,里面的观点有一定参考价值。另外,本文后面还附录了官方的《PayPal关闭、冻结用户帐户的规定》的中文翻译,该规定具有一定的权威性。

  PayPal在什么情况下帐户会遭受冻结

  1.短时间内有大量现金流,比如一个新帐户,一个晚上收1000美圆,早上起来就被冻了。

  2.收钱后马上withdraw.这个是最忌讳的,用一般思维去想这个问题,你收了钱就想跑,不冻你冻谁?

  3.withdraw的时候一分钱都不剩。这个也是不安全的,如果当发生买家投诉的时候,势必无钱Refund,那么也是冻结的对象。所以建议大家有3000,withdraw个2500,留个500备用。这种情况冻结的帐户一般会要求提供前1个月的买家所购商品的存货证明,所以你想提光钱也可以,帐户1个月没收钱的情况下提光是相对安全的。

  4.短时间内多人投诉。被投诉的帐户是open issue状态,如果你做的生意是单笔金额比较小的,那我还是建议你直接refund,好汉不吃眼前亏,refund之后投诉就取消了,帐户状态不再open issue.毕竟亏点就亏点吧,保住帐户要紧,留着青山在,不怕没柴烧。但是如果是单笔金额较大的,那你就自己去权衡考虑了。遇到骗子或者蛮不讲理的客户,也不要怕,向PayPal提交相关发货凭证,还是会胜诉的。

  5.帮人转钱,或者自己不同的帐户转钱。帮人转钱,就是别人的钱汇入你的帐户,通过你的渠道进行撤资。这个是非常不安全的,而且一冻结就是一片。自己的帐户转钱,如果是同一个名字的高级帐户和个人帐户转是没问题的,如果是不同名字的,实际也不存在交易的转钱是很危险的,其性质和前者一样。所以这种傻事情千万不要做

  6.多个帐户和关联帐户的问题。关联帐户是PayPal的系统判断,但是到实际冻结的时候还是人工判断。系统判断关联的途径我知道的有3种:1.同一台电脑登陆的不同帐号 2.同一个IP登陆的不同帐号 3.收过同一个ebay卖家ID钱的不同帐号。关联帐户可以追踪哪几个帐号是隶属于一个卖家,所以为什么很多人帐户被冻结了再去开新帐户,开了还没怎么用就又冻结了。所以大家在登陆的时候要避免这个问题。

  7.敏感货物名称。在PayPal付款商品名称中出现大量涉及品牌的词,比如LV,Nike,Gucci,还卖很便宜,明眼人一看就是假货。所以还是避免一下的好

  怎样避免冻结

  1.在做完认证后立即去申请提高到10000万美圆/月。这个认证不是完全为了提高10000美圆的额度,而是防止取款的时候遭到冻结,很多新帐户在第一次withdraw的时候会被冻结,PayPal也是为了资金安全,所以当你提交了相关资料后,PayPal在你withdraw时就不会随便冻结你。方法:传真4页材料。1.申请,写你的帐户是什么,提交了什么材料,需要提高到10000的额度。2.中国银行储蓄存折的第一页,有名字帐号和开户行。3.能证明你地址的帐单(如信用卡帐单,水电煤帐单等)4.护照 或 驾驶执照 或 身份证。将4页材料传真到 001-402-537-5750

  2.在每次完成交易发货后,把tracking number填入到PayPal中去。PayPal在你帐户频繁收款时,你的货物在网上查买家全部签收,那么他也不会轻易冻结你。

  3.在帐户冻结的时候尽量不要开新帐户。PayPal在你帐户很活跃的时候冻结你的帐户,而你又出于生意的需要,没办法只能开新帐户,建议你先发传真解决,到时候开了一堆不同人名字的帐户,都关联的。最后的结果就是被PayPal parting ways.

  怎样解冻

  本来以为PayPal解冻是不可能的。因为当我的帐户第一次被冻结的时候,我懵了,因为我不知道帐户还会被冻结,而且我当时不知道冻结的钱还能不能取出来。我就拼了命地发传真,当时用的是Moneybookers的传真,发了还是解不了冻。

  可是后来发现PayPal解冻还是可以的,连5个以上关联帐户的都可以解冻。只要你有耐心,不停发传真,一般一个帐户在2次传真后解冻的概率是很大的。只要你按照他说的做,不会不给你解冻的。流氓也是讲点道理的。

  一般常见的需要提供的材料

  有效的账单 用来证明你的地址 一般可以用信用卡帐单地址,水电煤气手机电话帐单地址,必须名字和注册的完全一样

  护照或驾驶执照 用来证明你的身份

  充足的存货证明 证明你有充足的货物能发货,一般需要一张填有货物数量的合同或发票就可以了。PayPal要求提供冻结日起前一个月收款的货物数量即可

  供货商的信息(电话 地址 email 传真)  能有份商业发票,发票上附带这些信息,或者是合同

  传真的时候尽量要注意图片的质量,最好直接扫描黑白的,彩色的打印出来会一团黑。

《PAYPAL关闭、冻结用户帐户的规定》的中文翻译

  帐户的关闭及冻结

  本章程最新修订于2003年2月7日

  通常地,除了《用户协议》7.2部分所罗列的权利之外,某一个PAYPAL账户若出现如下列举的任何情况之一,PAYPAL亦有权依据自身之判断,冻结其使用汇款及抽款的功能。

  如果您的账户被冻结,若争议仅限于某一项交易,我方将仅仅对与该项交易有关的金额给予冻结。

  如果您的账户已被冻结,PAYPAL将通过电子邮件通知您,并要求您提供与您账户相关的信息材料。我方会迅速地对事件展开调查。

  如若调查结果对贵方有利,我方将恢复您的账户。如若调查结果于贵方不利,PAYPAL会将钱返还给汇款人,并将贵方账户中的余额解冻。PAYPAL为防范撤款风险,将继续冻结贵方账户180天,或者会关闭您的账户,然后通知贵方。并且将贵方账户中的全部钱款(减去有争议的金额)写支票邮寄到您所提供的地址。

  假若之后证明您有权获得那部分有争议的款项,PAYPAL将会把那笔钱另外付给您。

  若出现如下任何一种情况,都会导致您的账户被冻结:

  与您PAYPAL账户关联的信用卡一经发现未予授权或者有异常情况(包括但不限于发卡行通知,包含您通知您的信用卡公司有笔交易未授权或者您的账户受到威胁,以及做出通知以避免您的信用卡被进一步滥用)

  发现您PAYPAL账户使用未授权或者情况异常的银行账号。

  买方发卡行做出撤销处理导致买方投诉。

  多次通知Paypal进行拒付的买家。

  收到如下投诉:未交货,未提供服务,商品与描述不符,或者商品到货后存在严重问题。

  任何在没有通知Paypal的情况下先行向发卡行提出拒付请求的。

  收到有可能是赃款的汇款(编者语:一般异地交易;个人间转帐被封闭的适用此条,因此个人间转帐一般只适用于真实拍卖中,并提交可查询的运单和发票,而且不可以是经常性的);

  过分争议或者撤款,或者试图通过从PAYPAL借助撤款或者要求卖方退款方式重复取钱;

  当要求提供身份确认资料以便调查时,拒绝配合;

  加入或者交易被发现有套现或者协助套现的行为(不包含PAYPAL借记卡的使用);(编者语:注意!买卖Paypal余额的往往违反该条款)

  随意发送垃圾邮件或者在未经许可的网站上留下链接;

  开多个个人账户;

  账户被用于欺诈行为或者协助欺诈行为;

  触犯《用户守则》;

  与PAYPAL账号连接的银行账户上的姓名和PAYPAL账号上的姓名不相符;

  引入的电子货币转账时银行账户内资金不足,以及不正确的银行交换号(routing number),或者错误的银行账号。

  使用代理服务器。

  加入了禁止的交易及活动,包括但不仅限于:多层次市场运营、廉价赠予俱乐部和他金字塔式的营销计划(注:类似于我们所说的“传销”),以及在网上售卖商品时自交易之日起拖延交货达20天以上,以及其他本章程第二部分所禁止的活动。

  从信用卡机构得知存在信用高风险。

  PAYPAL收到的投诉是关于您的商品交易或者(并且)服务。

  自PAYPAL许可国名单之外的国家登录。

  PAYPAL将竭尽可能地对冻结之账户进行调查,并迅速做出最终处理。

  作者:易淘淘2006,来源:易趣外贸论坛

2006年12月22日星期五

Feedburner推出新Del.icio.us的FeedFlare

  Feedburner今天在其FeedFlare功能中优化更新了Del.icio.us的功能,使得Feedburner用户可以更方便的进行Del.icio.us的操作。

  FeedFlare是Feedburner的一项Feed互动功能,可以通过一些FlareAPI接口在Feed的底部显示更多的相关信息,使得读者不需要访问网站就可以了解各种信息。主要的FeedFlare包括评论数目和地址、Traceback的数目、被Del.icio.us收藏的次数和Tag。

  新版本的FeedFlare不再只是显示一个静态的“Add to del.icio.us”静态链接,而是显示当前文章被Del.icio.us用户收藏的次数和分类名称,成为一个动态更新的信息,显示效果非常好,如下图所示。

Del.icio.us的FeedFlare

  通过对于Del.icio.us收藏次数的跟踪,可以很方便的了解到文章的收欢迎程度,虽然Del.icio.us没有中文界面,但其用户量也是不少,和各个网络系统的接口也越来越好。

  Feedburner用户要想使用这个新功能,请按照如下方法设置:登录Feedburner,点Optimize,选择FeedFlare,得到如下的界面,选中“Save to del.icio.us”即可。

Feedburner的设置方法

  唯一的遗憾是,这个FeedFlare似乎对中文的支持不是很好,当tag为中文的时候会显示为乱码,实在是一个玉璧中的一点点瑕疵。

Z-Blog高效计数器插件

  这个插件的名称虽然叫高效计数器,但含义是这样的:文章计数器的功能不直接操纵数据库,而是写入缓存文件,等一定时候手动将缓存文件的计数器内容写入数据库。从而实现了Z-Blog普通浏览不访问数据库的功能。

  这个插件功能对于一般的Z-Blog并没有什么用处,只是对于访问量很大的Z-Blog系统有用,我以前也写过一遍文章,叫“Z-Blog大访问量异常的解决方法”,该文中我提出一种观点,就是Access数据库是Z-Blog的瓶颈,要想提高性能以应付大访问量的负载,就必须解决Access的瓶颈,方法就是不访问Access数据库。

  在“Z-Blog大访问量异常的解决方法”一文中,我已经详细写出了相关的思路,只是当时我没有时间来实现这个功能,今天有时间,于是就写了一些代码,实现了这个早就想实现的功能。

  代码实现的功能是这样的,将计数器的内容也当作文件写入Cache,系统读计数器,全部从Cache中读取,对外显示计数器内容也是Cache的内容,当想要将Cache的内容更新到数据库的时候,再点插件上的“保存计数器”,就可以将Cache的计数器内容写入数据库,这样,进行索引重建的时候,系统会将正确的计数器内容更新。使用这种方法,就可以做到大部分访问都脱离数据库,当在线连接数很大的时候,性能问题也有可能得到一定的解决。

  解决了万恶之源:Access数据库之后,我尝试访问一下页面,速度的确感觉快了不少,真是不错啊。不知道微软为什么会发明Access这样一个怪物。

  Z-Blog高效计数器插件的安装使用方法:counter目录放在PLUGIN目录下,c_count_js.asp放在根下,编辑TEMPLATE\_article-single.html文件,在适当的位置加入以下代码。

  <script language="JavaScript" src="<#ZC_BLOG_HOST#>c_count_js.asp?id=<#article/id#>" type="text/javascript"></script>

  重建索引,重建所有文件。

  这个插件对一般人来说不是必要的,除非你在线访问数的确比较大。使用这个插件后,每次进行文件重建前,都需要到插件区执行一下“保存计数器”,才能更新全部最新文章计数器。

  点击下载插件文件:Z-Blog高效计数器插件

2006年12月21日星期四

城市吧的实景地图简评

  城市吧的阮薇薇又给我发来邮件,说城市吧这次进行了改版,邀请我评测一下。今天我就谈一下城市吧这个新兴的电子地图服务网站。

  城市吧是在今年7月新上线的一个“实景地图网站”,此地图的最大特色是可以看到街上的实景。与普通的电子地图服务不同, 在城市吧搜索一个地理位置就可以看到对应360度真实场景。目前的实景包括上海内环地区。

  可惜的是,这个系统对浏览器要求过严,我原先打开他们的地址就一直报Java错误,直到这次改版,他们将系统全部由Java切换到Flash后,我才第一次看清了城市吧的“庐山真面目”。

  城市吧的地图模式和微软卫星地图Windows Live Local的驾驶模式非常类似,不过实用过程中,感觉照片的拍摄质量要比微软的好,可惜的是操作方便性不如微软的Windows Live Local灵活,建议城市吧多参考一下。

  制作这样的地图,我猜测是通过某种采集设备人为在各个街道进行实景拍摄采集,然后对照片进行拼接而形成的,和另外两种卫星地图和航拍地图的制作方法是不一样的,据他们介绍,目前只有上海和北京,明天初可能会增加深圳。

  这种地图看起来的确比较酷,不过也有一些问题,比如采集模式的问题,卫星显然是采集速度最快的,航拍其次,街道实景采集对于小面积区域可以做到很快,但是对于大面积城市采集,要想提高采集速度,需要投入的人力物力资源也不是少数。

  另外我比较感兴趣的是这类网站的商业模式,依靠什么来盈利。目前看起来似乎还是走点击广告的盈利方式,对于这类较为消耗资源的系统不知道能否支持。我建议他们可以直接将商家的广告加入采集的照片中,形成类似平面媒体那样的按曝光率付费的广告。

  城市吧的地址是: http://www.city8.com

  更新:看了我这篇评论后,城市吧的阮薇薇发邮件给我,详细说明了一下城市吧的采集原理和商业模式:

  采集原理:城市吧自己专门采购了两辆车,装上采集设备,开遍上海和北京的每条路,去采集360度的实景。

  投入资源和耗时:采集这些实景比卫星比较费时(大城市路太多),小城市就好多了,比如上海就折腾了3个月的样子,为此城市吧专门成立一个项目组,一拨人采集,一拨人图像处理,一拨人做地图开发,剩下一拨人宣传。

  因为采集到上这个城市周期要3-4个月,所以更新的话,一般大城市主要地区可能会半年至一年更新一次。

  商业模式:城市吧有以下几种考虑。

  1、广告:实景中放广告,在实景中我们能看到的那些路边的店面啊,比如酒店、小区、商场、让用户能进去浏览,如果觉得好,还可以直接在页面上显示商家的网址、介绍或者电话,用户可以直接通过比如skype和商家联系。除了能进去转转,道路上的一些广告牌我们也可以替换掉。

  2、车载GPS导航:把实景和GPS地图结合在一起,对开车的人来说会更好用,特别没去过的地方,什么地方禁止停车,单行,道路标志,都能看的很清楚。

  3、短信地图:目前手机的应用越来越广泛,有的已经能查地图,我们也可以通过短信将用户要查找的地图信息,通过实景图片形式发送给他,一目了然。

城市吧的界面

城市吧的界面(图)

Windows Live Local的界面

Windows Live Local的驾驶模式(图)

Windows Live Local的界面

Windows Live Local的鸟瞰模式(图)

  下面是城市吧自己的宣传稿件,供参考。

  相对于传统的地图搜索服务,除文字和二维地图的信息,城市吧还提供对应的360度真实场景。 为广大网民提供实景地图搜索服务。在这里,你会发现那些熟悉和不熟悉的道路、大厦已经不仅仅是地图上的一条线、一个点,你能看到自己家门口的那个小面馆,也能找到马上要去的那个饭店、写字楼或者是商场,能帮助你更准确和快速的定位。实景以真实和直观的细节信息,解决了电子地图准确性、完整性、直观性欠缺的问题。城市吧致力于通过实景地图这一独一无二的服务,为城市中人们的生活提供便利。

  城市吧能为您做些什么呢?

  1、实景搜索 :搜索单位名称,查看搜索结果位置和实景; 搜索开车路线,查看拐弯、上高架等关键路段实景。

  2、实景漫游 :身临其境在南京路、淮海路等商业街区逛街,游览金茂、东方明珠、新天地等旅游景点,参观商家店面。

  3、实景分享 :可以将约会、聚会地点、住所、工作地点等通过 QQ 、 MSN 、邮件、博客等方式与他人分享。

2006年12月19日星期二

十大高明的Google搜索技巧

  前言:多数人在使用Google搜索的过程是非常低效和无谓的,如果你只是输入几个关键词,然后按搜索按钮,你将是那些无法得到Google全部信息的用户,在这篇文章中,Google搜索专家迈克尔.米勒将向您展示如何更智能、更高效地进行Google的系列搜索。

  Google是一个非常精密成熟的搜索引擎,但大多数的用户都没有能完全地利用到它的能力。一般人就是在Google的搜索框中输入一两个关键字,然后点击“搜索”按钮,等着Google显示出它第一页的搜索结果。这是一个相当简单模式匹配算法的搜索,不幸的是,通常此时出现的大部分都是并不需要的结果。

  其实,还是有更好的方式能够让搜索产生一些更少、更为准确的结果。你所需要做的事只是学习一些简单的技巧,你就能很快得到更多更好的Google搜索结果。

  技巧一:使用正确的方法

  无论你是使用一个简单或是高级的Google搜索,在此都存在你应该使用的某种可靠的方法。遵循适当的方法你就能获得非常准确的结果;要是忽略这条建议的话,你也许就会看到大量不相关的结果或是缺乏你想要的相关结果。

  虽然有很多不同(且同样有效的)方法用于网络搜索,我保证这个特别的方法将能带来最棒的结果。这是一个分六步骤的过程,如下:

  1、首先,想好你想要寻找什么。哪些词能够最好地描述你要寻找的信息或者概念?哪些词是你能够用来替换的?有没有那些词是可以不必包括在你想要搜索的更好定义你的需求之内?

  2、构建你的搜索要求。使用尽可能多你所需要的关键词;越多越好。如果皆存在可能的话,试着用适当的搜索操作来使你的搜索更精炼——或者,如果你愿意的话,可以使用高级搜索页面。

  3、点击“搜索”按钮进行搜索。

  4、评估一下搜索结果页面上的匹配程度。如果一开始的结果与你想要的不一致,再精炼你的搜索要求并重新搜索——或转向更合适的搜索站点再进行搜索。

  5、选择你想要查看的匹配的页面,点击进行浏览。

  6、保存这些最符合你需求的信息。

  换言之,这需要你在搜索之前思考清楚,接着在获得最初结果后精炼你的搜索。这些多做的努力都是轻微的,但确实很值得。

  技巧二:合理利用一个“与/或”的搜索

  大多数的用户都没有意识到,Google会自动假定一次搜索要求中所有的词之间都是一种“和”的关系。也就是,如果你输入两个词,它就会假定你所寻找的页面是包含这两个词的。它不会反馈给你仅包含其中一个词的页面。

  这就使得你无须在输入搜索要求时输入一个“和”。如果你想要搜索的包括“Bob”和“Ted”,你所需要做的就是输入bob ted即可。Google会自己假定一个“和”,并自动地将它包括在内部的索引搜索内。

  这与在所要求的词之间假定“或”是不同的。例如,对比输入的要求“bob ted”(记得,这个实际上是bob和ted)与“bob或ted”。根据第一个要求所得的结果所包含的页面会共同提到Bob和Ted.而后者,结果所包含的页面会只单独提到Bob,也有些页面是单独提到Ted,还有一些是共同提到他们二者的。这是一个微妙的差异,但却是很重要的。

  因此,如果你想要一个“与/或”的搜索——搜索包括一个或另一个词的页面,但不一定是都包括二者——你必须在两个关键词之间插入一个带有“或者”功能的操作。当你输入这个“OR”的表示“或者”操作时,请确保所输入的要大写,否则Google会将它忽视为一个忽略的单词(stop word)——也我们接下去将要讲到的。

  技巧三:你的搜索中包括或不包括的词

  关于这些“and”和“or”的词,Google会自动地将这些在你输入的搜索要求中的不重要的、普通的词忽略掉。这些被称作是“忽略的单词”,包括“and”、“the,”、“where”、“how”、“what”、“or”(所有字母皆为小写,还有其它一些类似的词——包括一些单独的数字或单独的字母(例如 “a”)。

  在搜索中包含忽略的单词并没有什么大碍,不过会使搜索速度有些下降,这就是Google将它们剔除的原因。举一个例子,你想要搜索的是“how a toaster works”(烤箱如何工作),Google会移除“how”和“a”两个词,并自行按新的更短的关键词“toaster works”进行搜索。

  如果你想要让这些一般的词包含在你的搜索要求内,你可以通过让Google必须在搜索中包含这些特定的词,使它不去排除“忽略的单词”。想要做到这点,你可以在你确实需要的词之前加上一个“+”符号。例如,要在搜索要求中包含“how”,你应该输入“+how”。请确保在+符号之前有一个空格符,而不是在它之后。

  从另一方面来说,有时你会想要通过排除一些包含特定词的页面来精炼你的搜索结果。你可以通过使用一个“-”号来去掉搜索结果中不想要包括在内的词;在你的搜索要求中任何之前加上了“-”符号的词都会自动地排除在搜索结果之外。同样地,也请记住在“-”符号之前留一个空格符。

  例如,如果你想要搜索“bass”,你所得到的页面可能会包括男歌手一类的或是关于鱼的一类的。如果你仅向搜索的是歌手这类的页面,输入搜索要求时应如下:“bass -fish”。

  技巧四:搜索近似的词

  不确定你在一次搜索中想要搜索的词是正确的?你是否担心一些页面会使用可替代的词来描述你想要的东西呢?

  幸运的是,Google能够让你搜索近似的词——叫做同义词——通过使用“~”符号。只要在想要搜索的词之前加上“~”符号,Google就会搜索所有包括这个词以及合适的近义词的页面。

  例如,要搜索类似“elderly”的词,输入“~elderly”,所得到的页面就会不仅是包括“elderly”这个词,还会有包括“senior”、“older”、“aged”等等词的页面。

  在此还有个额外的技巧:如果要只是列出近义词的页面,而不需要给出许多原先输入的那个词的页面,可以用“-”符号来连接“~”操作,例如“~keyword -keyword”。这样就能在近义词所得的结果中排除原先输入的词。在先前的例子中,要得到仅有“elderly”近义词的搜索结果,就输入“~elderly -elderly”即可。

  技巧五:搜索特定的词组

  当你搜索一个特定词组时,如果你只是简单地输入词组中所有的词你是无法得到最好的结果的。Google也许能够反馈出包含这个词组的结果,但它也会列出包含你所输入所有词的结果,却未必让这些词按照正确的顺序。

  如果你要搜索一个特定的词组,你应该将整个词组放在一个引号内。这样就能让Google搜索规定顺序的精确的关键词。

  例如,如果你要搜索“Monty Python”,你可以输入monty python作为你的搜索要求,接着你也许会获得可接受的结果;这些结果中会包含有着“monty”和“python”两个词的页面。但这些结果并不仅是包含了关于英国喜剧团体的页面,还包括了名叫Monty的蛇以及名叫Monty的家伙,他养了蛇来当宠物,还有其它一些包括了“monty”和“python”的词的页面,即使它们之间看起来似乎毫无关联。

  为了将搜索结果限定在只关于Monty Python喜剧团之内,也就是你想要搜索的页面是按规定的顺序,将这两个词作为一个词组包含在内的,你就应该在输入搜索要求时输入"monty python"——确保这个词组在引号之内。这样的话,如果没有按照规定的顺序将这两个次匹配为一个精确的词组,这个页面就不会被列在搜索结果当中。

  技巧六:列出相似的页面

  你是否有发现过一个网页是你确实很喜欢的,又想知道是否还有与它类似的其它网页呢?不需要再疑虑地思考了;你可以使用Google的相关来寻找:这个操作算符所显示的页面会与特定的页面在某些方面是相似的。例如,如果你很喜欢InformIT上的文章,你可以通过输入“related:http://www.informit.com”来寻找类似的页面。

  技巧七:通过其它的操作算符调整你的搜索

  使用相关操作算符只是众多你可用来调整Google搜索结果的方法之一。所有的这些输入的操作算符都是以相同的方式工作的,将这些算符作为你搜索请求的一部分输入,再将变量紧接在这些输入的操作算符之后的冒号之后(而不是空格),就像这样:“‘操作算符’:‘变量’”。

  有哪些搜索的操作算符是你可以利用的呢?以下是一个简短的清单:

算符 用途 用法
allinanchor: 限制搜索的词语是网页中链接内包含的关键词(可使用多个关键词) allinanchor:keyword1 keyword2
allintext: 限制搜索的词语是网页内文包含的关键词(可使用多个关键词) allintext:keyword1 keyword2
allintitle: 限制搜索的词语是网页标题中包含的关键词(可使用多个关键词) allintitle:keyword1 keyword2
allinurl: 限制搜索的词语是网页网址中包含的关键词(可使用多个关键词) inurl:keyword1 keyword2
filetype: 限制所搜索的文件一个特定的格式 filetype:extension
inanchor: 限制搜索的词语是网页中链接内包含的关键词 inanchor:keyword
intext: 限制搜索的词语是网页内文包含的关键词 intext:keyword
intitle: 限制搜索的词语是网页标题中包含的关键词 intitle:keyword
inurl: 限制搜索的网页的地址 inurl:keyword
site: 限制所进行的搜索在指定的域名或网站内 site:domain

  技巧八:搜索特定的事实

  如果你要搜索一些客观事实,Google也许能够帮得上忙。是的,Google总是能够反馈给你一个匹配你指定的搜索要求的清单,但只要你能够正确地描述了你的搜索要求,且接着搜索的事实是Google已经预先鉴定了额,你就能在搜索结果页面的最顶端得到你所需要的精确信息。

  我们在此谈到的有哪些类型的信息呢?是一些事实性的信息,例如诞生日、诞生地、人口等等。你所需要做的就是输入你想要知道的描述事实的搜索要求。例如:

  要查询圣弗朗西斯科的人口,则输入“人口 圣弗朗西斯科”。

  要查询马克·吐温在哪里出生,则输入“出生地 马克吐温”。

  要查询总统比尔·克林顿什么时候出生,则输入“生日 比尔克林顿”。

  要查询雷蒙德·钱德勒什么时候去世,则输入“去世 雷蒙德·钱德勒”。

  要查询谁是德国总统,则输入“总统 德国”。

  这些问题的答案就会显示在搜索结果页面的顶部。你能够获根据关联的网站得应对你的疑问的正确答案。点击相关的链接还能从这个资源里获悉更多的东西。

  技巧九:搜索Google Directory

  Google在它的搜索数据库中将成千上万的网页索引化——这就能使得不会产生压倒性数量的搜索结果。量确实已经够了,但有时你也许会更愿意得到一些高质量的结果。

  由于质量较数量更为重要,就可以绕过主要的Google搜索引擎而使用Google Directory来代替。Google Directory是一个网页清单相对较小的数据库,它们都是通过一个人工编辑团队手动精心挑选的。Google Directory是有被注释和组织到相关的话题类目下的。你可以通过类目来浏览网页目录,或是搜索指定的项目。

  Google Directory是一个可用来搜索大量Google网页索引实用选择。Google Directory的结果比起你在更大的搜索索引范围中的搜索结果更为集中且高质,也能够帮助你在任何给定的类目下更好地认识什么是可用的信息。另外,如果你喜欢,你也可以利用浏览类目来替代搜索。

  要进入Google Directory,点击Google主页上的“更多”链接,在接下来的页面中选择类别。当然,你也可以直接进入Google的Directory,只要在浏览器中输入directory.google.com即可。

  技巧十:使用Google的其它专业搜索

  Google Directory不仅仅是Google所提供的除了主搜索引擎之外的唯一选择。根据你所做的搜索类型,你也可以通过使用其中Google更为专业的搜索站点之一来得到更好的结果。它们包括:

  Froogle可以用来搜索那些有着最低价格的特定商品的在线购物网站。

  Google Answers所提供的服务是直接让你的搜索需求面向专业人员的小组,大多数都是用于当你有着更为复杂的问题,而无法通过简单的搜索来解答的时候。

  Google Apple Macintosh Search主要是在apple.com域名中以及和其它与苹果相关的站点进行搜索。

  Google Blog Search是用来搜索博客和博客文章的。

  Google Book Search可以搜索成千上万的小说和非小说类图书的全文。

  Google BSD UNIX Search可以搜索到大量专门为BSD版本的UNIX操作系统专业化的站点。

  Google Groups可以搜索到Google Groups档案的相关文章。

  Google Linux Search用来搜索大量与Linux相关的网站。

  Google Microsoft Search可以搜索主要是microsoft.com域名中的内容以及其它微软相关的站点。

  Google News可用来搜索大量有最新新闻和头条的新闻网站,也能够搜索历史的新闻资料,一直可以追溯到两个世纪之前。

  Google Scholar在一个有着学术杂志、文章、报纸、论文和书籍的数据库中进行搜索,也能够选择大学或研究书库。

  Google U.S. Government Search是用来搜索那些美国政府的网站——这是一个最好的用来搜索官方性政府举措、信息、报告等等的地方。

  Google University Search能在一个有着超过600所大学网站的数据库中进行搜索——能够用来查询课程安排、入学资料等等。

  原文作者:Michael Miller

  原文标题:Ten Tips for Smarter Google Searches

  原文地址:http://www.informit.com/articles/article.asp?p=675274&rl=1

  编译人:雪影蓝风(IT168)

  译文地址:http://publish.it168.com/2006/1213/20061213001101.shtml

2006年12月18日星期一

数码相机和拍照手机的选购

  购买数码相机或者拍照手机的确是一件很麻烦的事情,至少对于我来说是这样的,数码相机和手机的品种繁多,网上介绍的文章虽多,但不少是软文,参考价值有限,看的多了,也很难确定到底那一款最合适,这实在是一件令人头疼的事。

  客观公正的参考其实也有,比如最近我就发现了flickr上的一个很好玩的工具:Camera Finder,就是一个不错的客观参考,通过对于用户上传数码相片Exif数据进行分析,汇总用户相机的类型,最后得出flickr用户(主要是国外用户)使用最常用的相机或者拍照手机的品种。

  从汇总的结果上看,Canon EOS Digital Rebel XT(佳能EOS 350D)和Canon PowerShot SD400(国内型号为佳能 IXUS 50)和Sony Ericsson K800i(国内型号为Sony Ericsson K790c)为目前用户最常用的相机品种。

  当然,我对这个数据分析结果也有自己的看法,最常用的其实未必是最好的,很多专业相机拍摄效果可能比这些相机要好,但是专业相机由于价格昂贵、携带不方便,因此实际用户和拍摄的相片不一定多,而Canon PowerShot SD400和Sony Ericsson K800i由于价格便宜,大概只有二千多人民币,并且尺寸很小,在国外普及很广,用起来很方便,用户可以随时随地拍摄相片,如果相机的确好用,那么用的人的确会越来越多。

  携带不方便是一个普通相机的麻烦,我原先的相机虽然照片质量我还算满意,但是携带不方便就很麻烦,我也打算购买新的相机或者拍照手机了,看了flickr的数据,我已经锁定佳能和索尼两个品牌了。

2006年12月17日星期日

Feedburner的RSS广告简介

  Feed广告是Blog的一种盈利方式,和 Google AdSense for Feeds 一样,目前大多数Feed广告都不支持中文用户,目前我发现的支持中文Blog的Feed广告,只有 Feedburner Ad Networks ,我也申请使用了这个服务,下面我就介绍一下使用这个服务的一些经验。

  要申请加入Feedburner Ad Networks,必须要通过Feedburner来发布你的Feed,通常情况下,订阅数要超过500才有资格申请,申请后Feedburner会进行人工审核,审核通过后,你的Feed就加入了Feedburner Ad Networks并同时拥有Feedburner Networks的权限。

  目前Feedburner Ad Network使用的是CPM广告(每千人成本,Cost Per Impression,广告显示1000次所应付的费用),其CPM价格比通常的网站CPM价格要高很多,有的可以达到5-10美元/CPM,对于中文的Blog来讲,这种按显示次数给广告价的方式对于发布者来说是很合算的。

  由于Feedburner Ad Networks是由广告商来找Blogger发布广告的,就我个人经验来说,要想获得广告商的注意,加入某个 Feedburner Networks 是一个较好的选择,一般订阅人数过万的 Feedburner Networks 很容易引起广告商的注意,通常情况下广告商会对整个Feedburner Networks发布广告,这样,广告就会显示在个人的Feed上了。

Feedburner Ad Network

  FeedBurner的广告是需要经过先批复再显示的,如果你发觉某些广告价格过低,或者不适合在自己Blog上投放,也可以拒绝其发布,从这点看,FeedBurner给了广告双方都有一定的自由度。

  不过据我观察,Feed的这种广告所带来的收益并不算多,还不能和网站的Adsense相比,几千个订户的Feedburner的一个月广告,估计不会超过100美元。不过由于这种广告是按照显示次数计算而不是点击计算,并且和Adsense并不冲突,因此收入还是较为稳定,除非Feedburner无法访问

  Feedburner Networks除了在广告上有一定优势外,还有“合烧”Feed的功能,条件是你的Feed必须全都是Feedburner用户,并且都具有Feedburner Ad Networks的权限。这样,发布一个Network就可以将你的符合条件的Feed合烧在一起了,具体效果请参见我自己发布的合烧feed:http://feeds.feedburner.com/chinagfans 。

2006年12月16日星期六

使用Google Earth搜索圣诞礼物

  Google Earth又推出一个好玩的游戏,就是通过Google Earth来搜索圣诞礼物。是的,圣诞老人已经将宝物藏在Google Earth的某个角落,从12月12日到圣诞节前夕,会在圣诞老人的北极工作间上出现一条线索,如果你能找到答案并解决,你的Google Earth上就会出现一个圣诞礼物。每天,前一天的礼物都会自动暴露。

Google Earth圣诞礼物

  对这个游戏已经跃跃欲试了?好吧,那么现在就开始吧:

  第1步:下载最新版本的Google Earth,地址 http://earth.google.com/download-earth.html

  第2步:下载圣诞礼物专用的KML文件,地址 http://dev.keyhole.com/santa/2006/santa.kml

  请注意,你必须下载最新版本的Google Earth 4(PC 4.0.2416, Mac/Linux 4.0.2413)才能跟踪和看到圣诞老人的礼物。

  最后我提示一下,解谜其实相当简单,只要将问题中的一些关键词在Google里面搜索一下,就可轻松找到答案。不过我输入答案的时候,老是报网络错误,不知道是怎么回事。

  英文原文地址:http://earth.google.com/santa/William Long 翻译。

2006年12月15日星期五

Google专利搜索服务发布

  据CNETNews.com报道,本周三晚,Google正式发布了Google专利搜索服务,用户通过输入关键词、专利号、发明者和文件日期就可以搜索美国的专利产品。用户还可以浏览原始专利文件的扫描图像,并可以进行放大。Google的专利搜索涵盖了700万个专利文件。

  目前,Google的专利搜索只提供美国专利文件。做为一个搜索尝试,我们对于百度Google的Page Rank专利进行了一些搜索测试。

  首先,使用“YanHong Li”做为关键字搜索(注:不应搜索Li YanHong),第一条即搜索出“Hypertext document retrieval system and method”,效果不错。该专利的全部信息(专利号,日期,创作人,内容等)都按照一定格式列出来,还可以在线查看专利的具体内容,很方便。如下图所示。

Google专利搜索服务

  再次,使用“Lawrence Page”做为关键字搜索,搜索到的第一条是“Method for node ranking in a linked database”,里面也将专利的详细信息(专利号,日期,创作人,内容等)显示出来,如下图所示。

Google专利搜索服务

  总的来说,Google的专利搜索服务提供了一个简易的搜索美国专利的途径,可惜的是目前只有美国的专利,其他国家的专利还没有。

  Google专利搜索服务的地址是:http://www.google.com/patents

Firefox的Google工具栏中文版发布

  今天,收到Google发来的一个消息,说针对Firefox用户的Google工具栏中文(简体中文和繁体中文)3.0 Beta版已经发布了,于是我就开始下载试用一个看看。

  Firefox版本的Google工具栏下载地址参见Google工具栏网站,我访问的时候,不知道什么原因,点“同意并安装”之后没有任何反应,也没有出现拦截了安装的消息,卸载原先的2.0版本后再安装,还是没有反应,看来不是我本地FireFox环境有问题,就是安装页面有问题,试了一下老版本的安装页面,可以安装。

  没办法,我只好查看源文件,找到了3.0版Toolbar的安装文件地址,直接放到地址栏,终于可以安装了。

Firefox的Google工具栏

  安装还算顺利,最后出现了安装结束的界面,界面默认的搜索引擎是“中国(.cn)”的地址,不过我还是喜欢使用.com的地址。大致看了一下设置界面,和IE版本的工具栏4.0几乎一模一样,可惜发布的时间比IE版本的工具栏慢了好几个月。

Firefox的Google工具栏

  安装后我发现一个有趣的现象,因为我在IE中也安装有Google工具栏,我发现FireFox的这个Google工具栏会自动将我在IE里的一些设置复制过来,比如下面的图标中,那个百度搜索的图标是我在IE里单独设置的,但是FireFox没有设置却也自动有了这个图标。

Firefox的Google工具栏

  由于其全部的功能和IE版本的几乎完全一样,而IE版本的Google工具栏我以前介绍了很多,因此这里我就不再罗嗦介绍了,关于详细的Google工具栏技巧文章,有兴趣的朋友可以参考一下我的Google工具栏的这个栏目。

Firefox的Google工具栏

  下面是Google公关人员发来的关于此事的新闻稿,该文章不代表本Blog的观点和看法,供参考。

针对Firefox的Google工具栏3.0中文版发布了

  今天,Google(谷歌)发布了针对Firefox用户的工具栏中文(简体中文和繁体中文)3.0Beta版。最新版本的工具栏增添了定制按钮和网络书签的新功能,使得Firefox的用户可以拥有和IE用户一样的工具栏功能。自此,Firefox用户的搜索体验将更为个性化。

  所谓“定制按钮”就是用户点击自己工具栏上的按钮,即可访问、搜索自己喜爱的网站,并获得网站最新的RSS/Atom feeds.例如,热衷于新闻的人可以把他们喜欢的新闻网址添加到工具栏上,点击这些按钮,用户就能从工具栏上直接浏览这些网站最新的标题新闻。

  在新版本的Google工具栏上,用户还可以为自己喜欢的网址建立书签,并通过简单的操作为书签分类。举例说,如果用户在工作时定制了一篇有趣的文章并打算随后阅读,那么他只需要通过登录Google帐户,在家里的电脑上就能轻松找到之前定制的这篇文章。这项功能是为方便用户在不同电脑上的使用而设计的,书签被保存在用户的 Google帐户里。

  Google工具栏是备受用户喜欢的一款免费软件。通过Google工具栏,用户无需先打开Google主页就可以在工具条内输入关键字进行搜索。它旨在帮助用户最便捷地搜索到所需信息,让Internet变得更易于使用。

  除简体中文外,针对Firefox的Google工具栏3.0 Beta版提供其它25种语言的支持。在这次发布中,Google新添了英国英语,阿拉伯语,保加利亚语和希腊语等四种语言。最新版的Google工具栏支持Windows XP/2000 SP3+,Mac OS X 10.2+ or Linux。

2006年12月14日星期四

通过PayPal实现美元现钞转换为现汇

  中国是汇率管制的国家,居民手中的美元现汇可以转换为美元现钞和人民币现钞,但是美元现钞和人民币现钞却很难转换为美元现汇,今天我介绍一个方法,可以令没有美元的用户也拥有美元现汇的帐户。

  首先要现解释一下美元现钞和美元现汇的区别,在我国,居民外币储蓄存款有两种账户:现钞户和现汇户。现钞指的是外币的钞票和硬币或以钞票、硬币存入银行所生成的存款。现汇是指以支票、汇款、托收等国际结算方式取得并形成的银行存款。外币现钞只能运送到国外才能起到支付作用,在国内法律是禁止其支付的。根据国家外汇管理有关规定,现钞不能随意换成现汇。个人外汇买卖业务本着钞变钞,汇变汇的原则。国家的外汇管理政策也是鼓励持有现汇、限制持有现钞,因为现汇作为帐面上的资金比现钞更便于外汇管理。

  由于美元现汇兑换人民币高于美元现钞,且在流通和交易上都比现钞方便,因此一般都建议美元现汇存款不要轻易支取为现钞,以免让手中的外汇贬值。将手中的美元现钞转换为现汇,也可以使得自己的外汇升值,我今天想到一个方法,可以实现现钞转现汇的功能,实现我们手中的美元现钞“升级”为美元现汇。

  前提条件是,拥有一个招商银行的信用卡,并用这个信用卡激活了PayPal.COM的国际帐户。

  首先,在PayPal用同名再注册一个帐户,这时候,在银行将美元现钞存入招商银行的信用卡,并用这个卡关联的帐号转一笔美元到另外一个同名PayPal帐号,金额和存入信用卡的相同,之后,在那个帐号里,通过支票或者电汇的方式收款,耐心等待一段时间,支票寄到后去银行托收这张支票,托收成功后,存进去的就是美元现汇,这就实现了美元现钞转换为美元现汇。

  即使你没有美元,由于招商银行的信用卡可以通过人民币还款美元,你一样可以获得美元现汇。这也是通过人民币兑换美元现钞或者现汇的一个方法。不过如果你办理过港澳通行证并申请了一次签注,那么也可以直接去银行兑换几千美元。

  这个方法是突破外汇管制的一个思路,不过PayPal支票托收可能有些银行不做,另外这种转钱方法不知道是否违反PayPal的使用条例(同名帐户是否允许转钱),因此我也不知道这个方法是否有效,稍后我会实际进行一下验证,看看是否可以实现这个功能。

  补充一下相关费用:个人PayPal帐户之间转钱:免费;PayPal支票收款:5美元;PayPal电汇收款:20美元;中国银行托收:20人民币。

  大家如果对PayPal使用比较熟悉,也可以交流一下各自意见。

南京大屠杀纪念日

  今天是12月13日,是南京大屠杀六十九周年纪念日,南京大屠杀指的是日军于1937年12月13日攻陷中国首都南京之后进行的大规模屠杀、抢掠、强奸等战争罪行。

  南京大屠杀这个话题也是一个比较敏感的话题,今年在中国至少有两次相关事件引发了不少争论。

  第一次是关于“Google搜索南京大屠杀”的事件,该事件可能是由于公关公司的暗地炒作,也可能是网络愤青的偶然发现,由Google不能搜索这个词语的现象以及大众对网络知识的匮乏,引出了一个对于Google非常不利的结论,当然这个事情实在讨论太多,有兴趣的人可以自行上网搜索一下,应该可以知道Google无法搜索的真正原因,如果大家是在想不通过代理服务器也搜索这个单词,我建议搜索“南京大屠殺”,这个繁体词是可以搜索的。

  另外一起事件是“孟广美事件”,孟广美在台湾做一个节目时,提到了南京大屠杀,没有表现出较为庄重的表情,因此被愤愤们认定为是亲日派并大肆批判,使得孟广美隐姓埋名了一段时间,至今还没敢上凤凰台锵锵三人行亮相。

  不可否认的是,当今日本人对南京大屠杀的过程与死伤人数的确存在争议,有些认为死亡数百人,有些认为死亡4万人,有些认为死亡十万人。远东国际军事法庭认定为20万以上,中国学者考证为30万以上。

  关于日本人的这些看法,大家可以上上日文版本的维基百科,查看“南京大虐殺”条目即可,中文版的“南京大屠殺”左下部也有相关链接。

  鉴于目前中文版的维基百科大部分人仍然无法直接访问,我这里就转载一下中文版的“南京大屠殺”的条目的部分内容,供参考。

南京大屠杀

  南京大屠杀指侵华日军于1937年12月13日攻陷中国首都南京之后,在南京城区及郊区对中国平民和战俘进行的长达6个星期的大规模屠杀、抢掠、强奸等战争罪行。

  有关南京大屠杀的过程与死伤人数至今仍有争议,其中远东国际军事法庭认定为20万以上,中国学者考证为30万以上,而日本学者之研究则众说纷纭,难有统一定论。

  在中国,南京大屠杀往往是国民对日本右翼为侵略历史翻案的关注焦点之一。在日本,公众对南京大屠杀的认识却存在着广泛不同的情绪及观点,尤其是日本极右翼份子,认为南京大屠杀是被夸大、甚至是凭空捏造的反日外交工具,也有人认为否认南京大屠杀是历史修正主义、否认主义的表现。由於日本人对南京大屠杀的意见有着广泛的分歧,因此视乎讲话者的观点,南京大屠杀可能被称为「南京大虐杀」、「南京虐杀」、及「南京事件」等。对南京大屠杀的认识,是中日关系中存在的重要问题之一。

  南京大屠杀在日本叫做「南京大虐杀」,也叫“南京虐杀”、“南京事件”。英译则为Nanking Massacre(南京屠杀)或Rape of Nanking(南京的洗劫、南京的强奸)等,但往往人民对其的认知远不如对纳粹的种族灭绝过程的认知。

  战争背景

  1937年七七事变后,日本展开全面侵略中国的大规模战争。7月17日,国民政府军事委员会委员长蒋介石在庐山声明中表示:“如果战端一开,那就是地无分南北,年无分老幼,无论何人,皆有守土抗战之责任。”全国上下掀起全民抗战的浪潮。

  同年8月13日至11月12日在上海及周边地区展开淞沪会战。战役初期,日军于上海久攻不下,但日军进行战役侧翼机动,11月5日在杭州湾的全公亭、金山卫间登陆,中国军队陷入腹背受敌的形势,战局急转直下;11月8日蒋中正下令全线撤退;11月12日上海失守,淞沪会战结束。

  淞沪会战结束后,中国军队向南京方向溃退,中国首都南京处于日军的直接威胁之下。由于从上海的撤退组织的极其混乱,中国军队在上海至南京沿途未能组织起有效抵抗。中国将领唐生智力主死守南京,主动请缨指挥南京保卫战。11月20日国民政府宣佈迁都重庆。

  经过淞沪会战三个月鏖战,日军也损失甚巨。日本参谋本部原计划让上海日军“凯旋归国”,并没有进攻南京的计划。11月7日,日本参谋本部给上海派遣军和第十军的命令是:“扫荡上海附近之敌,追击的战线为苏州、嘉兴以东”。 然而日军中下级军官不愿就此罢休,11月15日的第十军军团扩大会议达成决议:“全军独断敢行,全力向南京方向追击。”11月22日,松井石根致电多田骏:“为了尽快解决事变,要求军部批准向南京进军和占领南京。”12月1日,日本参谋本部正式下达占领南京的命令。日军经过数月连续作战,此时进攻上海以西数百公里的南京,几乎没有后勤支持。日军军官称:“粮草不足就现地解决,弹药不足就打白刃战。”在西进途中,日军抢劫、杀害平民、强暴妇女的暴行已经开始。

  12月4日,日军逼近南京外围。8日,日军占领南京外围阵地,已从北、东、南三面包围南京,此时南京守军只剩西面的长江一条退路,然而唐生智做出“背水一战”的姿态,一方面下令集中力量固守复廓阵地,另一方面命令销毁长江上全部渡船,并令宋希濂三十六师看守城内通向下关的唯一通道挹江门,严禁部队从此处退出。自此,南京城内守军和平民的退路被全部切断。10日,日军发动全线进攻,但直到12日仍未能突破南京城防。12日晚7时,唐生智突然下令突围撤退,自己乘保留的汽艇出逃。南京守军瓦解,大部向下关溃退,在挹江门与三十六师发生激烈冲突,最终击破城门逃至下关。由于渡船已经销毁,许多难民与士兵仅试图依靠木板渡江,最终大多冻溺江中。其他人见渡江无望,返回城内。许多士兵脱下军装躲入南京安全区。

  暴行

  大规模集体屠杀

  南京下关码头尸体堆积如山(村濑森安(Murase Moriyasu,南京大屠杀参与者)拍摄)进城兵力约50000,执行军纪维持的宪兵却仅有17人的日军除了个别地或小规模地对南京居民随时随地任意杀戮之外,还对中国人,特别是解除了武装的军警人员以及日军认为是可能参加过抗日活动和适合兵役年龄的中国青壮年,进行过若干次大规模的「集体屠杀」。大规糢屠杀方法有机枪射杀、集体活埋等,手段极其残忍。

  12月15日(日军佔领第3天):已放下武器的中国军警人员3000余人被集体解赴汉中门外用机枪密集扫射,多当场遇难。负伤未死者亦与死者屍体同样遭受焚化。夜,解往鱼雷营的中国平民及已解除武装的中国军人9000余人被日军屠杀。又在宝塔桥一带屠杀3万余人。在中山北路防空壕附近枪杀200人。

  12月16日(日军佔领第4天):位于南京安全区内的华侨招待所中躲避的中国男女难民5000余人被日军集体押往中山码头,双手反绑,排列成行。日军用机枪射杀后,弃屍于长江以毁屍灭迹。5000多人中仅白增荣、梁廷芳二人於中弹负伤后泅至对岸,得免於死。日军在四条巷屠杀400余人,在阴阳营屠杀100多人。

  12月17日(日军佔领第5天):中国平民3000余人被日军押至煤炭港下游江边集体射杀。在放生寺、慈幼院避难的400余中国难民被集体射杀。

  12月18日(日军佔领的第6天)夜,下关草鞋峡。日军将从南京城内逃出被拘囚於幕府山的的中国难民男女老幼共57418人,除少数已被饿死或打死,全部用铅丝捆扎,驱集到下关草鞋峡,用机枪密集扫射,并对倒卧血泊中尚能呻吟挣扎者以乱刀砍戮。事后将所有屍骸浇以煤油焚化,以毁屍灭迹。此次屠杀仅有伍长德一人被焚未死,得以逃生。大方巷难民区内日军射杀4000余人。

  杀人竞赛

  1937年12月13日《东京日日新闻》有关杀人竞赛的报道。1937年12月13日,《东京日日新闻》(即现在《每日新闻》)报道两名日本军官的「杀人竞赛」。日军第十六师团中岛部队两个少尉军官向井敏明和野田毅在其长官鼓励下,彼此相约「杀人竞赛」,商定在佔领南京时,谁先杀满100人为胜者。他们从句容杀到汤山,向井敏明杀了89人,野田毅杀了78人,因皆未满100,「竞赛」继续进行。12月10日中午,两人在紫金山下相遇,彼此军刀已砍缺了口。野田谓杀了105人,向井谓杀了106人。又因确定不了是谁先达到杀100人之数,决定这次比赛不分胜负,重新比赛谁杀满150名中国人。这些暴行都一直在报纸上图文并茂连载,被称为“皇军的英雄”。日本投降后,这两个战犯终以在作战期间,共同连续屠杀俘虏及非战中人员“实为人类蟊贼,文明公敌”的罪名在南京执行枪决。

  强奸

  日军侵佔南京期间强奸了成千上万的妇女,他们不分昼夜并在受害妇女的家人面前施行强暴。有些妇女被日军强奸了好几次,往往有妇女受不住日军的折磨而死。除此之外,日军还强迫乱伦行为。估计当时发生的强暴案可能超过20,000宗。

  远东军事法庭的调查

  远东国际法庭的判决书上写道:「在日军佔领后最初六个星期内,南京及其附近被屠杀的平民和俘虏,总数达20万以上。这种估计并不夸张,这由掩埋队及其他团体所埋屍体达十五万五千人的事实就可以证明了(由红十字会掩埋的是43071人,由崇善堂收埋的是112266人,这些数字是由这两个团体的负责人根据各该团体当时的记录和档案向远东法庭郑重提出的)。」

  法官之一的梅汝璈指出,对于南京大屠杀一案“花了差不多三个星期的工夫专事听取来自中国、亲历目睹的中外证人(人数在十名以上)的口头证言,及检查和被告律师双方的对质辩难,接受了一百件以上的书面证词和有关文件,并且鞫讯了松井石根本人”,“审理是特别严肃认真的”。松井石根听取了法庭宣布的罪状和科刑后,表示“南京事件,可耻之极”。

  法庭判决书中遂有郑重声明:「这个数字还没有将被日军所烧毁了的屍体,以及投入到长江或以其他方法处死的人们计算在内。」值得注意的是:远东国际法庭认定被杀害者为二十万人以上,未包括屍体被日军消灭了的被害者在内,而且这个数字仅是「在日军佔领后六个星期内」的。

  东京审判判处死刑的7名甲级战犯中,松井石根的唯一罪状是南京大屠杀。

  战后日方观点

  许多曾在当时南京附近作战的日籍老兵承认南京大屠杀的存在。日本左翼的日本社会党及左翼背景的日本教职员组合对南京大屠杀也多抱持承认大规模屠杀的立场。但因为日本政府始终否认该罪行与日本右翼民族主义教育下,不少未经历过侵华战争的日本人否认南京大屠杀的存在。但因为秉持观点与政治立场不同,不少日本人对南京大屠杀有不同的解读与看法,其中死伤人数的部分,有二十多万人、四万、数千、数百乃至於完全否定者等各种说法。

  对大屠杀的不同看法

  日本对南京大屠杀最大的争议在於,否认方认为日军进入南京城后城内人口仅二十万人,认为拉贝日记等可以佐证,而拉贝日记记载的事实是——在南京城中的国际安全区内就有20万平民,中国方面认定至少有三十万人罹难;埋葬总人数的问题,也是否认方对南京大屠杀进行质疑之处。另外,日军无条件投降之后到盟军接收之前,有充足的时间销毁随军文件和照片等直接罪证,造成日后追查的直接证据不足,无法一一求证其事实,也是遭到否认方质疑之处。日本否认方认为有不少的书面记录都显示,日军进入南京后南京并未成为空城,没有屠杀的迹象;另外国民党军队仓促撤退,使不少国民党军成为游击队在南京进行巷战,使得平民死伤的责任不清楚。另外日本否认方提出,有国民党军便衣兵假冒日军犯罪而遭国际安全委员会发现的事情。

  研究大屠杀事件的日本学者对死亡人数主要有几种看法:

  二十数万人以上: 主要支持者有笠原十九司(都留文科大学教授)、洞富雄 (早稲田大学教授)、藤原彰(一桥大学教授)、吉田裕(一桥大学教授)、吉见义明(中央大学教授)、井上久士(骏河台大学教授)、本多胜一(新闻记者)、小野贤二(化学工作者)、渡辺春巳。

  四万人左右 : 主要支持者有秦郁彦(日本大学教授?法学博士),另外冈村宁次在《冈村宁次阵中感想录》中认为约有4到5万人被屠杀,抢劫、强奸等“大有其人”。

  两万至数千 : 主要支持者有亩本正己(元防卫大学教授)、板仓由明(南京戦史编集委员?南京事件研究家)、原刚(防卫研究所调査员)。

  认为仅有数百人死亡,乃至於完全否定的态度: 主要支持者有铃木明(雑志记者)、田中正明 (拓殖大学讲师)、东中野修道(亜细亜大学教授)、冨泽繁信(日本「南京」学会理事)、阿罗健一(近现代史研究家)、胜冈寛次(明星大学戦后教育史研究)、杉山彻宗(明海大学教授)、渡部昇一(上智大学名誉教授)、大原康男(国学院大学教授)、竹本忠雄(筑波大学名誉教授)、西冈香织(军事史学会会员)、深田匠(日本歴史修正协议会会长)、前野彻、铃木正男。

  早稻田大学教授洞富雄,1973年7月发表《南京事件和史料批判》。《驳南京大屠杀是所谓“无稽之谈”》(日本现代史出版会),批判铃木和山本的否定史观。1967年写成《近代战史之谜》(人物往来社,后半部分为《南京事件》),1972年4月出版单行本《南京事件》(新人物往来社),1972年11月出版日中战争史资料《南京事件》(河出书房新社),1982年日本文部省在审定教科书时对教科书文字进行修改,他又立即于同年12月出版定本《南京大屠杀》进行驳斥。

  1984年教文社出版了松井石根的亲信秘书田中正明的《“南京大屠杀”之虚构》。

  战后的关于南京大屠杀的诉讼和政界事件

  1973年日本作家铃木明出版《南京大屠杀之虚幻》一书中首次指出“百人斩”为虚构。此后在日本,关於“百人斩”是否属实成为争论的话题。2005年,参与百人斩的两名日军军官向井敏明和野田毅的3名遗属向东京地方法院控告《东京日日新闻》於1937年11至12月间的报道失实,和《朝日新闻》於1971年出版的《中国之旅》一书中所提及关於两名军人的「百人斩」竞赛失实并损害其名誉,向该两出版社索偿3600万日元。东京地方法院审判长土肥章大於2005年8月23日裁定报道属实并非捏造,驳回赔偿请求。撰写《中国之旅》的前《朝日新闻》记者本多胜一在判决后指「「百人斩竞赛」真实性无容置疑,原告意图否定整个南京大屠杀以至对中国发动侵略。不过在诉讼过程中找到新的事实和资料,却进一步肯定这个史实。」[1]

  众议员石原慎太郎1990年在接受采访时说:“人们说日本人在那里(指南京)搞了一次大屠杀,但那不是真的。它是中国人编造的故事。这个故事破坏了日本的形象,它全是谎言”。

  索尼公司董事长盛田昭夫、自民党国会议员石原慎太郎等人撰写的《日本可以说“不”》、《日本还要说“不”》、《日本坚决说“不”》三本书中说道:“无端挑起战争的好战的日本人,制造南京大屠杀的残暴的日本人,这就是人们对日本人的两个误解,也是‘敲打日本’的两个根由,我们必须采取措施消除它。”

  战时日军大佐、二战后日本法务大臣永野茂门,1994年接受《每日新闻》采访时说:“(在日军进入南京后)不久,我就到了南京”,“我认为南京大屠杀及其他事情是编造的谎言”。

  战时特别高等警察课(特高课)课长、二战后法务大臣、文部大臣、日本国土厅首脑奥野诚亮1988年春否认南京大屠杀,“东京审判无效”,要从舆论上“再审东京审判”,遭到日本国内外舆论抨击,当年5月被迫辞职。

  1986年9月,日本文部大臣藤尾正行宣称南京暴行不是战争罪行而“仅仅是战争的一部分”,并说1910年日本对朝鲜的吞并是朝鲜心甘情愿地成为殖民地,发言当日被日本首相中曾根康弘免职。

  1977年,日本文部省在一个标准历史书中把二战中的日本给战争对方造成的伤亡、日本的战争暴行,和强行将中国及朝鲜犯人送往日本劳动营的内容删去,只留下了一些美国轰炸东京的照片、一幅广岛废墟的照片和一份日本战争死亡人数的统计表。

  1965年,日本历史学家家永三郎起诉日本教科书审查部门大幅删改掩饰日军在南京大屠杀和整个侵华战争中的暴行描写,遭到日本右翼势力的在家门口的围堵骚扰。1970年,东京地区法院法官杉本良吉裁决,教科书审查不得超出纠正事实及印刷错误的范围,家永胜诉,右翼极端分子向律师、法官和家永本人威胁要暗杀他们。

  条目来源:维基百科,自由的百科全书

2006年12月13日星期三

Sentinel SuperPro加密锁编程开发指南

  本文将简要介绍Sentinel SuperPro软件加密锁的编程开发知识,可供需要进行软件加密锁开发的软件开发商快速学习掌握这种类型的加密锁的编程开发,快速保护自己的软件不受侵害,防止加密狗被破解。本文资源来源于Sentinel SuperPro加密锁开发套件中的开发手册,仅供大家学习,文字版权属于Sentinel SuperPro所有。

  一、加密锁简介

  Sentinel SuperPro加密锁是一个硬件/软件保护系统,功能主要是保护软件,即防止未经允许非法使用开发商的软件。如未把正确的加密锁与计算机连接,则被保护的应用程序将无法实现全部功能。因此,只有合法用户才能使用开发商的产品。

  使用SuperPro软件保护锁完成软件保护,就是将软件开发商的未被保护的应用程序与SuperPro软件保护锁加密算法相绑定过程。最终实现绑定后的应用程序没有软件保护锁不能单独运行,只有插入软件开发商自己定义算法的软件保护锁,应用程序才能正常运行。当软件开发商的软件销售给最终用户后,软件即使被非法复制,而没有软件开发商提供的软件保护锁软件不能被使用。这样一来,从技术上防止盗版起到软件保护的作用。

  应用程序和Sentinel Superpro软件保护锁加密算法的绑定,是通过API函数调用来校验软件保护锁是否存在来实现的。API函数验证分由三部分组成:

  1)询问部分:开发商的应用程序通过API调用向软件保护锁的驱动程序发出的“查询串”, 驱动程序自动将“查询串”传给并口或USB口上的SuperPro软件保护锁上的算法单元。

  2)运算部分:加密锁通过内部的算法芯片计算“查询串”,并将运算结果“响应串”返回给驱动程序。

  3)程序鉴定、行动部分:驱动程序将“响应串”返回给应用程序中的API函数调用。应用程序对返回值—“响应串”进行比较判断,判断与预知运算结果是否相等,根据判断的结果进行相应的行动。

  如果返回值—“响应串”与预知运算结果相等,则说明保护应用程序的软件保护锁存在,使用程序的用户为合法用户。不相等则说明保护应用程序的软件保护锁不存在,用户为非法用户,应用程序将终止被使用。

  SentinelSuperPro 系统一个主要优点是可对一个加密锁编程,以提供多种驱动程序类型,包括固定响应和可变响应。这样,所创建的软件锁具有非常多的类型。

  例如,可用单元存储固定数据(如序列号、用户名称)或存储控制功能询问的代码。然后,可简单地读取这些数据,以检验是否附加了加密锁。也可使用存储的数据控制程序流程或应用程序的函数。数据字组可以定义为只读的(锁定)或可读/写的。

  每个加密锁的前 8 个单元为系统信息保留。除了某些限制外,可以任意方式使用其它 56 个单元。

  二、加密锁编程接口

  下面以VB语言为例,说明使用SuperPro软件保护锁时,有关API调用的数据结构、函数以及必要的步骤。

  1.基本信息

  DEVELOPER ID:用户ID为加密编号,为固定数字,没有它就不能使用加密锁。

  地址:SuperPro 的地址从00H到3FH,以十六进制数表示。

  访问权限:SuperPro的每一个存储单元可以单独设置成不同的操作权限。

  1- 可读/写数据;2- 只读数据;3- 计数器;4- 算法

  2.数据结构

  APIPACKET

  Type APIPACKET

    data(4096) As Byte

  End Type

  除了sproInitialize, 所有的函数都使用APIPACKET数据结构,该结构在调用sproFindFirstUnit 时被初始化,在调用sproFindNextUnit的时候会根据下一个加密锁的信息进行必要修改。当函数正常返回时,APIPACKET中存放必要的返回信息。

  SuperPro驱动程序使用该结构中的信息与加密锁进行通讯。开发者不要自行修改其中的数据。SuperPro驱动程序不负责分配APIPACKET数据单元,开发者在程序中必须分配APIPACKET结构变量,并且把指针传递给不同的函数。

  3.API函数

  ● RNBOsproFindFirstUnit()

  RNBOsproFindFirstUnit() 函数定位具有指定的开发者ID的SentinelSuperPro 加密锁。在调用 RNBOsproInitialize() 之后,使用其他调用之前,必须首先调用该函数。如果找到了加密锁,讯息包或UNITINFO 记录中将包含有效的数据,如果未找到加密锁,讯息包或 UNITINFO 记录将被标记为无效的。

  RNBOsproFindFirstUnit() 将搜索所有连接在并行端口上的所有级联单位。如果存在多个加密锁具有相同的开发者 ID,RNBOsproFindFirstUnit() 存取找到的第一个加密锁。在需要的时候,可以使用 RNBOsproFindNextUnit()查找具有相同开发者 ID 的其他加密锁。

  参数

  RNBOsproFindFirstUnit() 调用需要以下参数:

  ■由 Rainbow Technologies 或者其他发布者为您指定的开发者 ID。

  ■指向讯息包记录或者 UNITINFO 结构的指针。

  返回值

  如果执行成功,函数返回成功。如果发生了错误,函数将返回附录中所列的状态码。

  ● RNBOsproFindNextUnit()

  RNBOsproFindNextUnit() 函数搜索具有给定开发者 ID 的下一个加密锁。

  开发者ID是由第一次调用的 RNBOsproFindFirstUnit() 指定的。(要找到具有不同的开发者ID的加密锁,需要再 次调用RNBOsproFindFirstUnit()。)

  如果 RNBOsproFindNextUnit() 成功了,讯息包或者 UNITINFO 记录将包含下一个加密锁的数据。如果未成功,讯息包或者 UNITINFO 记录将被标记为无效的。要重新对讯息包或 UNITINFO 记录初始化,需要再次使用 RNBOsproFindFirstUnit() 以及 RNBOsproFindNextUnit()。

  RNBOsproFindNextUnit() 将搜索连接到任何并行端口上的所有级联单位。如果同时连接了几个加密锁,应用程序可 以多次调用RNBOsproFindNextUnit()。

  参数

  RNBOsproFindNextUnit()函数需要一个参数:指向讯息包记录或者UNITINFO 结构的指针。

  返回值

  如果执行成功,函数返回成功。如果发生了错误,函数将返回附录中所列的状态码。

  ● RNBOsproFormatPacket()

  RNBOsproFormatPacket() 函数检验讯息包记录大小的有效性,并且初始化它的缺省值。该调用必须在调用其他 API 函数之前进行,否则将返回错误码 2 (INVALID PACKET)。

  参数

  RNBOsproFormatPacket() 需要下列参数:

  ■指向讯息包记录 (RBP_RNBOspro_APIPACKET) 的指针。

  ■PacketLen 的值是一个整数, 包含了讯息包的长度 (1028 个字节) 。

  返回值

  所有的函数都返回一个无符号的 16 位的值。值为 0 表示操作成功了,其他的值都表明发生了错误。如果发生了错误,函数将返回附录中列出的状态码之一。如果返回的状态码为非 0 的值,那么函数返回的其他数据将是无意义的。

  ● RNBOsproGetVersion()

  RNBOsproGetVersion() 函数返回与 SentinelSuperPro 驱动程序有关的信息,应用程序可以使用该信息。

  参数

  RNBOsproGetVersion() 函数需要下列参数:

  ■指向讯息包记录或者 UNITINFO 结构的指针。

  ■指向用来返回主版本号的位置的指针。

  ■指向用来返回次版本号的位置的指针。

  ■指向用来返回修订版本号的位置的指针。

  ■指向用来返回驱动程序类型标识符的位置的指针。

  返回值

  如果执行成功,函数返回成功。如果发生了错误,函数将返回附录中所列的状态码。

  ● RNBOsproInitialize()

  RNBOsproInitialize() 函数使驱动程序执行所需的初始化操作。在调用任何其他的 API 之前,应用程序必须首先调用 RNBOsproInitialize() 一次。

  参数

  RNBOsproInitialize() 函数不需要任何参数。

  返回值

  如果执行成功,函数返回成功。如果发生了错误,函数将返回附录中所列的状态码。

  ● RNBOsproOverwrite()

  RNBOsproOverwrite() 函数使应用程序能够改变字组的值与存取码,但是被限制的单元(0 到 7)除外。在使用该函数的时候,需要同时提供写密码和重写密码。

  注意重写密码的能力是相当强大的。它的使用应该仅限于工作室中,而不应该在正式发布的应用程序中出现。如果您的保护方案不需要在应用程序中使用重写密码,Rainbow 可以通过编程使您的每一个加密锁具有一个“随机重写密码”。每个加密锁中将包含不同的重写加密锁密码,并且不能在最终用户实际使用中进行修改。

  参数

  RNBOsproOverwrite() 函数需要下列参数:

  ■指向讯息包记录或者 UNITINFO 结构的指针。

  ■您的写密码。

  ■您的两个字组长的重写密码。

  ■需要写入的定址。

  ■赋予该字组的存取码:0 (可读/写数据)、1 (只读数据)、2 (计数器)、3 (算法/隐藏的)。

  ■希望写到该定址上的值。

  返回值

  如果执行成功,函数返回成功。如果发生了错误,函数将返回附录中所列的状态码。

  ● RNBOsproQuery()

  利用RNBOsproQuery() 函数,应用程序可以发送询问字串到SentinelSuperPro 加密锁。应用程序还可以指定用来对字串进行转换的算法描述符。

  加密锁将使用自己的算法和指定的算法描述符中储存的信息对输入字串进行转换。然后加密锁将转换之后的字串返回到应用程序。应用程序将返回的字串与希望得到的字串相比较,即可知道所需要的加密锁是否仍连接在并行端口上。

  在软件开发阶段,高级编程序的鉴定 API:询问选项可以用来确认加密锁的算法描述符对给定的输入字串进行转换的结果。

  参数

  RNBOsproQuery() 函数需要下列参数:

  ■指向讯息包记录或者 UNITINFO 结构的指针。

  ■询问字串中的字节个数(最大值 56)。

  ■指向包含询问字串的缓冲区的指针(偏移量在前,段定址在后)。

  ■指向用来供驱动程序返回结果字串的缓冲区的指针。该缓冲区需要足够大,以便容纳整个的结果字串。另外一种可取的办法是,将某个位置的指针传递给驱动程序,但驱动程序仅返回结果字串的最后 32 个位。

  ■询问中使用的算法描述符的首(较低的)字组的定址。该定址必须是偶数。一般来说,较长的询问字串能够提供更好的保护。推荐的询问字串长度至少为 8 个十六进制字符(32 个位)。驱动程序允许的最长的询问字串的长度为 56 个字节。如果发送的字串长度小于 32 位,驱动程序将在添加一种已知的模式之后再将其发送出去。

  返回值

  如果执行成功,函数返回成功。如果发生了错误,函数将返回附录中所列的状态码。

  ● RNBOsproRead()

  应用程序可以使用 RNBOsproRead() 函数读取非隐藏的记忆体字组的值。非隐藏的字组的存取码为 0 (可读/写数据)、1 (只读数据)或 2(计数器)。算法/隐藏的字组的存取码为 3,它是不能被读取的。如果试图读取一个隐藏的字组,驱动程序将返回拒绝存取。通过检查该状态即可判断字组是不是算法字组。RNBOsproRead() 返回字组的值,而不是其存取码。要获得字组的存取码,可以使用 RNBOsproExtendedRead()。

  参数

  RNBOsproRead() 函数需要下列参数:

  ■指向讯息包记录或者 UNITINFO 结构的指针。

  ■被读取的定址。

  ■一个指针,在调用成功的时候,该指针指向驱动程序返回的指定字组的内容。

  返回值

  如果执行成功,函数返回成功。如果发生了错误,函数将返回附录中所列的状态码。

  ● RNBOsproDecrement()

  RNBOsproDecrement() 函数将可读/写的数据字组(存取码为 0)或者计数器字组(存取码为 2)的值减量 1。在使用该函数时需要提供写密码。如果试图对被锁定或者隐藏的字组减量,驱动程序将返回拒绝存取。如果字组中的值已归零,驱动程序将返回已归零。对这两种状态码应用程序都需要进行检查。RNBOsproDecrement() 可以用来限制演示程序能够被执行的次数。首先将一个计数器与一个算法描述符联系起来,然后在每次程序执行的时候将计数器减一。当计数器为 0 时,算法将自动被去激活。以后的询问将返回无效的响应。

  参数

  RNBOsproDecrement() 函数需要下列参数:

  ■指向讯息包记录或者 UNITINFO 结构的指针。

  ■您的写密码。

  ■需要被减量的数据字组或计数器的定址。

  返回值

  如果执行成功,函数返回成功。如果发生了错误,函数将返回附录中所列的状态码。

  ● RNBOsproExtendedRead()

  RNBOsproExtendedRead() 函数读取非隐藏的记忆体字组的值和存取码。未隐藏的字组的存取码为 0 (可读/写数据)、(只读数据)或 2 (计数器)。算法/隐藏字组的存取码为 3,它们是不可读的。如果试图读取一个隐藏的字组,驱动程序返回拒绝存取。通过检查该状态,能够确认一个字组是否是算法字组。

  参数

  RNBOsproExtendedRead() 函数需要下列参数:

  ■指向讯息包记录或者 UNITINFO 结构的指针。

  ■要读取的定址。

  ■指向指定字组的内容的指针,在调用成功时由驱动程序返回内容。

  ■指向指定字组的存取码的指针,在调用成功时由驱动程序返回存取码。存取码可能是 0 (可读/写数据)、1 (只读数据)或 2 (计数器)。调用不可能返回存取码 3 (算法/隐藏的)。

  返回值

  如果执行成功,函数返回成功。如果发生了错误,函数将返回附录中所列的状态码。

  4.必要的初始化步骤

  在调用API函数进行加密工作以前,必须在应用程序中完成以下有关加密的初始化工作。

  分配APIPACKET数据结构

  调用RNBOsproFormatPacket初始化结构(仅Win32程序使用)

  调用RNBOsproInitialize函数

  调用RNBOsproFindFirstUnit函数找到软件保护锁

  以上工作完成以后,开发者可以根据各自的需要在程序的任何部分进行读写、查询等工作。所有函数没有必然的前后顺序。

  当利用查询响应对,调用RNBOSproQuery进行查询时,需要对查询响应对进行适当转换。

  三、备注

  如果想了解更多有关软件保护锁的信息,请参阅加密锁手册SentinelSuperPro Developer Guide。

  附录.API状态码返回数值

  0 success - 调用顺利地完成。

  1 invalid function code - 指定了一个无效功能码。对于有效的 API 功能码,请查看您所使用的语言的包含档案(例如:SUPERPRO.H )。如果使用 Rainbow 提供的接口程序与驱动程序通讯,通常不应该产生该错误。

  2 invalid packet - 在命令讯息包中检测到核对和错误,该错误表明内部不一致。因是讯息包记录或 UNITINFO 结构还没有被初始化,或者可能已被篡改了。如果使用Rainbow 提供的接口程序与驱动程序通讯,通常不应该产生该错误。

  3 unit not found - 或者 RNBOsproFindFirstUnit(),或者 RNBOsproFindNextUnit() 无法找到指定的 SentinelSuperPro 加密锁。请确信发送了正确的开发者 ID。如果该加密锁消失(也就是说,已?被取消),该错误是其它函数返回的。

  4 access denied - 企图对字组执行非法操作。例如,您可能试图从算法/隐藏字组中读取、向锁定的字组中写入,或者将不是计数器字组或者数据字组的字组减量。

  5 invalid memory address - 指定了无效的 SentinelSuperPro 记忆体定址。有效的定址是十进制的 0-63(十六进制的 0-3F)。对于许多操作,单元 0-7 是无效的。必须使用第一个(偶数)定址引用算法描述符。

  6 invalid access code - 指定了一个无效的存取码。存取码必须是 0(读/写数据)、1(只读数据)、2 (计数器)或者 3(算法/隐藏)。

  7 port is busy - 因为端口被占用,所以请求的操作不能完成。导致的原因可能是有大量的打印任务,或者该端口上的某个单位正在执行写操作并阻塞了该端口。请再试一次该函数。

  8 write not ready - 由于暂时缺少足够的能力,不能执行写入或者减量操作。请再试一次该操作。

  9 no port installed - 在工作站上没有发现并行端口。

  10 already zero - 试图将已?包含 0 的计数器字组或者数据字组减量。如果使用该计数器控制演示程序执行,当对应的算法描述符被起动密码重新激活之后,可能会出现这种情况。

  12 driver not installed - 没有安装或者没有检测到系统设备驱动程序。不可能与该单位通讯。请验证设备驱动程序的加载是否正确。

  13 communications error - 系统设备驱动程序与该单位通讯时碰到问题。请验证设备驱动程序的安装是否正确。

  18 version not supported - 当前的系统设备驱动程序过期。请更新驱动程序。

  19 OS environment not supported - 客户程序库不支持该操作系统或者环境。请与技术支持联系。

  20 query too long - 发送的询问字串超过 56 个字符。请发送较短的字串。

  30 driver is busy - 系统驱动程序繁忙。请再试一次该操作。

  31 port allocation failure - 通过操作系统的并行端口争用处理器来分配并行端口时失败。

  32 port release failure - 通过操作系统的并行端口争用处理器来释放先前分配的并行端口时失败。

  39 acquire port timeout - 在规定的超时时间内请求使用并行端口失败。

  42 signal not supported - 特定的机器不支持信号线。例如,企图在一台 NEC 9800 计算机上使用 ACK 线。

  57 init not called - 没有初始化加密锁。在调用产生该错误的函数之前,请先调用RNBOsproInitialize() 函数。

  58 driver type not supported - 对于定义的操作系统和客户程序库,不支持驱动程序的存取类型。该驱动程序的存取类型无论是直接 I/O,还是系统驱动程序。

  59 fail on driver comm - 客户程序库与 Rainbow 的系统驱动程序通讯失败。

  60 API status unavailable - 扩充的 API 状态函数不可用。

  255 invalid status - 返回的状态码无效。

2006年12月12日星期二

软加密网上激活解决方案

  前一段时间我介绍了不少软件加密技术软件加密锁厂商,使用软件加密锁的确可以方便的保护软件开发商的应用软件,但是需要多付出加密锁的成本,并且也未必能够保证永远不会出现加密锁被破解的情况。今天,我将介绍一种不需要加密锁的新产品技术:软加密产品激活技术,这种技术也能保护软件产品的技术,还可以节省大量的加密锁费用,能加快物流、渠道的供货速度,是一个成本低廉、功能强大且高效的软件保护技术。

  软加密产品激活技术是一种软件知识产权保护技术,用来识别软件产品是否经过合法授权。这一技术操作简单,轻松易行。可以节省硬件加密锁的成本,具有不错的加密效果,目前为世界上不少软件公司使用。下面我将详细介绍一下软加密网上激活的具体实现技术以及详细的实现方案。

  1.产品概述

  软加密网上激活系统是一种纯软件方式的许可证(License)管理系统,用来验证软件产品是否有合法的使用许可。它将软件开发商开发的产品绑定在特定的计算机“硬件指纹”上,即计算机的硬盘号、网卡号、主板信息等特征参数,只有经过授权的计算机可以运行指定的产品。

  加密系统可以提供多种计算机指纹,既可结合使用,也可单独使用。如果主锁定指纹失效,只要后备锁定指纹有效,软件仍能运行。根据软件开发商软件的特点和最终用户的需要,开发商可以定义多种许可证类型,建立无物流的数字化销售服务渠道。

  软件激活平台(网上注册服务)提供基于许可证的保护方式。灵活的许可证管理机制与基于互联网的软件激活平台将软件保护与销售服务模式紧密结合。用户购买软件后可以通过Internet获得许可证授权,激活产品,整个过程快捷、方便、简单并且不需要任何费用。

  2.产品特点

  目前几乎所有高强度的软件加密都采用了硬件加密锁,但是在大大提高软件加密强度的同时,加密锁的引入也提高了软件的成本。因此这种加密技术通常只有在售价较高的软件里得到应用,对于低价格的小型软件,可以考虑使用软件加密技术来节约成本,减低故障率,并保证相应的加密性能,达到高可靠性、低成本、低故障率,使得加密的有效性,产品的兼容性和稳定性得到保障。

  3.应用方案

  3.1.应用流程

  在软件发行之前,首先由加密软件进行特定的处理。软件安装完后,软件与本机的某些特征建立关联,比如,软件可以以一定的方式采集硬件的指纹信息,产生一个特定字符串。用户软件在正式使用前需要激活,通常是在付款后将字符串发送回软件厂商,软件厂商确认合法用户的身份后,根据用户字符串产生一个钥匙串并发送给用户。用户使用钥匙串激活软件,开始使用。使用这种方式,软件厂商可以向用户提供试用版软件,用户在试用后如果认为合适,可以购买许可证来取消时间或功能的限制。当用户数量增加时,只要增加许可证的数量就可以了。在这种方式下,加密软件不仅可以使用软件的方式实现软件的保护,也可以使用硬件方式作为激活条件,这样的安全强度更高。这是由软件厂商来控制和选择的。

  软件安装的时候,自动读取计算机中可以用于加密的指纹数据,然后根据特殊的加密算法,计算出该计算机特有的唯一锁定码。此锁定码以字符串的形式提供。为了控制和跟踪特定软件的销售使用情况,安装的时候,用户必须输入开发商定义的,与软件一一对应的产品序列号。

  在因特网上通过软件激活平台也可以提供用户在线注册。注册的时候,用户除了提供名称、地址等联系方法外,还要提供锁定码和产品序列号。注册过程中将要使用一个专家库,用来审核和记录网络授权以及付款信息。例如,可以审核产品序列号是否有效、同一个序列号以前是否使用过、以前使用过的序列号是否正在被安装到另一台计算机(因为标识号可以区分不同的计算机)、是否允许同一个序列号安装到不同的计算机上。通过以上功能,可以控制一个软件的安装次数,并且可以根据版权要求允许或者禁止将同一个软件安装到不同的计算机中。最后,将有关用户的信息记录到数据库中,以便在将来的安装或销售中使用。

  接下来激活平台生成了软件的激活码。生成激活码的时候,可以设置另外一个参数设置库。因为计算机中可以使用的软硬件参数很多,但是由于软件的特点和用户的实际情况,并不是所有的参数都可以使用。根据实际情况选择便于使用的参数,并且根据实际变化进行必要的修改。此外,还可以设置对软件执行的控制,例如:生成可以永久使用的正式版本,也可以生成在时间或使用次数上加以限制的演示版本。激活码生成器首先将锁定码进行解析,得到用户计算机中各项指纹参数的具体值,然后根据参数设置库的要求,通过加密算法计算生成激活码。因此,激活码是为特定计算机生成的,包含采用哪些指纹参数进行加密的开发商设置,同时包含软件执行的控制信息。即安装码反映开发商的加密思路。

  通过因特网将激活码传递给最终用户,安装完成以后在用户端生成一个密钥文件。密钥文件实质上是激活密码的另一种形式,它保存在用户的硬盘中,以密文形式存在,包含软件锁定信息,使用的指纹选项和软件的执行控制。安装以后的软件在每次执行的时候检查密钥文件是否存在,是否被篡改,同时得到软件执行的控制信息。

  3.2.技术细节

  这种方案可以应用于软件的批量生产,批量生产需要多个部门和环节进行配合,开发部提供加密算法和制作的相关程序,并将自动注册程序安装到注册服务器上,生产部负责批量生产CDKEY,营销部门则将生产出来的CDKEY进行销售,客户拿到CDKEY后即可登录网上注册服务器将软件注册后使用。整个和加密相关的激活流程如下:

  生产部生产出一套软件P,就运行由系统程序产生一个随机的CDKEY——随机数以服务器计算机自开机以来运行时间的毫秒数作为种子,计算一串随机数——一共 16 个字节。将此CDKEY和软件相关信息保存在商务系统的数据库中。

  接下来,程序用CDKEY直接作为密钥,用简单异或加密算法加密软件中的大部分代码(和数据)95%以上。

  然后,直接用户或代理商收到软件后,可以上网注册。运行软件中的注册功能,程序将自动连接到加密注册服务器的加密服务端口,加密注册服务器上则运行加密认证服务。

  首先,程序提示用户输入CDKEY号码,如果通过,继续,否则认为非法用户,在这时可做一些处理(如再验证一次),如果5次验证错误,则判断对方为恶意穷举攻击,系统屏蔽对方IP地址30分钟,直到以后SN号码验证通过为止。

  然后,加密注册程序再取得本地主机的硬件信息,加密该硬件信息并作加密处理后,将它发送给加密注册服务器。

  注册服务器从数据库中查找这个CDKEY,如果找到,并且这个序列号的拷贝已经注册,并且它收到的硬件信息和以前注册的硬件信息相同——相同的软件拷贝可以在一台被授权的计算机上多次安装/注册——或者找到了CDKEY,但该CDKEY还未注册,就将随CDKEY一起发来的硬件信息存入数据库,待以后再验证这台计算机。

  接下来用安全算法计算CDKEY和用户机器信息得到“激活码”,把“激活码”作为解密密码发给用户,用户端程序用服务器发来的解密密码将本地软件注册,完成了一次注册过程。

  如果检测到的硬件信息和原先硬件信息不同,则检测此用户软件的许可证数目,如不够,提示客户端,用户许可证数目不够,必需原先安装过软件的机器上网注销许可证才可以。或者采用限制更新次数的方法,同一用户一个月最多更新一次。

  网上注册方法和手动注册可以并行,手动注册的程序由相关人员根据用户发来的SN和硬件序列号产生,程序进行的处理和网上注册相同。产生的CDKEY则通过邮件或其他方式发送给用户。

  主要优点:减少用户和总部人员注册的工作量,实现自动、安全和方便的注册。

  4.系统实现方案

  4.1.服务器端

  服务器端使用TCP/IP协议实现注册服务。

  认证服务器应实现以下功能:

  (1)黑名单(口令失效)管理。当用户通过书面形式在营业部办理了口令遗失手续时,认证服务器应在第一时间将该用户冻结(黑名单登记),并对在该冻结期使用该用户身份的委托进行跟踪记录;当收到停止冻结的指令时,解除对该用户的冻结(黑名单撤销)。

  (2)安全策略管理。认证服务为每个用户创建各自的安全策略,设定其安全等级和对各个站点内容的访问权限。用户只有在获取了相应的安全策略后才能进入系统,并根据安全策略中指定的访问权限对站点进行访问。

  (3)口令维护。口令维护主要包括口令转换和口令缓存。口令转换将通过SSL传递给认证服务器的口令格式转换为营业部系统中的口令格式,并提交给相应的营业部对口令进行验证。由于需要将口令提交到各个营业部进行验证,使口令验证的响应时间会变得比较长,因此建议采用口令缓存机制来提高口令验证的响应速度。

  (4)跟踪和示警。对系统中一些有关安全方面的异常情况进行跟踪,并向安全管理员发出警告信息,如某用户频繁输错口令等。

  当用户在线注册时,系统将记录用户的登陆信息和用户本地的硬件资源,然后通过这些资源生成用户的注册码,并将注册码加密后传给用户,用户收到注册码后,客户端程序自动将此注册码在本地注册。此注册码和用户机器硬件绑定在一起,不能在其他机器上使用。

  服务器端程序除了传输数据是加密的外,还对非法穷举或其他测试进行自动处理,一检测到异常数据便会切断此用户连接半小时。另外还采用限制更新次数的方法,同一用户一个月最多更新一次。更新的时候检测用户是否在同一台机器更新,更新记录写于数据库中提供分析。

  4.2.客户端

  客户端注册过程,需要先提供一个经过编码后的产品序列号,然后连接到远地注册服务器,服务器接收到注册请求后检查序列号是否存在物流系统数据库中,如存在,则提取客户机器的硬件资源,并生成相应注册码返还客户,客户端程序用此注册码自动注册。

  5.应用效益

  5.1.减少成本:软加密有着比硬件加密狗更低的成本,在节约资金方面有很大的优势。

  5.2.可靠性、兼容性得到提高:传统的并口在一般计算机上只有一个,打印机、扫描仪、活动光驱等外设都会争抢这个资源,软加密技术彻底解决了并口加密狗(加密锁)碰到的并口资源冲突的兼容性问题,成为今后加密产品的一个很好的方向。

  5.3.完善客户资料管理:客户信息数据库的建立有利于收集和管理现有的最终客户的数据资料。

  保护知识产权,抵制盗版软件,是目前中国软件业所面临的迫切问题。以上软加密网上激活解决方案是一种方便快捷的加密解决方案,中国国内的软件商可以依照自身企业的特点参考使用。如果软件开发商对这些技术还有什么不明白的地方,可以发邮件来咨询我。

2006年12月10日星期日

百度尝试竞价广告新模式

  有一个姓朱的读者发邮件告诉我,说他在百度中搜索某些关键字的时候,意外的发现了百度的一个竞价广告新模式:“类似Google的赞助商链接”,于是推测这可能是百度在悄悄测试新的广告模式。

  这个现象我在不久前也发现过,因此今天我就重点讨论一下百度的竞价广告的问题。

  竞价排名是百度模仿Google AdWords做的一种按效果付费的网络推广方式,是百度的主要盈利方式,同时,竞价排名也使得百度备受各方批评和指责。百度竞价排名的主要问题是,百度不仅仅在搜索结果的右侧有赞助商链接,在正常搜索结果的左侧链接也有赞助商广告,这些广告链接和真实搜索结果混杂在一起,很难区分,如果一个广告商出的钱足够多,那么其广告链接会排在搜索结果的第一名。在相当长的一段时间里,在百度搜索一些热门关键字,通常要翻到第七八页才能得到正常的搜索结果,而直到今年三月份的时候,百度才改变了竞价广告的展示策略,最多只显示一页广告。可以说这是百度的一大进步,但是还不够,因为第一页往往还是点击率最高的一页,翻到后面几页搜索的用户毕竟占少数。

百度的竞价广告

  百度不将赞助商链接明确标识,显然是为了获得更多的广告收入,但是这样的处理,会使得用户的搜索体验非常糟糕,搜到的内容往往不是用户最想要得到的内容。对于广告商而言,也因为非常高的“误点率”而多花了不少冤枉钱。百度的这种广告方式,看似对自己最有利,其实百度应该看到,竞价广告的商业模式是由搜索引擎、网民、广告商三方构成,作为一个良性的模式,应该实现搜索引擎、网民与广告商的三方共赢,这里的关键就是公平、公正、公开。

  广告商希望通过最低的成本获得最大的回报,这就需要降低广告的误点率,使得每一个点击广告的用户都是自己的“真实潜在用户”,这种用户对广告发布者来说是价值最高的,因为搜索页面的“迷惑”而误点进来的用户,往往是价值最低的用户。

  用户希望在最短的时间内得到最有价值的信息,大多数用户喜欢看的是有价值的信息,很少有人愿意看无价值的广告,时间是宝贵的,浪费别人的时间无异于谋财害命。将赞助商广告和真实搜索结果进行明确的区分,更易于用户选择出最有价值的信息,增加用户的搜索体验。

  因此可以看到,明确标识“竞价广告”对于用户和广告商来说都是都是有利的,那么对于百度而言是否就不利呢?我看也未必,这么做之后,百度的广告收入的确在短时间内可能会出现萎缩,但是百度为此可以营造出自身“公平、公正、公开”的品牌价值,品牌价值大幅提高,可以让用户更乐意相信广告商发布的内容,提高广告潜在的价值,这样,百度可以通过提高广告单次点击的价格来逐步增加收入。

  百度显然也看到了这一点,并悄悄进行了一些探索。根据我们对一些关键字搜索内容的观察,百度的确在谨慎地尝试这种新的广告模式,在一些较为冷僻的关键字中使用“赞助商链接”这样的广告明确标识,使得用户能够明显分辨出正确的结果。相信百度在小心翼翼地尝试之后,如果感觉效果理想,就会全面实施这种新的广告模式。

  最后,我强烈建议百度在竞价广告的审批上严格把关,目前在百度上搜索“加密狗破解”,竟然有好几个破解网站堂而皇之地做起了竞价广告,希望百度不要为了赚这些黑心钱,而和那些违法犯罪分子干起坐地分赃的勾当。在打击盗版的产业链这种大是大非的问题上,百度应该做出自己正确的表率,而不是目前这样的态度。

百度的竞价广告

软件盗版的产业链

  在中国这样的国家,开发软件是一件痛苦的事情,因为除了和同行之间相互竞争之外,还要和另外一个对手——“盗版”来竞争,使得软件开发商精力分散,并付出很多不必要的成本。而盗版做为一个特殊产业,在中国这个特殊国情下,也逐渐形成一个成熟的产业链。

  利益催化,盗版产业链成熟

  软件盗版的产业链目前已经日趋成熟,并开始朝规模化、大型化发展,抢占了大部分低端用户的市场,软件开发商不得不面临这样的怪圈:产业发展前景虽好,面临的问题却是赚钱难。

  软件开发商的前期投入和成本是非常高的,如果产品出来后被大量盗版,必然会导致开发成本无法收回,形成的效应就是产业规模萎缩,开发商不愿意进入这个行业。

  为了防止软件被盗版,软件开发商必须使用比较高级的“软件加密技术”,例如“软件加密锁”,使得破解变得困难,而整体软件成本不会提高太多,而在盗版行业,也有一批人专门从事复杂的付费加密狗破解,通过破解加密狗进行牟利,而中国的法律恰恰没有规定破解加密狗是非法的,比如在百度上搜索“加密狗破解”,竟然有好几个破解网站堂而皇之地做起了竞价广告,显然百度也是认为加密狗破解没有违反中国法律,因此干起了坐地分赃的角色。

  没有无法破解的软件,这些专业人士破解出加密狗后,就将相关的破解软件出售给盗版渠道,盗版渠道再进行规模化生产通过各种渠道(比如盗版光盘)大量销售盗版软件从中牟利。而目前中国打击盗版是通过打击这个产业链的最末端来实现,很难想象,抓几个卖盗版光盘的民工会对这个产业链有什么影响,这也是中国打击盗版十多年,却越打击,盗版行业却越兴旺的主要原因。

  打击盗版,应从源头开始

  软件开发商的能力一般都是有限的,即使使用了复杂的加密编程算法,也会被专业人士破解,而这些破解人士处于半公开的环境,法律没有限制他们,开发商也拿他们没办法,这时候就需要政府相关部门在这里多进行一些努力了,我们目前看到的是,这些“专业软件破解”可以在百度做竞价广告,其网站也通过了信息产业部的备案(陕ICP备06003050号),这也是一个很大的嘲讽。

  我们的信产部也应该有所作为了,关闭了那么多“有害信息”的网站,却偏偏不关这些搞盗版的网站,增加就业机会也不是这么增加的。当然,用什么样的方法来解决盗版问题,这在认识上有很大的不同,相关的管理部门还有很多更“重要”的事情要做,软件开发商也应该督促一下当地管理部门,让其明确观念,最终在反盗版的问题上做出明确的决定。

2006年12月9日星期六

百度博客搜索的收录

  百度博客搜索发布后,引起了很多人的讨论,其中对于百度博客搜索的收录问题存在不少争论,我这里就说一下我关于百度博客搜索的收录问题的看法。

  有人说百度博客搜索没有收录独立域名博客,只收录BSP服务商的,我不认为是这样的,至少我看到有一些独立域名博客是被收录,只是收录的非常少而已,这里我怀疑,可能百度在区分一个站点到底是网站还是博客遇到技术问题,因此大家可以手动将自己的RSS地址提交过去,看看百度是否会收录,如果还不收录,那就是百度自己的问题了。

  百度博客搜索的另外一个收录问题是,百度给于“百度空间”过分大的权值了,以至于搜索结果的大部分内容都是“百度空间”的内容,这对于用户搜索体验来说是一大伤害,无怪乎shunzawflasher都觉得认为“百度博客搜索”叫“百度空间搜索”更为恰当。

百度博客搜索

  对于百度博客搜索Google博客搜索的收录内容的数字化对比,我这里进行了一些整理。

收录量对比 地址 百度博客搜索 Google博客搜索
百度空间 hi.baidu.com 847,000 2,142
Google Blogger blogspot.com 0 102,682,823
MSN Spaces spaces.live.com 800,000 140,499,552
新浪博客 blog.sina.com.cn 900,000 140,499,552
博客网 bokee.com 768,000 5,261
BlogBus blogbus.com 291,000 5,926
DoNews blog.donews.com 215,000 6,512
搜狐博客 blog.sohu.com 608 2,268
网易博客 blog.163.com 7,060 2,829

  从上面的数据列表可以看出,百度对于Google Blogger的收录量竟然是0,这点比较夸张,同时也可以看出,百度博客搜索可能在避免和Google博客搜索正面竞争,对于一些Google收录较少的国内BSP进行大量收录,而对于Google收录很多的MSN和新浪等并没有收录更多。并且百度可能只收录中文信息,对于英文内容不进行收录。

  总而言之,对于博客搜索这样一个新领域,百度还有很长的路要走。

2006年12月8日星期五

百度博客搜索服务正式发布

  刚刚推出百度搜藏进军网络书签领域没多久,今天,百度正式推出百度博客搜索服务,正式进军博客搜索市场,用户可以通过这个服务迅速找到中文博客更新的内容。这个服务的推出也完善了百度目前的搜索体系。

  用过Google Blog Search,对于百度博客搜索会很容易掌握,因为两者实在太像了,百度也提供“按时间排序”和“按相关性排序”,也提供搜索结果的RSS订阅,界面和Google很像。

  同Google一样,百度博客搜索可以使用site:DomainName来查询收录量,通过对一些关键词的搜索测试,我发现目前情况下百度博客搜索收录的页面比Google Blog Search少,只有一个网站例外:百度空间,百度对于百度空间的收录量比Google要多四百倍。另外提一点,如果你发现自己的博客没有被百度收录,可以点这里来提交信息。

  百度博客搜索查询Traceback的方法和Google有些不一样,百度使用domain:DomainName来查询,而Google使用link:DomainName命令。搜索完后,可以点右边的RSS来订阅搜索结果。

  百度声称是第一家推出博客搜索的中文搜索引擎服务商,从我个人使用来看,目前和Google的博客搜索甚至奇虎的博客搜索还有很大的差距。

百度博客搜索

2006年12月7日星期四

百度和Google的编程接口比较

  百度和Google做为知名的搜索引擎,有非常丰富的搜索资源信息,很多人都希望编写程序调用搜索引擎的宝贵数据,昨天我写的那个程序是调用百度的搜索接口,为什么使用百度的呢,这中间其实也是有原因的。

  我最开始打算调用Google的接口,Google本身也提供了Google SOAP Search API供程序员调用,一天可以进行一千次搜索调用,由于API是通过Web Service提供的,因此最佳调用是通过Java调用,然而不知何故我调试时候,搜索英文没问题,搜索中文就老报数组溢出错误。

  由于我的调用程序需要访问Access数据库,因此我还是打算使用VB来编写,通过VB直接访问Google的搜索页面,于是我就很快写了一个通过VB直接调用Google查询的程序,一运行,发现竟然失败了,这令我很惊讶,因为我去年六月曾经也写过类似的调用程序,少量的直接调用Google搜索,当时是可以成功的。而现在调用失败,说明此功能已经被完全禁止。出现的错误界面如下所示。

Google禁止的界面

  其中的信息提到一个地址,就是“适用于个人的Google服务条款”,其中有一条:“不得执行自动查询 :未经 Google 事先明确许可,不得将任何形式的自动查询发到 Google 系统。请注意,‘自动查询’包括通过使用软件向 Google 发送查询来确定搜索不同内容时网站的 Google 排名。”

  这一条也就禁止用户编写程序直接调用Google,而必须通过类似Google SOAP Search API这样的接口来调用,每天查询次数被限制为1000次以下。

  然而我通过同样的原理调用百度搜索引擎的时候,却发现调用完全正常,百度可以返回正确的搜索结果,虽然有时候搜索结果里会带有竞价广告。我尝试增加调用频率,在短时间内进行五千次以上的程序搜索,发现程序依旧工作正常,百度依旧会返回查询结果。

  搜索引擎开放程序直接调用,的确方便了很多程序员,这样,即使百度不提供类似Google的API,我们也可以编程访问其搜索资源。

  当然,我也猜测,百度这样做也不一定真的是为了造福大众,因为百度以前曾经推广过一些搜索插件程序,类似紫光拼音输入法也会绑定百度的插件,因此会存在大量通过客户端程序而不是浏览器对于百度的访问,而百度对这方面很难进行判断识别,因此就开放了应用程序的直接调用搜索。而Google没有推广过类似的客户端插件,因此为了节省服务器资源,索性就完全关闭了客户端的直接调用。

  客户端的这种调用,对百度来说也是有一定压力的,如果大家滥用这些资源,那么百度也有可能会学Google一样关闭客户端的直接调用,因此不可滥用资源,例如我昨天提供的程序就限制了每次最多只能进行500次查询,以免对搜索服务器造成过大负载。

2006年12月6日星期三

防止文章被复制的网络分析软件

  很多Blogger都遇到过自己文章被其他人非法复制的情况,为了让大家能快速将恶意转载者找出来,我根据搜索引擎的一些原理,利用百度搜索引擎的数据,开发了一个可以自动分析查找那些对自己有“实质伤害”的复制人的地址。

防止文章被抄袭的网络分析软件

  这是一个独立的可执行的程序,完全免费,基于ACCESS数据库,目前支持Z-Blog系统,其实支持其他ASP的Blog修改也很简单,有需要的可以联系一下我。(注:其他Blog程序的使用方法:先建立一个Access文件,然后建立一个表,表名为blog_Article,表中增加字段log_ID和log_Title,log_ID为自动编号,log_Title为文章标题,然后将你Blog上的文章标题都复制过来,一篇文章对应一条记录,只复制标题即可,然后在本程序中选择这个数据库)

  数据挖掘我是直接通过调用搜索引擎来实现的。原先打算使用Java下调用Google SOAP API来实现,不过不知什么原因,Google SOAP API搜索英文没有任何问题,一搜索中文就报数组超界,不知道什么原因。只好去调用百度的搜索引擎。

  百度的搜索引擎没有API,不过我还是有办法间接调用的。调用的时候发现中文的确没有什么问题,也没有错误,很顺利就调通了程序。

  我目前搜索的时候,采用了“实质伤害”这个概念,因为目前文章转载的情况会非常多,每一个都去处理会很麻烦。因此我们只去寻找情况恶劣的即可。这个可以通过搜索引擎排名来实现。只寻找那些转载地址对于原文影响最坏的。

  这个程序使用起来很简单,先选择数据库文件,再选择Z-Blog系统,然后填写你自己的域名,点搜索即可开始执行。搜索完成后会自动生成一个名为list.txt的文件,就是搜索结果。此程序对于部分标题的文章会有误判,最好文章标题个性化浓一些。软件的界面看起来不是很好,因为我没有美工嘛。

  点击下载软件:转载文章搜索器

2006年12月5日星期二

申请Google AdSense for Feeds

  今天从困兽那里听到一个消息,说“Google已经开始接受AdSense for Feeds申请,只要你的网站 feed 订阅数在100以上,并且拥有 AdSense 帐户,就可以参加 AdSense for feeds (BETA)。申请地址:https://services.google.com/ads_inquiry/aff 。”

  我对此很感兴趣,于是也点击上面的链接申请,显示的页面是英文的,我选择填写自己的信息后提交,大概几分钟后,收到Google发来的一封邮件,内容如下:

  Thank you for your interest in AdSense for feeds.

  Unfortunately, we're unable to accept your application for the program at this time. Because AdSense for feeds is currently in beta, we're unable to accept all applicants into the program. If we're able to extend our service to you in the future, we'll be sure to let you know.

  自动被拒了。看来,中文Blog申请Google AdSense for Feeds还是有困难的,估计这个服务还是只对英文用户开放的。至少等英文用户使用稳定后,才可能考虑中文用户。

  大家有兴趣也可以去申请试试,看看能否申请成功。

2006年12月3日星期日

通过Web Service调用Google SOAP Search API

  我曾经介绍过“使用Axis开发Web Service程序”的一些步骤,做为一个更有特色的应用范例,本次我将介绍使用Axis通过Web Service调用Google SOAP Search API,实现Google搜索、Google快照、Google拼写这三项功能,包括示例源代码。

  一、环境配置

  首先,没有Java开发环境的,需要安装一下环境,点这里查看《Java开发环境的详细配置方法》,其实,本示例安装JDK 1.42以及Eclipse 3.2就可以了。

  二、将Apache Axis相关包文件放在WEB-INFlib目录下

  从Apache的主页上下载Axis包文件,复制到lib目录下。

  三、申请Google SOAP Search API license key

  要使用Google的服务,必须要有“license key”,如果你有Gmail帐号,点这里就可以申请license key,这个license key是一段很长的字符串,每个key可以支持每天1000次的Google搜索。

  四、下载WSDL文件,生成客户端Java代码

  WSDL文件的下载地址参见:http://api.google.com/GoogleSearch.wsdl

  生成客户端代码的批处理文件如下:

set Axis_Lib=D:workspace estWEB-INFlib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=D:workspace estsrc
set Package=com.google.api
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% GoogleSearch.wsdl

  最后会生成下列代码文件:

DirectoryCategory.java
GoogleSearchBindingStub.java
GoogleSearchPort_PortType.java
GoogleSearchResult.java
GoogleSearchService.java
GoogleSearchServiceLocator.java
ResultElement.java

  五、编写程序,调用Google SOAP Search API

  在上面那个包下,编写你自己的Java程序,就可以调用Google SOAP Search API.目前可以使用的Google服务有:网页搜索,网页快照,拼写检查这三个。

  Java示例代码如下,请使用前将clientKey替换为你自己的。替换后直接运行即可得出结果。

package com.google.api;

import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;

public class ClientGoogle {

  public static void main(String[] args) throws ServiceException,
    RemoteException {
    String clientKey = "kkkkkkkkkkkkkkkkkkkkkkkkkkey";
    GoogleSearchServiceLocator service = new GoogleSearchServiceLocator();
    GoogleSearchPort_PortType gsp = service.getGoogleSearchPort();

    //Google Search API
    GoogleSearchResult searchResult = gsp.doGoogleSearch(clientKey,
        "www.williamlong.info", 0, 10, false, "", false, "", "latin1",
        "latin1");
    System.out.println("Google Search Results:");
    System.out.println("======================");
    ResultElement results[] = searchResult.getResultElements();
    for (int counter = 0; counter < results.length; ++counter) {
      ResultElement result = results[counter];
      String returnResult = "('" + result.getTitle() + "','"
          + result.getURL() + "','" + result.getSnippet() + "')";
      System.out.println("Return Result");
      System.out.println(returnResult);
    }

    //Google CachedPage
    byte[] cachedBytes = gsp.doGetCachedPage(clientKey,
        "http://www.williamlong.info/");
    System.out.println("Cached page:");
    System.out.println("============");
    String cachedString = new String(cachedBytes);
    System.out.println(cachedString);

    //Google SpellingSuggestion
    String suggestion = (String) gsp.doSpellingSuggestion(clientKey,
        "williamlong");
    System.out.println(suggestion);

  }

}

  当然,你也可以不使用Apache Axis,Google自己也提供了一个API包可以做为客户端调用,下载地址参见这里

  最后声明一下,Google SOAP Search API是属于实验产品,每个license每天最多只允许搜索一千次,其许可协议注明不能使用于商业模式的网站,而对于个人研究来说,每天一千次的搜索也就足够了。

  相关专业名词解释:

  Web Service:是一种革命性的分布是计算技术。它使用基于XML的消息处理作为基本的数据通讯方式,消除使用不同组件模型、操作系统和编程语言的系统之间存在的差异,使异类系统能够作为计算网络的一部分协同运行。开发人员可以使用像过去创建分布式应用程序时使用组件的方式,创建由各种来源的Web服务组合在一起的应用程序。由于Web服务是建立在一些通用协议的基础上,如HTTP(Hypertext Transfer Protocol, WWW服务程序所用的协议),SOAP(Simple Object Access Protocol,简单对象访问协议),XML,WSDL(Web Services Description Language,Web服务描述语言),UDDI(Universal Description,Discovery,and Integration,通用描述发现和集成协议)等,这些协议在涉及到操作系统、对象模型和编程语言的选择时,没有任何倾向,因此Web服务将会有很强的生命力。

  SOAP:是“Simple Object Access Protocol”的缩写,SOAP是消息传递的协议,它规定了Web Services之间是怎样传递信息的。简单的说,SOAP规定了:

  1. 传递信息的格式为XML.这就使Web Services能够在任何平台上,用任何语言进行实现。

  2. 远程对象方法调用的格式。规定了怎样表示被调用对象以及调用的方法名称和参数类型等。

  3. 参数类型和XML格式之间的映射。这是因为,被调用的方法有时候需要传递一个复杂的参数,例如,一个Person对象。怎样用XML来表示一个对象参数,也是SOAP所定义的范围。

  WSDL:是“Web Services Description Language”的缩写。WSDL是Web Services的定义语言。当实现了某种服务的时候(如:股票查询服务),为了让别的程序调用,必须告诉大家服务接口。例如:服务名称,服务所在的机器名称,监听端口号,传递参数的类型,个数和顺序,返回结果的类型等等。这样别的应用程序才能调用该服务。WSDL协议就是规定了有关Web Services描述的标准。

  UDDI:是“Universal Description, Discovery,and Integration”的缩写。简单说,UDDI用于集中存放和查找WSDL描述文件,起着目录服务器的作用。

  XML:(eXtensible Markup Language,可扩展标记语言)是Internet上数据表示和数据交换的新标准。它是ISO(International Organization for Standardization,国际标准化组织)的SGML(Standard for General Markup Language,通用标记语言标准)的一个简化子集。XML关注信息本身,是Web上表示结构化信息的一种标准文本格式。与传统的注重页面信息显示的HTML(Hypertext Markup Language, 超文本链接标示语言)相比,关注于内容的XML具有以下诸多优点:良好的可扩展性,语言简单有效,可自行定义标记;内容与形式的分离,主要刻画数据内容,不考虑显示效果;有严格的语法要求,便于分析统一和与数据库信息转换;便于传输,为纯文本形式,可通过Http协议直接传输,可跨越防火墙;等等。XML的出现和发展对于Internet和Intranet产生了巨大的影响。

2006年12月2日星期六

Google Blogger Beta中文界面启用

  昨天,ReallyFindIt留言给我一个消息,说Google Blogger Beta的后台管理的中文界面已经全面启用了。由于我以前一直用Email发帖子,登录后台较少,所以我立刻登录了一下Blogger Beta,发现界面的确已经全部是中文了。

  Blogger今年来在国内的服务断断续续,被折腾的也够呛,不过我依旧认为Blogger是最好的博客服务之一,速度快,功能多,Blogger Beta的一个最大的优势就是发表文章后不用重建了。这样发文章的速度就快多了。Blogger还有一个优势是操作简单,不用编辑HTML代码,只需要在设置界面上点几下鼠标,就可以完成界面部件的新增和修改,对于普通用户来说十分方便。另外Blogger还有很多实用的小技巧,所以,现在中文用户已经到了将Blogger升级到Blogger Beta的时机了。

  不过,如果你是通过FTP来发布Blogger的,那么还是不要升级好一些,反正FTP发布是肯定需要重建的。

PayPal支持电汇提现

  今天,收到一封邮件提示我的PayPal帐户收到了Review Me的50美元,于是登录了一下PayPal的英文网站,果然发现收到了50美元,同时我还发现另外一个有趣的东西,PayPal的英文网站居然用中文写了一个很大的广告,上书“最快3天,美元到您手-PayPal电汇提现”。这说明PayPal开通了对中国地区的电汇提现功能,中国人收美元又有了一个新方法。

  首先先向大家解释一个问题,就是PayPal和“PayPal贝宝”有什么区别?

  PayPal国际网站(www.paypal.com)是允许用户向世界各国用户发送和接收付款。 可以使用包括美元、加元、欧元、英镑、澳元和日元等币种。不过用户需要在账户添加国际信用卡(比如招行的信用卡)。

  PayPal贝宝(www.paypal.com.cn)只能向中国用户发送和接收付款,只能用人民币交易。用户可以添加一个中国的银行账户,在贝宝账户和银行账户之间进行资金转账。

  因此接收美元必须使用英文的PayPal才可以,中文的贝宝是收不到美元的。

  PayPal的网站上介绍新的电汇提现的一些优点:

  更快:只需3到7个工作日,美金就能到达用户的国内银行双币账号。

  更容易:只需几步便能在PayPal账户内添加用户的银行双币账号,立刻开始提现。

  更直接:无需海外银行账号,更不用申请支票,提现美金直接到达用户的国内银行双币账号。

  不过,我再给其补充上一条:

  更贵:每笔电汇提现需要支付20美元手续费(而且只有打折期间才是20美元) :(

  PayPal还在自己的网站上做了一张提现方案对比的图表:

  电汇

香港银行账户

美国银行账户 美国出具的支票
时间 3-7个工作日 5-7个工作日 3-4个工作日 6星期左右
費用 促销价20美元*
低于5折
提现免费
(可能会有兑换费用)
免费 5美元
收取币种 美元 港币 美元 美元
银行所在地 中国 香港 美国 存入中国银行账户

  注:一般国外银行电汇提现手续费在25至45美元之间。

  图表中可以看出,通过香港的招行一卡通提现是免费的,但是有汇率损失。美元全部转换为港币,用美国银行的帐户则完全免费,使用支票需要5美元费用,国内银行还会再收20元人民币左右的托收费用。

  总的来说,使用支票的方式还是更为实惠一些。当然,如果PayPal帐户资金较多的话,电汇也是不错的选择。

2006年12月1日星期五

百度搜藏的功能缺陷

  百度的网络收藏夹服务“百度搜藏”已经发布了,我也第一时间试用了一下,感觉百度搜藏有不少功能上的缺陷令人感到很遗憾,社会化功能很弱,速度也不是很快,不过搜索功能的确是做的不错。下面我就说一下我个人发现的一些百度搜藏的功能缺陷。

  一、分享地址在哪里?

  使用国外的del.icio.us美味书签的时候,可以很明确的知道任何一个人的书签地址,比如我的地址就是 http://del.icio.us/williamlong ,甚至分类(tags)地址也知道,比如这里是我baidu书签的地址。然而,使用百度搜藏的时候,我却找不到我的地址,或者是百度根本就没有这个功能,只有自己才能看到自己的书签。

分享地址在哪里

  更新:百度已经解决了这个缺陷,我们可以使用类似 http://cang.baidu.com/williamlong  的地址访问自己的搜藏地址。

  二、我的tags能分类吗?

  百度搜藏把tags翻译为“分类”,不过当我们的分类很多的时候,我们就需要一个bundle tags(分类包),我可以将我含义接近的分类再进行一次分类,这样我们的分类就看起来非常清晰了。

我的tags能分类吗

  三、只能进,不能出?

  百度搜藏的导入功能我用了一下,做的的确很不错,我的del.icio.us里的书签,可以连摘要和分类一起全部导入,一个都没有导错,看得出百度在导入这个功能上下了不少功夫,然而可惜的是,我在百度搜藏里面却找不到导出的功能,为什么其他的网络书签系统都提供导出功能,而偏偏百度搜藏却不提供呢?

只能进,不能出

  四、输出在哪里?

  百度搜藏里没有找到RSS输出,这也可以理解,用RSS的人也不多,JavaScript输出也没有找到,写Blog的人难道也不多,HTML输出呢?API呢?全都没有,不知道是因为这些功能没用?还是因为百度认为大家都不会用?

输出在哪里

  总之,用了一遍百度搜藏后,我觉得我还是继续使用我的del.icio.us吧,百度有不错的构思,可惜做的东西缺陷实在太多。