大县城的生活亚克西(3):天朝银行领先世界

Posted by Sugar | Posted in 日誌 | Live | Posted on 2010-09-02


LP有张招行一卡通基本没用,空卡一张,上个月月初从支付宝提现1K进去,还没取出来,刚才用网上银行专业版,顺手查了下账,发现被扣了7块钱,而且不是一次性扣,而是偷偷摸摸隔几天扣1块,备注说明是“账户管理费”,于是打 9555 问银行。

问:我一张一直没用的卡,上个月存1K进去,为什么会被扣钱?
答:如果同一身份证下的账户余额少于1万的话,银行每个月需要收取1元钱账户管理费。
问:每月1块为什么上个月扣了7块?
答:以前余额不足1万的月份会补扣。
问:补扣为什么不是查清楚差多少一次扣完,而是隔几天扣1块?
答:因为系统统计有个过程,统计到了的时候才扣费。(你把电脑当白痴啊?
问:我几年没用这张卡了那不是要被扣几十块?
答:是的。
问:那只有注销这张卡了?
答:注销账户的时候如果银行查到之前余额不足的月份,银行是有权利要求您追缴全部历史管理费的。如果这张卡用来还贷款或者其他自动缴费项目,就不会收管理费。
问:既然我没用这张卡,账户信息没有变更,你们对我也没有什么交互服务,为什么要收费?
答:因为银行要保存你账户以前的信息,所以会有管理费。

在招行开设存折账户与"一卡通"账户,同一身份证下日均总资产少于1万元的,每月收取帐户管理费5元;对于“一卡通”金卡客户日均总资产少于5万元,每月收取10元的帐户管理费;对于“一卡通”“金葵花”卡客户日均总资产少于50万元的,每月收取30元的帐户管理费。(via 土匪

打电话问农行的哥们,哥们说他们银行的借记卡每年有10块钱年费。我说利息1年也不到10块,存钱=倒贴,你们银行做的岂不是稳赚不赔的生意?答曰那当然。
哥们也认为隔几天扣1块钱的手法有点诡异。

看来天朝银行战胜全世界是毫无疑问的了。

大师为什么会成为大师?

Posted by Sugar | Posted in 閱讀 | Reading | Posted on 2010-08-28

异类——不一样的成功启示录》读书笔记,原版书名 Outliers – The Story of Success ( by Malcolm Gladwell )。

主要观点:

  1. 所谓天才都经历了超过 10000 个小时的练习
  2. 智商不必高
  3. 成长环境与时代背景提供成才的机遇

概括一下书中提到的部分论据——

一、成为大师的方法:练习 10000 个小时

莫扎特,6岁开始作曲,Michael Howe在 Genius Explained一书中说:莫扎特(W.A Wolfgang Amadeus Mozart)在经过了20多年的作曲锻炼之后,21岁时才创作了公认的杰作(莫扎特第9、17号钢琴协奏曲)。从这时开始,莫扎特开始了十来年的协奏曲作曲家生涯。

比尔·乔伊,开发了Unix系统和Java编程语言的天才,1971年,他16岁,进入密西根大学安娜堡分校就读,从第二年起到进入伯克利大学,每天8到9个小时都在编程,5年时间,10000个小时的狂热编程使他成为大师。

1964年2月,Beatles乐队登陆美国,洗刷了音乐节一系列记录。他们花了多长时间达到这一目标?7年。1957年组建乐队,1960年至1962年,在德国汉堡各个俱乐部表演,每天演出8个小时,一个星期7晚,在取得重大突破的1964年之前,他们已经出演了1200场左右。这是Beatles的10000个小时。

比尔·盖茨在1968年读七年级的时候,就开始用计算机编程,每天8个小时,到大二退学创办软件公司的时候,他已经无间断地编写了7年的程序,总时间远远超过10000个小时。

心理学家 K.Anders Ericsson 的实验:学习小提琴演奏的学生可以分成3组,1组,有成为世界级小提琴演奏家潜力的学生,在他们的生命中已经练习了1000个小时,2组,“比较优秀”的学生,练习时间是8000个小时;3组,他们的目标是做音乐教师,自5岁以来练习的时间只有4000个小时。

在钢琴业余演奏者和专业演奏家之间的比较野得出同样结论,专业演奏家在20岁左右,练习钢琴的全部时间达到了10000个小时。
一定程度的紧张练习对于卓越者而言是必不可少的——必须达到10000个小时。

神经学专家 Daniel Levitin :“一个人的技能要达到世界水平,他的练习时间必须超过10000个小时——任何行业都不例外。无论是作曲家、篮球运动员、作家、滑冰运动员,钢琴演奏家、棋手、还是作案屡屡得手的惯犯,对他们的练习时间进行统计的结果,一次次毫不例外地都得到10000这一数字。10000小时相当于每天练习3个小时,或者一周练习20个小时,或者是10年的练习时间。”

二、智商并不是那么重要

普通人的智商是100,爱因斯坦的智商是150,而 Christopher Langan 是谁?1952年出生,他的智商是195,6个月大会说话,3岁能朗读文章,5岁质疑上帝的存在,高中暑假学习法语和俄语,看哲学书,14岁画什么都像照片,15岁弹吉他可以跟jimi hendrix相媲美,两天能学完别人一学期的内容。高考(SAT)分数很高,即使当时打了会儿瞌睡。2008年的时候在NBC电视台的一个智力问答节目上拿到25万美元奖金。现在这个人在干嘛?在自己的农场里喂马。

斯坦福大学心理学教授Lewis Terman从1921年开始,挑选出1470名智商在140至200之间的学生,(档案记录在《Genetis Studies of Genius》一书中)这些少年天才最后很少有全国知名的人物,甚至收入不是太理想。他的实验团队曾经对两个小学生进行过智力测试,他们的智商不高,没有进入天才资料库,这两个人后来获得诺贝尔奖——威廉·肖克利和路易斯·阿尔瓦雷茨。

结论:一个人的IQ达到了120左右,那么再增加智商并不会在现实世界给他带来明显的优势。

三、成功的机遇:生逢其时

出生日期决定你是否能成为优秀运动员,加拿大,优秀曲棍球球员的出生月份多数在1、2月,因为曲棍球联赛法定注册时间是1月1日,这意味着,同样是9岁的小孩,1月份出生就比12月份出生在体能上有更大优势,在同一年龄段中选拔优秀球员,1月份出生的球员有更多的优胜机会。
同样地,美国,棒球联赛的法定注册时间是7月31日,优秀球员多数出生于8月份。欧洲足球球员注册的法定时间是9月1日,优秀球员多数出生在9月至11月。……

根据福布斯排行榜,人类历史上最富有的75个人中有14个美国人,他们全都出生在同一个年代,183*年,为什么?因为19世纪60-70年代,正是美国历史上经济发生最大变革的时代。铁路正在兴建,华尔街开始繁荣,制造业正蓬勃发展……如果你刚好20来岁,又能紧紧把握机遇,那么成功就在眼前了。这是社会学家 C.Wright Mills 的研究发现。

如果你生活在19世纪的肯塔基州,可能因为家族仇杀死去,失去成才机会。成功源自优势的不断积累:你出生在何时何地,你的父母的职业以及你成长的环境,这三者互相作用才塑造出这个世界上独特的你。

关于作者

作者 Malcolm Gladwell,《纽约客》的撰稿人,之前是《华盛顿邮报》的记者。擅长写作非小说类题材,他对学术材料非常熟悉,因此能把心理学实验、社会学研究、法律诉讼、飞机失事的统计调查、古典音乐家和曲棍球运动员等材料融合成一本通俗读物。

Malcolm Gladwell 写过两本畅销书,The Tipping Point(2000)(《引爆点》)和 Blink(2005),前者销量超过250万册。

Malcolm Gladwell在书中引用了大学社会学家 Karl Alexander 的观点和加拿大社会学家 Roger Barnsley 的研究成果。Gladwell 认为,人们对成功最大的误解是:“我们只要依靠聪明才智、抱负和努力工作就能获得成功。”在《异类》一书中,他希望展示影响成功的各种不确定因素,包括社会环境和历史条件,他希望人们抛弃这样的观点:“一个人的成就取决于他本人。”

延伸阅读

同人于野:怎样练习一万小时
李淼:天才与一万小时

小屁孩正在占领世界(IT多励志)

Posted by Sugar | Posted in 閒談 | Talk | Posted on 2010-08-23

2010年,小屁孩的大事业

Christian Owens 今年(2010)16岁,英国人。7岁的时候他有了第一台电脑,10岁得到一台苹果电脑,自学网页设计,2008年,14岁,创建第一家公司 Mac Bundle Box,主营业务是将软件打包后限期打折出售,2年后赚到100万美元。
Christian Owens 没有停留在成功的喜悦之上,他投资了另一个叫做 Branchr 的新项目,这是一家按点击付费的广告公司,让客户的广告出现在17500个网站和手机应用上,第一年赚到80万美元。Christian Owens 的新公司有8名雇员,其中包括他43岁的妈妈。(via gizmodo/alibuybuy

Abdulrahman AlZanki 生活在科威特,今年14岁,11岁的时候开始学习做网站,爱玩游戏,他想知道游戏是怎么做出来的,花了两星期做了一个iPhone游戏。在此之前他没有任何编程经验,完全靠自学。
Abdulrahman AlZanki 开发的免费游戏 Doodle Destroy(2.0版是收费的) 下载量已经超过80万次,进入排行榜前50名。其他游戏也有不错的排名。除了免费产品,他还开发了若干售价为0.99美元的游戏。(via arabcrunch/ csdn

中国版的一个小个案–wz88510731 是个16岁的中学生,学习Objective-C 4个月,软件上线2个月,收入近7000美元。(via cocoachina

坏消息

开发者中有25%的人在做手机开发,1年前这个数据是多少?12%。在手机应用开发者中有75%的人在给iPhone和iPod touch做开发。(via venturebeat)你听说到沙漠里卖水能赚钱,于是挑起两桶水前往该地淘金,结果发现,你不是得到这个消息的唯一的人,这个沙漠每一寸只要能站人的地方就有个卖水的人,这意味着什么?你致富的几率跟买彩票差不多。

“而从苹果商店最便宜的应用收费0.99美元来算,半数收费应用的下载量不足1000人次,开发商平均每年收入682美元。”(via cyzone

“EA、Gameloft等传统游戏巨头──这些在开发者圈内被称为”大厂”的家伙们入场后,规模较小的团队靠研发应用程序成功创业的可能就更为渺茫。”(via businessvalue

好消息

“大厂”们在招募开发者,据说年薪25万起。(via @chenhaozhi
这意味着如果创业失败,开发者也许可以争取把自己卖个好价钱。

推上的隐者(我们应该如何保持淡定的POSE?)

Posted by Sugar | Posted in 閒談 | Talk | Posted on 2010-08-10

在 twitter/围脖上如何获得更多的 follower(关注者)?100个人可能有100种方法。这个问题交给在这方面有所建树的人回答。
我只能回答另一个问题:如何避免受到关注(Follow)?(同时兼答:我们应该如何保持淡定的POSE?)

作为一个(不得不)低调的 twitter 用户,我总结了一些使用经验,这些经验有助于维持低关注数,从而成功成为推上无(少)人关注的隐者
这样做的好处是什么?
对人对己都没有压力,和谐社会,闷骚就对。

1、不发 tweets 或者少发 tweets。

理由:订阅作用大于表达作用。twitter 是观察世界的窗口,类似某些人通过新闻联播观察世界,它们的功能相似。

2、不说无益于人类社会发展的话。

例如:”刚吃过饭。“
理由:不必给互联网增加垃圾信息。你的吃喝拉撒无益于人民,无益于祖国建设。
对于青少年,我们可以原谅他暂时的无聊。如果你已经(早就)不是青少年,最好不要太无聊。

3、不 @ 别人,也不 RT 别人的话。

你可能很想回应某观点,不过,谁会在意呢? 你是万千世界中的一粒尘埃。你说什么或者不说什么都不重要,有什么屁话这么重要一定要@到别人的 timeline 上去提醒他注意呢?
如果对某些蠢货实在忍不住要骂,那么就用马甲来实施这一行为。
——这导致本人的马甲比本尊的followers要多得多,尽管一个月难得登录一次。这说明,倘若把个人的浮躁投入到一个更大的浮躁中去,总是不难收获到虚妄的膨胀。你需要这个吗?

4、不写感叹句。

理由:因为感叹是个体经验,对别人/社会学研究没有参考价值。
“这个回帖太令人感动了!”这是无意义的话。
因为情感的个体差异性很大,你的感动在别人看来也许是「蠢」动,你的磁场可能是别人的焚场。
什么是有参考价值的话?——“这个回帖价值五角钱。”
有用的是对客观事实的描述,无用的是个人感情的抒发。
例如写乐评,有用的是对创作背景的介绍,无用的是“深深地触动了我内心深处某个柔软的地方”这种废话。

5、不评论,只说事实。

理由:时事评论是社评家的事,你不是社评家,所以最好不要干这种事。
在你的 followers 有 10000 人之前,不管说什么都等于放屁,屁民的言论甚至不能改变这个世界的一个像素,何必浪费气力。
对于推上的 Superstars,毫无疑问,twitter 是他们的扩音器,他们是迷途羔羊的太阳、舵手和灯塔。
而你,一个普通人,首先没有人关心你的观点,其次如果观点一致,你没有重复(附和)的必要。为什么要做没有增值的事情?
每个人都在做自己可以做到的事情。一个社评家发表评论,一是因为这是他养家糊口的工作,二是因为他也许真的可以改变一部分人的想法。如果这两个理由对你来说都不成为理由,那通常你的评论就是多余的杂音,学名叫做“咶噪”。
大多数情况下,只有事实材料才是可信赖的对象。例如 @aiww 老师,他是做事的人,他的威望值是由身体力行所做过的事情积累起来的,我们可以信赖这样的行动者。另外一些人,例如 @leungmantao 老师,他是评论家,粉丝很多,但我的意见是:不要相信评论家,他们的观点/结论不重要,重要的是去考量他提供的事实材料和辩证方法。
关注结果(观点)无益于个人成长。

6、避免陈腐的表达,尽量说有趣的话

例如“天上的云像棉花一样白”不如说“天上的云像苍井空的屁股一样白”有趣。
一个人很宅也就算了,如果还很无趣,那离废物也没多远了。

7、只关注程序员/科学家/移民中介……尽量不关注人权代表/律师/作家/记者/笑话大王/黑社会

理由:(假设前者称为A团伙,后者称为B团伙):
1)B团伙会让你成为愤青。然而百无一用是愤青
2)大多数时候,推上的B团伙在证明哺乳动物的一个属性:狗咬狗的时候永远比狗咬人的时候要多得多。不要让大脑被这种吵闹塞满。
3)观点一致的人没什么好关注的,因为可以从中学到新知识的机会不多,政治观点尤其如此。
4)如果要了解热点怪相,只关注机器人 @rtmeme 就足够。如同 RSS 订阅只需要订阅 玩聚,它们是中文世界里伟大的机器人。
5)行动比观点重要,用自己力所能及的方式去改变现实,而不是停留在评论现实上。从这个意义上看,A团伙是工具,B团伙是话剧。做个有用的人,要么去挖掘材料,要么去生产工具,把评点现象的机会留给别人。

8、终极必杀技

twitter上有个设置,Protect my tweets,勾选之后非 follower 看不到你的消息,从而成为真正的隐形人。
不用这么绝吧?

总结:减少干扰,保持清醒的头脑,避免情绪化,尽量具象地表达,做有实效的事情。

虽已自宫,未必成功

Posted by Sugar | Posted in 閱讀 | Reading | Posted on 2010-07-30

为了保持对生活的热情,偶尔打打鸡血也是应该的。这是去看一本有关”成功”的书的一个理由。

唯有具备品德,才能享受真正的成功与恒久的快乐。
一战后,人们对成功的基本观念由重视”品德”转而强调”个人魅力”,即成功与否取决于个性、社会形象,以及维持良好人际关系的圆熟技巧。……利用技巧以赢得好感,伪装自己以套取情报,虚张声势,甚至以威胁手段达到目标。

–《高效能人士的7个习惯》(原版书名:The Seven Habits of Highly Effective People)

这是第一章的主题:人品值决定成就感。(最近被方博士上房揭瓦的唐博士一定不同意此观点。)

在以往的工作中,我见识过许多中国特色的伟大发明:中文域名、通用网址、中国总机、网络猪、流量十分有限的行业门户,效率低下的建站系统……通过合适的”销售技巧”,基本都还卖得不错,产品价格跟价值未必有什么内在关系。
可以说,企业的”销售精英”就是产品的”三个代表”,他们负责虚假广告,提高虚无的”附加值”。

出于经验的原因,我对第一章的感触要更多一些,因为他至少解答了某些困惑:

  • 每天早上全公司一起喊”我是最棒的,一定会成功!“,这究竟有什么问题?
  • 流氓软件为什么可以称作”官方插件”和”国家支持”?
  • 为什么只要在一个二流企业待上几天就会被称之为”精英”?(据我所知从某著名报社到某流氓团伙都流行这一”无冕之冠”)
  • 为什么企业会相信建个小破网站就成了”互联网品牌”,就有了”国际声誉”?
  • 为什么有人愿意掏几万块钱在一个流量1W的”行业门户”上打广告?
  • ……

产品包装很伟大,销售精英很威武,成功的捷径是忽悠?答案恐怕是肯定的。”有时候速成的办法还颇管用”。

本书的第一章做这样的探索:我们要成为怎样的自己?我们的成功人生准备建立在什么基础之上?作者的回答是:以原则为中心,以品德为基础,反求诸己–由个人最基本的部分–思维、品德与动机–做起。

我们必不可停止探索,而一切探索的尽头,就是重回起点,并对起点有首次般的认识。
–T.S Eliot

书中介绍的7个「习惯」,我想只要是在一个尚属正常的团队中待过一两年的人应该不难形成这样的共识:

由内在到外在,可以分为3个层级–

  • 把握自我:从依赖到独立–
  • 习惯1:主动 (Be Proactive)
  • 习惯2:以目标作为起点 (Begin with the End in Mind)
  • 习惯3:把重要的事放在首位(Put First Things First)
  • 互相依赖与协作–

  • 习惯4: 双赢的思维(Think Win/Win)
  • 习惯5: 理解对方,然后被理解 (Seek First to Understand, then to be Understood)
  • Habit 6: 综合绩效( Synergize)
  • 自我恢复–

  • Habit 7:磨刀不误砍柴工( Sharpening the Saw)

作者 Stephen R. Covey(1932-)在1989年首次发行《高效能人士的7个习惯》,此书至今在全球已经卖出逾1500万册。在此基础上,他为18岁以下的小孩写过《高效能青少年的7个习惯》,2004年,出版续篇《高效能人士的第八个习惯》,2010年,Stephen成为犹他州州立大学乔恩米亨斯迈商学院的一名教授(78岁了)。

Stephen 老师归纳了一套理论体系,碰巧运气好卖得还不错,这无疑是他的富矿带,他继而奋起挖掘。如果他老人家哪天写出《高效能人士的第1001个习惯》,应该一点也不奇怪。
我承认我是因为有很多猛人提到这本书才去看的。

总的来说,这本书–注重个人的时间/任务管理,关注有实效的工作,强调投入和产出的平衡,认识自己的本质、价值观及才干,培养自尊自重和自制力,寻求内心的平和。不介意别人的看法,关心他人,学会接受和协作。不断学习。成为一个能够自我完善自我修复的普通人(未必是公众意义上的「成功人士」)。

参考资料:http://en.wikipedia.org/wiki/Stephen_Covey

大县城的生活亚克西(2):快递的先进性

Posted by Sugar | Posted in 日誌 | Live | Posted on 2010-07-22

Tags:

收过10几次快递了,几乎每个快递员都会抱怨按楼下的门铃没反应。
我说门铃坏了,你可以打电话啊。
得到的回答是,送这么多货每个都打电话那得多少话费啊。
上海大县城的快递公司难道没有话费补贴么?
以前在深圳的时候,通常快递员来之前会打个电话确定有人收货,送到了还会再打一次电话把人叫下楼(除非前台直接签收)。
大县城的快递太先进了,连1毛钱的电话都省下了,牙缝里的肉多半也能煮一锅汤出来。

昨天,又一快递上门。我拿着单子问他签字签哪里,他指指这又指指那,最后还是我把签字的位置找到。
我很奇怪快递员怎么会不知道自己公司的快递单在哪里签字?
这时才注意到他手上一叠单子五颜六色,来自不同的快递公司。
难道快递公司把送货上门的任务都外包了么?
难怪他们不愿意打电话,宁可尾随邻居上楼。

签完字他问,能不能把你手机借我打个电话。
我没多想,把手机递给他,随口问,你没带手机吗?
我以为他会回答没电、欠费或者送给丈母娘之类。
他没吭声,给下一个送货点打电话,约定见面地点。
我好像明白了,他这是给自己省话费呢。
大县城的快递员真有办法啊,借东家电话给西家打电话,再借西家电话给南家打电话……
我很担心他在用别人电话的时候自己的电话突然响起来。
如果有人说他为了防止家里的菜刀磨损,天天借邻居的菜刀切菜砍柴刷墙剃头刮胡。
我信。

去除 Wrodpress 主题中对版权声明内容的修改限制

Posted by Sugar | Posted in 代碼 | code | Posted on 2010-07-15

Tags:

” This theme is released under creative commons licence, all links in the footer should remain intact ”

如果在修改WordPress主题时看到这条信息,它表示:
这是大师我设计的主题,你丫就算只是把版权信息改掉一个像素,大师我也是万万不会答应滴!

怎么办?
如果你已经对主题进行了大量的修改工作,想加入一点说明文字,讨个安慰奖;或者原先的版权信息链接太多,想作删减。不管出于什么原因,程序对主题的版权声明进行了校验,如何去掉这个限制,以便可以自由地修改footer.php中的版权信息呢?
耍流氓是不道德的,不过考虑到“我国国情”,只要你生活在中国大陆,那就没关系。
确定你已经把主题改得面目全非,即使连原创作者翻开代码都认不出这是他亲戚了。

那就动手吧——

需要修改两个文件

  • header.php
  • function.php

首先打开header.php

第一行代码

<?php eval(str_rot13('shapgvba purpx_s_sbbgre(){vs(!(shapgvba_rkvfgf("purpx_sbbgre")&&shapgvba_rkvfgf("purpx_urnqre"))){rpub(\'Guvf gurzr vf eryrnfrq haqre perngvir pbzzbaf yvprapr, nyy yvaxf va gur sbbgre fubhyq erznva vagnpg\');qvr;}}purpx_s_sbbgre();'));eval(str_rot13('shapgvba purpx_shapgvbaf(){vs(!svyr_rkvfgf(qveanzr(__SVYR__)."/shapgvbaf.cuc")){rpub(\'Guvf gurzr vf eryrnfrq haqre perngvir pbzzbaf yvprapr, nyy yvaxf va gur sbbgre fubhyq erznva vagnpg\');qvr;}}purpx_shapgvbaf();'));
?>

删掉它。
在<head>结束之前,找到

<?php wp_head();check_header(); ?>

改成

<?php wp_head(); ?>

header.php修改完毕

打开function.php

找到这段

eval(str_rot13('shapgvba purpx_sbbgre(){$y=\'<fgebat><n uers="uggc://jjj.fxvacerff.pbz/">Jbeqcerff Gurzrf</n></fgebat> Qrfvtarq ol <fgebat>Ylcun <n uers="uggc://jjj.ylcun.pbz/">Qbznva Ubfgvat</n></fgebat> naq <fgebat>VzUbfgrq <n uers="uggc://jjj.vzubfgrq.pbz/">Nssbeqnoyr Jro Ubfgvat</n></fgebat>\';$s=qveanzr(__SVYR__).\'/sbbgre.cuc\';$sq=sbcra($s,\'e\');$p=sernq($sq,svyrfvmr($s));spybfr($sq);vs(fgecbf($p,$y)==0){rpub(\'Guvf gurzr vf eryrnfrq haqre perngvir pbzzbaf yvprapr, nyy yvaxf va gur sbbgre fubhyq erznva vagnpg\');qvr;}}purpx_sbbgre();'));eval(str_rot13('shapgvba purpx_urnqre(){vs(!(shapgvba_rkvfgf("purpx_shapgvbaf")&&shapgvba_rkvfgf("purpx_s_sbbgre"))){rpub(\'Guvf gurzr vf eryrnfrq haqre perngvir pbzzbaf yvprapr, nyy yvaxf va gur sbbgre fubhyq erznva vagnpg\');qvr;}}'));

删掉。
修改完毕。

现在可以随便蹂躏footer.php里的内容了。

参考:How to remove Encrypted Footer links from WordPress themes

autolinks="false"

如何把WordPress打造成团购导航

Posted by Sugar | Posted in 代碼 | code | Posted on 2010-07-14

Tags: ,

出来混,迟早要还的。不知道我国的山寨先驱王兴老师对美团如今被铺天盖地的山寨感受如何(虽然也是一山寨)?他就是旗帜,他就是方向。这导致只要口袋里还有200块钱(域名+主机)的人,就相信自己可能是个CEO了。无数团购网站如闻到肉味的蚂蚁一般在全国各地冒出来,大量农民工找到了创业的解决方案,好吧,这也可以算是件好事。

能不能把这些分散的团购资源集中到一起展示,让消费者可以货比三家?作为团购垂直分类的hao123——团购导航应运而生。
凭借第三方在线工具的协助,通过对 WordPress 的定制可以迅速实现这一项目,节省全新开发所需要的时间成本和人力成本。

首先确定需要实现的功能和呈现方式:

  1. 自动获取自动发布;
  2. 列表页/首页显示每个产品的5个字段:名称、缩略图、当前价格、原始价格、结束时间。
  3. 详细页可以看到产品具体信息,重要的是,让它看起来真的像是我们经验中的产品展示的样子,而不是一篇普通的博客文章。
  4. 可以按地区查看,毕竟本地服务是这类站点的一个特色。

如何避免目前大多数团购导航存在的问题:

  1. 首页文件过大,大部分直接读取了原始大小的图片(只是缩放了显示尺寸)。
    解决方案:本地生成小尺寸的缩略图;
  2. 获取字段过多,频繁获取几十个站点的数据,导致运行效率低下,经常造成浏览器假死。
    解决方案:去掉“目前团购人数”,这不是消费者重点关注的内容,为了这个数字频繁取值损失效率得不偿失。只在目标站点更新的时候获取一次数据就够了。宗旨是:简单,易用(够用就好)

方案确定之后就可以开工了——

第一步:用第三方在线工具把目标站点抓取成Feed。

通过Yahoo pipesFeed43或者 Dapper 把目标站的内容按照需要烧制成Feed。
由于Feed只有3个字段:标题、内容和时间,除了这3个字段,我们还需要当前价格、原始价格和团购结束时间。
方法是把这3个数据追加到标题上,用一个特殊符号“︰”间隔开(便于后期处理),注意这个不是冒号,只是个貌似冒号的制表符号,不管用什么符号,只要这个符号不会跟标题中的字符一样就可以,因此选择平常极少用到的符号作为字段的间隔符。
团购结束时间是比较麻烦的部分,因为各个站点采用的格式不一样,这意味着我们要在这个数据上进行再加工。大多网站用JavaScript显示倒计时,获取不到具体数字,但是可以得到辅助数据,那么——

1)大部分站点在剩余时间附近的div标签内通常会有 diff=”149445000″  这一形式的数据,把那串数字获取到,它表示剩余时间的毫秒/秒数;
2)某些站点这一数字出现在页面的javaScript中,而不是HTML标签里,一样把它获取过来。
3)可以直接得到结束日期的,组织成“年月日”连缀的格式,如“20100101”;

