2009年2月28日星期六

Google街景地图整合Panoramio照片

  据Google LatLong博客报道Google街景地图(Street View)服务发布了一个新功能,可以让用户在一些著名景点的街景地图上看到图片共享网站Panoramio用户上传的个人所拍摄的照片。例如用户浏览艾菲尔铁塔巴黎圣母院大教堂的街景,就可以看到各种各样的用户在附近拍摄的照片。

  这个功能在其他许多地方实现了,例如纽约旧金山罗马东京巴塞罗那悉尼新西兰等等。里面有很多用户贡献的的高品质的照片,肯定会受到绝大多数用户的欢迎,原因是用户可从更多角度观看特定建筑、街道的情况。

  如果你是Panoramio的用户,并且在上面那些地点拍摄并上传照片的话,那么街景地图里面可能已经有了你的照片。由于Google街景地图没有进入中国,因此我在深圳拍摄并上传Panoramio的那些照片,目前也只能在Google Maps和Google Earth中查看,等到Google街景车进入中国的那一天,就可以看到我们自己的照片了。

  此前Google已在美国、日本和欧洲等国家和地区提供各大城市的街景服务。去年12月,日本一家隐私保护倡导组织表示,Google应立即在日本市场停止提供街景服务,原因是该服务涉嫌侵犯日本普通公众隐私权。

Google街景地图整合Panoramio照片

  下面是Google提供的一段视频,详细讲述了如何在Google街景地图中查看Panoramio照片。

2009年2月26日星期四

域名还放在国内的,立刻转出去吧

  蓝天博客报道了一个万网干的最新勾当,就是将中国最大的电视单机游戏网站电玩巴士(www.tgbus.com)的域名停止解析。

  我先前曾经说过不要在国内注册CN域名,其实包括COM在内的所有域名都不应该在国内注册,如果你已经在国内注册了,那么立刻转出到美国的GoDaddy吧。否则下一个被屏蔽的可能就是你的域名了。

  针对TGBUS.COM(电玩巴士)域名被万网停止解析的情况,万网给媒体发来以下声明,如下:

  中国万网于二月二十日接到上级主管部门的通知,要求对部分网站停止域名解析。万网在接到该通知后,对列明的网站,包括tgbus.com(电玩巴士)进行了停止域名解析操作。万网作为专业的域名注册服务机构,将及时执行政府通知,除此情况外,在域名指向的站点中不存在违法信息的前提下,万网不会对用户的域名解析和指向做任何操作。同时,万网呼吁广大用户及时检查网站内容的合法性。

  我想万网也不想电玩巴士域名被停止,毕竟这是一个以电子游戏为主的网站,和牛博不同。但相关部门的操作野蛮而不公开,广大人民不知道为什么这么大的一个娱乐网站忽然就被关了,但这带给大众的信息是什么呢?就是相关部门的停止解析域名完全没有标准,一个以电子游戏为主的娱乐网站也会被立刻停止域名,那么还有什么不可能的事情呢。

域名

  所以,我们不应该存在侥幸心理,域名还放在国内的,应该立刻转到国外,我推荐使用美国的Godaddy域名服务,通过招行信用卡可以付费。访问量越大的网站越危险。万网域名的转出流程参见万网自己的页面,我自己两个老域名就曾经在2004年转出万网成功过。

FeedzShare的个性化阅读功能

  FeedzShare是一个社会化推荐工具,通过聚合读者在社会化媒体上推荐或分享的东西, 帮助我们发现高质量的信息,快速发现互联网热点。最近,FeedzShare发布了一个新的功能——“个性化阅读”。

  FeedzShare "个性化阅读"采用的是user-based 协同过滤算法。简单来说, 就是根据用户的喜好计算出与其他用户的相似性, 找到N个最相似的用户, 通常叫做“最近邻”。然后根据最近邻产生预测结果。

  访问FeedzShare 个性化阅读,输入你的Google Reader分享页面或RSS地址, FeedzShare 会先分析你的阅读兴趣, 自动跳转到你的个性化阅读主页; 用户可以订阅个性化RSS地址。

  这个服务目前的用户可能比较少,经过我提交我的RSS分享地址测试,发现返回结果虽然不错,但还不是最优。说明其数据分析挖掘的还不够。

  另外,如果能将好友分享的阅读也进行一些筛选,将热门文章过滤出来,那就更方便了,每天阅读几百个好友分享的确是件痛苦的事情。

  这些Google Reader的数据挖掘工作,其实本应该Google自己来做,很简单的开发,做起来也不麻烦,不知道Google为什么一直不做这些功能,是不是开发人员不够?

  最后一点值得注意的是,我发现社会上一些其他的标榜着“社会化推荐引擎”的网站,都存在一个不好的地方,就是通过“网页快照”的方式大量建立“复制内容(重复内容)”,如建立地址/meme/item/id这样的网址,在网上搜索文章的时候,经常这些复制内容还会排在原始文章的前面,导致原创博客的排名降低,有时还被搜索引擎惩罚。我敦促这些“社会化推荐引擎”,请遵守国际互联网的礼仪,在你们的robots.txt中加入Disallow:/meme/ 这样的内容,不要在大量创造复制内容了,中文互联网上的复制网页已经够多了,不需要你们再继续做贡献了。

