分类:Tech
共 72 篇文章,当前第 3 页
-
免费的API们
2007/06/22
这星期抽空研究了一些网站提供给开发者的免费API——这貌似是最近比较流行的做法。既方便了别人在自己资源上的二次开发,也同时不花一分钱就有了无数稳定的免费广告和流量,以及创意。当然,前提是自己的数据有足够吸引力,值得别人使用。尝试了几个感兴趣的API后,发觉是各有千秋,但总的来说,功能上大多还是不尽善尽美的。想来也是,既然是免费的午餐,点到即止,让人意犹未尽才是最美妙的做法。
网页搜索:功能上说最强的显然当之无愧要属于Google的 Co-op自定义搜索引擎了,不过这并不属于API的范围,因为用户要做的只是配置而已,真正可供开发的很少。简单地说Co-op提供了一个可以自己定义范围,定义Onebox的搜索引擎,使用Google的页面,也可以用iframe嵌入到自己的页面中。也正因为它是iframe的嵌入,所以局限很大,不能自定义css(默认的设置可以换颜色),不能定义模块位置和显示,同时在使用的时候也有一些无法避免的小问题,比如点击相关搜索之后,搜索框里的关键字不会变化等等。本站右边导航栏就有一个站内搜索框用的Co-op,可以试用。对于这样的站内搜索来说,这个功能已经足够了。如果要真正自定义的话,那也不是不可以,比如像腾讯的 soso那样,只要你是Google的合作伙伴……
Google的 AJAX Search API一定程度上和Co-op有点互补,嵌入在页面里。尽管只提供两种界面,但是理论上可以自己获得所有的GResult对象然后自己渲染,甚至由于其基于Java Script,只要有足够长的时间和足够的耐心把源码看明白,就可以做更多的修改。不过其最大的致命点在于每次只能提供最多8个搜索结果,还不能翻页——所以无法替代Co-op的作用。另外,Web Search API是可以用自己的Co-op定义的站点列表的,这点上两者结合也许能做出亮点。
相片:
Google的AJAX Search API是支持图像的,优缺点前面都说了,外加一个不支持Co-op就差不多了。实用性不是很大。
Flickr的 API功能极其强大,可以说只要你愿意,就可以用这些API搭出一个和Flickr本身几乎一样功能的网站来——当然用的是Flickr的资源。不过鉴于 Flickr被和谐了,所以这些功能墙内用户是享受不到了(其实都可以用,只是显示不出图片而已)。Flickr的API调用返回结果是XML格式的,完全可以任意发挥。作为我最关心的相片搜索,Flickr支持多个关键字的与、或,支持多种排序方式,总之就是很强大了。不过美中不足的是,有的时候我想在页面嵌入一些风景照片,结果相关最大的都是有人的照片。话说Google的图像搜索已经支持人脸识别,可以只显示带人脸的,那么Flickr如果能来个反其道而行之,可以选择只显示不带人脸的,就太美妙了。
国内的Flickr仿照者 Yupoo和 bababian也提供了一些类似Flickr的API,只不过非常少。而且作为关键字搜索,居然没有相关度排序而只有时间排序,也许更多的是技术跟不上吧。
Picasaweb前阵子推出了一套 API,没有仔细研究过,看上去主要是给用户操作自己相片的,至少不支持搜索。相信以Google的风格,将来Picasa也会有一套不逊于Flickr的API的。
Panoramio的 API支持从它那里获取一个地理范围内的照片,返回JSON格式的列表,单独看用处不大,但是结合其他例如地图API,则可有无穷想像力。
地图:
毫无疑问又是Google的 Maps API。已经有了无数的应用,就不多废话了。我一直很看好结合时间空间的数据组织和内容共享,不过现在看来这方面的潜力还远远没有发挥出来,唯一一个看着像点样子的Panoramio也已经 被Google收购了——事实上这只是这类应用的牛刀小试而已。可惜鉴于中国政府对地图信息莫名的敏感程度,这样的应用要在中国做好难上加难。不扯远了,回到API上,Map API本身似乎不支持搜索,否则用来复制一个 Google Maps也轻而易举了。
国内的 我要地图网也提供了 API接口,包括标注,搜索等,不如Google的强大,不过门槛相应要低得多。
Google的AJAX Search API带了 Local Search API,单独看可用性不强,不过也许可以和Maps API整合。不支持中国数据。
博客搜索:
再次提出Google的AJAX Search API,带专门的 Blog Bar,我页面里就放了一个,可以参考。
Technorati提供了关键字Search的 API,返回XML,看上去很美,可是其对中文搜索的相关性处理得很不好,质量不佳。另外,很诡异的是他的API每天有500次访问的限制,实在想不出来500次能做什么应用……
值得注意的是Technorati和 Google Blogsearch都支持搜索结果的rss订阅,如果流量不是很大的话,凑合着抓来也能用,虽然不是很厚道。
可以看到国外的巨头们都很注意与开发者的交流,都提供了免费API给用户使用,实现双赢。而国内则基本都是Web 2.0的小公司在做这样有意义的事情(包括一些简单的嵌入式Java Script实现),大公司则想着法子用诸如图片不让外链等方式恶心用户。肉食者鄙,未能远谋,真可谓余音绕梁,千年不绝。
22:17 | 分类: Tech
-
Flickr被和谐了
2007/06/08
又一名网络巨人在长城外轰然倒下,他的名字叫Flickr。这件事件的直接原因应该是Flickr上出现了大量厦门人民迎六一大散步的照片,因此,毫无悬念地遭到毒手。例数近年来被拒之国门之外的网站:sourceforge(已释放),live space(部分,已释放),wikipedia,wordpress,blogspot(时通时断),technorati,myoprea,Google Pages,加上新近的Flickr,可以看到,他们的一个明显共同特点:用户创造内容。
互联网的发展和无国界化本就给信息的传播带来极大便利,给信息的隐瞒带来极大困难。各级官员们好不容易花几年时间用各种手段把各大网站管听话了一切尽在掌握了,结果,Web 2.0兴起了。这对于信息的传播来说无疑是一个更大的革命,因为每个人都是信息源,都能非常容易地随时随地创造信息,并且瞬间传到满城皆知。这样的模式如果从传统管理角度而言,成本将会指数级的上升,所以,为了各级官员能有更多更好的休息时间,一刀切是最好的办法。所谓掩耳盗铃。尽管信息本身无法被消灭,但是至少草民们都看不到了。眼不见为净,可以继续欺上瞒下建设和谐社会了。至于为了封杀一两个用户的信息而误杀百万,那完全不在考虑的范围之内。当一个有资格成为信息发布集散地的网站成长到一定规模的时候,必然出现一个导火索,将其封杀。wikipedia的封杀相对来说是问题最小的,有墙就有梯子,大部分人是去获取信息的,爬个梯子就行,只不过只能看帝国主义人民给我们写的中文条目了而已。blogspot,myopera,Google Pages,wordpress这几家,被杀的影响也仅限于他们的用户,写不了别人也看不了,几百万人而已。所以大部分网民只是表示安慰和关切。但是这次的Flickr则完全不同。Flickr本身只提供图片发布,而没有文字(因此能活得久些),Flickr的用户将图片发布之后,几乎一定会在其他地方引用——例如放在国内的博客(毕竟新浪网易搜狐百度都是不允许图片外链的,先天不足)——所以事实上享受到Flickr服务的用户远远超过其注册用户本身。很多人一夜醒来,发现自己常去的网站常看的博客上,都没有了图片而开了天窗,会是什么感觉呢?当他们第一次知道真相之后,又会是什么感觉呢?
比封杀Flickr更可怕的是,我们永远不知道下一个是谁。当长城从文字狱蔓延到图片的时候,无论轮到什么都不足为奇了。Youtube还是Picasa?或者,杀出一匹黑马?
22:10 | 分类: Tech
-
Feed订阅统计
2007/05/12
打开昨天的log文件,看了下feed订阅次数,有一些有趣的数据可以分享:
Web上的feed reader在抓取feed时,User-Agent里是会显示订阅人数的,所以可以一目了然。Google Reader的订阅用户69个,远远超过了抓虾的26和Bloglines的11。但是根据以往的数据,在我blog被转到水木带来无数访问量的那一天,抓虾的数量增长和Google Reader居然是一样的,是不是意味着一般中端用户中使用两者的比例接近?话说回来,抓虾的很多功能确实比Google Reader要强。
其他的就是客户端软件了。GreatNews出现的频率很频繁,应该是被最多人使用的,其他的如FeedDemon,Thunderbird都是偶尔有一两个。还有用浏览器的,Opera,Firefox,AppleSyndication(就是Safari),以及Sage(Firefox的一个插件)都在log里出现过,各位可以自行认领。
最后是Spider。Feedsky是我自己用来留备份的,没有人会去定那个,只要抓了就行。TechnoratiSnoop和Doubanbot定期来访,但是从来带不来访问量。这里要提出批评的是YodaoBot,每次抓取至少是连续抓两遍,经常出现在10秒钟内连抓六遍的案例,最多一次连抓了十遍,不知道这么抓有什么意义吗?14:35 | 分类: Tech
-
TrackBack功能
2007/05/02
在zig的提醒下,发现居然没有做TrackBack功能。其实原来是打算做的,但是耽误下来之后,又没有人特别需求,于是就给忘了。TrackBack是个挺简单的东西,而且原来做系统设计的时候数据格式接口什么的都是定义好的,所以只要写点代码就可以了。昨天一下午就做完了。不过做完归做完,问题还是很大。
支持TrackBack主要是两块功能,一是支持别人TrackBack我的Blog,二是支持我TrackBack别人的Blog。第一点的实现比较简单,只要每篇文章给一个URI,然后处理下别人post过来的请求就可以了,请求格式也不复杂,监听了一下看看发现也没什么特例,大家都按标准格式发的,除了Live Space把title发成excerpt之外。这里比较麻烦的是怎么防止spam,貌似没有特别好的办法,毕竟本来就是机器发而不是人发,所以没法让他输入验证码。办法一是在URI上做文章,弄个key跟在后面,使得机器不能简单得通过id累加来获得我所有的TrackBack URI,这个我倒不需要,因为我的ID本来就不规律;二是只有手动输入验证码之后才能看到URI,这个安全是安全了,但是对读者太不方便;三是不在页面上留下可被抓取的URI,一般都是不做链接,这样人可以框起来Ctrl+c,机器就无能为力了,但是这也有风险,哪天别人的crawler进化了,就给抓走了,于是我采用了点变化,用javascript来write这个URI,这样需要crawler进化到更高级才能抓到;四是加filter,这个就很麻烦了,懒得搞。
更大的麻烦来自于发送TrackBack。我完完全全按照标准的格式做的,结果居然很少能发成功。Live Space给我返回的msg是Unknown Error,好歹他是xml格式的,其他有几家返回文本格式的错误——可见对标准支持得有多差。当然,还有某人返回一个Interal Server Error的,要orz一下。这个还需要好好测试一下找出问题。要是哪位看到自己的Blog被这篇文章TrackBack了,那就是我在测试,多多打扰了。
所以目前最终的结果,这个TrackBack功能变成了自己TrackBack自己用……
15:22 | 分类: Tech
-
PageRank : 2
2007/05/01
终于又到了Google三个月一次的PageRank更新,我的PageRank不再是0了。从这个站正式有内容开始到现在,还不到45天,外部链接也只有不到20个。所以PageRank 2我已经挺满意了。毕竟原来的Live Space写了两年也只有3。
网站结构,目录结构的优化在我看来已经没有太大余地了,下一个周期主要要尝试一下更多的内容,针对关键词的内容优化,以及增加一些外链。我并不很看中访问量的增长,但是做SEO也算是一些技术积累吧。12:55 | 分类: Tech
-
通过了W3C检测
2007/04/27
重新整理了一下页面的代码,终于通过了W3C的XHTML 1.0检测和CSS检测。而且XHTML用的还是Strict。不过可能有几篇文章里的标签不符合标准所以并不是所有页面合格。但是至少框架和首页都ok了。
几个需要注意的地方,基本上90%的错都来自这里:
1. 所有标签必须成对配套出现。就算是单个的,比如<br>,也必须写成<br />。最容易忽略的就是<br>和<img>了。对于框架来说,问题还可能发生在<link>,<meta>,<script>等标签上;
2. <a>标签不允许用target属性,就是说target=“_blank”是不合法的。如果要在新窗口打开链接怎么办呢?事实上开新窗口是不被鼓励的。如果真要做,那就用rel属性外加一段javascript来实现吧。
3. <img>标签不能用border属性,要设置的话用style吧。alt属性是必须的,就算没有也写个alt=""。但是我建议是有的,因为毕竟不是所有人都能看到你的图片。
4. <input>不能直接放在<form>里,要套个东西,比如<div>,<span>,<p>等等都行。
5. 所有标签的name属性都被废弃了,不能用。另外,<script>标签的language属性被废弃了,不能用,用type=“text/javascript”代替。
6. 所有标签和属性必须小写。
7. 最变态的来了。页面里所有的&都必须写成&,包括链接里的。&只作为转义符使用。
相对比起来,CSS的检测就简单得多了,只要不写错东西基本都能pass。
搞定之后把自己网站提交到了W3C Sites收录。23:36 | 分类: Tech
-
去除Godaddy免费空间的广告
2007/04/21
康神发现在Godaddy注册域名是送免费空间的,还带php和mysql,可以架空间玩,不过又发现这个免费空间是带广告的,很让人不爽。它这个加广告的方法是在每个html页面(似乎根据Content-Type判断)加上一段代码:</object> </layer> </span> </div> </table> </body> </html> <!— adsok —><script language=‘javascript’ src=‘https://a12.alphagodaddy.com/hosting_ads/gd01.js’> </script>。最后那个js所做的事情是在你的<body>最开始加一段广告,前面那堆标签是为了防止你用开放的标签搞掉他的script。于是每次打开页面之后就会出现一个广告。
最先想到的办法是用body的onload把他放广告的东西搞掉,这个很简单,直接把他生成的iframe弄个style.display=‘none’或者style.height=‘0px’就可以了。但是很不幸的是这样虽然最后是没广告了,中间却有一段时间是能看到广告的,如果网速慢的话,可以看到的时间很长。另外,他的js里很恶心地设置了body的margin和padding,这样原来设计的页面就变样了。所以这个办法是不可接受了。
接下去有两条路解决这个问题,一是用标签套掉,让他不执行这个js,一个是在它前面放一段js让他的js失效。幸运的是,两种方法都可行。
用标签套掉比较简单。虽然广告代码写了一堆标签闭合来防止这个方法,但是他忘记了pre和iframe。经测试,半个pre标签在这里是无效的,js照样执行了,而半个iframe却很完美,加个<iframe style=‘display:none;‘>在</body>之后,广告就彻底蒸发了。这个方法优点是简单,非常简单,缺点是尽管看不到了,但是其实广告加载还是执行了,速度很慢(js加载不慢,但是js又去搞个广告代码下来就慢了)。
于是需要研究放点代码让他js失效的问题。先看他的js代码,发现并不是任何时候都显示广告的,当你的域名后缀是.mobi的时候就不显示,原因也许是对mobi域名的推广,也许是怕广告把手机浏览器搞崩。不过不管怎样,这至少留下了一个斩草除根的方法。首先想到的是写个和他的判断函数同名参数也一样的函数在前面,这样他函数定义的时候会出错然后调用的是我的函数,返回个true给他就可以了。结果实验之后发现JavaScript在这种情况下不会报错,而会直接用后面的函数覆盖了前面的!只能另辟蹊径。他用了String.search来判断document.domain中是不是有”.mobi”,显然document.domain是不能乱改的(不是不想改,是改不掉),那就改String.search吧。写个函数String.prototype.search = function(a,b){ return 1; }在它前面重载一下,这下世界真的清净了,广告那段恶心还巨大的HTML代码压根不会被生成了。另外,这样的重载不会影响在它之前的JavaScript,所以在</body>后面做这个事情,不会破坏页面上原来的东西。
这两个方法,或者它们的改进,应该能适合其他各种会在最后给你加广告代码的服务。Update:其实不用iframe而用<noscript>也能起作用,而且更加干净,连他的js都不会加载。但是这样很容易被godaddy的自动监测发现,把空间给砍了。
00:27 | 分类: Tech
-
KML图标
2007/04/18
以前说过KML没有一个标准的图标,因为这是Google自己的格式,并不像feed,opml那样公共化。不过终于,随着My Map功能的推出,Google意识到了KML需要一个好看的图标,于是当你在Google Map上加载一个KML之后,你就能看到这个图标了。图标样子和feed比较像,方形的,底色是我最喜欢的天蓝,上面是和Google Earth图标一样的两道弧线。我也更新了本站使用的KML图标,在页面右边就可以看到。
不过目前我只发现了这个16*16的版本,不知道哪里能找到矢量版的。22:45 | 分类: Tech
-
拼音大战,流弹命中微软
2007/04/10
这几天谷歌拼音和搜狗拼音来来往往,炒得不可开交(有人提醒我说这里是吵,不过我觉得区别不大),其他公司在一边敲锣打鼓看热闹。可是所谓刀枪无眼,这看热闹的中间就有个不小心被误伤的。误伤也就罢了,关键这位是陈年老伤,包裹得严严实实,结果,双方各一下,恰恰都打中了他致命之处。
这位可怜的仁兄叫微软,捧着个宝贝Vista,走街串巷大肆叫卖。微软好歹也是个老员外,大家都给点面子,所以无论是谷歌还是搜狗,做个拼音出来都要支持一下Vista,本来就是好意,让Vista用户能用得更爽。结果没想到刚上来,给Vista的不是好处,而是一人一下闷棍。
微软自称Vista采用了某某某某高新尖技术,安全性百分百有保障,大家可以放心使用。作为证明,好多原来可以跑得好好的软件都跑不起来了——因为不够安全!所以大家纷纷鼓掌叫好。
谷歌拼音本来也是去鼓掌的——尽管谷歌和微软没啥深交,前阵还耍过嘴皮子——但是这时候也要支持一下。于是拼音发布了,能在Vista下用得顺畅。不到一天,就有人来报,在Vista登录前,调出谷歌拼音,一键搜索,居然就打开了个浏览器,然后……打开浏览器能干什么谁都知道。微软精心构造的安全系统就被谷歌一不小心给破解了。此时舆论哗然,各路小报记者纷纷出动,探个究竟。谷歌很无奈,原是好意,结果却砸了人家牌子。
那头搜狗见谷歌不小心捅破了微软的宝贝,暗自高兴,编排了不少文章出来,说谷歌拼音不安全——其实都知道是谁不安全——结果呢?搬起石头还没砸出去呢,就把自己也栽进去了。在Vista登录前,调出搜狗拼音,选择换肤,然后……我们又见到了浏览器!
话说微软尽管看得真切,但是却做了鸵鸟,装作不知,也可能是做了大象,还没反应过来,总之就是对自己硕大的安全漏洞不闻不问。幸好谷歌反应迅速,第二天就在自己程序里把那个不小心攻破Vista的代码给改了,算是再给微软一点面子。搜狗也算不错,说是要改这个问题,当然还在忙于吵架一时半会没空去改。不过至少这俩炒得厉害的对头,在这事上还是一起为用户着想了,尽管有快手慢手之分。
可是问题在于,谷歌搜狗是不做病毒的,也是不希望用户被病毒干掉的,所以能自己改了,但是其他人呢?江湖水这么深,哪个角落里没有高人?哪里不能风起云涌再烧三柱香?回想当年,2000的那个经典漏洞,同样是登录前,同样是输入法,同样的老眼昏花不闻不问了好久。微软这回是唱着Yesterday Once More,走进了新时代……23:43 | 分类: Tech
-
Dreamhost被DOS了几小时
2007/04/08
下午到刚才一直不能访问,据说是Dreamhost的DNS server被DOS了,而其他服务一切正常。
经过这次DOS,我发现我订阅的不少Blog都是托管在了Dreamhost。另外,为了防止类似事件再次发生,我把我的www.yangfan.name从redirect改成了mirror,而这个域名用的不是Dreamhost的DNS,所以只要Web服务器还活着,就可以用这个域名访问到。21:10 | 分类: Tech