存档在 ‘程序’ 分类

出发需要勇气

2012年1月20日

0:57睡不着,思维异常的活跃,于是又打开电脑,回想这一年发生的事情,算是提前对这一年的一个总结。

时间要从6月说起,因为这之前在索贝里面可以回忆的东西不多,唯有和一些同事关系很好,因为彼此有很多共同的特征-失去毕业时候的那种锋芒,迷茫而又无可奈何;有些人只能是同事,有些人是一辈子的朋友;关于我的第一份工作,也许是和自己喜欢的方向有所出入,不是很热爱这份工作,所以也没多少激情,感觉就简单是是雇佣和被雇佣的关系。

这一年里,买了房子,供着房子,每天朝九晚五的干着自己不是很喜欢的工作,突然发现这样一直到老的时候可能连一点回忆的东西都没有,同时在电视上听到一句广告词写得非常好:“人就这么一次,值得的就去做”。

恰好逢支付宝来成都校园招聘,招聘组里面有个叫周爱民,他在业界蛮有名气,写了好几本不错的书,报着会会的心态去和他谈了一下,结果被录取了,做了很大的思想工作之后毅然决定辞职,辞职后到新单位报道有差不多一个月时间,想要干点事,此时在网上看了一篇帖子,是关于单车游玩意大利的,然后想到了西藏。
出发之前还没怎么骑过单车,但也没想得太多,带了两套衣服,买了辆二手的自行车就上路了,考虑太多反而会得到更多阻碍,说不定就退缩了,只要有目标,有毅力,有勇气其他的问题都不是问题。这一路上绕了西北很大一圈,青海,甘肃,陕西,西藏,四川,这一路上回味的东西太多,美丽的风景,淳朴的藏民,神秘的圣地… 路上也遇到很多有个性的人,修铁路的行哥,澳大利亚一路骑行到中国的美国夫妇… 每分每秒,每个人,每件事都是那么的难忘,点击查看详细

回来又后陪两表妹来玩成都的时候,在天府广场上碰到曹大苗,和荷兰过来中国的wendy,很有意思的两个人,特别是曹大苗,印象最深的就是英语很好,羡慕的很,其次从她身上发现喜欢玩的人都有一个相同的性质 – 叛逆。

记得一个中午,坐在成都锦里的辛巴克咖啡店,浓香的咖啡,柔软的阳光,舒缓的音乐,复古的装修氛围,想想他妈这才是生活,然后打开电脑看着这些都在线而又忙与工作忙于生计的同事,很庆幸选择了这一步。

走之前在从外面扛了很多泥土在家阳台上种了3棵葡萄树,结果只是活了一颗,还结了几棵葡萄。

杭州很漂亮,和成都一样很休闲,但比成都更干净,更精致,这边的人更注重生活品质,人们素质也普遍偏高,这边的生活延续这川藏线的精彩,三国风云拓展上的自制武器 – 投石机,不过投的不是石头是装有水的气球,支付宝氛围很好很open,穆穆老师,很好很好的人,记得我们班辩论赛上来自新疆美女把对方辩的无话可说的时候,她握着拳头,身体下弯了一点,说了一句yes,很特别,因为感觉这不像是她这年龄该有的动作,培训课程也很有意思,很多很多有用的知识.

然后就是工作,很忙但很充实,也学到了不少东西。

不久就是阿里人足球联赛,之前不知道还有这么多人喜欢踢球,我在半决赛上出场了,把四结冠军B2B,上下半场加上加时赛120分钟的激烈对抗,双方多名队员都抽筋了,最后点球大战艰难把对手淘汰,决赛上淘宝1队在最后几分钟攻入一球2:1把我们淘汰,我们获得了亚军创造了支付宝足球队历史最好成绩。

国庆时候和部门同事一起计划绕太湖,沿着路上的景点,乌镇,西塘,周庄,苏州,苏州的时候他们说骑不动了,没办法只好跟着他们一起回来了,有点后悔,不过这边城市里面也没什么好骑行的,路况也比较好,反到是迷路时候走的乡间小道更有一番风味。

去了由很多岛组成的舟山,第一次见到了大海,在海边玩着沙滩足球,晚上支起帐篷,听着大海的声音,一大早起来看日出,回程的时候去了鲁迅故里绍兴,典型的江南水乡,很有文化底蕴的一座城市。

不久江大侠升级当爸爸了,为他女儿取了个四个字的名字,但四个字感觉是两个不同的词组成的,想不明白,我说他是不是因为自己的名字是两个子的原因。

去了上海,很繁华,看了黄浦江,东方明珠塔,去了外滩和南京路,逛了交大,同济和复旦,印象最深的是南京路上的苹果专卖店,人山人海。

回来后一口气买了MacBook Air,和IPad2,一度让我个人经济收到打击。但苹果的东西确实很精致,很好用。

元旦的时候和大学朋友游玩了回黄山,黄山很漂亮,看到了壮观的日落-夕阳在不到一分钟内划过地平线,也见到了2012年的第一场雪。

