2006年9月27日星期三

Google KMZ/MKL文件的两个编程技巧

  今天解决了两个曾经困扰我很长时间的KMZ/MKL文件格式的问题,我挖空心思终于找到了解决的方案。

  这两个问题只在IE浏览器中存在,在FireFox中都没有出现类似的问题。

  问题的背景很简单,就是我在做Google Maps API编程开发的时候,需要在网站上提供地标文件(KMZ/KML)给用户下载,看似简单的问题,却让我在IE这个浏览器上折腾了好几个月。

  首先一个问题是,IE不能正确识别KMZ/KML两种文件的格式,我在IE上点击下载KMZ文件,IE系统会自动将其类别设置为ZIP文件,而对于KML文件,IE系统则直接将其列为XML文件,并不下载而是直接在IE中显示XML源文档,这可令我大为头痛。

  今天忽然开窍明白了,既然IE不能自动识别文件类型,那么我在服务器端强行设置文件类型不就解决问题了吗?看来还是我的思路有问题。于是开始行动,在IIS的设置界面中,点“文件类型”,加入一个KML类型,其数值设置为“application/vnd.google-earth.kml+xml”(Google Earth的KML介绍上有这个说明),点确定后再从浏览器浏览,一切正常,KML终于可以在IE中下载了。

KML/KMZ设置

  不过问题还没有结束,我又遇到了下一个疑难问题,就是点KML或者KMZ文件后,Google Earth并没有自动打开地标文件,而是提示一个信息说“could not open file xxx for reading”,这就奇怪了,为什么下载了还无法打开呢?难道是不支持网上打开吗?可是我在keyhole的官方论坛上下载KMZ/KML文件却从来没有出现这个问题,这是怎么回事。

  后来仔细想一想,终于第二次开窍了。Google Earth不能打开下载文件的原因很简单,就是因为找不到这个文件,这个文件在IE缓存里,被IE删除了,Google Earth找不到这个文件,当然无法打开了。

  再看看上图我的服务器配置吧,“启动内容失效”里设置的是“立即过期”,当然结果就是KML被下载到本地后立刻又被IE删除了,所以Google Earth才找不到文件啊,于是手动将这个选项修改,再次下载看看,又正常了,Google Earth终于可以正常地直接打开下载的KMZ/KML文件了。

  当然,我们也完全可以不在服务器上做任何设置,直接写程序来解决这两个问题,程序的示例代码如下所示:

  header("Content-type: application/vnd.google-earth.kml+xml");
  header("Content-Disposition: attachment; filename="google-earth.kml"");
  header("Cache-Control: Public");
  header("Expires: ".date("D, d M Y H:i:s",mktime(0,0,0,date('m'),date('d')+14,date('Y')) )." GMT");

  一天内连续开窍两次并解决了几个月都没解决的疑难问题,真是高兴啊。

2006年9月26日星期二

