Monthly Archives: November 2015

王垠博客摘抄

1. 编程的智慧 一 反复推敲代码 二 写优雅的代码 三 写模块化的代码 四 写可读的代码 五 写简单的代码 六 写直观的代码 七 写无懈可击的代码 八 正确处理错误 九 正确处理null指针 十 防止过度工程 根据这些,我总结出来的防止过度工程的原则如下: 先把眼前的问题解决掉,解决好,再考虑将来的扩展问题。 先写出可用的代码,反复推敲,再考虑是否需要重用的问题。 先写出可用,简单,明显没有bug的代码,再考虑测试的问题。 2. 如何对用户更加友好,是一两句话说不清楚的事情。所以这里只粗略说一下我想到过的要点: 统一:随时注意,人是一个统一的系统的一部分,而不是什么古怪的神物。基本上可以把人想象成一个程序模块。 抽象:最大限度的掩盖程序内部的实现,尽量不让人知道他不必要知道的东西。不愿意暴露给其它程序模块的细节,也不要暴露给人。“机所不欲,勿施于人”。 充要:提供给人充分而必要(不多于)的机制来完成人想完成的任务。 正交:机制之间应该尽量减少冗余和重叠,保持正交(orthogonal)。 组合:机制之间应该可以组合(compose),尽量使得干同一件事情只有一种组合。 理性:并不是所有人想要的功能都是应该有的,他们经常欺骗自己,要搞清楚那些是他们真正需要的功能。 信道:人的输入输出包括5种感官,虽然通常电脑只与人通过视觉和听觉交互。 直觉:人是靠直觉和模型(model)思考的,给人的信息不管是符号还是图形,应该容易在人脑中建立起直观的模型,这样人才能高效的操作它们。 上下文:人脑的“高速缓存”的容量是很小的。试试你能同时想起7个人的名字吗?所以在任一特定时刻,应该只提供与当前被关注对象相关的操作,而不是提供所有情况下的所有操作供人选择。上下文菜单和依据上下文的键盘操作提示,貌似不错的主意。 3. 牛校综合征 舔牛校的屁股。 显示牛校的标签。 … Continue reading

Posted in Uncategorized, 他山之石 | Leave a comment

Linux commands tips

1. check disk usage $ df -hl –total /home /fastdisk Reference: http://unix.stackexchange.com/questions/64815/how-to-print-the-percentage-of-disk-use-from-df-hl

Posted in CS Research&Application, Uncategorized | Tagged , | Leave a comment

Mobile Development in Startup

From native to hybrid app development and back Define What You Need Your App To Do — Now, And In The Future   Don’t Let Business Needs Outweigh User Expectations   If You Choose Native, Focus On One Market First Reference: … Continue reading

Posted in startup, Uncategorized | Tagged , , , | Leave a comment

Objective C Syntax Tips

Method to initialize a CGRect (C99 initializer syntax) CGRect a = CGRectMake(a+c/2, b+d/2, c, d); => CGRect a = (CGRect){ .origin.x = a+c/2, .origin.y = b+d/2, .size.width = c, .size.height = d }; “It’s longer, but it’s more explicit. It’s … Continue reading

Posted in iOS, Uncategorized | Tagged , , , | Leave a comment

《道可道》摘抄

