1. Git and Workflow

    Git 和 SVN/CVS

    大学两年里,接触了三种版本控制系统:

    1. 第一个接触是 SVN。学子天地 网站目前使用的版本控制器就是 SVN。作为第一个接触的版本控制系统,SVN 给我一个很新鲜的感觉。SVN 是集中式的版本控制系统,即版本仓库是在一个服务器上,所有开发者从这个“中心版本库”里 checkout, update,然后向“中心版本库“ commit 自己的修改。
    2. 接触 SVN 大约半年之后,开始接触 Git。目前我自己的私人项目都使用 Git 来管理代码,并且在 Github 和 Bitbucket 上托管。Git 不同于 SVN,它是一个分布式的版本控制系统。所谓分布式是指每个开发者都拥有自己的代码仓库,并且可以从其他开发者(也包括服务器)拉取代码更新,Git 和 SVN ...

  2. Smart Pointer

    Introduce to Smart Pointer

    In computer science, a smart pointer is an abstract data type that simulate a pointer while providing additonal features. -- [WikiPedia](http://en.wikipedia.org/wiki/Smart_pointer)

    In the C++ language, smart pointer implements as a template class and override the behaviour of raw pointer, such as ...


  3. Callback

    Callback

    What is callback

    "A Callback is a piece of executable code that is passed as an argument to other code, which is expected to call back(execute) the argument at some convenient time." -- wikipedia

    Different programming languages have different implement of callback, but they are often implemented with subroutines ...


  4. Relearn Python DocString

    What is

    Docstring is a description statement in a function, a method, a module or a class. It becomes the special attribute __doc__.

    Any functions, modules, classes and packages should normally have docstring.

    One-line docstring

    Please note this:

    1. One-line docstring is surrounded by triple quotes, even thought they can write ...

  5. Thinking in my life

    在同龄人里,我算是较早地接触电脑。 当时是小学四年级,学校组织兴趣班,进行培训参加比赛。

    第一次培训,我接触了 Flash。因为从一开始就做的很顺利,所以很快就喜欢上 Flash。 接着在家里的电脑装上了这个软件,在家里疯狂地学习、制作 Flash。从纯粹的动画,到 AS 。 很快认识了 FrontPage 和 Dreamweaver 这两个软件,于是开始对制作网站感兴趣。

    当时做了 Flash ,做了网站,参加了比赛。也拿到很不错的成绩。 从那时开始,就不停地与电脑打交道。

    在那时,我已经会学少许的代码。Html CSS Js 以及 AS。

    一直满足于自己的成绩,直到小学毕业,进入初中。

    初中的班主任是个会电脑的人,为我们班制作了一个班级网站,ASP语言的。 一直以来就很好奇怎么编写动态的网站。这次终于找到一个方向。

    于是,初二的假期 ...


  6. A web manager for Octopress

    使用 Python 简单地实现了 web 方式管理 octopress

    以往使用 tumblr 或者是 163 博客,都有有一个可视化编辑器,发布也只需要按一下按钮就能实现了。 octopress 在这方面显得比较不方便(当然它是主张“像 hack 一样写博客”的一个博客系统,当然不一样啦)

    实现思路:

    python 能够使用 os.system() 或者 popen() 函数来调用系统命令,所以使用这个函数就可以调用 rake generate rake deploy 来创建和部署 octopress。

    编辑器方面 我使用的是 [Markdown-Editor](https://github.com/miclle/Markdown-Editor)。 另外还找到一个 [EpicEditor](https://github.com/OscarGodson ...


  7. About Comment

    关于注释

    一直觉得写程序,注释需要很多很多,那一行行的灰色的英文甚至比那些带着各种颜色的单词更让我觉得兴奋。 看了《代码整洁之道》的“注释”这一章又结合最近一些开发经验,对注释的看法有一个彻头彻尾的改变:没有注释的代码才是好代码。

    1. 注释存在的原因是你对你所写的代码不自信的一种心理弥补。你试图通过注释向维护者阐明这段代码在做什么要做什么。这种做法还不如重构代码,将代码写得清晰。只要程序思路够清晰,只要每个函数都只做一件事,只要KISS,维护者就能够看明白程序在做什么。
    2. 多了注释,就多了维护的成本。注释的地位常常介于实现代码与僵尸代码之间。很多时候对实现代码进行了修改却忘记修改注释,提供错误的注释比不提供注释更要迷惑维护者!这种情况非常容易发生,因为程序永远会有 bug …
    3. 需要特别提一下的是,维护者往往是几天几周几个月之后的自己。
    4. 但文档是必须的!不管程序是否有非开发者的用户都需要一份详细的使用操作文档。文档和注释不是一回事。


  8. Thought: What Can You Do After Learning Such Courses in College

    现在是凌晨 2:32。早到了该睡觉的时候,只是我怕睡了一觉之后我就把这一切都忘记了。所以趁着还多少有些记忆,记录下来。

    由一件事引入

    这是一个最近发生在我身上的真实故事:我在给一个朋友提供《Web程序设计》附加题题目建议的时候我提议让她做一个公文通爬虫。她开始的时候很愣,因为觉得爬虫是个很神奇。最后我把实现的思路告诉了她,她就基本自己完成了爬虫程序。

    其实很多时候,很多我们觉得很神奇的东西,很可能是我们早就明白的东西,只是我们还缺少一步“思考”,思考如何去运用这些知识,思考如何去创新。也许是长期的应试教育,使得我们教一是一,教二是二,所有的“创新”都是“零分”,慢慢地就失去了创新的能力。

    这篇文章,是希望能够给身边的朋友们带来一些启示,以及提示自己不要忘记如何“创新”与“思考”。

    我们学了什么

    现在我已经是一名大二的计算机专业学生。回想这大学的近两年学习,我学到了什么?

    (1) 过去的课程(除去例如体育、文史哲等课程): - 高数 - 线性代数 - 程序设计基础(真的很基础) - 计算机导论 ...


  9. Thinking about DETAILS

    关于细节

      事无巨细,最近的学习中,深刻地感受到每个知识点都可以学的很细,很深入。只是很多时候,我们只停留在认识这个层面上,可能还有部分人会更进一步地了解,但是很少有人深刻地专研下去,知道它如何产生,甚至了解这个知识点所涉及到的旁枝。例如,在完成实验报告的时候,一般人仅仅是完成了实验报告中统计的内容,可能还有些人把课本中提及的实验、练习也完成了,但是很少人会在此基础上做延伸,其实还可以再深入,例如这个知识点在实际生活中的应用,又或者与你所学的其他课程结合起来运用。除了这,应该还可以再继续下去,一直下去。

      这一点,也是我之前在微博提及的 “为什么,为什么还有,为什么”。 拿最近的一个作业来举例子。

    1. 使用 高斯列主元消去法 为什么比直接使用 高斯消去法 更好? - 因为选择大数做为主元,求解时除主元不会产生较大的误差。
    2. 为什么大数做主元,求解时就不会产生较大的误差? - 因为一个数除以另一个与该数相差几个数量级的数,所得的数。。。。(我只问了第二个为什么就已经打不下去了)
    3. 为什么? - 我上面的问题还没答出来呢→_→- -

      同样的,面对工作,我们也一样。在做一件事情的时候,永远可以再进一步地做下去。但很多时候我们很快就满足于当前并停止继续下去了 ...


Page 5 / 6