RSS工具和资源汇总

  下面是我收集的在Blog过程中遇到的一些和Feed相关的RSS(内容聚合)工具和资源,希望这些工具和资源给大家创建和阅读Feed带来一些便利。

  RSS的Ping服务器地址

  发布完日志后,自动通知相关服务器,以便相关服务器来索引或收录。设置方式,在WordPress或MovableType中的ping服务器地址中,添加以下地址:

  http://ping.blo.gs/
  http://rpc.weblogs.com/RPC2
  http://blogsearch.google.com/ping/RPC2
  http://ping.feedburner.com
  http://rpc.feedsky.com/ping
  http://rpc.icerocket.com:10080/
  http://api.moreover.com/RPC2
  http://rpc.newsgator.com/
  http://api.feedster.com/ping.php
  http://www.syndic8.com/xmlrpc.php
  http://ping.weblogalot.com/rpc.php
  http://www.blogdigger.com/RPC2
  http://rpc.technorati.com/rpc/ping (目前国内无法访问)

  Blog的反向链接跟踪

  想知道别人对你的Blog评论吗?通过以下几种服务可以跟踪Blog的反向链接信息,同时还可以知道自己Blog在外部的知名度。

  Bloglines Citations: Bloglines提供的反向链接跟踪服务。

  Technorati: 老牌的Blog搜索服务,也提供反向链接查看,可惜目前被封了,

  Google Blog Search: Google提供的Blog搜索工具,使用link命令可查看反向链接。

  RSS托管服务

  如果个人Blog使用虚拟主机或者经常搬家,那么使用RSS托管服务是一个不错的选择,目前有两个选择。

  FeedBurner: 功能强大,是目前使用最广泛的RSS托管服务,不过在国内使用的话可能会有一些风险

  FeedSky: 国内做的最久的RSS托管服务,值得称赞的是其FeedDomain功能是免费的,而FeedBurner的这个功能却是收费的。FeedDomain的效果可参见这个地址

  RSS阅读

  RSS阅读分为在线阅读和离线阅读。

  在线阅读,国外的网站有:bloglinesrojonewsgatorgoogle reader 等等。

  国内的有:抓虾狗狗 等等。

  离线RSS阅读器选择不多,目前用的较多的是 GreatNews

  邮件订阅RSS服务

  国外:RSSFWD ,建议使用国外信箱订阅。

  国内:RSS邮天下 ,建议使用国内信箱订阅。

  名词解释:什么是RSS?

  RSS是站点用来和其他站点之间共享内容的一种简易方式(也叫聚合内容),通常被用于新闻和其他按顺序排列的网站,例如Blog。一段项目的介绍可能包含新闻的全部介绍等。或者仅仅是额外的内容或者简短的介绍。这些项目的链接通常都能链接到全部的内容。网络用户可以在客户端借助于支持RSS的新闻聚合工具软件,在不打开网站内容页面的情况下阅读支持RSS输出的网站内容。网站提供RSS输出,有利于让用户发现网站内容的更新。

2006年9月24日星期日

Google搜索技巧2005

  作者:Philipp Lenssen

  原文地址:http://blog.outer-court.com/archive/2005-09-29-n85.html

  原文标题:Google Search Tips 2005

  注意:本文翻译人不详。文中[]符号是为了突出关键词,在实际搜索中是不包含的;本文采用的是意译;本译文已经征得作者许可;本译文可任意转载,请保留本文的头信息。

  以下是正文。