第二步:用WordPress的插件获取Feed内容

可以用的插件是 FeedWordPress 或者 wp-o-matic,它们都可以定时自动获取Feed,区别是后者可以把图片获取到本地。
根据Feed的不同来源分配到不同的地区类别里,Tag则用来区分来源站点。
这样,我们的团购导航就可以按地区查看,也可以按来源站点查看。

第三步:生成缩略图

也有两个插件可以选用:WP-Thumbnails或者post-thumb,它们可以把正文中第一张图片处理成你定义的大小,全自动执行。
WP-Thumbnails 是国人写的一款插件,能够精确抓取和裁剪,并按月份存储到不同目录。缺点是抓取效率低,10多个缩略图需要刷新3至5次,3分钟才能完成。
post-thumb 抓取相对快些,前台刷新1次即可全部自动生成,缺点是有10%的概率会出现缩略图匹配不正确的情况,即某个缩略图会被多篇不相关的文章调用。
根据插件的说明文档代码粘贴至index.php和archive.php的列表循环中,让缩略图显示到首页和列表页。

第四步:用javaScript进行乾坤大挪移,拆分并填充各字段内容

鉴于你不是一个代码小白,所以我只说要点,如果不幸你真的是代码小白,我对你能从开头看到这里表示惊讶,同时也很抱歉。
1)把标题上的产品名称、当前价格、原价、团购到期时间分配到各自的位置;