回来之后做着担保悬赏的改版升级包,这次升级包工作量很大,但是还是如期完成了,以此得到了一回周星星。

然后就是转正。

我相信,2012不是世界末日,来年的生活同样精彩,祝身边的朋友开开心心,顺顺利利,虽然有点土,但是真心话。

FireFox实现加为收藏夹

2011年10月18日
if(isIE){
    window.external.addFavorite('https://shang.alipay.com/','担保悬赏!')
}
else if(isFF){
    window.sidebar.addPanel("担保悬赏!", "https://shang.alipay.com/", "");
}

参考MDN上的Mozilla Developer Network

电信ADSL宽带对路由器人为限速

2011年10月3日

    最近住朋友家,他们家是电信4M ADSL,然后接的TP-Link的路由器。白天上网都没问题,一到高峰期的时候就慢的要死,开始还以为是路由器的问题。后来换了个路由器,还是慢。。。

    今天对这个情况进行了仔细的分析。网速慢的情况只是连接路由器后才发生,如果用电脑直接连modem拨号,就正常。于是我在不用路由器的情况下,记录了到61.139.2.69的ping值,只有2ms。然后连上路由器,再次ping 61.139.2.69,时间增加到400多ms。 但是这个情况有可能是路由器那里卡了,于是我又ping了到电信网关,发现时间只有2ms。说明从我电脑经由路由器到电信网关的通路是正常的,没有特别大的延迟。那么问题就只能出在电信机房那边了。估计是发现我用路由器,故意丢包或者故意降低带宽。

    问题找到后,先打了10000号投诉。客服MM接到电话后,我先问电信是不是有不准用路由器的政策,回答没有。于是直接表明身份,我是专业人员,发现电信违规操作。于是客服MM没有跟我瞎扯,直接反应问题到后台了。现在就等明天电信的技术人员回复了。  

    如果通过10000号投诉的途径解决不了,我就到工信部投诉。以前投诉过一次,效果非常好。工信部投诉网址如下:http://www.chinatcc.gov.cn/html/mains/shensushl.html



2条评论    
到PHP.JS.CN上围观原文

此情待可成追忆,只是当时已惘然

2011年9月30日

