Front-end web developer——[to be a better man]
文章字体大小Font Size文章字体大小:12px, 14px

Archive for 四月, 2008

30

A CION HAS TWO SIDES.

“一枚硬币有两个面。”

这句话通常用于说明事物有两面性。Javascript的闭包也一样。

所谓的闭包(Closure):

所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。

闭包是 ECMAScript (JavaScript)最强大的特性之一,但用好闭包的前提是必须理解闭包。闭包的创建相对容易,人们甚至会在不经意间创建闭包,但这些无意创建的闭包却存在潜在的危害,尤其是在比较常见的浏览器环境下。如果想要扬长避短地使用闭包这一特性,则必须了解它们的工作机制。而闭包工作机制的实现很大程度上有赖于标识符(或者说对象属性)解析过程中作用域的角色。 (From 《理解Javascript闭包》)

问题所在: 阅读全文(Read the rest of this entry) »

Popularity: 70% [?]

27

刚在一MM和一GG博客上留言,都在blogbus上面。当然,评论前先看别人的留言,我天~我居然看了半天也看不清哪句话是谁说的。

评论列表

他们的评论者是在评论内容下面的,然后回复做得太显眼了,却是也是在内容下面的,就好像日期排列中我们先年后月日,老外是先日月后年,思维不同,好标新立异啊。

PS:to Ling,拿你的博客评论列表开刷,不好意思啊,不过这不是你的错~我说的不是你,表生气:P。

Popularity: 54% [?]

27

做了几天的一个专题,分析了CSS清除浮动的要点和方法,对成因和结果进行归纳总结,以及如何避免在IE中偶尔遇到的一些不可思议的问题,其实是一个自我学习的过程,请大家给意见,谢谢!

点击链接进入专题:

CSS清除浮动专题

leaningfloatscreenshoot

Popularity: 52% [?]

24

http://www.flickr.com/photos/miss604/2261794503/I am so busy that I am not able to write any new post these days. But I am preparing for a topic about CSS cleaning float. There are several html page in this topic, and I will collect some information about this as much as I can to explain cleaning float. At last, I am prepare to release this Wordpress theme, and someone is using it, I hope they can give me some suggestions about it. Thank you!

这几天忙得像条狗,没时间更新博客了,虽然访问量少,但也得对得起每个读者,或者虽然你们只是误打误撞地进来的。这几天除了忙,但也在写一个关于CSS浮动清除的东西,我会尽量收集更多的信息,以细化每个内容,但好像又遇到难题:没有改进、没有创新的纯总结性文章意义不大。而且,我正准备发布一个新的WP主题,尽量做得丰富和全面点。这个主题也有人在用,希望他们能给我点意见。我之前发布的几个主题现在已经不维护了,感觉有心无力,希望这个主题不会出现这种情况,但前提是我的工作能稳定下来。

Popularity: 44% [?]

15

人太久不听歌,就像生活在水底,会憋死——毕竟人不是鱼,我们只能呼吸在“有氧份”的空气中。

顺子 - 写一首歌


《写一首歌》的MTV:

《写一首歌》的吉他谱:

flash格式虫虫吉他网上的图片格式

《写一首歌》歌词(Irc):

月亮在你的眼睛
太阳在我心
现在我唱这首歌
ohh 只为你

阅读全文(Read the rest of this entry) »

Popularity: 62% [?]

14

菜鸟——

http://www.flickr.com/photos/thejcgerm/1801821614/
菜鸟指某方面的新手,或入门者。执着的人可以看百度知道,极度执着的人可以去查《辞海》,如果有的话。

菜鸟有真菜与假菜之分。

  • 心浮气臊,懂一点就扮代表,整天见人就吹,不仅技术菜人也菜,视为真菜。
  • 虚心好学,诚心讨教,不断学习不断进步,虽技术菜但人不菜,迟早有天,点参天大树,茂密树林,广宽天空,将是你的天地。

菜鸟对技能和概念有初步认知,只缺少足够的锻炼。一件事如果进了门,即使从零起点到完成初步的目标是很快的,前提是要不断的努力实践。

熟手——

http://www.flickr.com/photos/zenzenok/229607240/

熟手指在对某个或方面技能的很熟识且熟练。如果想看解释,无论你如何执着,也不要看百度知道:熟手,那是不着边的,这也是对有人说的“我在百度找不到,说明没有这个东西”的最好反驳。

理所当然地,熟手是菜鸟的升级版。大多数熟手都是被“迫”出来的,在繁重而又重复的劳动中,经过无数次枯燥又泛味的反复操作,直到技能粘附在他的手指,每个基本动作都渗透进他的血液——这就是他的难能可贵的经验!此时,他对技术运用自如,可以毫不加思索就可以出色且高效率地完成任务。

