Google App Engine Roadmap 2011

这是今天(2011年2月22日)GAE站点上的Roadmap,可以看到近期会有如下这些特性将会添加到GAE中。
Features on Deck

  • SSL access on non-appspot.com domains
  • Full-text Search over Datastore
  • Support for Python 2.7
  • Background servers capable of running for longer than 30s
  • Support for running MapReduce jobs across App Engine datasets
  • Bulk Datastore Import and Export tool
  • Improved monitoring and alerting of application serving
  • Logging system improvements to remove limits on size and storage
  • Raise HTTP request and response size limits
  • Integration with Google Storage for Developers
  • Programmatic Blob creation in Blobstore
  • Quota and presence improvements for Channel API

其中SSL不用说了,去年是说Q4发布的,被延期到了2011年,只希望不会是在年底。一直被要求的全文检索终于被提上了开发日程,是一个非常不错的好消息。接着是将会支持Python 2.7,这也是迟早的事情,话说我每次在Mac下降级Python配环境那个折腾呐,同时目前在其1.4.2版本中已经可以使用use_library() 来指定Django的版本。HTTP返回数大小限制已经提升到30M了,只是请求数目前还没有放宽限制。另外还会整合Google Storage for Developers到GAE中,不知道将会是以何种方式提供服务,这些功能项都挺值得期待的。
-EOF-

CSS风格指南

选择器风格

  1. id或class名中的分割线使用减号”-”而不是下划线
  2. 大括号”{}”之间的属性缩进两个空格
  3. 属性名与属性值之间(冒号后)空一格
  4. 属性按照显示属性/盒模型/文本属性来写(via Mozilla)

未完待续…
-EOF-

Mercurial Certificate Warning 解决方法

这是在Mercurial 1.7.3里新增加的一个功能,如果没有配置CA就会被警告:

Mercurial Certificate Warning: Certificate not verified web.cacerts

这个警告本身并不会影响使用,可以忽视。

这里提一下在Mac OS X 10.6上的解决方法,其余系统大致类同,可以参照CA Certificates

产生一张自签名证书(内容随意)

将其复制到某个目录中存放

设置Mercurial的配置文件,加入刚才的

这样操作之后在下次使用Mercurial就不会收到这个警告啦。

注意,千万别偷懒在网上下载别人生成好的自签名证书,因为私钥在他们手中,这是极其不安全滴,所以还是老老实实运行一下上面的命令自己生成吧。
-EOF-

关于浏览器支持localStorage的统计

注:+该版本及该本以上,-该版本以下,不包含该版本
主要测试以下三种存储方案的支持程度:
localStorage: false
userdata: false
globalStorage: false

Chrome4+ 开始支持localStorage

Firefox3.5+开始支持localStorage
Firefox1.5+支持globalStorage

IE8+支持localStorage
IE7兼容模式支持localStorage
IE5.5+支持userdata

Safari 4+ 支持localStorage
Opera10.5+支持localStorage

Netscape Navigator最后一版(9.0.0.6)支持localStorage,其余版本未测

———————- 我是分割线 ——————————-
因此,拟使用localStorage来作为前端存储主干方案,退化策略如下:
采用特性探测,按如下顺序提供存储支持:
localStorage
globalStorage
userdata
Cookie
Cookie也可能被禁用,如果都不支持,那就只有抱歉了,这种情况下网站也登录不了滴。

其它可以采用的扩展存储方法:
Google Gears
SWF

另外,临时会话存储sessionStorage尚未正式测试过,支持的浏览器不多。可以考虑作为扩展方案,备用方案可采用window.name,但数据量有限,待评估。

以上数据供参考,欢迎有更了解的同学提意见和建议。

update:
使用userdata会使getAttribute被重写,需要做兼容处理,务必小心使用。
-EOF-