又看了一遍《大话西游》,看到一篇影评写得非常好:

  这世上有一句被说滥的情话,“曾经有一份真挚的爱情摆在我面前,………”

  十年前,一群青春浪漫的孩子,在街头小影院,被周星驰逗得前仰马翻。

  十年后,一个人,两张碟,突然就看懂了,开头孙悟空为什么放弃西天取经:才华横溢的年轻人不愿意被条条框框所束缚。

  这是一种有趣的对比,十年前的我们青春年少,逃课躲在小影院,疯狂迷恋周星驰,仿佛开头不愿取经的孙悟空,十年后的我们为人父母,规规矩矩,任你有再大的本事翻不出生活的五指山,如同带上紧箍咒的至尊宝,走上西天之路。

  这是一个关于宿命的故事,十年前我们看出了笑声,十年后却看出了眼泪,前生,今世,轮回,体制,爱情,从开头到结尾,从大战观音到毅然走上取经之路,不到三个小时;而我们从年少懵懂到老于世故却走了整整二十年,一部电影浓缩了人的一生,大话西游应该得奥斯卡。

  艺术就是用夸张的方式表达生活,电影里的人永远千奇百怪,爱情是因为某个固执的理由:

  紫霞说:谁拔出我的紫青宝剑,谁就是我的如意郎君。

  晶晶爱了弃她而去的悟空五百年,五百年后看见跟悟空一模一样的至尊宝时仍然念念不忘,原来恨一个人可以这么久。

  晶晶说:你不怕我杀了你吗?

  至尊宝:怕,不过没办法,我不想你看着我的时候心里却想着另外一个人。

  至尊宝爱上了晶晶,为了救晶晶,又遇见了紫霞,当他发现紫霞才是最爱的时候,又放不下晶晶,爱情有时不是两个人的事,而是三个人的事,爱情方程千古难解,命运永远在跟至尊宝开着愚人的玩笑,他只有变成孙悟空才能救紫霞,而变成孙悟空就不能对紫霞再有半点情欲,有时候可以选择也是一种痛苦。

  晶晶爱了,她说不能和喜欢的人在一起,做人又怎么会开心。

  紫霞爱了,到死她才明白,爱一个人是那么痛苦。

  至尊宝也爱了,不管晶晶还是紫霞,他都不想骗自己,

  “我的意中人是个盖世英雄,有一天他会踩着七色的云彩来娶我,我猜中了前头,可是我猜不着这结局……”最后的场景,让人绝望,紫霞为了救悟空被牛魔王一刀刺中,死在了尊宝怀里,而此时至尊宝已经变成了孙悟空,紧箍咒越勒越紧,爱就得承受痛苦,那一刻,飞蛾扑火,粉身碎骨,玉石俱焚,都无所谓了,爱情有时比生命伟大。

  如果你能够心甘情愿,爱会变得如此简单,而生活却现实得多,永远别说你爱得有多深,我们最在乎的始终是自己的情绪,五百年太久,现代科学的研究表明,一个人一生有爱的感觉的时间总和加起来平均不超过半年,我们该知道爱情有时候是多么扯淡,爱情终究会败给岁月,情浓情淡,最后只剩下某些模糊的片段,若干年后,了无痕迹。

  紫霞说,爱一个人需要理由吗,她不需要。很多人说我只要感觉对了就好,其实你的感觉充满了理由,一个人的气质,才华,长相,风度,财富都左右着你的感觉,你只是不愿意去总结。没有理由的爱情,是不存在的。

  妖怪晶晶愿意为爱而死,下凡的紫霞也为爱献出了生命,凡人至尊宝为爱情进行到底,只有踏上取经之路的半仙孙悟空为爱决绝,原来这就是我们的体制,为了事业,为了仕途,爱情是用来牺牲的,希腊人为了一个女人海伦,发动一场战争;而我们为了避免战争,把一个女人王昭君送给匈奴。孙悟空始终逃不出被安排的命运,那么他就只有选择戴上紧箍咒,踏上取经之路。

  电影永远是电影,爱一个人可以五百年,为了某个固执的原则轻易地献出生命,什么海誓山盟、生死相许是为了艺术的升华。

  我们要感激,还好有电影,我们也该庆幸,现实不是电影。

  在《秋天的童话》里,发哥和红姑在美国邂逅,演艺了一段浪漫的爱情童话,在香港历史最佳影片评选中,《秋天的童话》名列第二,如果电影里,发哥不在社会的底层,而是一个富家公子,女人唾手可得,爱情变得很容易,他还能感动你吗?罗密欧和朱丽叶如果不演成悲剧,能这么震撼人心吗?悲剧,感动,这是艺术的手段,永远是艺术的第一选择。生活不是艺术,恰恰相反,生活不需要悲剧,生活中你最好不是电影里的发哥,而是电影里的陈百强;你最好不是Jack,而是Rose的未婚夫,有时电影不是让你去领悟,而是消遣,导演看上的是你的钱,他们打造感人的剧情,我们奉献出了眼泪和人民币,各得其所。

  在《甜蜜蜜》里,黎明和张曼玉最后在街头偶遇,相视一笑,感动万千,这是电影的魅力,电影只有120分钟,时间在那一刻戛然而止,所有的童话都只有一个结局:男女主角从此过着快乐幸福的生活,不再有下文,也不可能有下文。生活不是童话,永远残酷许多,生活还得继续,会有争吵,或有外遇,谁能肯定,十年后,你牵得会是谁的手。

  戏外的黎明风度翩翩,绯闻众多,也曾轰轰烈烈,只怪生活太琐碎,爱情太弱小,在天长地久的路上一路通关,实在太难。时间是好东西,所有的爱恨情仇都抵不过时间的消磨,最后各自在自己的轨道里,过着普普通通的生活,不再联络,却也坦然;偶尔想起,也不悲伤,只是有那么一点遗憾,如同海鸥偶尔掠过湖面,串起一丝涟漪,这世界除了思想,你什么都不曾拥有过。

  如果坚持到底,我们能否终成眷属?如果毅然放弃,我们会遇到更好的吗?如果…..

  身后的路只有一条,眼前的路却有无数条,生活原本有无数种可能,而结果却只有一种,人生没有彩排,每天都是现场直播,选择能不难吗?

  席慕容说,假如爱情可以解释、誓言可以修改假如你我的相遇,可以重新安排那么,生活就会比较容易有一天,我也终能将你忘记。

  艺术和现实是矛盾的,人更是个最大的矛盾体,我们都会被别人的生离死别所感动,却没几个人愿意亲身去经历,王菲唱到:

  有时候有时候,我会相信一切有尽头。

  有时候有时候,我会选择留恋不放手。

  周星驰说,我搞笑是因为我内心忧郁,我要拼命让自己开心起来。

  人是感情复杂的动物,我们渴望持久浓郁的迷恋,却也希望能有随意轻松的自由,古今中外,那么多痴男怨女,生生不息,你在乎了,爱情就无价;你无所谓了,爱情如同狗屁,只是一场生殖冲动。李白曰:事了拂衣去,深藏身与名;某兄撰写爱情三十六计,最后之计压箱——走位上计。

  最喜欢第一个场景,柔美的二胡响起,紫霞出场,美丽的芦苇湖,波光粼粼,阳光,湖水,蓝天,一切都那么明媚,那时的我们多么单纯,那时的岁月多么美好。

  最后一个场景,取经路上,某个小镇,至尊宝遇见了一个和紫霞一模一样的人,从开始到现在,所有关于她的一切,尘封的记忆,涌上心头,那一刻,泪流满面。

  曾经,你看不懂;如今,你不想看懂。

  一夜,苍老十年。

  天若有情天亦老,人若多情老得早,此情待可成追忆,只是当时已惘然。(转)

