前言:以前都是自己憋代码,给定一个任务,自己想算法、自己实现,学习的速度其实很慢,而且也不能充分借鉴别人的长处。后来看到一句话,“we learn from great code”,其实在网上有很多优秀的开源项目,对于个人来说,完全没有必要闭门造车,既耗费时间也不一定做得比别人好。所以,以后每隔一段时间就学习一个开源项目,不一定像hadoop、linux那样很著名,太庞大也hold不住,也可以是一些很小很精致的project,关键在于能够学到新东西,不管是哪一方面的,只要是以前不懂的都可以写。每次学习之后写一篇blog总结一下,否则人就容易变懒。
废话不多说了,第一次学习一个kaggle比赛的大牛代码,源代码可以戳https://github.com/rafacarrascosa/samr 比赛相关的信息可以看http://www.kaggle.com/c/sentiment-analysis-on-movie-reviews
1. 各种开源软件的license的差别
可以参见http://www.awflasher.com/blog/archives/939
长话短说,GPL是说你一旦修改了我的代码必须以GPL协议开源;LGPL则是说商业软件可以链接开源库,此时不需要开源商业软件,但是如果对开源库作了修改,就必须把修改的部分开源;BSD则是比较随意,修改了之后闭源也可以,但是如果你用开源代码导致除了问题,项目的作者是不会负任何责任的。本项目是BSD协议的。
2. 如何在github上书写良好的README.md
目前github采用的是markdown的语法格式,说白了就是text to html,通过在纯文本里面添加一些特殊格式的符号,系统会帮助你将其转化成html的格式进行显示。
作为入门的基础可戳 https://help.github.com/articles/markdown-basics
一哥们还写了一个挺不错的markdown在线编辑器,也可以参考:http://mahua.jser.me/
3. 配置文件的书写
python里面有一个ConfigParser类,可以帮助我们来进行配置的管理,示例用法: