样式表DIV Margin无法居中的问题

最近在为客户把PSD文件转成网页,可是基本样式已经确定了后,客户又要求加入Bootstrap框架,提供bootstrap.css,网页样式需要包括新旧三方CSS样式,在新旧样式夹杂的情况下,状况百出,有些哭笑不得。

旧的网页还在用xhtml1-transitional,却又偏偏夹杂着洋气的bootstrap。姑且我们不看Firefox13下bootstrap.css里面造成的密密麻麻的CSS样式警告。仅仅是在DIV居中的定义上,已经让我大跌眼镜。有个独立的DIV,作为container容器,需要固定宽度居中显示,懂点CSS的人都知道用margin:0 auto;就可以搞定。可就在新旧样式的夹杂下,Firefox、Chrome、IE8却偏偏不是固定宽度居中,而是100%显示。搞笑的是IE6和IE7却很配合,乖乖得居中。最后不得不在DIV前多加一个clear:both才解决了问题。

关于:bootstrap.css里面造成的密密麻麻的CSS样式。我发现大部分是“未知属性 ‘-moz-border-radius’。 声明被丢弃。”错误。
根据这里的解释:Freifox4以后Firefox支持直接border-radius和box-shadow的定义,而不再需要使用“-moz”。

Bootstrap是个很好的前端框架,美观、规范,可以让人学习到前端制作需要掌握和注意的方方面面。但是就这样草草率率的将Bootstrap揉进现有的网页,确实有欠考虑。用它之前还是多去了解它

Curl PUT FILE的content-length重复问题

昨天用Dropbox OAuth API写PHP接口的时候遇到十分诡异的问题。Curl的request header里居然有两个重复一样的content-length:

Content-length: 4288
Content-Length: 4288
API返回了错误:
Error (4xx)
We can’t find the page you’re looking for. Check out our Help Center and forums for help, or head back to home.
我很确定header数组里面只有一个Content-length,第二个Content-Length的L是大写,貌似是系统自动加上的。
如果不用Content-length,API会返回”HTTP Error 411 Length required”的错误。

由于找不到合理的解释,只能用个trick,删除一个Content-length了事:

curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘Content-Length: ‘));

谷歌Adsense广告根据网页色调显示广告?

今天在博客上看到一个有趣的现象,首页三个谷歌广告的颜色都出奇的相似,而且整个广告色调和我的页面色调一致,看起来很是舒服。

不由的想到:难道是谷歌会根据网页色调来选择展示不同的广告?

从技术上想,谷歌的相似图片搜索已经很成熟,用来匹配Adsense广告也不是问题。但是,在网上却找不到可以证实我这个猜想的资料。

如果谷歌真的在使用这种根据色调展示广告的技术,那真是太专业了~。从SEO优化的角度讲,我们可以调整网页整体颜色,达到某种更佳的广告效应。这种在视觉上的优化可以说是广告优化的进一步深入,对广告受众心理的进一步揣摩。

企业网站定制的好处

现今网上流行的网站内容管理系统(CMS)众多,如PHP的国外有:magento, zencart, joomla, drupal, xoops, typos, wordpress等,国内:dede和帝国等。而不少企业也选择了用这些流行的CMS程序来建站。虽然流行的CMS程序有技术、界面、易用性和安装的优势。但是和自己定制网站来比,还是有很多不足:

  • CMS功能多而繁杂,企业往往用不上,甚至造成服务器资源浪费,增加了管理和维护成本
  • 精通某个流行CMS程序员的不多、不好找,能把系统改造的得体很不容易
  • 界面太多雷同,个性化成本也不低,比如界面的修改和SEO的优化
  • 安全性低,这类CMS多为开源系统,容易被黑客利用
    而企业定制网站却有如下优势:

  • 定制系统完全由程序员自己开发,对系统非常熟悉,修改、维护都很便利和快捷

  • 网站后期管理、维护成本很便宜
  • 程序未开源,相对公开的漏洞较少,不易被攻击
  • 定制可以从非常细节、底层的地方开始,按客户意愿来实现。成本远低于重新翻修流行的CMS。
    但是,定制网站也有如下劣势:

  • 网站首期开发成本较高

  • 对开发人员有依赖性
  • 系统性能不及流行的CMS
    当然,企业完全可以根据自身的情况选择适合自己的建站方式,做到建站效率和利益的最大化。这才是企业建站的最终需求。

 