我才知道的几个Javascript小知识点

2011年9月2日

    因为我学习Javascript的过程比较零散,没有仔细系统的看过。有些细节方面就被遗漏了。下面是我最近才搞清楚的几个函数。如果你此前就知道,那么恭喜你,你的JS比我好。如果也不清楚,那么也恭喜你,你看了此文就清楚了。

1. Array 的 slice方法

    slice(start,end)   此方法可从已有的数组中返回位于start和end之间的元素。并且不改变数组本身。start和end参数可以为负数,表示从后面开始数的第几个。

    例如: [1,2,3,4].slice(2,3) 返回[3] , [1,2,3,4].slice(2,-1) 也返回[3] 。

    另外,如果只写一个参数,那么第二个参数默认是数组的长度。也就是说 [1,2,3,4].slice(-2) 返回 [3,4]

2. Array 的 splice 方法

    splice(start,length) 此方法返回现有数组的从start开始的length个元素。并且会改变数组本身。start参数可以为负数。

    例如: var a = [1,2,3,4]; a.splice(2,2) 返回[3,4] ,并且a变成了[1,2] 

    另外,splice还支持第3,4,5…个参数,表示用后面的参数替换掉被删除的元素。

3. String 的 substr 方法

    substr(start,length) 此方法返回字符串从start开始的length个字符。不改变字符串本身。start参数可以为负数。

    例如: "abcd".substr(2,1) 返回 'c',"abcd".substr(-2) 返回 "cd"

4. String 的 substring 方法

    substring(start,end) 此方法返回字符串的start到end之间的字符。不改变字符串本身。start和end参数不能为负数!但是start可以比end小。

    例如:"abcd",substring(1,3) 和 "abcd".substring(3,1) 都返回 "bc"

表格对比

  参数 参数是否支持负数 是否改变对象本身
Array.slice (start,end) Yes No
Array.splice (start,length) Yes Yes
String.substr (start,length) Yes No
String.substring (start,end) No No

 

    此外,删除对象的某个属性用delete 操作符。

    例如: var o = {"a":1,"b":2}; delete o.a; 那么o就变成 {"b":2}

    但是如果要删除数组的某个元素,就要用上面提到的splice方法了。

    例如: var a = [1,2,3,4]; delete a[1]; 那么a就变成[1,undefined,3,4],并且a.length还是4。 必须要用a.splice(1,1)。

    还有Array.pop, Array.shift, Array.push, Array.unshift等常用方法就不说了。



0条评论    
到PHP.JS.CN上围观原文

318川藏线单车之行

2011年8月18日

他们说去拉萨有三种原因,归纳为“失恋”:失业、失常、失恋;我应该算是属于“失常”吧。
下图为在色拉寺山顶,俯瞰拉萨城,远处是布达拉宫lefter 318单车之行
毕业后然后在成都买了房,成都本来就是一个养老的城市,周末就是打麻将啥的,然后在一个外企里面过着朝九晚五的工作,主要是不是自己喜欢的行业和看不到任何哪怕一点希望,想这不是自己想要的生活,至少年轻时候不想要的生活,这样到老的时候一点难忘的回忆也没有,然后朋友加同事吴松林辞职花了7个月时间去了亚洲和国内很多地方的经历,让我很向往。

从有这个想法到实施差不多一个月时间,在这期间买自行车,查路线及攻略然后就已个人上路了,路上经历了很多不寻常的事,遇到很多有个性的人,此处省去1万字。
lefter 318单车之行
用了20多天,走了2000多公里,爬了10多座4000米以上的山,2座5000米以上的山,快到山顶的那段路是最难的,因为海拔高氧气很稀薄,走路都要喘,还有很多几乎让人丧命的路,摔了一次比较狠,肚皮摔了一个洞,手也有个洞。
点击查看详细线路

记得快到拉萨的那6公里,沿着拉萨河远远的看到布达拉宫矗立在山间,然后憋足气,哪怕是上坡也以最快的马力冲向梦想,是啊,20多天的坚持,20多天的风风雨雨,看着目标或者梦想在此刻一步步成为现实的那份快感。

最大的收获是学会珍惜,最后我想说“人就这么一次,值得的就去做”.

直接放图,可能需要翻墙

再次毕业

2011年8月17日

今天又领了一次毕业证,不知不觉时间过得真快,来杭州快一个月了。

关于杭州

与成都一样也是个休闲城市,也更漂亮,因为有山,还有水,水是一个城市的灵性,比成都干净,因为感觉这边的人素质普片比成都高,到现在我没看到一个人到处乱扔垃圾和冲红灯。消费比成都高那么一点,就是房价和成都不是一个档次。我住了套三里面的一间800,很高,我在成都买的房子160平4间才租成1400左右,后来问了一下吴松林他说他在成都租的那房子好像是750,这样一比心里平衡了。饮食要清淡很多,这让一向喜欢麻辣的人来说有点不适应,其次就是杭州很热。

