本文参与了「利器社群计划」,发现更多创造者和他们的工具:http://liqi.io/community/ ,着重推荐了本人重度使用的工具库以及多年来总结出的工作流。除此之外,也探讨了我的职业生涯转折点、最理想的工作环境以及平时获得工作灵感的一些方式。
进去看看Blog
Dec 4 2016
Mar 12 2016
前文曾提到过解决一个算法问题,大概可以划分为三个阶段。第一阶段是算法设计,即人脑准确无误理解算法问题,并设计算法,这一阶段属于模型在思维上的构建。第二阶段是算法实施,即程序员用自己钟爱的语言对思维上的模型进行现实化,依靠计算机来获得结果,这一阶段属于模型在代码上的构建。最后一阶段,即计算机执行程序员给定的命令,并返回其所希望的结果,这一阶段属于模型在计算机硬件上的构建。为了保证最终输出的正确性,这三个阶段不能发生任何可预见或者意想不到的错误。算法运行中的精度问题在前文中已有所描述,这一次我们来谈谈算法实施阶段,并以Codeforces 598D来说明如何写更精简的代码。
进去看看
Feb 15 2016
从系统的角度来看,给定一个算法问题和输入,要使得计算机输出正确的结果,那么必须保证至少下面三个环节是正确无误的。
- 算法设计 (思维上的构建)
- 算法实施 (代码上的构建)
- 算法运行 (计算机硬件上的构建)
这其中的任一环节出现了错误,都无法保证最终的正确结果。前两个环节主要取决于人的能力(理解问题,解决问题)与细心程度,而最后一个环节重点在于人对计算机的底层理解。换句话说,即使问题在我们的脑海中已被完美解决,但在算法运行时,计算机对该问题的重新表达可能会出现偏差。最常见的偏差就是计算机精度问题,毕竟是以离散来逼近连续,出现『精确的错误』是在所难免的。但当正确性和高精度只能二选一时,显然没有人会因为高精度而追求精确的错误。这篇文章就以Codeforces 598C这道题来探讨第三个环节算法运行中的精度问题。这道题目本身并不难,但在正式比赛中只有57个人AC,仅低于F题。说其不难,是因为算法设计以及算法实施环节太显而易见了,但这么低的AC率就是因为大多数人在这道题精度上出了问题。
进去看看
Feb 15 2016
最近几年,越来越多的人基于Jekyll,Octopress或者Hexo等渲染框架在Github上建立了自己的静态博客。有了这些渲染框架后,你只要知道最基本的 markdown
语法(对于Emacs用户,会用 org mode
),选择一个自己喜欢的网站主题,然后其他事情基本就不需要关心了。这样的好处是,写作者能更加专心于写作内容,同时更加方便的把自己的思想见解经验在互联网上共享出来。关于如何利用以上技术在Github或者Gitcafe上建立个人博客的文章几乎已经漫天飞了,但是有的时候我们更希望拥有一个全面的网站,这个网站可以包含我们的维基子站点或者项目子站点。但是目前的文章以及渲染技术主要都是针对个人博客的建设,本文试图弥补这个空缺,提出利用Github Pages来部署个性化子域名站点的方法。读完本文,你就可以创建诸如 wiki.greenwicher.com
或者 love.greenwicher.com
这类的子站点了。
Dec 6 2014
万物之始,大道至简,衍化至繁。后来者的我们面对纷繁的股票市场,如何才能把握最初的本质?神奇公式试图回答这一问题,通过投资回报率发现一家质优的好公司,通过收益率发现一家价低的好股票,然后持有直至市场恢复理性给予质优价低股票合理的价格为止。通过历史回测,作者确实发现利用神奇公式可以跑赢大盘不少,但神奇公式的一个原则是你要深信不疑的相信,直到市场恢复理性的那一天。面对神奇公式是有效的这个不可证伪的命题,我们不经疑问,作者为什么要公布这一有效可以持续获利的秘密呢?
进去看看
Dec 3 2014
嚼得菜根,做得大事是母校前身的校训。这一句话虽然看似很空泛很鸡汤,你或许会说身体力行更为重要,但前进的路途中不时会忘记初心,忘记这些简单的真理。知行合一,一直觉得大道至简,与其以有涯随无涯,耗散自身宝贵的精力迷乱于千种选择和缤纷信息,不如选好一个方向,坚持下去,对人生做复利,终成正果。
投资也如此,随机致富的傻瓜少而又少,但面对这复杂的世界,机会可谓是何时何地总会有的。因此达到全局最优可能是奢望,但即使是局部最优也足以让你收获颇多。因此我们应该做的是有把握的选择能力圈内的最好决策,而非捡了芝麻丢了西瓜的随意决策。真正研究股票本质(基本面,市场面,无谓投资或者投机,只要并非简单交易提供流动性就好),即使最终无法让你的财富增长,也可以丰富你的阅历和见识,总之而言,可能辛苦,但并非一件苦差事。至于具体的股票投资,选股选时可谓最基本但也是最重要的决策。
进去看看