Object Oriented Javascript PDF ENG

Object Oriented Javascript

这几天头大,钻研 prototype, prototype chains, scope, scope chains, constructor, closures 。

突然觉得自己根本不懂 Javascript。

把 《Pro Javascript Techniques》 有关 OOP 的部分仔细读了两遍,又看了半天这个链接:

http://www.jibbering.com/faq/faq_notes/closures.html

发现自己根本不懂 English,感觉这文章是用英文文言文写的?

有兄弟用自己的普通话大体翻译了下,写的还挺深入的,比较容易看懂:

http://www.zhuoqun.net/html/y2009/1203.html

各位对照着看吧。

为了进一步搞明白 Javascript 的对象继承机制,以及能设计出模块化的 Javascript Apps 平台,我找到了《Object-Oriented Javascript》这本书的 PDF 版,上面那个大图片是本书的封面。今晚好好研读一下。

我的服务器带宽实在是小,感觉像 1M 共享的,暂时先不提供下载了,给 2 个其他下载地址:

http://rapidshare.com/files/186330594/1847194141.pdf

http://www.itxuexi.com/resource/1291/

如果这 2 个地址失效,给我留言,我 24 小时内上传 PDF 到服务器供您下载。

看书去了……

Tags:

三枪拍案惊奇 影评

今天跟女友Yoyo一早就赶到东方新天地的新世纪影院(北京多家影院都有中午12点之前的场次票价减半的优惠),我们买了2张半价票,以比较便宜的价格看了下《三枪拍案惊奇》。

前一阵相关的报道很多,《三枪》还在北京电视台做了一个网游的发布晚会,在上映前造足了气势,把大家的胃口吊得很足,看样子这回《三枪》一定能创造新的票房奇迹。

原本计划看《2012》的,不过正好赶上《三枪》上映,觉得大腕儿派张艺谋 + 演技派孙红雷 + 人气派小沈阳 + 搞笑派闫妮,能给我带来足够精彩的 90 分钟。

然而,看完后,对这部以喜剧标榜的年末贺岁电影,我只能用 失望 这个词来形容。

2004年,张艺谋指导的《十面埋伏》上映,我一个大学同学对此片的评语为:剧情是硬伤!

这电影我也看了,对此评语表示十分赞同!不过画面倒是觉得很漂亮。

2006年,张艺谋指导的《满城尽带黄金甲》上映,我看的是DVD,看到一半,实在看不下去了,所以至今我都不知道这电影说的是什么事儿。好像记得有人说《黄金甲》是《雷雨》这部话剧的电影版,没看过《雷雨》,不做评价。但从我没能看完整部《黄金甲》这个事实来说,剧情依然是硬伤!不过画面依然觉得很漂亮。

2008年,北京奥运会,不能再用剧情这个词了,那天正好紧急处理服务器的事儿,没看全开幕式,不过就开场的几分钟那个效果来看,我觉得真是很漂亮。

2009年,《三枪拍案惊奇》,我自己评价:剧情是硬伤!画面很棒!

简单的描述下剧情:

主线:面馆儿的老板怀疑老婆跟伙计李四私通,暗地里贿赂巡逻兵杀了这对男女,结果反被巡逻兵谋财害命;
副线:面馆儿的另外两个伙计想办法把老板拖欠的工钱偷回来,其中一个(赵六)不小心撞到巡逻兵,结果被杀;
交叉线:阴差阳错,李四发现了老板的尸体,偷走埋了,然后误打误撞地跑到伙计赵六被埋的地方大便,被巡逻兵发现踪迹;
结果:女伙计陈七提前跑路,李四被巡逻兵一箭穿心,巡逻兵被老板娘一枪毙命,电影结束。

我觉得一个故事,通常要表达出一个主题。

婚外情会导致灭门惨案?夸张了点吧?如果不是这个主题,我看不懂这个故事想说什么。