他的经验就是一切,他的经验可以让他成绩斐然,令他稍有名气。可是他的经验太多,多得超越了知识,而经验仅仅是个过去的体现。他会感觉他的虽然功夫不浅,可每天不停的劳动,感觉就像一头只会埋头苦干的牛。

没错,当积累了一定经验,对技术熟练到一定程序的人,一定会有这样的感觉。所以熟手开始反思自己。如果不进行反思或者反思不成功,他就无法跳出这个固有的圈子,那他就永远只是个熟手——一只永远在自己的圈子里跳舞的人。他甚至排外,变成一成不变的固执的老家伙。就像很多人做某样工作到了一定时期,才有开始一丝丝较为深入的了解,就失去了兴趣,结果他停滞不前。

工作熟练了,就会觉得简单,然后就麻木。他变得害怕,惊慌,怀疑,甚至排除异已。他对在这个世界上任何新技术新方法排外,因为这些会动摇他在这个领域的经验——日夜担心他那被人称作“丰富”的经验以及旧的思维会被抛弃了,甚至被否定,从此,他会变得一无所有。

熟手这个阶段,非常特殊和漫长,旷日持久,很容易达到,却容易停滞不前。到了这个阶段的人很难找到突破点,不知如何才能超越自我。这时到处风声鹤涙,四面楚歌,严重的时候会走火入魔,甚至怀疑人生,慌乱中改变方向,另投他路。一个大好青年坠入了职业的低谷。

熟手想突破自我,首先应该谦虚稳重,不断学习,不耻下问,以科学发展无止境的角度去思考问题;其次应该让自己眼光开阔,从广度深度去审视,调查,进一步了解该技术行业的发展以及动向;最后要学会创新,要做到创造性地完成任务,让所耕耘的田地不会枯竭,让四季更替不再平凡,你要培养出“新一代的杂交水稻”!

高手——

http://www.flickr.com/photos/teliko82/2345275765/

此时的他已经无招胜有招,天地广宽任我行。独狐大侠二十使重剑,三十使木剑,四十无剑而草木皆剑也。高手,是技术层次的最高阶段,除了技术上比前两个级别有更外,还既对当前技术融会贯通,且对行业还具有高度前瞻性和预测性。他甚至认为只要时机一到,自己将是行业技术的领头人,令人望尘莫及的先知及智者。

高手比熟手对技术更偏执,不肯放过任何一个细节,任何的一个微小的动作都会让他竖起耳朵,无论何时何地,他思维总是清晰敏捷,动作潇洒自如,行而不惊动而不乱。他的话从来没有错,自己也从来没有做错,错永远是别人,甚至那些怎么也听不明白他的话的人。

他是世界的顶端,他已登峰造极,他无所不能,他头上还闪耀着光环,所以他就是这样的一个形象:偶的神啊!

当他们相遇后——

阅读全文(Read the rest of this entry) »

Popularity: 42% [?]

08

  虽然我很OUT,年初出的东西现在还好意思拿来写,但为了表示我确实被感动了一下,顺便说说中文,我决定厚着脸皮跟大家说:推荐一个剧集:

晴天日记(A Sunny Day)

剧照

每天,从地铁开始 从地铁结束
我和他,也许乘过同一班地铁
去过同一家便利店
甚至在同一家咖啡厅
听过同一首歌…..

阅读全文(Read the rest of this entry) »

Popularity: 100% [?]

07

  我之前写过一些翻译文章,目的是为了练习英文,同时学到相关知识,如“利用面向对象技术创建高级WEB应用程序”系列,但只完成到第6分部,其余的未能完成:

  1. 翻译:利用面向对象技术创建高级WEB应用程序(1)

  2. 翻译:利用面向对象技术创建高级WEB应用程序(2)

  3. 翻译:利用面向对象技术创建高级WEB应用程序(3)

  4. 翻译:利用面向对象技术创建高级WEB应用程序(4)

  5. 翻译:利用面向对象技术创建高级WEB应用程序(5)

  6. 翻译:利用面向对象技术创建高级WEB应用程序(6)

  7. to be continued…

 

  未能完成的很大一个原因是工作上出了很大的波折,有心无力,另外也因为自己水平不足,无论是外语水平还是中文写作水平。一位师妹说:“来到这里才发现自己根本不懂中文。”也可能是这个原因造成的。不过自从刚才发生的一件事后,我为我自己没有自负的继续写下去而庆幸。

  事情是这样的,我为了快速应用一个非常流行而且Powerful的框架(“一句话有半句是英文”——一位在香港老板公司上班的同学如是说),特意去找中文社区,而且找到了该框架.cn的中文wiki,看上去真不赖的,正式!但当你仔细他们翻译的中文后,你就会想吐,很有我的风格——翻译得比什么快译还恶心。我想,如果这些译文给一群中文教授看到,他们必定会大呼:我数十年中文研究,博览群书,自以为通古今晓中外,但见此火星文,真前无古人后无来者啊!然后一齐吐血死掉,死不瞑目啊。

  所以,我现在为我的翻译停止而感到有自知之明,为我没有让更多的人吐血感到庆幸,以后再也不敢轻易写什么翻译之类的了,特别是没透彻理解之前,更不能随便下笔。如果真的要写,就只能写笔记或心得,总之不要随便套“翻译”二字。

  的确,在科普资料的翻译上,我们太欠缺了,难怪总有人埋怨:“我宁愿带着本英流字典去看英文原文也不看翻译过来的。”是啊,如果翻译水平的确跟不上,那就真的成为又干又淡没营养的“快餐文化”了;译言上的译文很不错,很地道,很Chinese,值得学习。