一、《老子》的要义 1、老子其人与《老子》其书 “老子”到底是个什么人?在《史记》中就有三个不同的版本。后世研究者莫衷一是。 “老子”到底是一个人还是同属一个思想流派的几代人的统称?至今众说纷纭。 历代《老子》的注解多如牛毛。可以说,有多少种注解,就有多少个版本的《老子》。 由于年代久远,资料散轶,对老子其人与《老子》其书,其实并没有真实可靠的定论。但是,并不能因为没有定论,就认为某一种说法和版本是正确的。“存疑”是合乎理性的,“盖棺定论”是荒谬的。 2、《老子》是写给什么人看的?这本书的写作目的是什么? 《老子》是写给统治者看的,目的是教导他们如何治国。 《老子》不是写给被统治者看的,不是写给弱者看的,不是写给loser看的。这本书里面没有心灵鸡汤,没有阴谋诡计,没有神仙上帝。 《老子》的表述方式虽然玄之又玄,但是其标靶却是现实中的眼前事。 3、《老子》思想的要点是什么? 四个字——崇本息末。 以种树为例,人应该重点养护地下不可见的树根,为其施肥、浇水,这样,地上可见的枝叶自能繁盛。如果反过来照顾枝叶而不顾树根,则短期内可能看到一个虚假繁荣的景象,长期则树木枯败。 再以养生为例,如果一个人生活规律、运动适度、营养均衡、心情愉悦,就会容光焕发。如果他只顾在脸上涂脂抹粉,熬夜、不运动、营养失衡、心情恶劣,虽然短期内看上去很美,时间一长,生命必会枯竭,容颜必会衰老。 做人做事,都把重心放在最关键的核心要点上,长期投入,似缓实速。 4、怎么理解“无为”? “无为”不是什么都不做,而是顺应规律和形势,不胡乱作为。 历史上,朝代更迭之后,新的统治者还未稳固中央集权,来不及严加管束,任由百姓发展时,国家最兴旺,人民最幸福。一旦新的秩序建立,统治者开始严加管束,则国家开始衰弱。 每当有汉武帝这种强有力的君主出现时,必然会导致百业凋敝,人民困苦。 我们也要清楚,“君之道”与“臣之道”并不相同。君虚静无为,而臣则要积极有为。君臣关系,就像人体的意识与器官,前者不要胡乱干预,后者则要恪尽职守。 5、怎么理解“无为而无不为”? 治理一个国家,就像在无边无际的大海上驾驶一艘船,应该视天气和风浪的情况而选择进退,才是长治久安之道。 明智之人,都懂得“形势比人强”。 如果驾驶员一定要达到某个目标,无视外界情况和船员安危,不停地加大马力、转换航向,则船有覆灭之险。 6、中西思想分野 熊逸先生认为,西方哲学是“爱智求真”之学,一开始并没有什么明确目的,只是单纯地满足人的好奇心和求知欲,但却由此产生了基础科学,并在世间产生了巨大的功用。 中国先秦思想则是“实用之学”,一开始就是为了解决实际问题而来,结果问题始终没有得到有效解决。 归结原因,是不是“崇本息末”的反面——“舍本求末”? 有一段时间,哲哲曾经热衷于研究“生涯规划”,也时常给自己设计很多计划,树立很多目标。但以老子的眼光来看,很多都是乱作为。 首先说说“生涯规划”。要想制定成功的“生涯规划”,人必须拥有“上帝视野”,能够清晰地看到自己这一生中的形势、变化、机缘。但是,我能看得清楚这些吗?如果看不清楚,所谓“生涯规划”岂不是一个大笑话? 其次谈谈人生目标。我的人生目标,比如“三千卷”、“一百景”、“千里奔”等等,当然不错,但也要根据具体情况来调整。到了不同的人生阶段,就应该有不同的重点。 还是那四个字——“崇本息末”。每天好好睡觉,合理运动与饮食,顺其自然,心情愉悦;根据自己的特质,爱智求真,享受乐趣;在工作中发现价值,解决问题,满足需求。此外,不要胡思乱想。 二、对《老子》的诘难 1、物极必反吗? 如果说万事万物发展到了极致,必定会走向自己的反面,那么,“大胖必瘦”?“巨富必贫”?“强国必弱”?以上三例,与“强者恒强”比起来,孰更有理? 2、柔弱胜刚强吗? 道家及中医,常以“舌”常在而“牙”早掉为例,论证“柔弱胜刚强”的道理。但是要知道,坚硬的牙齿之所以脱落,是因为柔弱的牙龈出现了问题。如果牙龈不出问题,牙齿的存在时间要比舌头长得多。 《老子》强调:“坚强者死之徒,柔弱者生之徒”。 对比《易经》上的:“天行健,君子以自强不息。” 哪个更有理? … Continue reading

Posted in 阅读观影赏乐, Uncategorized | Tagged , , , , , | Leave a comment

Retsly/Zillow Hackthon Experience

I worked with three guys to build a product in Retsly/Zillow Hackathon (zip.code 2015: Retsly Real Estate & Public Data Hackathon) We established a platform and iOS app to search events, foods, drinks, party, gym pets, schools near a certain address … Continue reading

Posted in CS Research&Application | Tagged , , , , , , , | Leave a comment

Regular Expression Interesting Usage Cases

1) misspelled words matching Example: sep[ae]r[ae]te to match “seperate”, “separete”, “seperete”, “separate” li[cs]en[cs]e to match “license”, “lisense”, “licence”, “lisence” Reference: Character Classes or Character Sets http://www.regular-expressions.info/charclass.html 2) calendar date matching Example: Feb(ruray)? 23(rd)? to match February 23rd, February 23, Feb … Continue reading

Posted in CS Research&Application | Tagged | Leave a comment