function fixText(){	//找到标题所在位置
	var pName = document.getElementsByClassName("tt");
	for (var i=0;i<pName.length;i++){
		var getStr = pName[i].firstChild.nodeValue;	//获取标题中所有字符
		var restoredArray = getStr.split("︰");//split()是重点,把标题中的各字段分开
		var Na=restoredArray[0]	//赋值
		var Np=restoredArray[1];
		var Op=restoredArray[2];
		var Nd=restoredArray[3];
		var okNp = document.createTextNode("¥" + Np);//创建节点内容
		var okOp = document.createTextNode("原价:¥" + Op);
		var okNd = document.createTextNode(Nd);
		var newPrice = document.getElementsByClassName("new-price")[i];
		var oldPrice = document.getElementsByClassName("old-price")[i];//找到位置
		var dNumber = document.getElementsByClassName("what-date")[i].setAttribute("data-num",Nd);//把时间参数存进data-num这个属性,这是HTML5支持的自定义方式,目前浏览器不支持THML5也没关系,不影响显示,只是通不过W3C校验
		pName[i].innerHTML = Na;//重写标题,去掉价格和时间,避免浏览者看到这些“暗号”产生困惑
		newPrice.appendChild(okNp);//填充内容
		oldPrice.appendChild(okOp);
		//dNumber.appendChild(okNd);
	}
}

