今天从 OpenERP 的官方博客看到,OpenERP 团队已经对 trunk 中的 OpenERP Web 客户端——eTiny 进行了巨大的重构。
eTiny 如今不再需要整套 TurboGears 框架,而是成为了一个简单的、真正的 Web前台,仅仅使用 CherryPy3 来提供 HTTP 服务,这样不仅速度大大提升,据说是达到了3~5倍,也简化了部署过程,免去了频繁升级、依赖巨多的 TurboGears。
此次升级功能上已经基本迁移完成,不过在发文时 eTiny 的 win32/setup.py 安装脚本仍然没有同步更新,应该是开发团队的一个小小疏漏,还是让我们期待下一个发布版带来稳定、高效的 eTiny 吧。
Cheers!
2009年4月18日 星期六
Python PuLP 线性规划库求解“鸡兔同笼”问题
PuLP 是一个 Python 的线性规划库,使用起来相当的简单方便:
http://code.google.com/p/pulp-or/
“鸡兔同笼”是我国隋朝时期的数学著作《孙子算经》中的一个有趣而具有深远影响的题目:“今有雉兔同笼,上有三十五头,下有九十四足.问雉兔各几何.”
这里我们用 PuLP 来描述“鸡兔同笼”,设鸡的数量为 x,兔子的数量为 y,求解:
Have fun!
http://code.google.com/p/pulp-or/
“鸡兔同笼”是我国隋朝时期的数学著作《孙子算经》中的一个有趣而具有深远影响的题目:“今有雉兔同笼,上有三十五头,下有九十四足.问雉兔各几何.”
这里我们用 PuLP 来描述“鸡兔同笼”,设鸡的数量为 x,兔子的数量为 y,求解:
from pulp import *
prob = LpProblem("test", LpMinimize)
x = LpVariable("x", 0 , None, LpInteger)
y = LpVariable("y", 0 , None, LpInteger )
prob += x + y == 35
prob += 2 * x + 4 * y == 94
prob.solve(GLPK())
for v in prob.variables():
print v.name, "=", v.varValue
结果:
x = 23
y = 12
prob = LpProblem("test", LpMinimize)
x = LpVariable("x", 0 , None, LpInteger)
y = LpVariable("y", 0 , None, LpInteger )
prob += x + y == 35
prob += 2 * x + 4 * y == 94
prob.solve(GLPK())
for v in prob.variables():
print v.name, "=", v.varValue
结果:
x = 23
y = 12
Have fun!
2009年4月3日 星期五
OpenERP PDF 报表中文支持模块:base_report_cn
此模块是基于 Gábor Dukai 编写的 base_report_unicode 模块修改而来,自带了开源的文泉驿正黑体和 AR PL SungtiL GB 宋体。该模块的使用非常简单,只需要直接导入这个模块,不需要任何的 hack,OpenERP 现存的报表即可直接支持中文。当然了,内置报表的现存的文字仍然是英文的,本模块只是提供中文支持,让中文别显示成方框。
下载:
http://openerp-community-addons.googlecode.com/files/base_report_cn.zip
项目主页:
http://code.google.com/p/openerp-community-addons
下载:
http://openerp-community-addons.googlecode.com/files/base_report_cn.zip
项目主页:
http://code.google.com/p/openerp-community-addons
2009年4月1日 星期三
标签:
D语言
DMD D语言编译器 1.042 & 2.027 放出!
其中,2.027 添加了超酷的 "alias this" 特性,可以简单地理解为C++的自定义类型转换操作符增强版,有了这个特性可以完全实现像 .Net 一样用 struct 封装内置类型。官网上的范例如下:
其中,2.027 添加了超酷的 "alias this" 特性,可以简单地理解为C++的自定义类型转换操作符增强版,有了这个特性可以完全实现像 .Net 一样用 struct 封装内置类型。官网上的范例如下:
- struct Int32
- { int x;
- alias x this;
- }
- int foo(int i) { return i * 2; }
- void test()
- {
- Int32 s;
- s.x = 7;
- int i = -s; // i == -7
- i = s + 8; // i == 15
- i = s + s; // i == 14
- i = 9 + s; // i == 16
- i = foo(s); // implicit conversion to int
- }
2009年3月22日 星期日
我的又一 D 开源项目——WindumpWindump
官网介绍:
WindumpWindump(没错,名字就是 WindumpWindump,这么好的名字应该重复两次) 是这个星球上功能最强的密码恢复程序,能够读取如下软件保存的密码:
- Internet Explorer 6/7/8 的自动完成和密码保护站点
- WindowsLive/MSN Messenger 7/8/8.1 已保存的密码(不支持 Windows 2000)
- Internet Explorer 网页文本框扫描
- Firefox 1/1.5/2/3 自动完成密码
- ThunderBird 1/1.5/2 邮件帐号密码
- Outlook2000/2003/2007 邮件帐号密码
- OutlookExpress 邮件帐号密码
- Windows LSA 扫描,包括所有保存的 ADSL 帐号密码和Windows 默认登陆密码
- Eudora 7 电子邮件客户端保存的帐号密码
- 贸易通(阿里旺旺贸易通版5.1/TradeManager2)通讯工具保存的所有帐号密码
- Foxmail 5/6 所有保存的帐号密码
- Becky! 电子邮件客户端帐号密码
http://code.google.com/p/windump/
可执行文件下载:
http://windump.googlecode.com/files/windump.zip
可执行文件用 upx 压缩过,如果杀毒软件误报是正常现象。
2009年3月20日 星期五
Ruby On Rails 升级到 2.3.2
标签:
Ruby
Ruby On Rails 已经发布了稳定版本 2.3.2,但是以前的程序在 2.3 下运行时会出现如:
rake rails:update
即可,该任务会把 app/controller/application.rb 改名为 application_controller.rb,酱紫似乎也更符合 Rails 的命名习惯。
据说 Rails 2.3.2 还支持 Ruby 1.9,不过这得等什么时候有时间才能试试看了。
uninitialized constant ApplicationController这样的错误,解决该问题只需运行:
rake rails:update
即可,该任务会把 app/controller/application.rb 改名为 application_controller.rb,酱紫似乎也更符合 Rails 的命名习惯。
据说 Rails 2.3.2 还支持 Ruby 1.9,不过这得等什么时候有时间才能试试看了。
订阅:
帖子 (Atom)








