OTP Design Principles: Gen_Event Behaviour
1,事件处理原则 在OTP里,event manager是一个命名对象,它可以接收event 一个event可以是一个error、alarm或者一些应该被log的信息 在event manager里会安装一些event handler 当event manager被通知一个event时,event会被所有安装的event handler来处理 event manager实现为一个进程,而每个even ...
OTP Design Principles: Supervisor Behaviour
Supervisor Behaviour是一个用来实现一个supervisor进程来监控其他子进程的模块 子进程可以是另一个supervisor,也可以是一个worker进程 worker进程一般使用gen_event,gen_fsm或gen_server behaviour来实现 一个使用该模块来实现的supervisor有一个接口方法的标准集,包括跟踪和错误报告的功能 supervisor用来构 ...
Erlang里的make
Erlang自带一个make工具 我们看一个例子 目录结构: --Emakefile -include --test.hrl -src --test.erl -ebin Emakefile: {'src/*', [{i, "include"}, {outdir, "ebin"}]}. test.hrl: -record(server_opts, ...
Erlang:一个通用的网络服务器
原文: Erlang: A Generalized TCP Server 前面几篇文章里谈到了Erlang的gen_tcp网络编程和Erlang/OPT的gen_server模块,现在让我们将它们两者绑定在一起 大多数人认为“服务器”意味着网络服务器,但Erlang使用这个术语时表达的是更抽象的意义 gen_serer在Erlang里是基于它的消息传递协议来操作的服务器,我们可以在此基础上嫁接一 ...
使用EUnit进行单元测试
为了写一个好的产品,必定离不开完善的测试。 最近开始筹划项目,因此单元测试必不可少,一定要在开始的时候把测试做好,从下到上才能让产品更加坚固。 我们选择使用EUnit进行单元测试。使用Eunit的好处:减少代码的修改;提高开发速度;有利于接口与实现分离;有利于系统集成;还有测试本身可以作为一种文档。 1,首次从http://support.process-one.net/doc/display ...
local pid and remote pid
pid 既可以代表本地的process,也可以代表其他节点即远程 process,因此pid ! Msg,既可以向本地节点又可以向其他节点发送消息。 如何来区分local pid和remote pid呢,让我们先看看pid具体包含哪些信息。 打印pid变量的时候,其为X.Y.Z格式的数据,其中X代表的便是本地节点或者其他node(其可以为一个索引,指向某个已知节点),Y为4字节 unsigned ...
Application and Includeed Application
今天MailList中一个问题,在Application和Includeed Application中调用application:get_application/0,返回都是Primary Applicaion Name,为什么是这样呢? 在Erlang OTP中Application可以包其他Application,也就是Included Application。我前阵子在项目中也尝试使用Inc ...
Nitrogen web framework 入门
Nitrogen web framework 入门 Author: litaocheng@gmail.com Data: 2009-1-23 Version: 0.1 目录 1 概述 2 特性 3 期待 4 术语(Glossary of Terms) 5 应用的结构 6 一个简单的例子 7 更多阅读 1 概述 Nitrogen是一个使用Erl ...
python中类属性和类实例的属性的区别
环境说明:以下python代码均在python2.5下通过。 最近看到一些人在讨论python中类属性和类的实例的属性,我也来谈谈我个人对这个问题的看法,供pyer参考。 首先我们来简单的定义一个python的类: # coding: utf-8 class AAA(): aaa = 10 # 情形1 obj1 = AAA() obj2 = AAA() print obj1.aaa, ob ...
What's New in Python3.0
原文:What's New in Python 3.0 这篇文章主要介绍了相比于python2.6,python3.0的新特性。更详细的介绍请参见python3.0的文档。 Common Stumbling Blocks 本段简单的列出容易使人出错的变动。 print语句被print()函数取代了,可以使用关键字参数来替代老的print特殊语法。例如: Old: print &q ...
django,性能测试,以及对fastcgi下进程模型和线程模型的分析
/** *作者:张荣华 *日期:2008-11-15 **/ 之前网上有很多关于django的测试,他们的测试结果都表明django在fastcgi模式下,使用线程模型要比进程模型快,而且更稳定,具体文章见: http://irobot.blog.hexun.com/20332312_d.html http://taoyh163.blog.163.com/blog/static/195803562 ...
初识django, 一起进入python的世界吧
[size=medium]这几天花了点时间看了一下python世界中的django,正如某大所说,掌握另外一门语言是有必要的,同样我也作出了自己的选择。从这几天的学习中,我确实也发现其他语言及其框架等确实有一种与众不同的感觉。下面我把自己这几天看到的东西稍微作了一下总结,本文并不是django的教程,而是ahuaxuan对django的一些自己的理解,可能有些不成熟的地方,希望大家不要吝惜手中的砖头 ...
使用Django的 signals 和 contenttypes 实现新鲜事功能
看到很多SNS网站上,像校内,5G都有一个很棒的功能,就是登录之后在自己的首页,可以看到自己好友最新发生的动态。于是想到使用django其实可以非常简单的实现这个功能,并且效果比现在SNS网站所用的更好。 总体来说这个功能就是在用户发生某个动作的时候将其记录下来,我不知道别人是怎么实现的,也许是直接在发生那个动作的代码块里写死,也许是使用数据库的触发器之类,但是在django中,一个很简单的方法 ...
Twisted 编写的TCP转向连接程序
机房对外的系统安装的是Linux,内网有一台Windows机器,想找工作把3389端口转到Linux服务器上,每次临时启用。 安装了iptables,竟然提示缺少模块,配置也比较繁琐,所以就放弃了。 想到以前用过的twisted,于是自己写了一个小工具: from twisted.internet.protocol import Protocol, ClientFactory, Server ...
补发:澄清Python的Open class
在这里对我在Why not python?这帖子中的一些错误的看法进行澄清,避免造成误导。 那个帖子地址为http://www.iteye.com/topic/33665?page=1 下面我把帖子大概描述一下: 首先: suninny 写道要是Python也具备Closure(Block)的话我绝不会多瞧下Ruby。 接着: qiezi 写道 我倒觉得相比起ruby来,python只能算是中规中矩 ...
Why not Python?
Of snakes and rubies; Or why I chose Python over Ruby http://jesusphreak.infogami.com/blog/why_py 作者以自己的亲身实践对比了Ruby和Python,文笔不错啊,至少我这个四级看着通俗易懂…… 结论:Ruby在性能、丰富的库支持、语言支持、重量级应用、可维护性、语言哲学方面跟Python还有差距…… ...
Python, Ruby, Lua language family tree
Python, Ruby, Lua language family tree 没有java, c++的踪迹。
《Ruby/YARV/Python跨平台性能对比测试报告》(附单词频率统计实例)
( 由于本论坛不支持语法着色及格式化,只贴上部分内容 详情请进入我的博客,不足之处还望各位同学多多指正:http://blog.csdn.net/Rails/archive/2006/09/17/1232993.aspx ) 目 标:从一个文件中选出使用频率最多的30个单词 Ruby代码: def test count = Hash.new(0) for line in open("t ...
Sun公司收编JRuby
9月初,Sun公司雇佣了JRuby开源项目的两个核心开发人员Charles Nutter和Thomas Enebo,专职从事JRuby开源项目的开发工作。从Charles Nutter和Thomas Enebo的私人博客的字里行间,我们可以感受到他们对Sun公司对于JRuby项目认可,以及对JRuby项目提供了大力支持而无比振奋。 这是Charles的blog http://headius.blo ...
督促自己-清风Python练习贴
这是我在faridea首发的帖子,转到这里期待和更多的朋友进行交流,原贴:http://www.faridea.com/bbs/Announce/Announce.asp?BoardID=301&ID=5814 让我们开始:) 感觉手绘区的这个方法特别好,我也特此开贴,督促自己学习:),有想和我一起学Python的就开始吧。 先到Python老家下载最新版的Python->htt ...
我眼中的Python
我眼中的Python python这种编程语言我很早就听说它了,早在1998年,我在玩Linux的时候,就接触过它,但是我对python的印象仅仅停留在它是一种流行的面向对象的脚本语言的认识上。 zope,基于python的app server,早在2000年我就已经对它如雷贯耳了,但是我对zope的印象仅仅停留在它是一种类似Apache HTTPD Server,AOL Server之类的we ...
[小技巧]集成Astyle到Microsoft Visual Studio
Astyle是非常好用的开源的C++代码整理工具,能使你凌乱的代码变得有序。下载地址http://astyle.sourceforge.net/ 该工具可以作为VC的插件,具体怎么设置,见截图,参数如下。 --style=ansi --one-line=keep-statements $(ItemFileName)$(ItemExt) 然后修改设置,让整理后的文件自动加载 ...
一些资源网站
我找到的一些编程学习的网站,以后还会陆续添加的 如下: 中国学习联盟 http://www.study888.com/jifen/linkin.asp?linkid=dwq2803130 得益网 http://www.netyi.net/in.asp?id=dwq2803130
有关file mapping的测试
http://www.iteye.com/topic/46777 这个帖子中说到了file mapping用于大文件读写,因为速度快. 按照我以往个人的认识是: file mapping能够提高大文件读写速度,但是并不是一定要用file mapping来实现. file mapping的工作原理并不复杂,应该算是一种大的文件数据cache, 大的cache可以使在一定范围内的寻址速度加快,因为数据不 ...
wxPython frame的布局详细解释(二)
3. wx.GridBagSizer()该类是wx.FlexGridSizer()的子类,它具有其父类的方法与属性,当然,它使用时比其父类更简单了。它不需要指定特定的行数与列数,完整根据它所管理的构件设置具体而定的。 原型: #构造函数 __init__(self, vgap=0, hgap=0) (Constructor) Constructor, with optional ...
wxPython frame的布局详细解释(一)
对于初学者,wxPython的布局定位是有点麻烦,需要仔细查看官方文档。(原文:wiki.wxpython.org/learnSizer3.py) 以下是我学习过程中实现的实例,以便与大家共同交流:) 1. wx.BoxSizer() 在wxPython定位构件程中使用最多最直观的sizer. 原型: wx.BoxSizer.__init__(self, orient) siz ...
操作符is的1个诡异问题
请看这段程序 a = 0 b = 0 while a is b: a += 1 b += 1 print id(a), a print id(b), b 猜猜结果,呵呵结果是 13013836 257 13013812 257 原因在这里: 引用This is really hardcoded limit in the current CPython implementation The in ...
尝试用Python实现消息传递编程风格
引用本文站在一个难以名状的角度上研究了 Python 语言中消息发送的编程风格。原文是使用 JavaScript 描述的。文章作者 lichray 只把文章的上篇改成了 Python,因为下篇对于 Python 来说是没有意义的。lichray 是个 ECMAScript 的狂热追随者,mozilla.org 邮件列表里的无名潜水员。 文章中使用了 Python 解释器,行开头有 "> ...
多重继承真是好哇
写 model 的时候发现有些东西在重复,第一反应就是写个基类,把这些重复的东西拿出来,然而 Model 类之间继承却不是那么方便的,应该会影响到 ORM 的行为。怎么办呢?幸好 python 有多重继承。下面就是项目中做这些重复事情的类:class ModelMixin(object): def save(self): if not self.id: # creation time if hasa ...
django newforms admin
又用 django 做了个项目,因为主要都是后台的东西,所以决定启用 django 的 newforms admin 分支!(不过这里我不是推荐大家现在就开始用 newforms admin 分支,如果没有把握,最好是抱着玩玩的态度先,我在开发过程中就改掉它好几个bug) newforms admin 分支是用 newforms 来重构 admin 模块,也顺便改变了一些设计决策,大大增强了 ad ...