Google搜索技巧2005

  这里有一些Google搜索引擎的基本搜索技巧以及高级技巧,你可能对其中大部分已经了解,但是如果你知道了另外的那一部分,它可能会给你将来的搜索过程带来很大的便利。

  1. 双引号可以用减号代替,比如搜索["like this"]与搜索[like-this]是一个效果

  2. Google不会处理一些特殊的字符,比如[#](几年前还不行,现在可以了,比如搜索[c#]已经可以搜到相应的结果),但是还有一些字符它不认识,比如搜索[t.]、[t-]与[t^]的结果是一样的

  3. Google允许一次搜索最多32个关键词

  4. 在单词前加~符号可以搜索同义词,比如你想搜索[house],同时也想找[home],你就可以搜索[~house]

  5. 如果想得到Google索引页面的总数,可以搜索[* *]

  6. Google可以指定数字范围搜索。搜索[2001..2005]相当于搜索含有2001、2002直到2005的任意一个数的网页

  7. 搜索[define:css]相当于搜索css的定义,这招对想学习知识的人很有效;也可以用[what is css]搜索;对中文来说,也可以用[什么是css]之类的

  8. Google有一定的人工智能,可以识别一些简单的短语如[when was Einstein born?]或[einstein birthday]

  9. 通过[link:]语法,可以寻找含有某个链接的网页,比如[link:blog.outer-court.com]将找到包括指向 blog.outer-court.com超级链接的网页(最新的Google Blog Search也支持这个语法),但是Google并不会给出所有的包含此链接的网页,因为它要保证pagerank算法不被反向工程(呵呵,可以参见那两个Google创始人关于pagerank的论文,可下载)

  10. 如果在搜索的关键词的最后输入[why?],就会在结果中出现链接到Google Answers的链接http://answers.google.com ,在里面可以进行有偿提问

  11. 现在出现了一种兴趣活动,叫做Google Hacking,其内容是使用Google搜索一些特定的关键词,以便找到有漏洞的、易被黑客攻击的站点。这个网站列出了这些关键词:Google Hacking Database( http://johnny.ihackstuff.com/index....ule=prodreviews )

  12. 在Google 中输入一组关键词时,默认是“与”搜索,就是搜索包含有所有关键词的网页。如果要“或”搜索,可以使用大写的[OR]或 [|],使用时要与关键词之间留有空格。比如搜索关键词[Hamlet (pizza | coke)],是让Google搜索页面中或页面链接描述中含有Hamlet,并含有pizza与coke两个关键词中任意一个的网页。

  13. 并非所有的Google服务都支持相同的语法,比如在Google Group中支持 [insubject:test]之类的主题搜索。可以通过高级搜索来摸索这些关键词的用法:进入高级搜索之后设置搜索选项,然后观察关键字输入窗口中的关键字的变化

  14. 有时候Google懂得一些自然语言,比如搜索关键词[goog], [weather new york, ny], [new york ny]或[war of the worlds],此时Google会在搜索结果前显示出一个被业内称为“onebox”的结果,试试看吧!

  15. 并非所有的Google都是相同的,它因国家版本(或是说语言版本)而异。在US版下,搜索[site:stormfront.org]会有成千上万的结果,而在德语版下,搜索[site:stormfront.org]的结果,嗯,自己看吧。Google的确与各国政府有内容审查协议,比如德国版,法国版(网页搜索),中国版Google新闻

  16. 有时候Google会提示你搜索结果很烂,比如你搜索关键词[jew]试试,Google会告诉你它给出的搜索结果很烂,然后给你一个解释:http://www.google.com/explanation.html

  17. 以前,搜索某些关键词如[work at Google] 时会看到Google给自己打的广告。可以去http://www.google.com/jobs/了解Google的工作

  18. 对于一些“Googlebombed”(大概意思是指Google搜索的结果出问题了)的关键词,会有一个广告链接到:http: //googleblog.blogspot.com/2005/09/googlebombing-failure.html (中国大陆需要代理才能访问)。比如搜索[failure],第一条是美国布什总统介绍

  19. 虽然现在Google还没有支持自然语言,但这里有一段录像显示了支持自然语言的搜索引擎的使用效果:http://blog.outer-court.com/videos/googlebrain.wmv

  20. 有人说在Google中搜索[president of the internet],其结第一条表明了president of the internet是谁,我也是这么认为的,而且你还可以使用这个logo支持本文作者:http://blog.outer- court.com/files/president.gif

  21. Google现在不再有“stop words”(被强制忽略的关键词),比如搜索 [to be or not to be], Google返回的结果中间还列有相关的完整短语搜索结果

  22. 在Google 计算器(http://www.google.com/help/features.html#calculator )中有个彩蛋:输入[what is the answer to life, the universe and everything?]时,会返回42。(关键词翻译过来的意思是指“生命、宇宙和一切的答案”,这是一个著名科幻小说中的情节,详情参见http: //en.wikipedia.org/wiki/The_Answer_to_Life,_the_Universe, _and_Everything)。试试吧,哈哈

  23. 你可以在搜索时使用通配符[*],这在搜索诗词时特别有效。比如你可以搜一下["love you twice as much * oh love * *"] 试试

  24. 同样,你的关键词可以全部都是通配符,比如搜索["* * * * * * *"]

  25. www.googl.com是在输错网址后的结果,也是个搜索网站,但搜索结果与Google完全不同。而且此网站也赚Google的钱,因为它使用Google AdSense

  26. 如果你想把搜索结果限制在大学的网站之中,可以使用[site:.edu]关键词,比如[c-tutorial site:.edu],这样可以只搜索以edu结尾的网站。你也可以使用Google Scholar来达到这个目的。也可以使用[site:.de]或[site:.it]来搜索某个特定国家的网站。

过滤和禁止中国IP地址访问的方法

  做英文共享软件的作者,为了防止软件被破解,经常需要设置禁用中国地区的IP地址,但很多人不知道怎么进行设置。

  如何在apache主机上设置禁用中国的IP地址访问,其实很简单,修改apache的.htaccess文件,在文件中加入下面的语句,即可阻止大部分中国用户的访问。当然,这份IP过滤表有些旧,某些新的IP会漏网,可以适当进行一些修改。

  当然,英文网站大多不需要中文用户,如果想阻止中国的搜索引擎对其网站进行索引,也可以利用下面的语句。

deny from 61.52
deny from 61.53
deny from 61.54
deny from 61.131
deny from 61.132
deny from 61.133
deny from 61.134
deny from 61.135
deny from 61.136
deny from 61.137
deny from 61.138
deny from 61.139
deny from 61.140
deny from 61.141
deny from 61.142
deny from 61.143
deny from 61.144
deny from 61.145
deny from 61.146
deny from 61.147
deny from 61.148
deny from 61.149
deny from 61.150
deny from 61.151
deny from 61.152
deny from 61.153
deny from 61.154
deny from 61.155
deny from 61.156
deny from 61.157
deny from 61.158
deny from 61.159
deny from 61.160
deny from 61.161
deny from 61.172
deny from 61.173
deny from 61.174
deny from 61.175
deny from 61.176
deny from 202.4.252
deny from 202.4.253
deny from 202.4.254
deny from 202.4.255
deny from 202.97
deny from 202.98
deny from 202.99
deny from 202.100
deny from 202.101
deny from 202.102
deny from 202.103
deny from 202.104
deny from 202.105
deny from 202.106
deny from 202.107
deny from 202.108
deny from 202.109
deny from 202.110
deny from 202.111
deny from 202.112
deny from 202.113
deny from 202.114
deny from 202.115
deny from 202.130.224
deny from 202.130.225
deny from 202.130.226
deny from 202.130.227
deny from 202.130.228
deny from 202.130.229
deny from 202.130.245
deny from 211.81
deny from 211.82
deny from 211.90
deny from 211.91
deny from 211.102
deny from 211.149
deny from 211.150
deny from 211.151
deny from 211.152
deny from 211.153
deny from 211.154
deny from 211.155
deny from 211.156
deny from 211.157
deny from 211.158
deny from 211.159
deny from 211.160
deny from 211.161
deny from 211.162
deny from 211.163
deny from 218.5
deny from 218.21
deny from 218.28
deny from 218.29
deny from 218.71
deny from 218.72
deny from 218.73
deny from 218.74
deny from 218.75
deny from 218.76
deny from 218.77
deny from 218.78
deny from 218.79
deny from 218.80
deny from 218.81
deny from 218.82
deny from 218.83
deny from 218.84
deny from 218.242

2006年9月23日星期六

十七次点击环游地球

  国际在线消息:世界七大奇迹正在重新评选。在候选名胜之中,中国的万里长城(The Great Wall)榜上有名。面向全世界的网上投票已于1月1日开始,将持续1年,最终结果会在2007年元旦揭晓。

  获得提名的世界名胜有:英国史前巨石柱、约旦石山古城佩特拉、巴黎的艾菲尔铁塔、悉尼歌剧院、罗马圆形竞技场、印度泰姬陵、雅典卫城、柬埔寨吴哥窟、美国自由女神像等。

  原世界七大奇迹包括埃及金字塔、亚历山大灯塔、古巴比伦空中花园、古希腊宙斯神像、罗德岛巨人雕像、土耳其摩索拉斯陵墓和土耳其阿尔忒弥斯神庙。如今除埃及金字塔外,其他六大奇迹已不复存在。埃及金字塔这次也进入了候选名单。

  这项评选活动由瑞士人伯纳德·韦伯发起,经过1年筛选,最初的77个景点只剩下21个。未来一年内,网民可通过new7wonders网站投票,选出新的七大奇迹。(注:以上的消息来源于国际在线网站,不过有读者也质疑这个活动的真实性和权威性。)

  下面是我为这次活动制作的Google Earth世界奇迹的地标文件,其中有4个地方(玛雅古迹、复活节岛巨像、新天鹅堡、廷巴克图)在Google Earth上是非高清晰地图,因此我只将有高清晰地图的17个地标列在下面,希望大家能通过这17次点击(Around the World in 17 Clicks)了解我们这个地球上最伟大的世界奇迹,并感激我们祖先创造的宝贵物质与精神财富。

  中国万里长城,点击下载地标文件:中国八达岭万里长城地标

万里长城

  美国纽约自由女神像,点击下载地标文件:美国纽约自由女神像地标

自由女神

  法国埃菲尔铁塔,点击下载地标文件:法国埃菲尔铁塔地标

埃菲尔铁塔

  土耳其伊斯坦布尔圣索菲亚, 点击下载地标文件:土耳其伊斯坦布尔圣索菲亚大教堂

圣索菲亚大教堂

  希腊雅典卫城,点击下载地标文件:希腊雅典卫城

雅典卫城

  西班牙格兰纳达阿勒罕布拉王宫,点击下载地标文件:西班牙格兰纳达阿勒罕布拉王宫

格兰纳达阿勒罕布拉王宫

  柬埔寨吴哥窟,点击下载地标文件:柬埔寨吴哥窟

柬埔寨吴哥窟

  巴西里约热内卢救世主耶稣雕像,点击下载地标文件:巴西里约热内卢救世主耶稣雕像地标

里约热内卢救世主耶稣雕像

  意大利罗马斗兽场,点击下载地标文件:意大利罗马斗兽场

罗马斗兽场

  日本京都清水寺,点击下载地标文件:日本京都清水寺地标

京都清水寺

  俄国克里姆林宫,点击下载地标文件:克里姆林宫地标

克里姆林宫

  秘鲁马丘比丘城堡,点击下载地标文件:秘鲁马丘比丘城堡

马丘比丘城堡

  约旦佩特拉城,点击下载地标文件:约旦佩特拉城地标

点击下载地标文件:约旦佩特拉城地标

  埃及吉萨金字塔,点击下载地标文件:埃及吉萨金字塔地标

金字塔

  英国艾姆斯伯里的巨石柱群,点击下载地标文件:英国艾姆斯伯里的巨石柱群地标

艾姆斯伯里的巨石柱群

  澳洲悉尼歌剧院,点击下载地标文件:澳洲悉尼歌剧院

悉尼歌剧院

  印度亚格拉的泰姬陵,点击下载地标文件:印度亚格拉的泰姬陵地标

亚格拉的泰姬陵

  智利复活节岛巨像,点击下载地标文件:智利复活节岛巨像

智利复活节岛巨像

  全部地标文件点击这里可以下载

Google Picasa复活节彩蛋:隐藏的小熊

  根据Google Picasa中文网站的报道,Google Picasa有一个有趣的小熊彩蛋功能,可以显示很多可爱的小泰迪熊(不过好像没法关闭)。

  具体方法是:把界面定于Google Picasa,并按下快捷键:Ctrl + Shift + Y,隐藏的小熊就会跳出来,按一次出现一只每按一次就会有一个泰迪熊出现,并且可以随意的移动,当然不能移出Picasa的界面范围。

Google Picasa复活节彩蛋

  这个复活节彩蛋充分说明了,Google的软件开发工程师不仅严谨,而且也爱搞恶作剧。

  来源:Google Picasa 中文网站

FireFox的CustomizeGoogle插件简介

  昨天介绍了FireFox的GreaseMonkey插件以及相关Google Cache代码后,有个读者ran jing发邮件告诉我,还有另外一个Firefox的插件也支持Google网页快照修复功能,这个插件的名字叫CustomizeGoogle。

  我使用FireFox访问了一下CustomizeGoogle的主页,发现这个插件是有中文版的,里面关于Google的功能很多,不仅仅有修复网页快照功能,还有很多其他功能。

  根据该网站的介绍,CustomizeGoogle做为一个Firefox插件,具有以下功能:

  使用Google建议(输入时提示备选项);加入到其他搜索引擎的链接;Google图像中的链接直接指向图片;去除Google出版中的图像拷贝限制;使用安全的Gmail;正常使用网页快照功能;禁用Google Analytics的cookies;移除广告;不使用Google userid;加入搜索结果计数;过滤搜索结果;加入到网页历史的链接;移除点击记录。

  我对CustomizeGoogle试用了一下,感觉还不错,挺方便,唯一不足就是不能自己修改插件的代码。做为一个程序员,我还是更喜欢象GreaseMonkey这样的可以自己加代码定制的FireFox插件,不过,GreaseMonkey的灵活度太大了,也可能会影响其在普通网民中的普及。

  最后提醒一下,如果大家使用CustomizeGoogle插件,请慎用该插件里面的“移除Google广告”的功能,因为该功能可能会违反Google Gmail的一些许可协议,如果在Gmail里使用的话,有可能会对自己的Gmail帐号带来不可预知的影响。

  最后,介绍一下这个插件的安装方法,点这里可以安装CustomizeGoogle插件

  更新:读者gneheix推荐了另外一个Firefox插件—Gladder,也可以失陷快照地址替换功能。

  在Gladder中使用的Google快照替换方法:

  ((?:d{1,3}.){3}(?:d{1,3}))/search?q=cache:(.*) => $1/u/loyolachicago?q=cache:$2