Popularity: 45% [?]

06

关于YOBO

YOBO只专心做一件事情:”发掘你的音乐DNA!”
YOBO要为你解决以下问题:
想听歌却不知道听什么歌;
工作忙碌后再也没空去找歌;
对着搜索引擎不知道搜什么歌;
More about Yobo

  很早就注册有,不过那时网速慢,所以基本还是从其它音乐网站上听歌。

  登陆到YOBO,我的第一时间是搜索,在很明显的搜索框中输入“绿打绿”,结果出来了:

所有结果 | 音乐 (46) | 帖子 (2) | 日志 (1) | 用户 (1)

  默认是所有结果,里面有匹配的歌手、歌曲、专辑、用户、帖子及日志,很好,社区化的音乐站点呢。不过我只想听歌,所以我点击了“音乐”,列表出来了:

YOBO音乐列表

  每首歌旁边有个灰色的Play,心急如焚的我要先让耳根不清静,随便点一个听着,不错,大珠小珠落键盘。

  上面还写着:查看全部46首。我看了下列表,原来还未全部显示,点一下。突然歌曲停了,页面刷新了,链接没变,列表内容也没变,没多没少,我晕,原来46首早就全显示了。既然没有更多了,为何还做这个“查看全部46首”的连接呢?

  约三分钟后,一首歌听完,下一首,想不到还是那首,原来YOBO只播放刚才点那首歌。我如何才能连播呢? 阅读全文(Read the rest of this entry) »

Popularity: 68% [?]

06

UPDATE:20080530最新修改

UPDATE:20081221补充说明::oops: 小弟写这篇东西实在是班门弄斧了,这是当时我刚理解完时就写下的,说的口水多,没什么实例,非但没把问题说清楚也把大家搞糊涂了,实在不好意思。如果想要知道实例,请搜索一下Currying in Javascript 吧,用到Currying的地方,几乎都会出现这种写法。其实这里主要说的不是把参数换成数组,而是更玄妙一点的JS运用。这里见笑了,如果可以,以后会换个更直接明了的书写风格的。

同时更正了一处链接。

关于本文所说明的问题有更简洁的另一个解释方法:什么是Array.prototype.slice.call。

为了研究Currying in Javascript,翻阅了很多外文网站,为的是找一个比较好的Currying方案,找到的比较详细的有如下(文章内部链接可能包含更多的相关文章):

  1. Currying JavaScript Functions
  2. JavaScript Currying Redux
  3. JavaScript currying
  4. functional.js 介绍及源码分析

发现大多人都用了Array.prototype.slice.call(argments,0),一直不明白这句是干什么的。而昨天温习了slice()方法,再参考Function.call(thisArg[, arg1[, arg2[, ...]]]),还是不得而知(我脑筋转得慢:|)。上网查,第一时间查老外的Google.com in English也没解释,真到查找“Array.prototype.slice 用法”时,才得到数篇。虽然我很鄙视搞收集的人,搞得互联网文章像是天下一大抄似的,但现在却恨少,只得三篇(一模一样的三篇,责任编辑为admin或者超级管理员,作者是佚名。)

下面就我的理解,对Array.prototype.slice.call进行解说,菜鸟留下,大虾吐口水:
Update: 下面写的可能有点难懂,怕刚接触Javascript的人可能会看不懂,请大家看完后留个言,谢谢!

Array.prototype.slice.call(thisArg[, arg1[, arg2[, ...]]])

成员介绍:

Array [object]

Array对象(即数组对象)

prototype [property]

Javascript的原型,此prototype非Prototype.js,可以暂且理解为Java中的静态属性/方法。总之这个不好说,详细请看JavaScript中的prototype(原型)属性研究

slice [Function]

数组切分方法,很有用的一个方法,具体请看这里,或那里

call [Function]

神奇的方法,该方法是所有Function对象里的方法,所以slice就有这样一个方法。用于把Function对象里的this替换为目标对象。看这里

串起来就是: 阅读全文(Read the rest of this entry) »

Popularity: 96% [?]

Pages: 1 2 Next