关于ALIPAY

再说说支付宝吧,首先要说的是支付宝氛围很好,很OPEN,身边的同学都很出色,基本上来自全国各地重点大学,很有想法。

来不久就是管理见面会,敬民(副总裁,前SUN公司首席架构师)有一句话我印象很深,“我不希望你们在支付宝带一辈子,但我希望你们在支付宝的每一天都是快乐的,有进步的”.

由于我骑车走川藏线(这段经历很难忘,也很怀念,由于时间忙,稍后补上),晚到一周,来了就当全班的年整蛊,让我内裤外穿
,呵呵,但是挺保守的就拒绝了,如果是现在我肯定没什么问题,然后又出了一个方案,让我在手机上找出第8个联系人,然后打过去说我爱你。

然后每天都是培训,不光是技术上的还有很多关于如何做人,如何时间管理,如何团队和做如何有效沟通等,成长面临的问题的分析,收获很多。而且上课不是死板的老师讲,学生做笔记,还穿插很多活动,让后从活动中明白道理,如时间管理上做了一个纸条游戏:一张长方形的纸条,上面印有1-100的刻度。然后让我们在我们现在的年龄处折叠一下然后把1-你现在的年龄去掉,说这这段时间成为过往了;然后大家想活到多少岁,然后把多少岁-100的刻度去掉,然后大家想什么时候退休,然后把退休岁数-死亡岁数这段去掉,然后就是你工作的长度。结果大家都很短,很短。然后老师又说由于我们要睡觉,所以至少得再减半。最后剩下的是你拥有的财富,多吗?你这段时间要为你一生的生存(养老)工作,以后还有小孩,老人等的压力,所以你们要珍惜现在努力,然后让我们踊跃发表自己的感想,最后是他作为一个过来人的算是经验和总结吧。

对我们很用心,刚来的时候给大家一个很精美的信封,让我们写下这一个月内培训的目标和愿望,然后毕业的时候打开对照,看你是否努力的去实现了。课外还有很多活动,大航海,国王与天使:每个人是别人的国王也是天使,但别人完成心愿的同时,自己也可以在纸条上写一个愿望让你的天使帮你实现。
我抽到一个很坑爹的愿望,让我当全班的面向某个男生表白。也许是经过一个月OPEN氛围的熏陶我也无所畏惧了,结果就是一只手捧鲜花,一只手拿话筒和情书单膝跪地“表白”的场景出现了。

传统行业VS互联网行业

出于分享的目的,把“毕业”之后的喜悦,把这边的情况在原所在公司某部门群里说了,里面有几个关系很好的同事,然后部门领导直接私Q我,“别在这里勾引人,再说把我踢了。”结果真把我踢了,后来一问才知道部门里面也走了好几号人,也许作为领导看了我的话可能想法不一样。

这样一想的话,感觉前公司包括很多小企业,想把员工固定死,甚至想不让你接触外面的世界,不让你去比较,去参考,让员工自认为很厉害,其实是井底之蛙,成天干着重复的事情,话讲得堂而皇之,实际的本质的东西太少,而且感觉和公司的关系仅仅是雇佣和被雇佣的关系,你给我多少钱干多少钱的事情,其实应该多学学互联网企业以一种OPEN的姿态去拥抱变换,不然有什么问题总是憋在心里。

企业文化是一种信仰吧,精神层面的,很虚,但是很重要,有些时候是一个人的支撑点。就拿我在川藏线上的经历吧,很累,很饿,海拔高呼吸困难,但还是坚持下来了,更多的是一种信仰,布达拉宫在召唤我,一种坚持。

马上到岗了,给自己下个月的目标

重要紧急
熟悉支付宝前端业务和架构以及开发规范
学好JS
温习培训期间的PPT,总结
重要不紧急
每天花至少1个小时学习英语,一定要拿出骑行在川藏线上的那种坚持
打印一些沟通,交际的资料,学习然后实践,做一个好人
每天都要有收获,有进步–不然还是回我的成都养老去。

Elance新手入门

2011年7月15日

    Elance是全球最大的外包网站。给我的印象是门槛高,服务好,项目多,项目质量好。比起国内的猪八戒之类的网站好不知多少倍。如果你是程序员、翻译、设计师等,同时英文又好,那一定要到Elance上来接项目,这样才能充分体现你的优势嘛。因为Elance是个国际平台,上面的价格是国际价格,换算成人民币怎么都划算啊。

注册

    Elance的注册是需要验证电话号码的。注册完了之后,Elance的机器人会打电话过来,叫你把网页上的数字用英文念出来。通过验证之后就算注册成功了。可以开始接项目了。PS. 因为Elance涉及到钱,所以对帐号保护比较严,一定要记得你的密保答案啊,因为下次你换个地方登陆,它就会让你输入答案了。。。