关于在建行接受国外汇款

以前只是接受过支票和西联的海外汇款,支票时间长,手续费也不低。西联很快,而且不用钱。最近要接受一笔美国对建行的直接汇款,我以为很复杂,其实也挺简单。收款前,对方是BOA(美国银行)的卡,让我提供如下资料才能汇款:

银行名称 CHINA CONSTRUCTION BANK
开户行地址 China Construction Bank XX Branch XXX Subbranch
Routing Number: 这个没有
Account Number: 卡号
SWIFT Number: SWIFT码(国际电汇码)
户名:姓名

在建行的国际部可要求打印该行的SWIFT码和地址,但是并没有Routing Number。收到钱后确认,Routing Number确实没用。而且很快一天就到账。另外在外汇用途的申报上,最好就说家用,免得横生枝节。

关于硬盘损坏的修复

家里有两块旧的80G硬盘,用来当作备份。可是其中一块做启动盘,坏掉了,开机都不行,显示“Disk Error.”。
我尝试着用老毛桃USB启动盘里的硬盘扫描修复工具,均告失败。硬盘扫描的坏区也越少越多,赶紧把还能访问的分区资料备份出来。
多次扫描发现,80G的前20G已经无法使用,于是用分区工具删除了所有分区。
然后我试着写入新的MBR,成功,但是用Windows磁盘管理的分区功能是提示“一个未知错误”,分区失败。
接着换了老毛桃USB启动盘里的分区工具,把C盘20G划出来,但是不格式化,剩下的都做D盘(作为主分区),格式化居然成功。
最后把Ghost备份的系统盘还原到D盘,久违的Windows终于回来了。不过对于有伤的硬盘,使用的时候要多个心眼了。

现在的年轻人肿么呢?

现在的年轻人肿么呢?为什么总把自己的问题认为是别人的问题…这个想法我已经有好多次,今天终于忍不住要吐槽。

这次是之前公司后来的小年轻,人挺好,挺精神。不过一有自己解决不了的问题,就来向已经离职的我吐槽,质问我为什么会有这个问题,为什么我不给他指点迷津?

可是你的代码里面没有用到 set names

却可以正常显示这些乱码

当时你保存的时候,在phpmyadmin里面查看的时候,看到户外家å…

这样的文字,不觉得有点问题吗?

如果不觉得有问题,可以把思路告诉我吗?
顿时,我就碉堡了,大佬,我都离职2年了,犯不着这样跟我死缠乱打吧。自己的问题解决不了,到怪罪到我的头上,好不冤枉!我愿意帮你是你的福气,不愿意帮你,也是我的自由。我上辈子也不欠你,说的好像不帮你,就是我我的罪大恶极!

好在我人好,心软,赶紧帮他进行简单测试,发现数据库和程序都没问题。确实是他自己的代码有问题。我那个去~鼻子都快冒烟,这算哪门子找来的晦气,只能苦笑兼叹息到“现在的年轻人肿么呢?”

事件结束后我送他,也送给有同样嗜好的年轻人:“不客气,有了问题,先要冷静,要知道出现问题大部分是自己造成的,没有人有义务为你承担责任,有问题自己解决,搞不定,也没有理由怪罪别人。就算实在是没法要找人帮忙,也请拿出基本的礼貌和尊重。”

宜家托运家具损坏不用赔?

以前在广州宜家买过多次家具,托运送货都很顺利,而且是送进家门。可是没想到,同为宜家商场的成都宜家商场,却有着明显的不同,与宜家宣扬的概念和做事方式背道而驰(这种做事的方式深入宜家为保持低价格所采取的一切途径的内心。但是,质量却不会因成本的原因而受到危害。瑞典在国际上享有你可以为之信赖的安全与优质的信誉,宜家零售商以在各种情况下能够提供优质产品而自豪)!

前几日,我买了一张斯代弗镜子50170425 STAVE,在托运的时候工作人员就强调“易碎品不赔哦”,我就纳闷了,这是哪门子霸王条款。送回家一路高速,应该也没问题,况且还多花了50大洋加装了个木框。于是也没多想,也就签字,给发货办手续。

