2007年08月29日

I’v made many updates after 8/23, list them below:

  1. The most change is svn support. But it have some troubles in linux platform. So maybe someone can help me to improve it. More details about svn you can see my previous emails. And now when you change and save document, and if the filename can be found in Directory Browser Window, it’s svn status icon will be refreshed also. You should install svn_plugin first.
  2. Add new key binding Ctrl+Insert => Copy
  3. Fix input assistant snippet template indent bug(when using tab mode, the ‘\t’ in template will be replaced with spaces). And you can press Alt+Q to cancel current snippet.
  4. Add timestamp in debug.txt and error.txt.
  5. For Python program test, UliPad supports doctest now. You can run it from [Python]->[Run Doctests], then the result will be displayed in message window. And you can change the startup file packages/cmd_doctest.py and to change the execution behavior of doctest.
  6. Fix the bug that when you change the file type or add new file, the icon in directory browser, dynamic menu and toolbar doesn’t change bug.
  7. Replace the shell window popup menu, and add Copy Without Prompts menu item. The text which copied from shell window will include prompt string(e.g. ">>>", "…"). For Copy Without Prompts will remove all ">>>" and "…" string. And if the results of code statements cann’t be correctly convert to unicode, then display the results as repr().
  8. Change plugin.txt document, fixed bug and added some missing plugins description, thanks to Dick Moores.
  9. Add Copy and Run in Shell feature. So when you editing python program, if you want to copy some code to shell window, and run it, you can select the code first, then in context menu [Run in Shell] of
    current document window or from [Edit]->[Run in Shell], you can do it.
  10. Fix line number margin width displays not correctly bug.
  11. Recovery [View]->[End-of-line marker] menu. I think sometimes maybe it will be useful. And I found that if you select some text and then drag them to a new place, meanwhile keeping press Ctrl key, the selected text will be duplicate to new place, but the end-of-line will change to ‘\n’, I don’t know why, but if your end-of-line is DOS format(\r\n), this will cause some errors. So just use copy and paste is a better way.
  12. I also changed Script Manager menu, and now when you add a new script to UliPad, it’ll automatically open the script file, and find whether there exists some text matching "#\s*(?:caption|name)\s*[=:](.*)$" pattern, if there is, then UliPad will pick up the text in (.*) and then use it as the description of this script. For example, you can write:

    #name: Remove Blank Lines

    Then the description of this script could be "Remove Blank Lines".

2007年08月26日
For now, I’v improved the svn support, and also support svn icon set(I copied from TortoiseSVN), so after you executed some svn command, you can see the icons of files and directories in directory browser changing. Then you can easily see which file is version controlled, and which it not, and which is modifed, and which is added, etc. So it’s very familiar with TortoiseSVN in windows platform. But for the folder processing is not like TortoiseSVN, and if there are some changes in one folder, UliPad will not change this folder icon status, but TortoiseSVN will even if the folder itself has not any changes.

And a big change is I moved the svn support as a plugin, its name is svn_plugin, so you should install it first if you want to use svn support in UliPad. Why I moved svn support to a plugin, because I also think maybe someone or me can also implement other version control support like cvs, etc one day. So I don’t want they are mass togeter.

So if you want to use svn support now the steps are below:

1. Enable svn_plugin. [Tool]->[Plugins Manager...]->Check the svn_plugin
2. Set the svn client software location.
   * [Preference...]->Select location of SubVersion client
   * Open Directory Browser Window(just Press F2), right click mouse button, in context menu, [SVN Commands]->[Settings]

   You can choice any way of two to config svn client software. (#TODO, maybe this can be eased if I can automatically find svn)
3. Then you can execute any svn commands in context menu of Directory Browser Window to test.

The attatchment is a screencast of my Directory Browser Window with svn support.

And in the previous annoucement email, I left several questions that I haven’t fixed yet, but now some have been conquered by me.


> 1. The context menu can’t judge if selected directory is a version controlled directory, so the update, commit commands always in there

Fixed. And I just test if the .svn subdirectory is existed. And the menu items will also changed according whether the directory has .svn directory.

> 2. diff result is ugly, I want to make a better GUI windows to show the result
> 3. You can’t edit properties

> 4. No special icons displayed in directory browser window

Fixed.

> 5. Can’t automatically refresh directory, so you should manually refresh the directory after you execute some svn commands

Fixed. I use callback when the wx.Execute is finished.

> 6. I don’t know how to enable proxy available, it seems that it can automatically recognize the proxy settings in IE on windows platform. Maybe in linux you can just set HTTP_PROXY.

I found the config description in svn book, and you can set proxy in register table(windows platform) or svn config file. More details you should read the svn book.

> 7. Maybe support other version control client

There is a long road to walk.

There are not too much questions left. And I’m still working on it, and I want to make it better.

 
2007年08月24日

I’m very pleased to announce UliPad begin to support svn now. But you should also know, there are just basic functionalities now.

I don’t use pysvn but via wx.Execute(), and redirect the input and output, so you can think it’s pipe line tech. And through this method, someone(maybe you) can implement other version control support in UliPad, and the interface may also need to change.

I just implemented basic commands in svn, for example:

add, delete, rename, revert, update, checkout, commit, log, status, export

For now, I think it maybe enough, I’m of cause will add new commands support if I or you need. For some commands, I need to parse the output of svn, and redisplay it to better GUI style.

There are many improvements need to be done, I’ll try my best to complete them, but I think I need more time to do that.

So if you want to taste this new feature, just update from svn. The svn support is not a plugin, and it’s just in the core.

When you want to use svn, you should install svn client first, for windows user, you can download it from http://subversion.tigris.org/, the latest version is 1.4.4. After you installed svn, you should config the svn settings first, in [Preference]->[Version] page, enter the svn command line, just like:

C:\Program Files\Subversion\bin\svn

then you can test it in directory browser window(F2).

For now, svn support in UliPad can not do such things(list below) which I’m trying to improve them now:

1. The context menu can’t judge if selected directory is a version controlled directory, so the update, commit commands always in there
2. diff result is ugly, I want to make a better GUI windows to show the result
3. You can’t edit properties
4. No special icons displayed in directory browser window
5. Can’t automatically refresh directory, so you should manually refresh the directory after you execute some svn commands
6. I don’t know how to enable proxy available, it seems that it can automatically recognize the proxy settings in IE on windows platform. Maybe in linux you can just set HTTP_PROXY.
7. Maybe support other version control client
8. Other things I can’t remember now.

Hope you enjoy it, and I’ll keep improving it.

2007年08月23日

1. startup pythonpath support

User now can set pythonpath in config.ini, so that UliPad can insert
it into sys.path when starting. For example:

config.ini content
—————————-

[default]
pythonpath = d:\path1,c:/path2

or

pythonpath = "d:\\path1","c:/path2"

pythonpath can be a path list or a single path. You can always end the
string with ‘,’, that’s will be a list.

2. move winpdb from modules folder to a new folder packages, and this
folder will be insert into sys.path when starting. Because when you
want to use winpdb, ulipad will execute via wx.Execute(), so winpdb
will be executed as a process but not a real module. If you are using
exe version, all files in modules will be compressed into libzip file,
and ulipad will not find the exist file path to run _winpdb.py. So I
create a new directory packages, and this folder will not be
compressed into zip file, just like a data folder. So I can put
packages with resource files in this folder. And for exe version, I
also add prompt about "Need set Python interrupter, and install
wxPython packages" messages. So source version maybe the best choise
for my eyes.

3. print improvement(I’v post it before)

Now you can set if you want to print linenumber. And the print result
will have header and footer.

4. Add Shift+Delete => Cut, Shift+Insert => Paste

其实这并不是有意而为之,因为我不进行PyGTK开发,所以没有做什么特殊的处理。不过今天在 UliPad 的邮件列表中收到一位外国朋友的来信,说感谢 UliPad 可以支持 PyGTK 的代码完成,并且他已经写在了 PyGTK 的 FAQ 中,可以看这里。另外他还建议如果 UliPad 可以支持 svn 就更好了。我想这的确不是件简单的事情,如何做一点头绪也没有。

2007年08月20日

UliPad 3.7是第一次在 code.google.com 上发布,以前都是在啄木鸟的wiki上。之所以转到 code.google.com 上去还是因为啄木鸟的域名到期,有段时间不能通过域名进行访问,所以转了过去,的确是有些匆忙。不过现在啄木鸟已经可以访问了。不过转了之后的确也有好处,至少下载可以看到下载量了。以前在wiki上是看不到的。发布了将尽一天时间了,下载量达到了600多,近700的样子,感觉还是不错。不过我发现windows的版本要多于源码版本的下载,的确很奇怪。我自已也主要是使用windows来开发,那别人呢?不明白为什么?是不是说明windows环境还是多于linux环境呢?不过看不到具体的下载的明细无法进行更深入的分析了。

2007年08月19日

这次发布间隔是比较长的,不过的确还有一些不好解决的问题存在,主要是在linux环境下。

New Features and Changes:

#. Add PEP8 sytle checking
#. Enhance calltip showing
#. Add a new option in Preference, which is used for when you toggle comment lines(Ctrl+/ or Ctrl+\) if it’ll popup a comment dialog. You can find it in Preference->Document->Show comment character dialog when adding comment.
#. Saving auto todo window status
#. Changing shortcut of quote dialog from Ctrl+Q to Ctrl+’
#. Changing the number of recent files to 20
#. Changing shortcut Ctrl+Alt+L to Alt+Z, Ctrl+Alt+B to Alt+X
#. Saving the status of Message window word wrap
#. Saving the snippets window position
#. The results of find in files can only show the filenames and you can copy them to clipboard
#. Add Spanish language translation and Traditional Chinese language translation
#. Using ZestyParser Module to parse the source code syntax
#. Improving input assistant functionality
#. Adding config.txt documentation
#. When saving files, automatically adding accordingly filename suffix
#. Adding mixin reload mechanism, it will be very useful when developing
#. Adding folder sort functionality when adding new folder to directory browser window
#. Adding template in input assistant, and you can press TAB key to jump to the next field. The template just like: ${1:something}.
#. Adding LUA syntax support
#. Adding mako(template module) support plugin
#. Adding batch filenames rename plugin
#. Enable ftp window be openned left or bottom pane according to the openning position
#. Adding Alt+R shortcut for open recently files
#. Merging new 1.20 version winpdb to UliPad

Bug fix:

#. Fix ctag support bug
#. Fix default style bug
#. Fix the wrong cursor jumping after undo operating
#. Fix xml lexer type bug
#. Fix copying bug when the text block has no indent
#. Fix openning multi-view bug from menu items
#. Fix the input focus losing bug when openning bottom pane or double-click on directory browser entries
#. Fix user can open multi find dialogs bug
#. Fix register functionality in windows

UliPad的主页已经开始转移到 code.google.com 上去了,地址在 http://code.google.com/p/ulipad/ 。所以相应的svn的地址也变化了,如果你使用svn版本,请相应的修改。

源码版下载
Windows执行码下载

建议使用源码版本,因为执行码版本因为打包的问题,有些功能会有问题,象ReST的支持,调试等。

2007年08月09日

前一阵实在太忙,对于Django的关注也少了许多。不过现在慢慢开始恢复。这不就有一件事情吸引了我。事情的起因是这个样子的:

一位叫Tom Tobin的朋友在 django 的邮件列表发表了一个建议,说希望把模板功能做成独立的模块。其实这个提议老早就已经出现了,只不过没有象这次讨论得比较激烈。邮件线索可以访问这里

对这件事的看法分为两派,很正常。一派以Malcolm Tredinnick 为首的,他们认为template因为是django的一部分,所以最好还是与django在一起,不应该被分离出去。他们不喜欢象turbogears那样的由多个模块组成的形式。他们不希望维护两个版本,而且目前的模板通过django.conf.config()还是可以方便地被独立程序使用。

而象Tom Tobin的想法还是比较简单,就是希望能够单独使用。其实我个人是倾向于简单的方式,所以独立出来也无不可。如果是我的项目,有人建议我独立出来,而且我认为功能的确相对独立或希望有更多的人使用,也可能会独立出来,哪怕是维护两个版本。

不过作为Django的核心成员Adrian Holovaty首先提了一些问题,象不希望维护两套版本等,并且他可能更关心如何让模板模块更好用,是否一定要分出来倒是不一定。后来他指出:是不是只要不需要再进行配置settings就足够了。我认为如果能做到这一点,我就已经满意了。

但对于Tom Tobin好象并不满意。他的确是希望是独立的模块,而不是django的一个子模块。特别是他后面说到自已的许多意见被shut down,他已经厌烦了争论,还是自已一个人走下去的话,让我深有同感!

从这里我们可出不同的哲学思想的冲击。对于完美派或保守派更多的是考虑整体,使用工作最简化。对于自由派或激进派更多的是关心方便性和扩展性。我个人的理解,django有些过于保守,当然这也是他的项目控制得比严格的地方,而且核心成员的思想非常鲜明,也算是一大特色了吧。

所以我现在更多的是象Tom Tobin一样,我做我的,你做你的,你的好我就用,不好我按我的方式来,可能也是因为哲学上还是有不少差异而不得已而为之。不过一个项目本来就无法让所有人满意,只有它可以扩展就行了。

2007年08月08日

今天徐继哲在邮件列表中通知Python T-Shirt已经开售了,明外还有部分人(包括本人)有赠送,这样我就有三件了,赶紧今天把钱汇了过去,等着收货了。大家也想要的就加快吧,可是限量啊,450件,其中包括预定的和赠送的,剩下的可就不多了,还有大概200多件可以抢购。一件59元。邮件内容转贴如下:


大家好,

之前策划的Python T恤已经上市发售,请登录http://www.zeuux.org/fashion/
fashion.cn.html#fashion-python购买。由于我们很难准确核对购买者和预定者,所以建议预定的朋友

抓紧时间购买,以免出现
断码等情况,影响你的购买。另外,这些照片是8月7日晚上拍摄的,摄影技术一般,灯光不好。实物要比照片好。

我们原计划在8月15日发布Python T恤,经过努力,我们提前一周发布了,今天刚好是2007年8月8日,是个吉祥的日子,不管是巧合还是天意,
希望大家能够喜欢Python T恤,将Python发扬光大,创造更多的奇迹!

ZEUUX Project的主要目标是推动自由软件运动发展。为了鼓励一些杰出朋友对于Python的贡献,经ZEUUX Project和部分资深
Pythoner的讨论,向下面各位对Python在中国的发展作出贡献的朋友每人捐赠一件黑色"苦短"版T-shirt(http://
www.zeuux.org/fashion/fashion-python-kuduan-black.cn.html),请以下各位朋友与我们联系(http://www.zeuux.org/fashion/order.cn.html),以便我们将T恤发出:

# Z.Q
# 沈威
# Junyong Pan — 五年如一日的坚持 Zope/Plone 并独立壮大起来
# Limodou — 在Python 世界遨游,并不断留下成品的绝对第一行者!
# Robert Chen — 直入Python 源代码的行天者
# Glace — 中蟒的缔造者,不论评定如何,这是开天辟地的功底了
# 杜文山 — 从Zope手册到baow.com再到dohao.org 折腾了多少重量级的东西出来哪
# HD — 勇敢的在主流媒体公司竖立Python 大旗,给多少Pythoner 提供了饭碗哪…………感动!
# 阿北 — 独自使用Python 创业成功的神人
# Osmond Liang — DIPy 5.4 工程领导者,至今最大部头的社区中文翻译作品
# March.Liu — 系列官方教程中译版本的作者哪!至今最大部头的个人中文翻译系列作品

最后,如有不当之处,请大家海涵,有任何建议和意见,请与我联系,也可以和BPUG大妈ZQ联系,他会将各种意见反馈给我。

徐继哲
zeuux@billxu.com  http://www.billxu.com
ZEUUX Project  http://www.zeuux.org

2007年08月06日

最早知道jquery-ui项目是在jquery的1.1.3版本发布的声明上提到正在由Paul, Sean开发的一个ui方面的新项目,我想它的最终目的是形成一个与dojo, ext相类似的以界面为主的项目,它将替代现有的interface。于是我订阅了它的邮件列表,里面人到是不多,我也没有发过言,因为平时的精力不在javascript上。

今天看到John Resig打算发布ui项目了,他列出了一个发布计划:

Sunday August 10th: Feature list deadline.
Beyond this point, no more feature additions will be added to the list
of features in the jQuery UI release, anything past this point will
have to be held off until a future time. Only items that are claimed
by a dedicated author will be kept.

Sunday August 26th: Feature freeze
Any feature on the list that is not 100% complete, at this point, will
not be included in the jQuery UI release. (This also includes themes –
but they should also be fully usable and documented by this point.)

Friday August 31st: Documentation/Demo freeze
Any feature that does not have it’s full API documented, and demos
implemented and skinned, at this point will not be included in the
jQuery UI release.

Monday September 3rd: jQuery 1.2 & jQuery UI Release
This will be a simultaneous release, done together to best handle the
resulting press.

9月3日将与jQuery 1.2一起发布。从上面的发布要求来看,John对于文档的要求是非常高的,我想这一点可能是非常重要的,也是jQuery非常棒的一个原因。

而Paul很赞同这个决定,列出了最优化要固化的内容:

1.) Themeing
2.) UI Box
3.) Mouse interaction plugins (excluding Sortables, since no other widgets are based on Sortables)
4.) UI Core API (helper functions, structural functions)

的确有不错的功能,期待中。。。