包装自己

    新手要顺利接到项目比较难,因为没有历史项目经历和别人给的评分。所以要靠自己profile上的自我简介,profilio和skill tests等来打动客户了。其中比较特别的是skill tests。Elance使用了第三方测试平台来衡量测试者的各种技能。在Elance网站上选择想要测试的技能,比如PHP5 Code Test,然后会进入一个第三方测试网站。一般选择类题目是40题,时间是40分钟。PHP5 Code Test属于代码实践题,需要测试者根据题目提供一段PHP程序,然后后台执行这段程序看看是否正确。

    测试的结果是按你在测试者中占的百分比来的,而且貌似只有top 1%,5%,10%,20%,30%(上次我做了个JS测试的top 2%,结果给我显示5%,冤屈啊。。。),其他的就用图形来显示你的测试成绩和平均测试成绩。免费会员可以选择5个测试成绩显示在自己的profile上。如果升级成付费会员则可以显示更多的成绩。如果某个测试你觉得不满意,没关系,14天之后可以再次做这个测试(题目大部分都一样的哦)。这些成绩是很有说服力的。比如你刚注册,但是在Javascript测试中获得了top 5%的成绩,那么你在投标的时候就可以说 “我刚来Elance,但是我在前端方面有 X年的经验,不信你去看我的profile,我在Javascript测试中排前5%哦。”。然后报价再稍微比别人低一点,获得项目的机会就会大很多。

项目流程

    Elance的项目主要分为固定价格的项目和按小时计费的项目。先说说fixed price project。

    首先在网站上搜索自己感兴趣又力所能及的项目,要看清楚项目类型,项目预算和是否需要提供W9表格( W9表格貌似是美国用于税收方面的东西,需要美国人才可以有,不过有些个人项目如果要求了W9,你可以跟他商量让他去掉W9)。 

    然后就是投标了。

    投一个$500以下的项目需要1个Connect(Elance上的一种点数吧),$500-$1000的项目需要2个Connect … $2000以上的貌似都是5个Connect。而且这个点数是不退的,也就是说对方发个项目,你去投,然后对方没选中你,甚至对方把项目关了,你都会一样损失这些点数。免费会员每月是10个点。我是每月$10的付费会员,每月有20点。这种点数的规则就限制了像猪八戒上那些胡乱杀价的人,所以Elance上看到的基本上都是正儿八经的人报的合理价格。

    然后投标内容一般用正式的英文书信格式,例如:

Hi Alex,

I am very interested in your project. I ….

Regards,
Chunlong

    而且内容一定要根据对方的项目需求来写。切记写一个模板到处去投标。比如对方想做个图片编辑器,你就应该说你以前做过类似的东西,然后把demo地址贴上去。这样对方会很感兴趣的。

    这段时间有可能对方会跟你来回通信几次,一旦他确定给你做,就会把项目award给你,然后你在elance后台就会看到这个项目,里面有各种设置和功能。一般项目award给你之后,对方就会把项目款打到Elance,如果没打,你可以等对方打了钱再开始做。这种第三方担保类似支付宝,需要双方同意钱才能转移。此时,你就可以跟对方交流任何内容,比如Skype帐号(上面的人大部分都用Skype,因为必要时候可以视频通话)。

    项目后台最常用的是message功能,可以收发消息,还可以带附件,每个消息还会forward到你的邮箱,甚至你可以用邮箱直接回复。另外还有一个是status reports,项目开始后记得用这个来向对方报告项目进度。Terms & Milestones是一个必须双方都同意的协议,里面涉及到项目的里程碑(可以在里程碑上协定支付部分项目款),项目截止日期,项目总价等。每个修改都需要双方同意之后才会生效。

    当项目结束后,如果对方确认了你的成果。那么就可以把status reports里面设置为completed。并且提醒对方放款。

    对于按小时付费的项目,大部分流程都是一样的。但是投标的时候的金额是每小时多少钱而不是项目总共多少钱。然后开始做之后,需要你下载一个Elance的Tracker软件(是一个Adobe AIR软件)。这个软件可以记录你的项目时间和屏幕截图。开始做项目的时候,进这个软件点击开始。然后就老老实实做这个项目,因为这个软件会不定期截屏上传的!万一被看到你在玩,那是有损声誉的事情啊。

    项目做完了就是提款,具体可以看我的《从Elance提现到国内银行的完美方法



0条评论    
到PHP.JS.CN上围观原文

Marking up content with RDFa

2011年5月26日

presentation-vs-semantics