谁知厄运降临,宜家托运送货(号称中国物流百强企业)确实按时到了(只到楼下,不送上门,我们有电梯都不行),可是翩翩就是没见到那面镜子,托运的人员说是“镜子破损,已经回送到宜家”。之后,便再无下文。没有人通知我,是否可以重新发货,还是“活要见人、死要见尸”,把坏的镜子发到我手上。

回头,越想越不对劲,买镜子花了349,打包费和托运费至少100,450大洋就这样说没,就没了?这是哪门子道理?

这样的商家不是欺人太甚!怎么可能是宜家所为?赶紧电话货运公司和成都宜家,第一轮,他们相互踢足球,把我踢来踢去。第二轮,直接电话宜家客服,讲明事情经过,希望换得公正的答复。

如今,答复尚未得到。心情已经平复,希望宜家能够跟进此事,给我们一个满意的答案。

更新:

再三联系宜家客服热线4008002345后,宜家要求提供详尽产品的信息并以附件的形式发至宜家邮箱:
1.反映产品问题的相关照片(产品整体照,问题部位照)。
2.收款凭证/送货凭证近照。
3.您的基本信息-姓名 /地址 /联系电话 。

提交后两天,货运新的镜子已收到,破损镜子被回收。

租车体验:标致207-1.6升

从第一次租车到现在,我已经租车超过100天,行程超过3万公里,平均每公里耗油加路费是0.81元。开过的车多数都是十万及以下的小型车,品牌我记得的包括:雪佛莱、起亚、福特、大众、马自达、标致。各车各有优缺点,但我都没记得把体验写下来,这次记住,开始写写我的行车/租车体验。

这一次,我租的是标致207 1.6升的自动档车型,红色,外表看很适合女孩子,不过开起来,方向盘转向比较费力,又不太适合手臂没力的女士。120公里耗油四分之一,马力还可以,后劲很足,车窗关闭车内隔音较好,前后座椅有点紧,我的驾驶位喜欢比较宽松,后面的座位坐的就比较拥挤。车窗和观后镜按钮都在右手边,有点不太习惯,虽然这也不是第一次用标致的车。时速120的时候,如果方向盘轻微晃动,车辆有明显震动和颠簸。总的来说,除了有点美中不足,这款车是我愿意买的车型。

总结之前的租车经验,我的感觉好坏,目前有下列的排序(纯属个人喜好,只供参考):

车内饰:标致 》福特 》马自达 》 大众 》 雪弗莱 》起亚
车动力:马自达 》标致 》雪弗莱 》 大众 》起亚 》福特
车油耗:马自达 》福特 》起亚 》大众 》标致 》雪弗莱
车内噪音:大众 》标致 》福特 》马自达 》起亚 》 雪弗莱

用PNG代替JPG的一个理由

同样一张图和背景,同样的输出质量,在photoshop下输入网页格式成JPG,和在photoshop下输入网页格式成PNG-8(256色)下有这样的不同:

Firefox、Chrome均察觉不到,只有在IE下原型毕露(我用IE8、IE6测试过)。

分析其原因应该在于jpg会根据图片上的具体像素进行压缩,如果图和背景的像素差异较大,会导致JPG优化压缩的程度不同,从而造成色差。而用PNG-8(256色)输出却不会。

租车最好自带GPS

现在租车时间一长,发现自己已经租车超过50天,算算每天租用GPS的钱已经上千(按每天20元算),很是不划算,而且很多次租车拿的GPS都不同,还要花时间重新熟悉使用,很是麻烦。于是决定自己买个GPS,几百块的就行。

网上的车载GPS导航仪玲琅满目,功能繁杂,鱼目混珠,很是花了一些时间做选择。GPS导航仪除了包括本身硬件外,一般都包含一套、甚至几套地图供应商提供的电子地图,当然肯定价格明显不同。比如:凯立德、高德、城际通、道道通等。这些地图供应商的地图质量我感觉差距不大,完全看个人习惯、喜好来决定使用那个公司的地图。

觉得最夸张的还是硬件的部分,GPS能导航就行了,谁知现在的GPS导航仪,不论正牌还是山寨,导航以外的功能,可以说是五花八门,没有你想不到,贵的可以当作平板电脑来使用。所以买GPS,我们只要留意核心功能是否好用,价格合理就好。

