摘要: “科学”一词,指发现、积累并公认的普遍真理或普遍定理的运用,已系统化和公式化了的知识。经过四百年的发展,科学取得了辉煌的成就。今天,任何国家,任何民族,任何信仰的人,都无异议地在学校里接受科学教育,以致于我们认为科学能够解决一切问题,并且把“是否科学”作为检验事物正确的标准。 其实“科学”是人们认识事物的一种方法,即通过实证的方式,由实践对理论进行检验。科学的方法不受主观意志的影响,我们暂且称其为“心外求法”。这种实证的方法具有普遍性、可靠性和实践性。 在科学产生以前,人类的知识来自宗教。通常僧侣和祭司是学识最渊博的智者。那是人们获取智慧的方式是通过渐修、顿悟等方式,通过内心的感悟来得到真理.阅读全文
posted @ 2012-02-21 15:21 Holbrook 阅读(176) 评论(3) 编辑
摘要: git-emacs在Emacs中实现了git命令行的所有功能,并且基于Emacs的强大功能使用起来更加方便。
使用git-emacs,不需要在Emacs和Terminal之间来回切换,提高了效率。阅读全文
posted @ 2012-04-26 09:46 Holbrook 阅读(820) 评论(0) 编辑
摘要: 除了Evernote官方提供的各种客户端,还可以在Emacs中使用Evernote。这就是evernote-mode。阅读全文
posted @ 2012-04-24 22:36 Holbrook 阅读(1111) 评论(0) 编辑
摘要: 用Org-mode实现GTD有了Org-mode强大的任务管理功能,再配合其他一些Emacs插件,可以很容易实现个人时间管理(GTD)。 如果不了解GTD,这里可以让你在两分钟之内对GTD有一个初步的认识。Table of Contents1 如何进行GTD1.1 收集1.2 整理1.3 组织1.4 回顾1.5 执行2 用Org-mode实现GTD2.1 文件的划分2.2 任务状态2.3 标签设计2.4 属性设计2.5 初始化文件2.6 定义转接(Refiling)3 使用场景3.1 快速收集信息3.1.1 快速启动3.1.2 模板定义3.2 查看日程表3.3 每日计划3.4 按状态查询3.5阅读全文
posted @ 2012-04-17 23:30 Holbrook 阅读(997) 评论(2) 编辑
摘要: Org-mode能够完美解决任务管理的各种问题,包括任务/子任务的划分,关键时间的设定,任务状态变化的跟踪,以及任务的检索和查询。 再配合Org-mode的强大编辑功能, 能够实现很多功能,比如时间管理(GTD),项目计划和管理,工作日志等。阅读全文
posted @ 2012-04-14 22:11 Holbrook 阅读(1165) 评论(0) 编辑
摘要: 从这一篇开始,可以说已经脱离了Emacser的初级阶段,开始探索“无处不emacs”之旅。首先,当然是如何用emacs浏览网页。至于为什么要用emacs浏览网页,可以找出好多理由:比如速度快,支持emacs的快捷键,编辑文档时不需要从浏览器拷贝再粘贴到emacs,以及咳咳~,隐蔽性强。 而关键的理由一条就够了:我喜欢!阅读全文
posted @ 2012-04-10 16:17 Holbrook 阅读(1306) 评论(1) 编辑
摘要: 如果你曾经是java开发者并开始写python,那么你一定十分怀念maven的依赖管理和自动构建功能。zc.buildout恰好是你需要的答案。buildout不但能够像setuptools一样自动更新或下载安装依赖包,而且还能够像virtualenv一样,构建一个封闭的开发环境。阅读全文
posted @ 2012-04-08 13:23 Holbrook 阅读(1028) 评论(0) 编辑
摘要: join()方法使得线程可以等待另一个线程的运行,而setDaemon()方法使得线程在结束时不等待子线程。join和setDaemon都可以改变线程之间的运行顺序。阅读全文
posted @ 2012-03-21 16:23 Holbrook 阅读(1185) 评论(0) 编辑
摘要: 很多时候,线程之间会有互相通信的需要。常见的情形是次要线程为主要线程执行特定的任务,在执行过程中需要不断报告执行的进度情况。前面的条件变量同步已经涉及到了线程间的通信(threading.Condition的notify方法)。更通用的方式是使用threading.Event对象。threading.Event可以使一个线程等待其他线程的通知。其内置了一个标志,初始值为False。线程通过wait()方法进入等待状态,直到另一个线程调用set()方法将内置标志设置为True时,Event通知所有等待状态的线程恢复运行。还可以通过isSet()方法查询Envent对象内置状态的当前值。举例如下:阅读全文
posted @ 2012-03-21 06:37 Holbrook 阅读(1265) 评论(0) 编辑
摘要: 规则引擎是一种相对简单的推理机,使用规则引擎可以将业务决策从应用程序代码中分离出来,并使用预定义的规则语言编写业务决策。本文是规则引擎系列的第一篇,介绍规则引擎的一些基本概念。阅读全文
posted @ 2012-03-20 20:54 Holbrook 阅读(886) 评论(0) 编辑
摘要: Django ORM在映射继承关系时非常灵活,不仅能够实现JPA约定的SINGLE_TABLE、TABLE_PER_CLASS、JOINED三种方式,还可以灵活的自定义;甚至通过python的动态语言特性,支持代理模型和多重继承的功能。但是正因为灵活,所以在使用的时候一定要非常注意,通过manage.py的sqllall功能,观察产生的sql语句,可以验证继承的实现机制,避免带来意想不到的问题。阅读全文
posted @ 2012-03-18 20:28 Holbrook 阅读(1117) 评论(9) 编辑
摘要: 纵览了常见的组织结构模式之后,很容易发现在组织机构中常见的几种关系。这些关系都将表现为通用组织结构模型中的委托关系。具体包括:
组织单元间的包含关系;
岗位与部门的从属关系;
同部门岗位之间的上下级关系;
部门负责人岗位;
跨部门岗位之间的上下级关系;
聘任关系。阅读全文
posted @ 2012-03-17 14:30 Holbrook 阅读(284) 评论(2) 编辑
摘要: Python的Queue模块中提供了同步的、线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列PriorityQueue。这些队列都实现了锁原语,能够在多线程中直接使用。可以使用队列来实现线程间的同步。阅读全文
posted @ 2012-03-15 14:51 Holbrook 阅读(1233) 评论(0) 编辑
摘要: 互斥锁是最简单的线程同步机制,Python提供的Condition对象提供了对复杂线程同步问题的支持。Condition被称为条件变量,除了提供与Lock类似的acquire和release方法外,还提供了wait和notify方法。线程首先acquire一个条件变量,然后判断一些条件。如果条件不满足则wait;如果条件满足,进行一些处理改变条件后,通过notify方法通知其他线程,其他处于wait状态的线程接到通知后会重新判断条件。不断的重复这一过程,从而解决复杂的同步问题。阅读全文
posted @ 2012-03-13 22:56 Holbrook 阅读(1137) 评论(7) 编辑
摘要: JQuery UI提供了强大的拖拽功能和良好的用户体验,同时又非常容易使用。本文介绍了常用的各种用法。阅读全文
posted @ 2012-03-13 17:26 Holbrook 阅读(2439) 评论(6) 编辑
摘要: 如果你已经习惯了RDB的端庄,又对NoSQL的妖娆心痒不已,不妨试试MongoDB。阅读全文
posted @ 2012-03-11 22:54 Holbrook 阅读(1693) 评论(1) 编辑
摘要: 我们都用过Django的django-admin.py和manage.py。其实,我们还可以扩展Django,实现自己的命令。阅读全文
posted @ 2012-03-09 15:23 Holbrook 阅读(1057) 评论(1) 编辑
摘要: 死锁在线程间共享多个资源的时候,如果两个线程分别占有一部分资源并且同时等待对方的资源,就会造成死锁。尽管死锁很少发生,但一旦发生就会造成应用的停止响应。下面看一个死锁的例子:# encoding: UTF-8import threadingimport timeclass MyThread(threading.Thread): def do1(self): global resA, resB if mutexA.acquire(): msg = self.name+' got resA' print msg ...阅读全文
posted @ 2012-03-08 16:31 Holbrook 阅读(1108) 评论(1) 编辑
