Sep
13
recaptcha是一个为了数字化图书而建立的项目,由于目前ocr识别率不高,导致很多老书籍扫描识别有困难,于是出现了recaptcha,给出的验证码是2段,一段是机器混淆,一段是ocr扫描件,如果一个人能把一段识别对,那么另外一段也默认为对,这么来每人贡献一小段,加快老图书的识别过程。
选中recaptcha,我的初衷是因为他有语音识别,而且预防机器识别率较好,并且facebook,twitter等都在用,同时算为数字化图书做一份力吧。今天顺利搞好了定制样式,不过浏览时发现了问题:sarari和chrome下,整个段落高度明显高出一行,约16px。调整来调整去没见效果,看js看的头晕。灵机一现,我怎么忘了查看生成之后的dom结构。这一看发现了问题:
main和footer之间多出来一个iframe,搜索recaptcha的js,发现了如下:
244 if (navigator.userAgent.indexOf("KHTML") > 0) {
245 var iframe = document.createElement('iframe');
246 iframe.src = "about:blank";
247 iframe.style.height = "0px";
248 iframe.style.width = "0px";
249 iframe.style.visibility = "hidden";
250 iframe.style.border = "none";
251 var textNode = document.createTextNode("This frame prevents back/forward cache problems in Safari.");
252 iframe.appendChild(textNode);
253 document.body.appendChild(iframe);
254 }
原来为了修补safari,多了iframe,虽然他设置的高是0,但还是占位了,导致行高超出。解决办法,目前我用不到iframe,于是把iframe的display设置为none。
ps:safari和chrome都是webkit内核。
选中recaptcha,我的初衷是因为他有语音识别,而且预防机器识别率较好,并且facebook,twitter等都在用,同时算为数字化图书做一份力吧。今天顺利搞好了定制样式,不过浏览时发现了问题:sarari和chrome下,整个段落高度明显高出一行,约16px。调整来调整去没见效果,看js看的头晕。灵机一现,我怎么忘了查看生成之后的dom结构。这一看发现了问题:
main和footer之间多出来一个iframe,搜索recaptcha的js,发现了如下:
244 if (navigator.userAgent.indexOf("KHTML") > 0) {
245 var iframe = document.createElement('iframe');
246 iframe.src = "about:blank";
247 iframe.style.height = "0px";
248 iframe.style.width = "0px";
249 iframe.style.visibility = "hidden";
250 iframe.style.border = "none";
251 var textNode = document.createTextNode("This frame prevents back/forward cache problems in Safari.");
252 iframe.appendChild(textNode);
253 document.body.appendChild(iframe);
254 }
原来为了修补safari,多了iframe,虽然他设置的高是0,但还是占位了,导致行高超出。解决办法,目前我用不到iframe,于是把iframe的display设置为none。
ps:safari和chrome都是webkit内核。
Sep
11
前几日使用了sticky footer的css,就是那个著名的底栏居浏览器最下的技术,测试了几日没问题,于是今天把passid的底栏代码调整了下,合并到了同一个ul,算是html代码优化吧。
本机发布了下,于是拿不同的浏览器看效果,无意的刷了下ie8,发现了问题:底栏超高了。再次刷新,约30%的几率会出现超高,其余正常。抓狂=_=

这个才是正常的

开始以为是footer超高,加上边框看下效果,发现没有。那么可能就是主体部分padding可能计算出错咯。于是一步步恢复,同时多次刷新测试。差不多恢复到一半,依旧这样的现象。难道我的xhtml格式错了么,于是右键查看源代码,这一看就发现了问题,我去掉了<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />,这个是让ie8运行ie7的兼容模式,恢复到最后,加上再次刷新:这次正常了。
再测试,我用的dtd是xhtml1-strict,去掉EmulateIE7,去掉dtd,正常。仔细看css,发现里面我强行限制了上下滚动条,去掉EmulateIE7,加上dtd,去掉上下滚动条,也正常。于是加上保留上下滚动条,加上左右滚动条,这次也正常。去掉dtd是quirks模式,这个不谈。
合计如下(IE8):