2)处理得到的时间参数,把剩余天数的值存入变量dNumber

var dNumber = whatdate[i].getAttribute("data-num");//从自定义的data-num属性里得到参数
		if (dNumber<10){
			dNumber = dNumber;//直接可以得到剩余天数的数值不变
		}
		else if (dNumber>21600 && dNumber<432000){  //当得到剩余时间为秒数时,划定5天范围,1天=86400秒=24小时X60分X60秒
			dNumber = Math.floor(dNumber/86400);
			}
		else if (dNumber>21600000 && dNumber<432000000){//当得到剩余时间为秒数时,划定5天范围,1天=86400000秒=24小时X60分X60秒X1000毫秒
			dNumber = Math.floor(dNumber/86400000);
			}
		else if (dNumber>432000000 && dNumber<2277135700){
			dNumber = Math.floor(dNumber/311040000); //个别网站数字巨大,不知道是什么意思,尝试除以一个恰当的参数,使得到的剩余天数与该网站的实际情况相符就行了
			}
		else if (dNumber>10 && dNumber<120){//当得到的剩余时间为小时时,划定5天的范围
			dNumber = Math.floor(dNumber/24);
		}
		else if (dNumber>20100601 && dNumber<20201213){ //当得到的时间为“年月日”时,划定日期范围
			dNumber = dNumber.substring(6)- endD; //计算与当前日期(endD)的时间差值
			if (dNumber <0){
				dNumber = 30 + dNumber;
			}
			}
		else {
			dNumber = 0;//未知情况,假定当天结束好了
		}

