未分类
文章平均质量分 56
iteye_17702
这个作者很懒,什么都没留下…
展开
-
踩一踩OSWorkflow和jBMP:39行代码实现一个很好很强大的工作流引擎
现成的工作流引擎有很多,我以前曾浅尝过OSWorkflow和jBPM,但都未能深入研究。总感觉它们过于复杂,术语也特别多,让我对它们逐渐失去了兴趣(还有那些流程设计器,个人觉得完全没有存在的必要:1.一般的用户用不来;2.程序员直接写代码(流程定义代码量一般几十行就够了),要流程设计器干嘛?)。另外有一个开源的基于Grails的工作流项目:http://www.grailsflow.or...2011-04-28 22:50:27 · 121 阅读 · 0 评论 -
在iPad2上玩nodejs
1. 访问jailbreakme.com越狱iPad22. 安装OpenSSH3. 在/private/var/root/Media/下创建子目录Cydia/AutoInstall4. 从PC上SSH(用FileZilla)到iPad, 把从https://github.com/TooTallNate/node/downloads下载的node-v0.4.8-darwin-arm-...2011-08-30 21:55:41 · 1768 阅读 · 0 评论 -
db4o hack之dynabean(一)
问题:公司的一个遗留系统具有运行期修改domain字段定义的特性,背后的实现原理是数据库中有"Table"表,“Field”表以及对应的实体表等,需要修改domain字段定义的时候程序会把信息存入Table表和Field表,同时执行alter语句动态修改对应的实体表结构,并存入对应数据。而程序代码中并不含对应的java class,数据都是在运行期“组装”起来以XML格式输出。这种设计看起来似乎没...2010-06-25 13:02:11 · 101 阅读 · 0 评论 -
由“如何更好地配置Module”引发的...
公司有一个服役了N年的基于Java技术实现的业务系统,其中Module的配置比较死板:比如配置某个Module的label,通过更改displayFields和separator来实现,如果displayFields和separator分别设置成“jobCode,nickname,sponsor”和" : ",则label被拼成形如"ABB1-705 : Abbott : Sam"的字符串。问题来...2010-06-24 13:53:43 · 84 阅读 · 0 评论 -
Grails hack之改写findAll和find方法
GORM的查询方法很方便(可查看http://www.grails.org/doc/1.2.x/ref/Domain%20Classes/findAll.html) 但因为我现在用Db4o,根本就不需要ORM,GORM的finders派不上用场。但是GORM把finders以及validate注入到Domain Classes中的方式对我们很有启发性。 Db4o提供三种查询方式:Q...2010-06-07 15:05:24 · 87 阅读 · 0 评论 -
Grails hack之扩展validate方法
Grails的ValidatePersistentMethod.java中主体代码: if(arguments.length > 0) { if(arguments[0] instanceof Boolean) { evict = ((Boolean)arguments[0]).booleanValue(); } if(argument...2010-06-03 14:31:43 · 128 阅读 · 0 评论 -
在web console中执行groovy script手动更新数据的拼音域
有些domain classes中包含汉语拼音信息,以便让数据可以汉语拼音排序,比如这个例子 class BingQu { def static interceptors = [ beforeSave: {p, tpl, params-> p.namePinyin = PinyinUtils.toPinyinString(p...2011-08-17 16:43:16 · 173 阅读 · 0 评论 -
db4o SODA query hacking之正则匹配支持
db4o的SODA查询貌似不支持正则匹配。API中关于Constraint接口的Method Summary如下Method Summary Constraintand(Constraint with) links two Constraints for AND evaluation....原创 2010-12-10 11:06:47 · 81 阅读 · 0 评论 -
听说张艳红还在上海交大软件学院讲她那一套破三维模型
听说张艳红还在上海交大软件学院讲她那一套破三维模型这老娘们竟然没被轰下来,看来她跟交大软件学院的副院长蒋建伟同属一个利益集团,用360的话来说,他们是“抱团取暖”。BTW, 唐骏下场如何?...2010-12-08 09:19:10 · 611 阅读 · 0 评论 -
db4o SODA hacking之改写QQueryBase#descend
public Query descend(final String a_field) { // modified by S.C. 02-Dec-2010 -> // This hack supports q.descend("f1.f2.f3.f4") // it equals q.descend("f1").descend("f2").descend("f3"...2010-12-02 11:52:56 · 70 阅读 · 0 评论 -
两个半小时,利息7块钱
16-Nov-2010收到建行的短信:建行说... 2010年11月15日发放 ... 期限120月,等额本金 ... 详情咨询95533 26-Nov-2010收到建行的短信:建行说... 将于2010年12月01日前扣款,还款额6073.00 ... 详情咨询95533 我自己计算过:def dengEBenJin = {amount, month, r-&...2010-12-01 11:12:12 · 79 阅读 · 0 评论 -
payment
def dengEBenXi = {amount1, amount2, month, r-> def pay1 = amount1*r*(1+r)**month/((1+r)**month-1), pay2 = amount2*r*(1+r)**month/((1+r)**month-1) println "(等额本息) 期数:${month}, 总额:$amount1, 月供:$...2010-12-01 09:38:18 · 234 阅读 · 0 评论 -
Damn it! This is a pretty odd bug with db4o SODA - 查询条件体位影响查询结果
def _m = Module.find(name:'studyLevelPerson'), _pid='76f198cf-9a26-49ec-82ed-f52d4b772875'def closure = {m, pid, t, q-> if(m.belongsTo) { // sop is the parent object of objects shared by ...2010-11-25 15:26:34 · 94 阅读 · 0 评论 -
Grails hack之改变domain class id类型
上回书说到,Sam成功地利用AST在编译期往grails doamin class中注入了客制化的属性。由于grails自己注入的id默认为Long,而我需要String(这样才能把UUID String赋给id)。怎样把Long改成String呢? 可以在domain class中加入一行声明String id同时还可以这样指定id生成规则:static mapping = ...2010-05-27 15:05:31 · 130 阅读 · 0 评论 -
Grails探索系列之domain class的编译期属性注入
Grails会在编译期往domain class中注入id和version两个属性(在编译后的class文件中可以发现它们)。它是怎么做到的呢? 搜索Grails的源代码,有如下发现: 1. 找到一个叫做DefaultGrailsDomainClassInjector的类,其中有 public void performInjection(SourceUnit sou...2010-05-26 16:26:24 · 122 阅读 · 0 评论 -
“基于UUID的访问控制”的思考
如果看一张艳照必须通过类似于这种方式:https://na-1.samscloud.com/filesystem/7c56e3bb-7315-11de-914b-9308abf3aaca/9280a763-72bf-11de-a2cb-5f67c0b2f2e4/fd144fac-9734-41d5-a3f0-557a8ec0182c/preview/yan_zhao.jpg?AccessKey...2011-09-02 14:28:06 · 124 阅读 · 0 评论 -
Groovy探索之爬出metaClass陷阱
这两天掉入了一个Groovy metaClass的陷阱,好不容易才爬出来。为了说清楚这个问题,先看几行测试代码 void testMetaClass() { def domain = new Domain() domain.metaClass.p = 'v1' assertEquals 'v1', domain.p ...2010-06-28 13:51:41 · 269 阅读 · 0 评论 -
神马其他Audit Trail实现方式都是浮云 -- 用Ext实现的Time machine(效果图+源码)
效果图:源代码:Ext.ns('SCTMS.dlg'); SCTMS.dlg.TimeMachine = Ext.extend(Ext.Window, { maximized : true, modal : true, closeable: false, closeAction : "hide", layout : "fit", autoScroll : f...2011-04-21 11:04:57 · 141 阅读 · 0 评论 -
脆弱的数据校验
e*****有个在线自助更改体检日期的功能。似乎是个匆匆忙忙写完就上线的东西。在它的date picker中,只能改到当前月和下个月,但LP想改到10月份。我说,我来试试能不能cheat。我打开我最常用的FF,登录e*****,在Firebug中执行一句document.getElementById('change_date').value='2011-10-22'弹指间,表单...原创 2011-02-13 17:23:37 · 102 阅读 · 0 评论 -
A说,真为张老师感到不值!
[quote="出来混早晚都要还"] [quote="ANGIE"][i]真为老师感到不值!6年多无数个日日夜夜,艳红老师把所有的时间都奉献给学生,放弃了休息、放弃了家庭、放弃了身体健康,也没有放弃教学。但结果又怎么样呢?所有的荣誉归于学校,最大的受益者是学生本人,张老师又得到什么了?剩下的,只有伤心。。。作为项目管理方向的学生,除了自己获益之外,能为老师做些什么?能为我们的专...原创 2010-08-02 12:25:33 · 134 阅读 · 0 评论 -
“出来混早晚都要还”致上海交大软件学院副院长
[quote="出来混早晚都要还"]尊敬的JBOSS(注:JBOSS乃上海交大软件学院副院长蒋建伟的新浪网名):打开张总的博客,一副对联,分别是您09年3月和10年4月底两封感言,在张总的博客里大概有您6次发言、、、我想了很久,这说明了什么呢?1、 表明了您一如既往地信任支持张总,对吗?如果是的话,那么您是代表您个人呢?还是代表组织呢?2、 关于“小囧”同学对于张总学历、经历逐字逐...原创 2010-07-30 13:52:43 · 480 阅读 · 0 评论 -
Time Machine and Audit Trail
目前我正在开发一个web app,用以替代公司目前使用的一个Oracle产品(每年要付给Oracle百万元人民币,实在太厉害了,况且Oracle的这款产品并不是很好用,所以老板决定让我开发一个alternative)。要想替代它,必须做到“人无我有,人有我优”。Oracle的这款产品特性之一是Audit Trail,就是在表单中的每个field后面都有个小箭头,你点击它,它就显示该字段的所...2010-07-27 16:11:23 · 80 阅读 · 0 评论 -
上海交大“艳红门”花絮之《拳击手》
【转载自http://blog.sina.com.cn/u/1749559957】[quote="小囧"]本故事内容纯属虚构,请勿对号入座。很久很久以前,有那么一个小伙子,就叫他……小甲好了。立志要成为一名职业拳击手。他参加过一些短期拳击训练,也打过几场地下拳赛。有一天,小甲路过当地最大的一所拳击学校,学校外面的广告迎风招展:一代拳王开班授课,助您成就拳王梦...原创 2010-07-27 13:53:22 · 467 阅读 · 0 评论 -
上海交大“艳红门”花絮之《上电视了...》
【转载自http://blog.sina.com.cn/s/blog_68b44a910100j41z.html】[quote="出来混早晚都要还"]央视:面对面(摘自)记者(才静)问:听 章老师的口音是东北人吧?章老师答:干蛤呀,什么耳朵你,我是米国淫!阿静:呵呵阿静问:最近有几个小P民,一个叫小囧、杀猪,出来混等人在网上对您产生了质疑,您对此有何看法...原创 2010-07-27 13:42:55 · 473 阅读 · 0 评论 -
垃圾留言狙击手
上代码:[code="javascript"]var mode = 'sniper';// 狙击模式,击毙目标后立即收队var id = 23819, total = 0, beginAt = new Date().getTime();function cleanup() { new Ajax.Request('http://sam-ds-chen.iteye.com/a...2010-07-21 11:02:44 · 78 阅读 · 0 评论 -
垃圾留言清理助手(JE版)
本帖属技术讨论范畴。[color=red]感谢那位义务做测试的悬崖边的人,正在执著地不屈不挠地跟我的助手较量。澄清一个对该助手认识的误区:这只是几行javascript代码,不是机器人,它的长处在垃圾足够多的时候一次性秒杀它们才能彰显。等悬崖发够250条垃圾,咱再运行助手秒杀它。[/color][quote="悬崖"]莫非你这段程序磋的要手工点击执行的 ”的意思了么?你这也叫“人工跟机器斗...2010-07-20 12:11:27 · 89 阅读 · 0 评论 -
对db4o direct (fast) access的探索
一般情况下,用db4o查询到的数据都是你的POJO的实例(当你读取某个实例的属性时,db4o会调用activate方法激活该实例)。这种机制非常的不利于你读取较大数据量的情形,比如你跑报表的时候,你的某个报表包含10000条记录(其实在odb不应该使用“记录”这一说法),如果只考虑顶层数据对象的激活,就得硬生生实例化10000个对象。如果你执行的是一个聚集操作,比如求10000个数据的平均值,你将...2011-01-04 12:23:35 · 66 阅读 · 0 评论 -
没有EWS,怎么把其他系统的Calendar同步到Exchange?
Exchange 2007及后续版本提供了EWS,等于是提供了一个供其他应用使用的接口,而我们的Exchange是2003版,没有EWS,貌似不能方便地把其他系统的Calendar同步到Exchange... 有人说,用WebDAV可以,但我觉得还是复杂了点。 昨天看到HTTPBuilder,刹那间有了办法:我们不是有Exchange提供的webmail吗?我们可以手动登录上去操作...2011-09-19 16:45:12 · 182 阅读 · 0 评论 -
神奇的V2V2B(喂,二!喂,二逼!)技术
如果你没听说过“V2V2B(喂,二!喂,二逼!)技术”,你可能跟我一样,太孤陋寡闻了 - 我也是刚刚才听说的。话说该项技术由上海交通大学特聘教授张艳红所创,属IT尖端科技。以下所引用的内容源自《张艳红:实现V2V2B梦想的女人》 http://www.zytzb.org.cn/09/intell/lxtd/201003/t20100329_652342.html[quote]读...原创 2010-07-14 16:08:53 · 273 阅读 · 0 评论 -
上海交大“艳红门”
人物介绍: (1)倒红派小囧(第一个质疑张艳红的打假斗士)杀猪的(质疑张艳红的打假斗士)出来混早晚都要还(质疑张艳红的打假斗士)我(07年退出张的“IT项目管理”班,至今仍不懂张独创的“项目管理3维模型”) 匿名网友 (2)挺红派张艳红(女主角,疑似学术骗子)蒋建伟(男配角,交大软件学院副院长,位高权重...2010-07-12 17:30:39 · 1408 阅读 · 0 评论 -
codeweblog.com把我的blog翻译成了一堆惨不忍睹的英文
在google “hack grails-core”时发现,我的Blog transactionManager hack之旅(http://sam-ds-chen.iteye.com/blog/650196)被codeweblog.com抓去了,被它的翻译机器(应该是机器翻译吧,人工翻译不会译得这么可笑的)翻译得一塌糊涂:http://www.codeweblog.com/transactionm...2010-05-11 16:22:37 · 342 阅读 · 0 评论 -
Tencent VS 360
S says: 星星透露点360VSQQ的内幕啊。Henry --Tel: 1016 says: 不用qq就对了 否则你的艳照、毛片、资料等都被翻遍了S says: 疼讯说你老板是流氓啊,还说360伪装QQ的弹窗,让用户把QQ资料上传到360服务器备份呢。怎么回事啊Henry --Tel: 1016 says: 你丫都多大的人乐 这都信 ...2010-11-04 11:18:35 · 125 阅读 · 0 评论 -
transactionManager hack之旅
Grails使用Spring和Hibernate,事务管理用的是Spring的declarative transaction management。如果运行grails console,只要println ctx.transactionManager,它会告诉你它用的是org.springframework.orm.hibernate3.HibernateTransactionManager@xx...2010-04-22 10:54:12 · 93 阅读 · 0 评论 -
闲聊李X垃圾书
sam.ds.chen和Simon的对话Simon 12:53:24 你也出书了 ? sam.ds.chen 12:53:48 出了,免费电子版 Simon 12:53:56 什么时候我有机会拜读一下啊。 sam.ds.chen 12:54:23 靠,李刚的垃圾书到处都是,还有机会读我的啊。 Simon 12:54:40 不是吧,你还跟李刚较上劲了。 等待Simon接收文件"sam.ds.che...原创 2008-11-24 13:10:43 · 135 阅读 · 0 评论 -
代码片段
def preview = { def file = new File(servletContext.getRealPath("/WEB-INF/docpreview/${params.resourceId}.swf")) if(!file.exists()){ file = new File(servletContext.getRealPath...原创 2010-01-14 19:01:11 · 79 阅读 · 0 评论 -
ExtJS不能解析'2010-01-14T04:37:11Z'?Hack ExtJS 的parseDate
最近在研究Grails+ExtJS做应用。Grails render到前台的Date格式默认是ExtJS的'Y-m-dTH:m:sZ'格式, 但ExtJS却不认'2010-01-14T04:37:11Z'。Google了一下,找到一篇文章引自“http://www.timeanddate.com/library/abbreviations/timezones/military/z.html”:...原创 2010-01-14 15:09:27 · 91 阅读 · 0 评论 -
一图胜千言:在UltraEdit中使用Grails+Db4o开发
用UltraEdit做基于Grails+Db4o的开发,比用Eclipse或IntelliJ IDEA爽。用UltraEdit打造的这个简单的IDE几乎是瞬间就能打开,不像IDEA要慢吞吞来段前戏。直接看图,废话就不多说了。一. 用UltraEdit的“工具配置”支持,加入几个grails常用的命令。 二. 快使用“三指禅”,哼哼哈嘻!Ctrl + Shift + 1,启动g...2010-08-15 17:57:32 · 92 阅读 · 0 评论 -
Grails探索系列之 domain class的编译期属性注入(终结篇)
几个月前,我曾研究过Grails的domain class的编译期属性注入专题(可参见拙文《Grails探索系列之 domain class的编译期属性注入》[url]http://sam-ds-chen.iteye.com/blog/676070[/url])在那篇文章中,提到了一个悬而未决的问题[quote]...权且试试,把编译后得到的类拷贝进%GRAILS_HOME%/di...2010-08-13 19:59:00 · 156 阅读 · 0 评论 -
ImageDownloader (groovy script)
def download(url, path){ def folder = new File(path.substring(0, path.lastIndexOf('/'))) if (!folder.exists()) folder.mkdirs() def file = new FileOutputStream(path) def out =...2009-12-18 17:06:41 · 95 阅读 · 0 评论 -
A tiny Migration script
import groovy.sql.Sqlclass Migration { static getSqlInstance(String orig_or_dest) { Sql.newInstance( "jdbc:oracle:thin:@asapp:1521:appdb", orig_or_...2009-12-17 18:00:08 · 70 阅读 · 0 评论