上图左边是代理对页面的理解,右边是人的理解,代理可读的和人类可读的数据之间的关联是相当少的,结果就是现在的浏览器在解析和处理web数据上的能力很差,因为浏览器更多的功能是负责展示这些信息。因此为了耦合人类和机器的理解可以通过为一些可视化的数据提供一系列的XHML属性而使得这些数据可以被机器所理解,让页面更有语意RDFa就是一种解决办法,(还有微格式-Microformats

RDFa “Resource Description Framework in attributes” 即资源描述框架,其应用格式可以参见W3C。例如为了表明h2代表页面的标题而h3代表作者可以用RDFa这样描述:

<div xmlns:dc="http://purl.org/dc/elements/1.1/">
   <h2 property="dc:title">Marking up content with RDFa</h2>
   <h3 property="dc:creator">Lefter</h3>
</div>

为什么要用dc:creator和dc:title而不简单地用creator和title呢?这是因为XHTML并没有为这两个概念保留关键词;而xmlns:dc=”http://purl.org/dc/elements/1.1/ 个人理解有点类似XML的命名空间,RDFa还提供了@property 来自定义属性因此也可以简写为:

<h2 property="title">RDFa: Now everyone can have an API</h2>
<h3 property="creator">Lefter</h3>

可以看出其优势为

  • 增强的搜索功能
  • 用户自定义,可扩展性
  • 数据再利用性
  • 自我控制
  • 模块化架构
  • 更具可访问性

推荐阅读

小窗口的的浏览体验

2011年5月26日

小窗口的的浏览体验是必须的,在保证页面内容的完整性的前提下,满足多终端设备的访问,细小部分的处理更能体现一个企业的水准。出现小窗口浏览的情形有很多,比如和女朋友抢电脑用的时候,女朋友要看电影,用户要看新闻,在难分高下的时候只能“AA”,因此浏览新闻就只能缩小窗口了:)

看了一下国内网站(满屏自适应部分)基本上没有考虑这点
tenPay_full
tenPay_minify
baidu
baidu_full
taobao
qq
再看Yahoo最上面的提示条满屏的时候是100%,占据整个宽度
yahoo
缩小的时候页面内容完整,布局没有错乱
yahoo_small

对于块级元素,宽度默认会继承父级的宽度也就是100%(内联元素没有宽度,即使定义了也无效),而最外层元素HTML的宽度一般是随窗口的改变而改变的(改变窗口大小再点击下面代码)

alert(document.body.offsetWidth + "px")

YAHOO的做法是为满屏的元素(顶部提示条)加上min-width ,IE6不支持此属性不知道是YAHOO是怎么解决的,但是让IE6支持min-width实现方法可以用执行表达式 Expression:

width:expression((documentElement.clientWidth < 400) ? "400px" : "auto" )

另一种方法是用border-width来模拟

* html .minwidth {
	border-left:600px solid #fff; float:left
}
* html .container {
	margin-left:-600px; float:left;	 position:relative;
}

查看演示

让IE支持HTML5的两种方案

2011年5月26日

structure-html5

HTML5 最主要的特性就是加入了更加具有语义的标签比如:嵌入音频、视频、图片的函数、客户端数据存储,以及交互式文档,和页面元素,比如 header, section, footer, figure等。更详细的介绍可以看下面几篇文章的介绍:
A Preview of HTML 5
Yes, You Can Use HTML 5 Today!
W3C HTML5

但IE不支持HTML5这些有用的标签,HTML5,有两种方法让IE支持HTML5.

1.用 Google Chrome Frame插件

这中方法没什么好说的,参见Google Chrome Frame的说明。

2.用JS将HTML5增加的标签创建出来

<script>
var html5Tags=['header' ,'footer','article','nav' ,'section','aside']
for(var i=0;i<html5Tags.length;i++){
    document.createElement(html5Tags[i]);
}
</script>

查看演示

今天才发现这个方法早就有人这样实施了:Moving markup towards HTML5

美丽的泸沽湖

2011年5月26日

泸沽湖为川滇两省界湖。为四川云南两省共有,泸沽湖古称鲁窟海子,又名左所海,俗称亮海。纳西族摩梭语“泸”为山沟,“沽”为里,意即山沟里的湖。

43405272200904191504493354930684347_000_640

43405272200904191504493354930684347_001_640

43405272200904191504493354930684347_002_640

43405272200904191504493354930684347_003_640

43405272200904191504493354930684347_004_640

43405272200904191504493354930684347_006_640

43405272200904191504493354930684347_007_640

43405272200904191504493354930684347_008_640

43405272200904191504493354930684347_009_640

手机里的世界

2011年5月26日

刚过完生日,有大家的陪伴,真是高兴,喝的一塌糊涂,感谢身边的人:小时候的老同学,高中时候的老同学,大学时候的新同学,和工作室以及里面的师兄师弟们。

这是我用手机(30万像素)拍下的我一段生活的画面,调了一下对比度和亮度,勉强还能看清,特此纪念一段难忘的时光,祝福我们大家一切都好。

手机里的世界

手机里的世界

手机里的世界

手机里的世界

手机里的世界

手机里的世界

手机里的世界

手机里的世界

手机里的世界

手机里的世界

手机里的世界

手机里的世界

手机里的世界

手机里的世界