看起来结果很好,其实1勉强能接受,让ie8模拟ie7,2错,3是quirks模式,4是没有了上下滚动条,内容不足时候比较光秃秃的,之后只剩下5,缺陷就是overflow-x和y不是标准css。
总结就是:body宽高度100%时候,ie8强制上下滚动时候,左右滚动条可能也会出现导致位置错,ie7则无这个问题。
权衡之下,选了4。
这个正常后就拿5800自带的看,5800自带的浏览器是Mozilla/5.0+(SymbianOS/9.4;+U;+Series60/5.0+Nokia5800d-1/21.0.101;+Profile/MIDP-2.1+Configuration/CLDC-1.1+)+AppleWebKit/413+(KHTML,+like+Gecko)+Safari/413,正常。想起来还有个opera mini,得,这下完全变形了。搜了下相关资料,发现opera mini不是一个兼容大多pc浏览器的,而纯粹算个手持设备的专用版本,看来短期内想和pc版兼容无望了。
这么说来,还是ipod touch上的safari更招人喜欢些。
本机发布了下,于是拿不同的浏览器看效果,无意的刷了下ie8,发现了问题:底栏超高了。再次刷新,约30%的几率会出现超高,其余正常。抓狂=_=
这个才是正常的
开始以为是footer超高,加上边框看下效果,发现没有。那么可能就是主体部分padding可能计算出错咯。于是一步步恢复,同时多次刷新测试。差不多恢复到一半,依旧这样的现象。难道我的xhtml格式错了么,于是右键查看源代码,这一看就发现了问题,我去掉了<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />,这个是让ie8运行ie7的兼容模式,恢复到最后,加上再次刷新:这次正常了。
再测试,我用的dtd是xhtml1-strict,去掉EmulateIE7,去掉dtd,正常。仔细看css,发现里面我强行限制了上下滚动条,去掉EmulateIE7,加上dtd,去掉上下滚动条,也正常。于是加上保留上下滚动条,加上左右滚动条,这次也正常。去掉dtd是quirks模式,这个不谈。
合计如下(IE8):
看起来结果很好,其实1勉强能接受,让ie8模拟ie7,2错,3是quirks模式,4是没有了上下滚动条,内容不足时候比较光秃秃的,之后只剩下5,缺陷就是overflow-x和y不是标准css。
总结就是:body宽高度100%时候,ie8强制上下滚动时候,左右滚动条可能也会出现导致位置错,ie7则无这个问题。
权衡之下,选了4。
这个正常后就拿5800自带的看,5800自带的浏览器是Mozilla/5.0+(SymbianOS/9.4;+U;+Series60/5.0+Nokia5800d-1/21.0.101;+Profile/MIDP-2.1+Configuration/CLDC-1.1+)+AppleWebKit/413+(KHTML,+like+Gecko)+Safari/413,正常。想起来还有个opera mini,得,这下完全变形了。搜了下相关资料,发现opera mini不是一个兼容大多pc浏览器的,而纯粹算个手持设备的专用版本,看来短期内想和pc版兼容无望了。
这么说来,还是ipod touch上的safari更招人喜欢些。
Sep
6
avatar源自印度梵语,本意是指"分身、化身"。网络时代,这个词的意思是用户的虚拟形象--头像,可以是卡通,可以是真人照片,可以是自己喜欢的任何图片。目前用的较多的是gravatar,也就是Globally Recognized Avatars,提供免费头像托管的网站。头像路径是根据email进行md5后生成,既防止了email泄露,又保证了唯一。为了避免passid用户再上传一次头像和减少passid的存储,准备耦合gravatar的服务,即passid本身不提供avatar托管,而直接使用gravatar。
感谢gravatar。
感谢gravatar。
Sep
5
鉴于qq.cn以及一位数cn,以及tgbus等域名的神奇,我选择了在国外注册域名,不是我想做违法的事,只是多一事不如少一事。想当初,自己的blog也是禁不住三天两头的机房被检查而搬出去,已经3年了。算算信誉度,可靠性,价格等,我选择了在godaddy注册。其实godaddy的dns解析速度很快,还算稳定,价格也可以,但是综合了下速度和可靠性,我选了dnspod这个国内的免费dns解析商,毕竟背靠大树好乘凉,那一票国内站就是保证。虽然有前暴风影音的事迹,但我对他还是很有自信的。
感谢dnspod。
感谢dnspod。
Sep
4
其实我没觉得这个是什么问题,因为无论怎么加密,拿到了cookies都是可以欺骗的,我能做的就是修改密码时候,再验证一次之前的密码。不过怎么防止根据加密后的密码逆推,还是需要考究下的。md5和sha1是比较常用的,虽然md5有碰撞,但那还是很小的几率。md5现在的字典很多,有网站存了上tb的密码表,基本把11位下的数字和字母一网打尽(这么宣称,实际还没测试过)所以一般用户的密码,一次md5是不够的(强度不够),2次的话觉得运算太繁琐,所以考虑固定salt加上用户名还有密码以及timestamp,合起来去md5,满足了强度问题。存储么,可以考虑去掉某些位来减少数据库大小。
ps:passid.net是不存用户名和密码在cookies中的,^_^
ps:passid.net是不存用户名和密码在cookies中的,^_^