2009年2月25日星期三

Google推出App Engine收费服务

  据Google App官方博客报道,为帮助开发人员打破免费服务的限制,获得额外的计算资源,Google决定推出App Engine(应用引擎)收费服务。

  App Engine是Google去年4月推出的一项免费服务,允许开发商使用Google基础设施构建Web应用,开发完毕后再部署到Google的基础设施之上。Google周二表示,随着App Engine用户数量的增多,为进一步方便开发者使用,决定推出收费服务。

  收费标准主要依据开发者的使用时间和带宽流量而定。如用户每日App Engine的CPU Time不超过6.5小时,发送和接收的数据不超过1GB,则可继续免费使用该服务。

  如超出上述标准,超出部分按每CPU小时0.10美元费用。每日接收数据超过1GB,超出部分每GB将收费0.10美元;每日发送数据超过1GB,超出部分每GB将收费0.12美元。

  此外,用户存储数据每月将按0.15美元/GB的标准收费,而接收电子邮件为0.0001美元/封。

  因此,免费用户如果想要很好的使用Google App,应该修改代码,尽量减少调用CPU的时间,降低流量,以避免超出限制。我先前介绍的那个代理应用GAppProxy可能就会面临流量超限的危险。下面是这个收费服务的具体视频介绍。

Google Toolbar 6 beta发布

  今天Google发布了Google工具栏6的beta版,支持IE浏览器,中文版也同时发布。

  这个新版本的在快速启动里面增加了一个快捷按钮,这样就方便了从桌面进行搜索,将Google工具栏从浏览器仅仅入侵到用户桌面。

  新的快速搜索框的特性还包括,搜索输入的时候会即时得到搜索建议。还可以启动本地电脑安装的应用软件,轻松启动桌面应用程序。

  总的来说,这个版本的功能变化不太,没增加什么有趣的功能。

  新版本Google Toolbar 6 beta的下载地址:http://toolbar.google.com/T6/intl/zh-CN/

Google Toolbar

英文共享软件发展的新机遇

  先前我曾经谈到过共享软件的开发和营销策略,讨论英文共享软件的不少成功案例,今天我讨论一下当前环境下英文共享软件的一个新机遇。这个新机遇就是手机游戏,特别是iPhone手机游戏。

  我以前曾经介绍过一些不错的Java手机游戏,这些游戏在美国销量都很大,但是开发难度却不大,Java游戏可以适应大部分手机平台。而iPhone由于硬件性能强大,在3D表现上接近PSP的水准,同时具有触摸屏和重力感应,拥有超过8G的存储空间,因此在这个平台上完全可以开发出专业水准的掌上游戏。

  而苹果在营销上做的也很不错,为开发者提供许多优惠条件,苹果推出的APP Store应用商店与开发商共享营收,做到了双赢,一个典型的例子就是Nicholas开发的iShoot游戏。

  Ethan Nicholas制作的游戏叫iShoot,是一款以小型战斗坦克为特色的游戏。Nicholas就职于Sun公司,他用业余时间开发出了iShoot,游戏售价2.99美元,由于成功的营销策略,iShoot的销售量在1月11日窜升至销售榜第一名,一天内下载达16972次,以2.99美元计算,相当于一天收获21000美元(苹果提成30%)。巨大的成功使得Nicholas从Sun公司辞职,专注于iPhone开发。