现在我买的是这款有些功能是我没想到的,觉得对行车很有帮助。比如自动记录每天行车里程,还可以存储加油资料,计算油耗等。另外,测试GPS的性能可以看看在信号不好的地方,能否接受到卫星的信号。正常的可以实时看见十个以上的卫星资料。开机后,打开GPS,手写测试GPS的反应速度和对手写字的识别能力。4寸的屏幕偏小,如果视力不好,可以买大一点(如5寸、7寸)。内存一般4G够用,除非你喜欢听歌、看视频、或者玩游戏。有了这些准备,我想基本上可以找到一个经济实用的车载GPS导航仪。

下面是我推荐的GPS,有兴趣的朋友可以看看:
;)

把博客服务器换成Nginx

最近博客所在服务器不太稳定,常常出现打不开的情况。考虑到Nginx在性能上的巨大优势。我把博客从Apache服务器已到了Nginx的服务器。
由于Nginx不支持.htaccess,所以需要在conf里面用Nginx的语法配置重写规则。

主要添加修改如下部分:

location / {
index index.php;
if (!-e $request_filename) {
rewrite ^.* /index.php break;
fastcgi_pass 127.0.0.1:9991;
}
include fcgi.conf;
}

之前忘了加入fastcgi_pass,打开Wordpress内页会提示下载index.php。如果忘了include fcgi.conf,缺少fastcgi_param SCRIPT_FILENAME $document_root/index.php。则Nginx服务器找不到网站目录,会提示“No input file specified. ”的错误。

目前,服务器一切正常,感觉速度提升很明显。再观察几天看看是否出现新的问题。另外,更多关于wordpress在Nginx下的安全配置,可以参考这里

GAE的OverQuotaError错误

在GAE的应用中OverQuota是常见的错误:
OverQuotaError: The API call datastore_v3.RunQuery() required more quota than is available.

我测试的数据有三万多条,仅仅一个db.GqlQuery(6个查询条件)就可以OverQuota:Datastore Small Operations 100% 0.05 of 0.05 Million Ops,换做db.Key.from_path后,Datastore Small Operations为0%。

给所有数据缓存后,Frontend Instance Hours可以控制在10%左右。

另外发现三万多条数据导出后文件居然有100多M,格式应该是sqllite。

Windows下git提交到rhc

Redhat的云平台支持PHP、Python和Node.js,还有Perl和Java,有免费3G的空间,可以好好利用。不过windows客户端教程写的是Cygwin, 觉得Cygwin太臃肿,所以试试用putty加git提交。

首先安装好git windows版(参考:git选择run from windows command promt和与putty结合)和putty,然后用puttygen.exe生成公匙(putty.pub)和私匙(putty.ppk),由于putty的公匙格式和rhc接受的公匙格式不同,所以需要把putty.pub:

—- BEGIN SSH2 PUBLIC KEY —-
Comment: “zhaiduo@gmail.com”
AAAAB3NzaC1yc2EAAAABJQAAA…
p/P0MpTSxpvUt7e7bEK5GKz7s…
bvEk/0c7uA4Q38e5day2COHt/….
NdvnbQ==
—- END SSH2 PUBLIC KEY —-

改成:

ssh-rsa AAAAB3NzaC1yc2EAAA… zhaiduo@gmail.com

保存为authorized_keys,如果使用windows版的ssh,可以放到自己的windows用户下的.ssh目录(.ssh目录可以在dos下mkdir生成:mkdir “.ssh”)

然后提交到rhc。看到页面提示“Your public key has been created”,才说明提交的公匙合格。

然后打开pageant.exe,在里面add key,添加刚才生成的putty.ppk私匙。

接着打开git GUI(参考),在菜单的remote里添加:
名字:zhaiduo
locatoin: ssh://db…31@zhaiduo-zd.rhcloud.com/~/git/zhaiduo.git/

选择一个目录作为项目,git init here即可。

在git bash里面下载代码到本地:git pull zhaiduo master
修改好后提交:
git add .
git commit -m “new update”
git push zhaiduo

Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 630 bytes, done.
Total 4 (delta 3), reused 0 (delta 0)
remote: Stopping application…

remote: Running .openshift/action_hooks/pre_build
remote: Running .openshift/action_hooks/build
remote: Running .openshift/action_hooks/deploy
remote: Starting application…
remote: MongoDB already running
remote: MySQL already running
remote: Done
remote: Running .openshift/action_hooks/post_deploy

