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-

我的2010

我也来回顾一下我的过去这一年,做些总结与思考。在我完整的工作一年的时候换了份工作,从原来的写C++/C#变成了前端攻城师专职写JavaScript/HTML/CSS,这也是我一直以来的愿望。此后,也越来越多的关注前端开发方面的内容,至今我仍是一个前端方面的初学者,还有很多需要学习。

7月,在我的HP本本工作多次罢工以后,咬牙入手了Macbook Pro,加入水果阵营。三个月后的10月,十一期间在家无聊亦然决定学习Objective-C,遂即订购了”Cocoa入门-使用Objective-C”空余时间阅读。

12月上旬表部门参加了O’Reilly Velocity China 2010,获得了不少同行的最佳实践与经验教训。

回顾过去这一年,买了好几本书,但基本上都还没翻过,留作了2011年的任务。C++与C#已经忘记得差不多了,由于C++在编程史上的地位,2011年还是会重新拾起,温故一些基本计算机的基本知识。

除了Web开发语言外,2010年我用得最多的语言是Python ,用得最多的系统工具是终端,自从开始mac以后,开机首先就是开终端,我已经变成一个十足的终端控,介于不会shell的缘故,自然而然的就拾起Python来写一些批处理程序。用得最多的得编辑器是coda,textmate和notepad++,由于工作时常是在mac和windows两个系统下交替进行,所以会使用好几个编辑器,希望textmate能在2011捻解决掉中文的显示问题。

好了,有些偏题了,就此打住吧。Hello 2011!
-EOF-

使用JavaScript检测Firefox浏览器是否启用了Firebug

在启用Firebug的情况下访问GMail会收到一个“Firebug会让Gmail变慢”的警告,这是如何检测的呢?这里就说说。在启用了firebug面板后,会增加一个window.console对象及window.console.firebug变量用于保存当前firebug的当前版本,当关闭firebug面板后则变回正常,于是我们可以通过判断其是否存在来检测是否开启了firebug。

于是,为了方便在没有启用firebug的情况下避免脚本错误,可以在脚本最前面加入以下语句手工创建空的console对象以作兼容。

这样,在IE下能正常预览页面,在Firefox、Chrome、Safari中也能正常输出调试信息。
-EOF-