如果加载页面的同时处理这一堆数据的话,浏览器可能会卡死,让这个函数延迟2秒执行

setTimeout("timeCounter()",2000);

3)产品详细页可以这样处理

var p_bigPicture = document.getElementById("content").getElementsByTagName("img")[0]; //找到正文内容中的第一张图片
p_bigpic.appendChild(p_bigPicture); //把这张图移动到想要的位置

让详细页看起来更接近淘宝的产品页,符合网上购物者习惯中的印象,不至于把他们吓一跳。

完整的javaScript文件可以参考:layout.js(挪移页面元素完善布局), timecounter.js(计算剩余时间并启动倒计时)

第五步:WordPress 中的一点设置

Settings > Writing Settings > Formatting
把“WordPress should correct invalidly nested XHTML automatically”勾上,避免因抓取内容中不规范的标签而导致页面错乱,WordPress会自动校正,把标签闭合。

OK,打完收功。成品在此:http://www.TuanGouX.com

问答时间:

Q:大叔你弄这玩意儿花了多长时间?
A:13天。从决定要做,到确定方案,尝试各种实现的方法,经历无数失败试验和调整,再到全部部署完工。

Q:这算不算是垃圾站啊?
A:有时候你在为人民服务和公民道德楷模两者之间只能二选其一。实际上TuanGouX收到若干团购网站的CEO来信要求收录,其中某些具有远见卓识CEO表示可以为此付费