如果是GUI提交成功能看到绿色的”成功”条。

更新:
重启电脑后,发现git push的时候出错:putty fatal error: Network error: Cannot assign requested address.
又尝试了很多办法,但是还是错误,于是决定放弃putty,直接使用git自带的ssh.exe。

首先,在系统环境变量修改GIT_SSH值为:git安装目录binssh.exe
然后在自己的用户目录下:C:Documents and SettingsZhaiduo
参考这里重新ssh-keygen,把新的id_rsa复制到rhc网上和当前目录的authorized_keys。
重启后,在git GUI里远端删除remove remote,重新添加remote,显示git GUI(zhaiduo):获取(fetch)成功。

为什么要使用fullScreenSourceRect?

用as3制作FLash播放器时,使用fullScreenSourceRect来做硬件缩放,效率上比软件缩放高,adobe官方文档如是说(Hardware scaling in full-screen mode)。可是根据我自己使用情况来看,视频播放并没有特别明显的快慢,反倒是视频画面质量模糊下降很多。那就奇怪了,为什么官方还要介绍这种用法?就连退出全屏模式的文字也那么的不堪入目。

反倒是不用fullScreenSourceRect,全屏效果更清晰一些,字体也不会模糊。

那么是不是可以说fullScreenSourceRect对全屏播放视频没有帮助?

我想这个旧帖子也是这个意思。难道这么多年了还是没改进?

感谢神舟租车的代金券

今天收到神舟租车的50元代金券短信,又让我想起往事,只在微博上抱怨了一下。谁知收到北京神舟租车客服电话询问相关情况,并又给了我200元的代金券。

说实在的,抱怨只是为了表达不满,我没想过要回什么,但是看到神舟租车的客服能做到这个程度,我觉得神舟租车还是很有前途的。至少表明了他们愿意倾听客户的声音,有了沟通才能避免误解,化解矛盾。不过另一方面,我还是比较担心,中国泱泱大国,总部的理念能否完整下达到各地分部,做到每个分部都心口如一?根据过去租车的经验,我能明显感觉到神舟或者E嗨下面不同租车分部的服务质量明显参差不齐。遇到一次不好的体验,我就会尽量换一家。

最后,谢谢神舟租车的代金券,我想神舟租车我会继续尝试,有什么问题我会继续反馈,只是希望那种不好的租车体验会越来越少,希望租车双方都能双赢~!

折腾了一天的两个Flash问题

被两个貌似可笑的Flash问题折腾了一天,把它们记下来,以免浪费时间。

  • ContextMenu菜单在自定义的Video Player上无效的问题
    发现ContextMenu菜单在视频上面的textfield却有效,扩大textfield,在textfield的范围内,菜单都有效。
    于是在视频上面增加一层透明的sprite,问题解决。
  • 自定义的Video Player在全屏模式下变黑屏的问题
    在全屏后,有一瞬间可以看到视频确实已经全屏化,但是一闪屏幕又变黑。这个折腾的最久,把adobe官方的video fullscreen教程看了N遍,仔细查看AS源文件,确认每个环节没有问题。网上有提到的黑屏问题,不过不是我遇到的,而且Flash设置里面的硬件加速选项问题。还有的是FLVplayback组件的fullscreenTakeOver问题。可是我并没有用组件。

    正当我近乎绝望的时候,瞟到fla源文件场景里面FLVplayback组件的图标,我突然意识到,很有可能是场景里面遗留的FLVplayback组件造成。删除后发现果真如此!汗^^!

Flvplayback无法播放包含参数的视频网址的问题

最近常看Flash视频,发现视频可以正常下载,但是无法正常播放。原来是视频网址包含问号参数,出现如下错误:

