2006年11月23日

昨天晚上与3位法国朋友在朝阳一边饭馆聚了一下,北京这边一共去了有10位。法国朋友很友好,Roger会点点中文,而且还很幽默。另外两个说了几次我也记不住叫什么,发音比较怪。有几位象Cheng Zhang的英文很好,可以和他们谈得来,我对于简单的可以听懂,说的话就太费劲了。吃饭的时候,大家随便聊了聊。最后决定先在google上共建一个Universal Python User Group,目前在:http://groups-beta.google.com/group/upug/

在吃完饭的路上和另一位法国朋友聊了一会我的项目,他的英文和我的英文差不多,有时还要通过纸来交流。不过他很喜欢笑,很有趣。他平时是使用emacs。不过Roger在描述他使用emacs表演很夸张,给人感觉使用emacs的因为习惯用键盘,所以手指有些变形,甚至连脚都想用上。样子非常有趣。

后来去了一家上岛咖啡大家又一起聊了一会。互相交流一下项目。最后12:00多结束。

感觉很愉快,就是晚了点。有时间还得多练练英语啊,也许有好多机会呢。

2006年11月13日

这几天加入了协作编程的插件,pairprog。它的主要功能是

1. 任何一个UliPad实例都可以成为一个server
2. 其它的UliPad实例可以与某个server进行连接
3. 一个server加若干个client构成一个组
4. server端和客户端的基本操作:光标移动、增加、删除都可以广播到其它组内成员
5. 组内成员可以通过聊天进行交流
6. server端可以添加新的共享文件,可以踢除某人
7. client可以重取某个文件

它的作用是可以多人同时查看相同的文件,并进行修改。可以用在一个局网,我想也可以用在internet上,不过我没有试验。这样虽然我们见不着面,但是可以使用这一功能进行代码方面的交流。

它的原理是p2p,因此目前不支持代理服务器,要么在局网使用,要么可以不通过代理接入internet.

使用方法:

进入插件管理->选中pairprog插件
重启UliPad
[工具]->[Concurrent Program]

English Translation:

I’v added concurrent programming plugin these days, pairprog. And the
main features are:

1. Each UliPad instance can be server
2. Others UliPad instances can connect to the server
3. A server and several clients will compose a group
4. The basic operation of server side and client side, such as: caret
moving, text adding, text deleting, can be broadcast to other members
of the group
5. There is a chatroom which group member can user it to exchange each other
6. The user who create the server is the manager, and he can add new
shared document, and kick off somebody
7. Non manager user can re-get some document

So users can use this plugin to review the same documents at the same
time. You can use it in a local network or maybe on internet(but I
don’t test it now). Even through we don’t meet each other, but we can
use it to talk about the source code.

It didn’t support proxy now.

How to use it?

[Tool]->[Plugin manager]->Check pairprog plugin
restart UliPad
[Tool]->[Concurrent Programming]

If you want to try this new feature, you should update from svn or
download snapshot version. Some functionalities will be still in
optimized.

Try it. Hope you enjoy it.

此功能在最新的svn中或snapshot下载。有兴趣的可以试一试。功能可能还在优化中。

2006年11月07日

如何识别一个python的变量类型,这是进行自动提示很重要的一个关键。在基本增强了UliPad的auto-complete之后,我又增加了对函数中ePyDoc格式的docstring中的参数类型的识别。一般一个ePyDoc的文档信息是放在docstring中的,比如:

def function(name, user):
    """
    @parameter name: username
    @type name: str
    @parameter user: user object
    @type user: User
    """

那么UliPad可以找到函数的文档字符,然后找到@type格式的信息,分析出它后面的参数名和冒号后面的类型。详细的格式为:

@type <paraname>:<type>

其中type可以为:

str, string,unicode 字符串
list 列表
dict 字典
tuple 元组
int,integer 整数
float 浮点数
bool, False, True 布尔值
none None值
reference 引用

当不是基本类型时,类型将为reference。对于reference,你的类型可以是一个类,或其它的东西。因此通过对文档信息中的参数类型的支持,这样也许可以强制进行函数声明。