Q:有现成的团购导航程序下载为什么不用?
A:可以用。不用的原因是:1)这套PHP还有很大改进空间;2)WordPress更值得信赖;3)WordPress可以按照自己想法定制,可选用的第三方资源也很丰富。

Q:写这个指南你有什么不可告人的目的吗?
A:有。双赢的推广方式。你了解到新知识(如果算知识的话)的同时也记住了这个网站。不是吗?

Q:能不能公开这个 WordPress 主题?
A:不能。留口饭吃好伐?哥还指望这项目上市呢!至少这个总结已经可以帮你把实现目标的时间缩短了一半,有些体力活还是应该亲自体验一下,才能了知人间疾苦,才知道珍惜生活是不是?

最后,愿上帝保佑这些团购网站不要死得太快。

Paul Graham 谈写作

Posted by Sugar | Posted in 閱讀 | Reading | Posted on 2010-07-13

Paul Graham(1965-)是一个程序员,风险投资人,散文作家,在 Lisp 工作,是 Viaweb(被 Yahoo收购) 的创始人,3本书的作者。

作者:Paul Graham
原文地址:http://www.paulgraham.com/writing44.html
翻译:Sugar

(在答复一个电子邮件的过程中,我不小心写了一篇关于写作的小论文。我通常为一篇文章花费几个星期。这一篇花了67分钟–23分钟写作,44分钟修改。)