从喜剧的角度看,我觉得可乐的地方不多。可能我的笑点不够低。大部分可以被称之为笑点的地方,感觉都是生硬地套用网络流行语,或者重复小沈阳的招牌语调。

对于每天有很多时间在网上看转贴的我来说,见到这些笑点的次数太多,没有可乐的感觉了。

很多包袱都有东北二人转的味道,我不太喜欢二人转,因此更觉得不可乐。

相比之下,我还是喜欢《非诚勿扰》的京味儿冯氏幽默,那些台词让葛大爷说出来最正宗,最好玩儿。

回到剧情,剧情里稍微有些让我感兴趣的地方,就是在杀人之后,发生的一些巧合或者说是误会,让我看出了一点《疯狂的石头》和《疯狂的赛车》的感觉。

可惜这感觉刚开始没几分钟,电影就结束了。

总之,从剧情和喜剧效果来说,我给《三枪》的评价是:差。

说说好的地方。

画面和场景,非常棒!评价是:优。

室外开阔地:拍摄地点好像是西北的戈壁一带,橙黄色的山体和土地,在清澈的蓝天白云下,给我一种清净透亮的感觉。
房屋和院子:老屋子,老砖,老墙,老马车,还有对方的瓦片和零碎,感觉物品丰富,很充实。
室内:老饭碗,老柜子,老木头,老桌子,老板凳,老床,老窗户,特有饱经岁月的味道,颜色很入眼。
过度场景:在一片戈壁山上,用固定的角度,记录太阳下山到月亮上山过程中,云层的移动、阴影的移动、光线的转变和月亮的轨迹,很漂亮。

再简单说说音效,可能我很少去电影院看电影吧,感觉音效很不错,尤其是刚开场的三声枪响,吓了我一跳,清脆 + 震撼。稍微遗憾的是,这电影音效不是卖点……

说到卖点了,我看,真正的卖点就是导演和演员。

张艺谋:奥运 + 图兰朵 + 60 周年大庆。
孙红雷:电视剧《潜伏》。
小沈阳:09 年央视春晚和北京台春晚。
其他演员我不太了解,就不说了。

据说电影投资了一个亿,在影片的大部分时间里,只是 6 位演员转来转去,拍摄成本应该很低。倒是结束后,多人集体 MV 加上孙红雷的热舞颇有看点,我不知道是不是 MV 的拍摄成本比主要剧情还高?拍摄成本 + 演员的固定片酬应该不高,估计 3000 万够了,其他成本,都用在宣传和广告上面了吧?

也许我是妄加猜疑,在宣传造势上花这么大成本,是不是为了弥补影片在剧情和喜剧创意上的不足?反正我记得《非诚勿扰》,我是听朋友说很逗才去看的,没见太多广告。

晚上看首都经济报道,新画面董事长张伟平说了一句:“我敢说80%的观众到电影院是去看热闹的,不是看演技的。”

我又想了想,还真挺对的。我看《三枪》,不是因为它是喜剧,而是因为张艺谋、孙红雷和小沈阳,我是来看热闹的。

所以,我说,你想看热闹,我很推荐《三枪》,如果你想看剧情和喜剧效果,《三枪》会让你失望。

完。

看看我写的 GFW 小故事

我是一个乖孩子,喜欢上网跟朋友们聊天、玩游戏

girl

警察叔叔说,网上很黄很暴力,我却很傻很天真,不让我再看到我最爱的网站

110

直到有一天,一个无辜的小鸟被无情地封杀,我才意识到问题的严重性

crab-and-twitter

面对河蟹坚硬的钳子,小鸟不能改变什么,唯一能做的,就是送上几句脱口秀解解气

twitter

据说那个墙,又黑又高,看到朋友们发来的结构图,我哭了

route

我再也看不见可爱的 Twitter 小鸟了么?

直到有一天,听到 Leakon 发出怒吼!

up_for_free

他说他能帮我穿过那道墙!