VideoError: 1005: Invalid xml: URL: “http://domain/zhaiduo.flv?sid=as92Ft32&FLVPlaybackVersion=2.1“ No root node found; if url is for an flv it must have .flv extension and take no parameters
at fl.video::SMILManager/http://www.adobe.com/2007/flash/flvplayback/internal::xmlLoadEventHandler()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
网上解决办法有三个:

  • 直接修改FLVPlayback的源文件 (来源),在665行:
    if ( name.indexOf(“?”) < 0 &&
    to
    if ( name.indexOf(“.flv”) > 0 &&

    失败:修改ncmanager.as后出现更多错误,例如:DynamicStream.as, Line 368 1020: Method marked override must override another method,貌似是FLVPlayback的版本不对。

  • 用URL重写,把?和参数伪静态:
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} ^/video/(.)$
    RewriteRule ^video/(.
    )$ http://$1 [R=301,L]
    虽然重写成功,但是得到的视频是403 forbidden,貌似视频网址有安全防范。
  • 重写FLVPlayback
    我都尝试了,最后用NetConnectionNetStream重新定制了一个简单的Flv player才把问题解决。

GAE下If-Modified-Since出错的问题

最近发现IE8下GAE显示图片的时候会出现如下错误:

python代码如下:
datetime.datetime.strptime(self.request.headers[‘If-Modified-Since’],HTTP_DATE_FMT)

出错为:
File “E:Pythonlib_strptime.py”, line 328, in _strptime
data_string[found.end():])
ValueError: unconverted data remains: ; length=37269

FireFox却没有这个问题。原因在于self.request.headers[‘If-Modified-Since’]在IE8下多了length:
IE8: Thu, 17 May 2012 17:13:07 GMT; length=37269

解决办法很简单,过滤掉分号及之后的部分即可。

最长一次租车

这是我经历过的最长一次租车过程,也是开车过程,从广州出发,最北到达呼和浩特市,一共耗时24天,行程7462公里,穿越13个省份、直辖市,到达17座城市。出发前,我特意对比了我常用的两家租车费用,选择了价格相对便宜的E嗨租车,虽然E嗨没有了不计免赔,车辆擦碰维修自己付的风险更大,但是最终证明,我的决定是对,只要注意行车安全,车辆经过易擦碰地段,特别留意、慢行,也是完全可以避免的。这让我差不多节省了一千块的租车费用(神州租车不计免赔40元/天 x 24 = 960元)。

另外,我的运气也不错,在E嗨拿到一辆新的长安马自达II,才行驶了九千多公里,而且是刚做完保养。这在我之前的E嗨租车经历中是没有的。这是最新的一辆车,看来老天爷也来帮助我完成这次旅程。整个过程马II也很配合,没有给我们添麻烦,出发前,工作人员还让我再次把车开到E嗨的维修处保养检查一下,确保了这次自驾旅程的顺利进行。

这年头,租车是被逼的

本来打算四月中旬从广州去坐火车去北京玩,七百多的软卧挺划算的,谁知今天一问才知火车票还不是一般的难买,十天以内的硬座居然都买不到,更别说软卧,高级软卧倒是有,下铺1400多大洋,何必呢,跟飞机一个价,可是是龟速。

再看看机票,最近一星期,机票价均价在1200(包建设费150元和燃油费50元),拖家带口三个人,来回一趟也得6000多大洋,心痛,而且是在几个小时内花光。

除此以外,还有办法吗?那就是租车。我说的没错吧,被逼的。通过对比,最终我选择了E嗨租车,20天租车只要三千块,广州到北京绕远走也就三千多公里,油费+过路费预计在五千左右。

就算总费用多了两千块,这一路也值了。我们出门是玩的,不只是坐飞机来回。怎么样,还是租车划算吧~

一路上慢慢悠悠,开车到北京,这才是旅游,这才是享受!

让CF支持none-www域名访问

我们都知道CF的CDN很棒,但是CF的缺点是整个域名都要使用它的DNS SERVER,而且不支持裸域名的访问。

我的解决办法是:

在第三方做一个反向代理,

然后把已经转到CF的裸域名的A记录指向第三方的IP地址。

经测试,确实有效。

火狐登录问题:Forbidden (403) CSRF verification failed

用火狐浏览器登录http://instagr.am发现出现无法登录的情况:
Forbidden (403) CSRF verification failed

根据官方的帮助,进入火狐about:config配置页面,
搜索network.http.sendRefererHeader,设置值为1即可。果然,登录成功。

另外,火狐表单里面会记住很多曾经登录过的用户名,可以把鼠标选中表单项,当用户名列表出现时移到相应的用户名上,按Ctrl+Del即可删除所记住的用户名。

Typost - Google Chrome插件测试