我认为写作比大多数人所意识到的重要得多。写作不只能交流思想,更能产生思想。如果你写得不好,或者不喜欢写,你将错失在写作中产生的大量想法。

如何才能写得好,这儿有一些简要观点:

  • 用最快的速度写下不好的第一个版本
  • 一遍又一遍地重写;
  • 删掉一切没用的东西;
  • 用对话的语气来写
  • 培养对坏作品的嗅觉,以便于在你自己的写作中发现并修正它;
  • 模仿你喜欢的作家;
  • 如果你没法开始,告诉别人你计划写什么,然后写下你所说的话;
  • 预计一篇文章中有80%的想法是在开始写作之后才会产生,有50%的想法开始是错的;
  • 对删减有足够的勇气;
  • 让你信任的朋友读你的草稿,告诉你哪些地方令人困惑或拖沓;
  • 不要(总是)把概要写得太详细;
  • 在写作前经过若干天的深思熟虑;
  • 随身携带一个小笔记本或便签纸;
  • 当你想到第一个句子的时候就开始写
  • 如果截稿期迫使你开始,那么就先写最重要的句子;
  • 写你喜欢的素材;
  • 不要试图写得惊心动魄;
  • 这过程中对改变主题不必犹豫;
  • 用附注防止跑题;
  • 用相同的词语开头把句子组织到一起;
  • 大声朗读你的文章,看看哪些地方因为使用了不恰当的词语而不通顺,哪些地方比较无聊的(那些你不敢念的段落);
  • 尝试告诉读者新的和有用的东西
  • 在一个完整的大段时间内工作;
  • 回头修改时,先把已经写好的再看一遍;
  • 写完后,让自己放轻松点开始修改;
  • 汇总你打算重写的要点在文件底部;
  • 不要觉得每个要点都非重写不可;
  • 尽可能为那些不会看这篇文章的人而写作,就像让流行歌即使在糟糕的汽车收音机里播放听起来也还不错那样创作
  • 发现错的马上改;
  • 请教朋友最让你困惑的句子;
  • 把尖锐的批评写得含蓄些
  • 把文章发布到网上,因为读者会让你写出更多,并会促使产生更多的想法;
  • 打印草稿,而不要只是在屏幕上看;
  • 用简洁的,日耳曼人那样的语言;
  • 学会区分离题千里和意外惊喜;
  • 学会辨别接近结束的方法,当出现迹象时,果断结束。

「语言」的量化

Posted by Sugar | Posted in 代碼 | code | Posted on 2010-07-12

搜一下相关资料和词条列表,大致的统计–

中文:

2001年版《新华词典》收录词条47231条;[via]
其中只有1/10是常用字–
中国大陆:现代汉语常用字表常用字部分:2,500字;
台湾:常用国字标准字体表:4,808字;
香港:常用字字形表:4,759字 [via]

外语:

考托福需要掌握 8000 词汇量 [via]
考GRE需要掌握 22000 词汇量 [via]

Web 开发/编程:

HTML 4.01 一共有 91 个标签(tag) [via]
截止到2009年5月,HTML 5 一共有 105 个标签 [via]
CSS 2 一共有 98 个属性(property) [via]
javaScript 涉及到的对象(object)、属性(property)、方法(method)和事件(event)总共大概有 400 个 [via]
C语言有 242 个函数(function) [via]
PHP总共有 3388 个函数(砖家说300个就够用) [via]

 Page 1 of 8  1  2  3  4  5 » ...  Last »