iPhone游戏

  因此,国内做英文共享软件开发的,完全可以抓住这个机遇,转型到iPhone游戏开发,这方面有几个很有利的条件。

  1、苹果官方提供了完整的SDK,根据这套SDK开发完全没有什么问题。SDK里面包含了模拟器,开发者不必购买iPhone就可以进行开发。

  2、手机游戏门槛低,一般的游戏不需要什么美工,手机上的游戏大多为休闲游戏,开发较为简单,一个人就可以完成全部的开发工作。

  3、不用操心营销问题,App Store会将软件直推到每一台iPhone终端,没有物流费用,直接可以得到70%的分成收入,这比起英文共享软件的分成模式要划算的多。

  4、iPhone用户量庞大,并且用户群还在继续快速增长,游戏定价2美元也可以获得不错的收入。

  5、目前还没有大型游戏公司高调介入这个市场,或许是不屑于这个市场,也可能是闷声发大财,如果没有专业游戏开发商进行竞争,那么个人开发的游戏就有更多成功的机会了。而未来一旦那些喜欢烧钱的公司(例如Google)也没事进入这个市场,免费提供游戏(游戏上来显示AdSense广告),那时成功的机会就小多了。

  因此,中国的英文共享软件开发者,可以尝试一下iPhone游戏的开发,或许能获得不错的收入,营销模式可以参考Nicholas的方法,提供一个免费版Lite Version,功能少一些,让用户多下载试玩,玩的多了,就会去下载购买收费版了。

2009年2月24日星期二

手机版远程网站文件删除程序

  这是一个很和谐很实用的网站管理程序,和我以前介绍的服务器管理程序不同的是,这个程序只有一个功能,就是实现远程Web方式删除文件(实际上是重命名文件,但效果和删除一样)的操作。功能简单实用,适合所有的支持ASP的中文网站。

  这个程序是基于这样一个应用场景:假如工作几个月好不容易有了一个放假的日子,周末的时候你随旅游团去千里之外的张家界旅游,当你正在登山索道上观赏周边风景的时候,电话响了,你接到你托管服务器机房IDC的电话,说你的网站上有一条有害信息,需要立刻删除,并将该信息的链接地址发送给你,如果半小时内不删除的话,你的服务器就要被立刻拔网线。

  而此时,你在深山老林里找到最近的一个能上网的场所也要好几个小时,并且这会将你原来兴致勃勃的旅行计划全盘打乱,多么令人扫兴和烦恼的事情啊。

  如果你在网站上安装了这个小程序就轻松多了,打开手机,输入这个程序的地址,登录后,输入要处理链接的“相对地址”,然后点“删除”,就可以将这个文件删除了(实际上是重命名操作),并且留有备份,以备将来处理。

  使用方法很简单,将下面的代码复制出来,命名为一个ASP文件,修改用户登录密码password为你自己记得住的一个密码,然后上传到你网站的根目录下,之后就可以使用手机远程操作了。

  程序的源代码如下:

Response.Charset="GB2312"
Response.Buffer = True
FileName = request.ServerVariables("URL")
'=====用户登录密码
userpass = "password"
'=====验证登录密码
If request.querystring("action") = "login" and session("password")<>"" Then
    If request.Form("loginpass") = userpass Then
        session("password") = userpass
        response.redirect FileName
    Else
        response.write "验证未通过."
        response.end
    End If
ElseIf request.querystring("action") = "do" and session("password")<>"" Then
'=====重命名文件操作
Set fs = Server.CreateObject("Scripting.FileSystemObject")
SFile = Server.MapPath(request.Form("filename"))
NFile = SFile & ".bak"
On Error Resume Next
fs.MoveFile SFile, NFile
If Err.Number = 53 Then
    response.write SFile & "文件不存在."
ElseIf Err.Number <> 0 Then
    response.write "发生错误. 请查看错误信息:" & Err.Number & " " & Err.Description
    Err.Clear
Else
    response.write "成功重命名文件 " & SFile & " 为 " & NFile & ""
End If
response.end
'=====录入登陆密码
Else
    If session("password") <> userpass Then
        response.write "<form action=" & FileName & "?action=login method='post'>需要密码:<input name='loginpass' type='password'>&nbsp<input type='submit' value='登录'></form>"
    Else
        response.write "<form action=" & FileName & "?action=do method='post'> "
        response.write "<input type=text name=filename><br><input type=submit value='删除'></form>"
    End If
End If