摘要:
本文已迁移到 http://thinkinside.tk/weblayer_nginx_keepalived/
后续更新都会在那边维护 阅读全文
摘要:
前面提到pyramid或将取代django成为最流行的python web框架,这篇是pyramid的一个快速入门。如果熟悉Django或Zope可以很快上手。 阅读全文
摘要:
话说天下大事,分久必合。在python web framework 的战国时代,Django几乎做到了一家独大。但如果其他的框架合纵联合,未必不能与Django一争高下。
现在这种融合的趋势已经显现,而Django如果依然固步自封,即使再强大,也会在历史的尘埃中销声匿迹。 阅读全文
摘要:
尽管有很多的免费镜像提供yum源服务,但是还是有必要建立自己的yum服务器,主要出于以下几点考虑:
网络速度:访问互联网可能比较慢
节省带宽:如果有大量的服务器,架设自己的yum源可以有效节省互联网带宽
联网限制:对于有些内网服务器,不能连接到互联网
对于RHEL(Redhat Enterprise Linux),需要购买服务
便于发布自己开发的rpm包 阅读全文
摘要:
git-emacs在Emacs中实现了git命令行的所有功能,并且基于Emacs的强大功能使用起来更加方便。
使用git-emacs,不需要在Emacs和Terminal之间来回切换,提高了效率。 阅读全文
摘要:
现在,你可以将系统中PDF的默认打开程序设置成Emacs了。 阅读全文
摘要:
除了Evernote官方提供的各种客户端,还可以在Emacs中使用Evernote。这就是evernote-mode。 阅读全文
摘要:
在自以为成熟世故,自以为理解了人生的今天,是否还记得年少时的梦想? 阅读全文
摘要:
用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 阅读全文
摘要:
Org-mode能够完美解决任务管理的各种问题,包括任务/子任务的划分,关键时间的设定,任务状态变化的跟踪,以及任务的检索和查询。 再配合Org-mode的强大编辑功能, 能够实现很多功能,比如时间管理(GTD),项目计划和管理,工作日志等。 阅读全文
摘要:
如果说LaTex是排版的终极,那么Org-mode就是编辑的终极! 阅读全文
摘要:
从这一篇开始,可以说已经脱离了Emacser的初级阶段,开始探索“无处不emacs”之旅。首先,当然是如何用emacs浏览网页。至于为什么要用emacs浏览网页,可以找出好多理由:比如速度快,支持emacs的快捷键,编辑文档时不需要从浏览器拷贝再粘贴到emacs,以及咳咳~,隐蔽性强。 而关键的理由一条就够了:我喜欢! 阅读全文
摘要:
如果你曾经是java开发者并开始写python,那么你一定十分怀念maven的依赖管理和自动构建功能。zc.buildout恰好是你需要的答案。buildout不但能够像setuptools一样自动更新或下载安装依赖包,而且还能够像virtualenv一样,构建一个封闭的开发环境。 阅读全文
摘要:
join()方法使得线程可以等待另一个线程的运行,而setDaemon()方法使得线程在结束时不等待子线程。join和setDaemon都可以改变线程之间的运行顺序。 阅读全文
摘要:
很多时候,线程之间会有互相通信的需要。常见的情形是次要线程为主要线程执行特定的任务,在执行过程中需要不断报告执行的进度情况。前面的条件变量同步已经涉及到了线程间的通信(threading.Condition的notify方法)。更通用的方式是使用threading.Event对象。threading.Event可以使一个线程等待其他线程的通知。其内置了一个标志,初始值为False。线程通过wait()方法进入等待状态,直到另一个线程调用set()方法将内置标志设置为True时,Event通知所有等待状态的线程恢复运行。还可以通过isSet()方法查询Envent对象内置状态的当前值。举例如下: 阅读全文
摘要:
规则引擎是一种相对简单的推理机,使用规则引擎可以将业务决策从应用程序代码中分离出来,并使用预定义的规则语言编写业务决策。本文是规则引擎系列的第一篇,介绍规则引擎的一些基本概念。 阅读全文
摘要:
Django ORM在映射继承关系时非常灵活,不仅能够实现JPA约定的SINGLE_TABLE、TABLE_PER_CLASS、JOINED三种方式,还可以灵活的自定义;甚至通过python的动态语言特性,支持代理模型和多重继承的功能。但是正因为灵活,所以在使用的时候一定要非常注意,通过manage.py的sqllall功能,观察产生的sql语句,可以验证继承的实现机制,避免带来意想不到的问题。 阅读全文
摘要:
纵览了常见的组织结构模式之后,很容易发现在组织机构中常见的几种关系。这些关系都将表现为通用组织结构模型中的委托关系。具体包括:
组织单元间的包含关系;
岗位与部门的从属关系;
同部门岗位之间的上下级关系;
部门负责人岗位;
跨部门岗位之间的上下级关系;
聘任关系。 阅读全文
摘要:
Python的Queue模块中提供了同步的、线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列PriorityQueue。这些队列都实现了锁原语,能够在多线程中直接使用。可以使用队列来实现线程间的同步。 阅读全文
摘要:
互斥锁是最简单的线程同步机制,Python提供的Condition对象提供了对复杂线程同步问题的支持。Condition被称为条件变量,除了提供与Lock类似的acquire和release方法外,还提供了wait和notify方法。线程首先acquire一个条件变量,然后判断一些条件。如果条件不满足则wait;如果条件满足,进行一些处理改变条件后,通过notify方法通知其他线程,其他处于wait状态的线程接到通知后会重新判断条件。不断的重复这一过程,从而解决复杂的同步问题。 阅读全文