于是我认真地记下了他说的方法:

  1. 去淘宝买 VPN ,要买带 SSL 加密的,尽量提供多个 IP ,没办法,穿墙总要花点钱
  2. 改用 OpenDNS (208.67.222.222 和 208.67.220.220),因为墙内的 DNS 就是不告诉你 IP
  3. 用 VMware 装 XP,XP 负责 VPN 拨号,注意 DNS 用 OpenDNS 的那 2 个 IP
  4. 在 XP 上装 CCProxy 作为代理服务器
  5. 使用 Firefox + FoxyProxy,把代理地址设为 XP 的 IP,FoxyProxy 可仅对域名白名单中的网站使用代理

这是 Leakon 在 09 岁末为大家即兴创作的一个 2 分钟小剧本,希望大家喜欢。

谢谢观赏

Tags:

我好想逃离这张网 Fucking GFW

最近由于项目需求,要调研一些国外最流行的网站,稍微想想,列出了几个:

facebook.com,twitter.com,youtube.com,blogspot.com,唉,等等吧,脑子有点乱,一时间想不了那么全。

逐一访问,一个都 TM 打不开!

我突然有一种与世隔绝的感受!为什么世界上最流行的东西,我们中国人就是没有权利去看一下用一下呢?

以前想玩游戏机,PS3,XBOX360,WII,这些东西都不让卖,幸好有水货改机,但想玩个 XBOX Live 的使命召唤,又没戏了。

现在想上上网,学习学习人家先进的设计理念,这都不行了。

也许有的人,每天看着天朝规定的那些东西就觉得很知足很满足了吧。

也许有的人,每天上上开心网,偷个菜就很开心了吧。

也许有的人,每天看看新闻联播,就觉得国家很好很强大,生活很顺很安心了吧。

也许,99.99999999% 的中国人都喜欢这种状态吧。

我觉得我就是一个异类,一个希望自由获取信息的人,注定要成为这个神圣国家中的异类。

我不是没事想着发牢骚,我是真的要看一看外面的世界,学一学先进的技术。

我现在就在尝试打开一个国外很流行的网站,不过 GFW 实在够 NB,我用了美国 VPN 都没法打开,这样的例子还有 facebook 和 twitter。

各位看到本文的兄弟姐妹们,如果你们有办法在天朝打开 facebook,请您给我指点一下吧,我真是没招儿了!!!

IE IFrame Transparent 透明

用 Javascript 插入 IFrame 标签,在 Firefox、Chrome 等浏览器上,默认都是透明的,但 IE 有默认的白色背景。

本来,在 html 中写入 IFrame 标签,并加上 allowTransparent=”true” 这样的属性,IE 也一样可以透明,但今天的问题是必须用 Javascript 插入。

用 IE Developer ToolBar 测试,在 IFrame 的 src 页面的 body 样式上加上 backgroud:transparent 可以使 IFrame 透明。

但我们要用 Javascript,本域的 Javascript 脚本是没法设置跨域 IFrame 页面的,况且创建 IFrame 的时候还没设置 src,所以这个办法不行。

只能用个土办法,把 src 设置为一个绝对路径的 html 页面,这个页面你自己可以任意编辑,把 body 的样式设成透明即可。

注意,为了性能,只在 IE 浏览器下设置 src,Firefox 和 Chrome 都不用设置。

在这一点上,IE7 跟 IE6 一样弱,比现代浏览器差远了!

Tags:

DOCTYPE Javascript documentElement

在 Javascript 里面调用一些属性的名称发生了改变,比如得不到 document.body.scrollTop 的值。

使用了 DOCTYPE 之后,滚动条位置必须用 document.documentElement.scrollTop 来调用,类似的还有 scrollLeft 等。

但是,在没有 DOCTYPE 的时候 document.documentElement.scrollTop 也永远为零了。

能否有一个在有或没有 DOCTYPE 定义都可以用的方案呢?

可以这样写:

// 浏览器滚动条位置
function scrollTop() {
var scrollTop = 0;
if (document.documentElement && document.documentElement.scrollTop) {
scrollTop = document.documentElement.scrollTop;
} else if (document.body) {
scrollTop = document.body.scrollTop;
} else if (window.pageYOffset) {
scrollTop = window.pageYOffset;
}
return scrollTop;
}

Tags: ,

VMware CentOS 网络中断

有时候在 VMware 下的 CentOS 无法访问外网,现象是可以 ping 通 IP 地址,但没法 ping 域名,最开始以为 DNS 的问题,实际上没那么复杂。

只要在 Edit -> Virutal Network Editor -> Nat -> Restart 即可。

可能是我这个 6.5 版本的 VMware 的 Nat 有问题吧。

唉,上次就搞了半天没发现问题,重启我的电脑后才好的。这次遇到问题突然忘了怎么解决,运气好,试了下重启 Nat 服务。

记下来备忘。

Tags: ,

CUrl 蜘蛛 优化 CURLOPT_HEADERFUNCTION

正搞一个小蜘蛛,用 CUrl 写的,遇到一个问题,分析完 url 后,有可能遇到 rar 或 jpg 等资源文件,也是要下载回来分析内容。

这样的做法太笨了,有很多缺点:

  1. 浪费带宽,文件也许很大
  2. 文件无用,下载回来也无法分析文件内容

怎么解决?

看浏览器会发送 Accept 指令,告诉服务器可接受的内容类型,但这不能阻止服务器返回不接受的内容,即哪怕请求的资源不在 Accept 列表中,仍然会把文件返回给客户端。

这方法不行。

想着,有没有办法,在得到服务器 response 的时候先分析 header,如果不是可接受的类型,就断掉连接,不必下载后续内容?

如果用 fsockopen 写的网络通讯接口,这一点很好实现。但 CUrl 怎么控制?

仔细看文档,找到一个选项 CURLOPT_HEADERFUNCTION。

这个选项要给一个回调函数作为参数,回调函数相当于一个触发器,CUrl 会把每一条 response 的 header 指令传给这个函数,由函数来决定如何执行后面的步骤。

回调函数要定义 2 个参数,第 1 个是 CUrl 的资源标识符,第 2 个是单独的一条 header 字符串。

如果想让 CUrl 继续下载后续内容,那么回调函数应该返回 header 字符串的长度:

return strlen($strOneHeader);

如果不想继续下载,直接返回数字 0,那么 CUrl 就会发送 TCP 的终止连接的指令,不会继续下载后续内容了。

加上这个触发器,经过测试,我的小蜘蛛可以成功地忽略非 text/html 类型的文件,大大加快了抓取速度,避免了很多问题!

小提示,给 CURLOPT_HEADERFUNCTION 设置回调函数的时候,文档上说要一个字符串形式的函数名作为参数。

这不准确。

实际上 PHP 可以指定任意类型的回调函数,可以是纯函数、类的静态方法和对象的方法:

  • 纯函数:$callback = ‘my_callback_func’;
  • 类常量:$callback = array(‘NAME_OF_CLASS’, ‘nameOfMethod’);
  • 对象方法:$callback = array($object, ‘publicMethod’);

完。

Tags:

黑墙虽高 哥照穿不误

SB 衙门不让我用 Google !

哥去淘宝买 VPN!不过直接用 VPN 也有弊端,VPN 要拨号,连通后,本机所有的外网连接都走 VPN,那访问国内的一些网站速度就会慢不少。有没有办法,让我访问国内和谐网站的时候避免使用VPN,访问被屏蔽的网站的时候使用VPN?

答案是有!不过要设置几步,还算简单!

步骤:

  1. 本地运行 VMware,并安装 WindowsXP
  2. 虚拟机 XP 使用物理网络,即跟你的本机使用相同的 DHCP 服务器获取局域网 IP
  3. 虚拟机 XP 安装 CCProxy 代理服务器软件
  4. 给 Firefox 添加 FoxyProxy 扩展
  5. 使用 Firefox 访问被屏蔽的网站