由于火狐版的Typost有时无法完全浏览帖子中的图片,于是索性又继续做了个Google Chrome版的插件。经过测试,代码相同,但是用Chrome查看清理过的天涯帖子中的图片完全没问题,难道是火狐装载图片的方式和Google Chrome有什么不同?火狐装载帖子中的图片很容易出现“访问被拒绝”。尝试过用脚本串行处理,但是不成功。希望以后有空可以弄明白原因。

另外,做好Typost的Google Chrome插件,提交到Chrome Web store,本以为只是个小工具,免费的,发布出去玩一玩。谁知Google已经开始把Chrome插件商业化,要收我五美元的开发人员注册费…那要就注册吧,也许我也会走上专业开发浏览器插件的道路,也许只是好奇而已~

更新:Chrome插件已经正式发布成功!欢迎试用~

关于mongodb在32位系统下2G文件大小限制

很多Nodejs的教程都是和mongodb相结合,对于初学者,很容易就跨入mongo的大门。坑爹的是,当你已经入门后,才发现mongodb在32位系统下有所有进程2G数据大小限制。根据mongo官方博客的评论,可能会会出现如下问题:

由于mongodb使用内存映射文件,数据大小的具体限制因系统而异。理论上最大限制为2.5G。2G属于安全限制:

  • 如果你在32位系统下,mongodb还要包含系统日志,那存储数据只能存储到一半的数量,这也是不推荐32位系统下做mongodb系统日志的原因。

  • 数据索引、命名空间和内部数据如操作日志的数量也会受到2G的限制。

通过系统进程跟踪可以追踪2G限制的发生,例如PS或HTOP命令。

当数据大小超过极限,可以肯定的是无法再插入新的数据,数据库也无法接受新的连接。mongodb服务器应该会停止工作,返回致命错误。
新建一个collection名为’contact’,随便插点数据{domain:’zhaiduo.com’},数据文件contact.0和contact.ns分别是16,384KB,一共32M。也就是说2G文件可以容纳64个collections。这还不包括其它索引等数据。16M文件如果每条数据512字节,也就三万多条数据。

看来mongdb还是只适合64位的系统,32位的使用起来让人提心吊胆。不过,我会在中小型网站上试用一下,看看32位系统下,到底mongodb何德何能。

Typost - 清理天涯帖子的火狐插件

最近在看一关于骑行西藏的天涯帖子,帖子九十多页,很是耐看,可是苦于天涯的页面太坑爹,广告、垃圾贴严重干扰了我的视线。好在之前有做火狐插件的经验 [google direct link],于是就出了这么一款针对阅读天涯帖子的火狐插件:Typost

把这个插件拉入火狐浏览器即可安装。另外,我懒得上传到火狐官方认证,纯粹以方便看贴为目的,插件中不含恶意脚本,欢迎大家监督,欢迎试用,谢谢~

Internal Server Error错误

今天客户的网站突然出现莫名的Internal Server Error错误,经过分析,排除了服务器和rewrite的配置错误。最后在检查CMS的缓存系统时发现是缓存id出了问题,出现貌似1.0E+19的id号,从而导致系统获取缓存失败。经过var_dump确认系统可以接受的最大整数就是1.0E+19-1,而我自己的本地服务器则更小,只有1.0E+14-1,但是却没有这个问题。

看来在整数的检查和随机整数的生成上,CMS系统还存在不足,需要及时修补。这个问题曾经出现过3-4次,却不是所有的系统问题。本地机是WAMP环境(Apache/2.2.14 (Win32)),服务器是Linux php-clustre-testing-2 2.6.32-5-amd64环境。PHP版本均为PHP Version 5.2.17。

Nodejs错误:

最近初学Nodejs,采用Nodejs+Express+Jade建站。res.render的时候,出现如下错误:

SyntaxError: Unexpected identifier” Object.Function (unknown source)
仅从字面意思,很难判断是哪里出问题。不得不一个部分一个部分的排查,最后确认是Jade模板的问题。
原来是jade语法不对:
title= This is Jade Example => title This is Jade Example
多了一个等号,看来样板程序也不是十分可靠,初学东西前,掌握好基础知识为好。

由于自己最开始接触的编程语言就是javascript,所以一直对它有好感。在感叹javascript已经可以作为服务器后端开发高效的程序时,我又不由得纳闷:“虽然编程语言在进步,可是做为网站编程,换种语言是否意味着只是在重复造车轮?” - 我不确定,我只是好奇,尽力去找寻用不同语言开发网站的不同乐趣~