手机里的世界

手机里的世界

CSS,JS文件压缩工具

2011年5月26日

js/css文件常见的压缩工具有:

Yuicompressor的用法

java -jar D:\yuicompressor-2.4.2\build\yuicompressor-2.4.2.jar
--charset UTF-8 D:\my.js -o D:\my-min.js

java -jar D:\yuicompressor-2.4.2\build\yuicompressor-2.4.2.jar
--charset UTF-8 D:\my.css -o D:\my-min.css

具体语法和其他参数参考:julienlecomte Yuicompressor。 也可以写一个批处理文件具体格式,同时处理多个文件,例如:将D盘中的WEBsite文件夹下的所有.CSS , .JS文件进行压缩

@echo off
:设置YUI Compressor启动目录
SET YUIFOLDER=D:\yuicompressor-2.4.2\build
:设置你的JS和CSS根目录,脚本会自动按树层次查找和压缩所有的JS和CSS
SET JSFOLDER=D:\WEBsite
echo look for JavaScript, CSS ...
chdir /d %JSFOLDER%
for /r . %%a in (*.js *.css) do (
@echo It's compressing  %%~a ...
@java -jar %YUIFOLDER%\yuicompressor-2.4.2.jar --charset UTF-8 %%~fa -o %%~fa
 )
@echo OK!
pause & exit

ESC(ECMAScript cruncher)

这个工具只能在Windows下使用,ESC.wsf提供5种压缩级别,从0到4:
Level 0 : No compression 不对JS文件进行压缩
Level 1 : Comment removal 移除JS文件中的注释
Level 2 : Whitespace removal 移除JS文件中的注释及空行(默认)
Level 3 : Newline removal 移除JS文件中的注释,将所有代码合并为一行
Level 4 : Variable substitution 提供最新的压缩率,移除JS文件中的注释,将所有代码合并为一行,并且修改JS文件中的变量名。例如:将”big.js”按照压缩级别2来压缩(ESC.wsf默认压缩级别为2)为”min.js”

cscript ESC.wsf -ow min.js big.js 

Google Closure Tools 包含三大块

  1. Closure Compiler:这是个JavaScript优化器,可以将JavaScript编译成压缩的、高性能代码。它除了能移除无效代码,重写代码使其最小化且运行更快,还能检查语法、变量引用和类型,并对一些常见JavaScript错误提出警告。同时,它还提供了Closure Inspector(一个Firefox插件)用于调试编译后的代码。FireFox插件
  2. Closure Library:这是个广泛的、经过良好测试、模块化且跨浏览器的JavaScript库。在例子中可以看到,Google Docs就是用这个库写的。
  3. Closure Templates:这是一个为Java和JavaScript实现的模板系统,可在服务器和客户端使用相同的模板。值得一提的是,JavaScript模板会进行预编译处理,以提高其性能。此外,Gmail和Google Docs也是使用该模板系统。

Ajax实现用户名验证

2011年5月26日

基于AJAX的注册很多,网上大多用GET请求,我用POST实现了一下。

function CheckUser(){
	var xmlHttp;
	var UserName=document.regForm.userName.value;
	if(UserName==""||UserName==null){
		alert("input word");
	}
	else{
		if(window.ActiveXObject){
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}else if(window.XMLHttpRequest){
			xmlHttp = new XMLHttpRequest();
		}
		xmlHttp.onreadystatechange=function(){
			if(xmlHttp.readyState ==4){
				if(xmlHttp.status==200){
					var response=xmlHttp.responseText;
					alert(response );
				}
			}
		}
		xmlHttp.open("post", "/phpstudy/reg.php",true);
		xmlHttp.send(UserName);
	}
}
<form name="regForm">
	<fieldset>
		<legend>用户注册</legend>
		<label>name</label>
		<input name="userName" onblur="CheckUser()" type="text">
		<label>password</label>
	</fieldset>
</form>
$conn=mysql_connect("localhost","root","root")
or die('Could not connect: ' . mysql_error());	

$db_link=mysql_select_db("phpstudy",$conn)
or die('Could not select database');	

$sql="select * from user where name='$HTTP_RAW_POST_DATA'";
$result=mysql_query($sql,$conn);
$info=mysql_fetch_array($result);
if($info){
	echo "用户已被占用";
}
else{
	echo "可以注册";
}

用POST方法遇到的问题
服务器对POST请求和提交WEB表单的请求处理有差异,因此有两种思路来解决
1.用XMLHttpRequest模拟表单提交
首先将Content-Type头部信息设置为application/x-www-from-urlencoded,也就是表单体提交时的内容类型
其次是以适当的格式创建一个字符串

2.服务器端用$HTTP_RAW_POST_DATA来接收数据
由于PHP默认只识别application/x-www.form-urlencoded标准的数据类型,因此,对型如text/xml的内容无法解析为$_POST数组,故保留原型,交给$GLOBALS['HTTP_RAW_POST_DATA'] 来接收