为四川人民祈祷! www.onefoundation.cn
logo of kjam.org
Archive: 2007-8

Zope的世界

一直以来,Zope都是我不想去接触的Python应用。框架是一个容易迷惑人的东西,可以加速你的开发,也可以让你深入泥潭。

从泥潭中走出的我决定不去接触Zope专心做应用,无奈终于还是偷看了ZopeBook。

曾经有人说Zope像J2EE,我觉得它是一个更伟大的项目。虽然真正接触它的时间不长,但是从这个框架中透露出对web的理想,已可见一斑。

这个世界上有已经有着无数的framework,他们都经过了精心的设计,但是你可以在使用中找出他们的区别,我说不清那是什么。

当我们使用MFC或者dotnet的时候,我们大概有同样的感觉;WTL则有另外的一种风格;使用wxWidget的时候,感觉又稍有不同。

Zope给我的感觉是,它建立一个单纯的世界,让那些设计web的人,开发web的人,都只需要走在ZMI那个世界里。

让我们按下F11,走进Zope的世界
comments: 0 | tags: zope   
by kernel1983

Filezilla Cross-Platform

几个月坚持用命令行的ftp,终于想偷懒了
印象中免费+好用的ftp软件是Filezilla,于是去当一个,居然也有惊喜地发现!

软件比过去好用了不少,对sftp的支持增强了,易用性也很棒。我喜欢它右下角一红一绿两个小等不停闪烁的样子……

然而这些都不是重点,因为我看到了3.0rc1版本,居然开始全面支持linux和mac。ppc和intel的版本还分得挺细。rc的质量已经和release差不多了吧!这下mac用户有福了

真是一个大惊喜啊!
comments: 1  
by kernel1983

New Theme

最近刻苦学习中,无心打理小站

不过

依然坚持给小博换了个风格,宗旨当然是为了娱乐。拒绝成为一个没有生活的程序员,娱乐至上!

提到这个背景,我想它现在成为了我主要的文化传播平台,在不影响大家阅读的情况下起到了强制传播的PUSH作用,希望在上面投放广告的JS可以联系本人……跑题了

顺便要说的是,背景图如假包换是程序生成的,Python + PIL的初次实践,我会在大家看腻之前把它换掉,然后在大家再一次审美疲劳之前努力的想出下一个华丽的算法,誓死娱乐大众……

另外,我这两天做的一件比较无聊也比较有成就感的事情就是把之前由于网站安全漏洞产生的大约10000个spam comments基本完全解决掉了,剩下的一些看起来不太像spam的spam就让它们来见证这次事件吧!

当然,也是写程序删的。不然绝对累死了,至少干掉了9900个,成就感……
comments: 0  
by kernel1983

wx.ScrolledWindow Example

需要用到wx.ScrolledWindow这个控件,找来找去找不到例子,只好自己摸索,白白花费两个小时。
import wx

class MyFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, title='ScrolledWindow Test') self.panel = wx.ScrolledWindow(self) self.button1 = wx.Button(self.panel, -1, "1", (10,0)) self.button2 = wx.Button(self.panel, -1, "2", (20,500)) self.panel.Show() self.Show() self.panel.EnableScrolling(False, True) self.panel.SetScrollbars(0,20,0,30) self.panel.Scroll(-1, 15)

if __name__ == '__main__': app = wx.PySimpleApp() frame = MyFrame() frame.Show() app.MainLoop()

自己在UI方面断断续续学习了很多年,一些概念知识也是断断续续才补充完整的。今天两个小时的额外收获在于,搞清楚了什么是Window什么是Frame什么是Panel

Frame和Panel都是Window,一切的控件都是Window,这个概念其实很多人都明白的,不过是一个针对程序员的概念。

Frame算得上是一种TopLevelWindow,也就是平常人眼中的Window,比如浏览器。用户才不会像程序员一样思考,抽象的去理解一个Button就是一个Window这样的事实。Frame的意思是边框,导轨。想象一下常用词语Framework框架,可以帮助我们理解。

Panel是一种容器,当然我们也可以直接把控件放在Frame中,有时候为了需要,也会把控件放到Panel中。ScrolledWindow就是一个例子,它继承了Panel

ScrolledWindow的使用方法希望能够被搜索引擎收录,能帮其他人节约下来两个小时,做一些更有意义的事情
comments: 0 | tags: wx   
by kernel1983

IronPython News

版本1.1很早就发布了,不是什么新闻。但是版本2已经Alpha3了

IronPython是用C#写的,开发用了VS2005,所以默认平台是DotNet 2,运行ipy.exe的时候可以看到这样的信息。想要获得基于DotNet 1.1平台的版本,可以自己下载代码编译,需要自己加个宏

IronPython可以调用Python标准库,在Lib\site.py里面加入
import sys
sys.path.append(r"c:\python24\lib")

就可以了,但是有些东西还是不能用的,比如CPython内置的库和调用dll的库:_winreg和cString,说再见吧!作为补偿,我们拥有了一大堆DotNet提供的强大功能

IronPython可以写ASP.NET了,这是个新闻,具体的信息可以查看http://www.asp.net/ironpython/

我们可以用IronPython调用WinForm和WPF

WPF需要DotNet Framework 3的支持,最好再搞一份Vista SDK以便查阅文档
说到WPF,让人同时感觉到震撼和绝望,写窗口等价于写HTML,这样的日子不远了
comments: 1  
by kernel1983
1