前 3 步就不说了,Google 都有教程。

FoxyProxy 扩展的优点是可以设置域名白名单和黑名单,并且支持通配符,把被屏蔽的域名添加到白名单,FoxyProxy 就会对这些域名使用代理服务器进行连接,其他域名则不是用代理。

在 FoxyProxy 添加一个新的 proxy,给这个 proxy 添加几个 URL Patterns ,比如我是这么添加的:

*google*、*friendfeed*、*twitter*

加入到白名单,这样至少我可以用 https 协议访问我的 google 文档了,这回文档内容不会被人轻易截取到。

但我希望 mail.google.com 不走代理,毕竟从美国绕一圈回来,还是有点慢。

有办法,把 *mail.google* 添加到黑名单。

这下好了,想看哪个网站就看哪个网站。

不过我试了下,还是会有限制,用了 VPN 代理,facebook.com 还是访问不了。我已经确认 VPN 是 SSL 加密的,不知为什么依然能被过滤出来?

反正我不是为了 facebook ,无所谓了。

有压迫就有反抗!

垄断的衙门,总是能创造出新的产业:

域名备案!走流程?等半年吧,半年后告诉你缺资料,然后反复 N 次,最终的结果是,等你儿子上大学了,你的网站备案也下不来。因此有了网站快速备案,30 块钱一个!

网站屏蔽!想恢复?等着吧,等内容改成赞扬 Gong Chan Dang 廉政为民、报道春运期间火车站票源充足、宣传老百姓对物价增长表示不受影响、通告中国足球没有赌球等信息时,自然就恢复访问了。你不改?不改就屏蔽你!因此有了 VPN,恰好也是 30 块钱一个月。

想不明白屏蔽网站的原因,(1)怕敏感信息传播?为什么大陆那么多网站都响应党的号召,宣传台湾国民党民进党这不好那不好,人家台湾人民一样支持人家的政府?(2)怕色情信息传播?为什么全世界那么多国家都不怕,就你 GongChanDang 领导下的中国人民害怕?小日本还有 AV 产业呢,我看人家经济实力、科技实力、军事实力和国民素质一直远远超过中国。

难道影响中国发展的就是这些互联网上的信息吗?

不愤青了,说点实际的,现在 VPN 都是用的境外的服务器,在上面架设 VPN Server。我从淘宝买过几个 VPN,服务都很不稳定,速度慢、经常断线或者根本连不上。我觉得如果是架设在 Linux 上的服务,不应该这么不稳定吧?

如果有一些 Linux 服务器维护经验,再有一些开发能力,完全可以多买几台国外的 VPS,然后通过负载均衡,把来自国内的连接平均分配到不同的 VPS 上,保证每个用户的速度。在通过系统监控程序,实时检查每台 VPS 的状态,如果出现异常,立刻切换到下线状态,同时把这个 VPS 上的连接都无缝地分散到其他正常的 VPS 上,然后用邮件或短信向管理员报警。

这样,速度和稳定性都有保证。等业务扩大了,随时买新的 VPS ,然后把程序自动部署好,再自动添加到上线运行状态,即可实现横向扩展。口碑会逐渐传播下去,到时候又是一个新的业务领域。

VPN 可利用的领域太多了,像我这样需要穿墙的,也有需要玩国外网络游戏的,有需要防止MSN信息被公司截取的,甚至还有要访问 XX 网站的……

算算价格?国外 VPN 一般每个月 30 美元,速度都很快,一台保守估计可以供 10 – 15 个人同时使用,如果在国内卖 30 块钱一个月,那么有 7 个人来买,就能保证不亏,10 个人买就赚 30 * 3 = 90。

有多少人需要 VPN 呢?上淘宝看看那些卖 VPN 的成交记录就知道了,牛人一个月卖几百个!

关键这是一个一次性成本,稍作开发,则基本一劳永逸,我看行!

Tags: