自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JavaScript

IBM Domino and more

  • 博客(224)
  • 资源 (1)
  • 收藏
  • 关注

原创 94. 基于Notes/Domino的文档工作流系统(六)

上文分析了我们的流程配置使用三类对象,分别对应三类文档:工作流配置文档、节点配置文档和操作配置文档。本文介绍三类配置文档的内容,也可以看作本流程系统的设置教程。这些配置文档的共同点包括:处于编辑状态时,必填字段的右边会显示红色星号(这实际也是整个系统的共同设计),保存文档时会对这些字段进行校验。许多字段既能输入静态值,也可输入公式以计算动态值。输入公式时用大括号包围所写的公式,即{formulas

2015-02-04 11:58:35 9260

原创 93. 基于Notes/Domino的文档工作流系统(五)

确定了流程引擎包含以下功能:校验必填字段。修改流程文档的权限,包括有关的读者域、作者域、存取控制区段。添加操作记录。修改配置的业务字段。发送邮件通知相关处理人。随后就要为其建模。此过程在用不同范式的语言开发时有不同的形式和术语。在C之类的过程式语言里,包括设计数据结构和自上而下的函数层次。用面向对象的方法时,就是要设计出类图。在我们的Notes环境里,基本上奉行的是“面向界面”的开发,确定了需要几

2015-01-20 10:20:11 6172

原创 92. 基于Notes/Domino的文档工作流系统(四)

现在我们以演示的采购工作流来研究工作流系统的设计。本文将讨论一个通用的工作流“引擎”包含哪些功能。通过需求分析和梳理,我们已经获得如下的流程图。由此可知该流程由一组状态、与状态对应的一组用户和流程处于某种状态时当前用户所能进行的若干操作组成。 接下来逐个分析这些操作。首先看IT部门的起草人填完采购单后提交。此时流程系统须做以下工作:校验必填字段。生成采购单号。修改采购单状态为Waiting For

2015-01-17 10:15:06 6005

原创 91. 基于Notes/Domino的文档工作流系统(三)

如前文所说,基于Notes的工作流系统之所以在Notes应用程序里长盛不衰,就是因为Notes平台适合开发此类系统。无论是政府和企业日常办公中的请假、用车、办公用品领用、人事招聘,还是企业生产经营过程中的采购、报销、设计审批,所有这些流程都可以建模为以文档为核心主要活动为用户审批的工作流。而Notes平台正有许多便利条件开发此类系统。我们以需求——设计——编码的顺序来研究这样的一个工作流。为了方便

2015-01-13 15:21:20 6196

原创 90. 基于Notes/Domino的文档工作流系统(二)

XPages下的工作流演示网页外观的可能性在技术上超过Notes客户端里的表单,Web应用程序在页面设计上花费的精力和取得的效果也远远超过基本保持传统客户端应用程序界面风格的Notes。我是程序员,不是设计师。在下面的演示里,页面都以展现功能为主,基本采用XPages的默认输出。按状态分类显示采购单的视图:采购单页面:单击Flow actions…按钮弹出的对话框:流程设置先来看看这个采购系统的流

2015-01-09 12:13:09 6379

原创 89. 基于Notes/Domino的文档工作流系统(一)

介绍Notes/Domino作为一个数据库系统和开发平台,具有许多与众不同的特点。这些特点使得它适于开发某些类型的应用系统(同时就不是开发其他一些类型系统的适宜平台),这其中就包括工作流。这里指的并不是如工作流管理联盟(Workflow Management Coalition, WfMC)制定的工作流标准(Workflow Reference Model)那样通用的工作流,而是一类以文档为中心的

2015-01-08 10:49:00 7885

原创 晚餐(六)

“住嘴。你这万恶的狮子,为什么吃那么多猪!鸡鸭鹅牛羊,什么不好吃?”信回教的猎户甲愤怒地吼道。“你胡说些什么,猪有什么特殊的?我也喜欢吃猪肉。”家里是养鸡大户的猎户乙忍不住了。“安拉会惩罚你的!”“我天天给玉皇大帝烧香,谁也动不了我!”“好啦,别吵了。为了几只牲畜伤了和气。”年长的猎户丙出来打圆场。“不过我说狮子头,你也真是的。猪肉有猪肉的营养,鸡肉有鸡肉的营养,不能挑食啊。还有,以后要多吃蔬菜、

2014-12-30 09:20:53 3388

原创 晚餐(五)

“上去。”M不好违拗,走上前跨进吊篮里。此时他紧靠着墙,再抬头去看,发现从楼上悬下的绳子被挂在窗沿上突出的一个滑轮上,另一端也挂上了一个类似的吊篮。“小美,上去。”轻轻的一声命令后,绳子一下被绷紧了,M感到脚下的竹制吊篮几乎就要离开地面,显然是有什么东西进了上面那只篮子。“向上跳。”又一声命令传来,这次是对M的。M已经对这套把戏猜透了七八分。他往上一跳,脚下的篮子失去负荷,也腾空而起。片刻,M在双

2014-12-29 09:09:35 3449 2

原创 晚餐(四)

“F住哪啊?”“四楼正中间。”人群随着议论声骚动起来。M踮起脚尖,往人群包围中的空地看去。一个身穿黑西装白衬衫系着领结的胖男人走到场地中央。饱满的胸脯上长着圆圆的脸庞,乌黑的头发波浪般向两边分开。只见他从口袋中取出一只微型单放机,用他充满肉感的拇指充满信心地按下一键。《今夜无人入睡》的洪亮前奏就从那小黑盒子里流出,刚刚静下来的人群中又纷纷传出对此单放机音质的羡慕赞叹声。胖子气势堂堂地扫视了一眼观众

2014-12-28 10:34:32 3641

原创 晚餐(三)

F就出生在R市,和千家万户的孩子一样也是吃辣长大,不过从小在这方面的天赋异乎常人,吃起水煮活鱼、夫妻肺片连干辣椒和红油都能一扫而光。另一项让她闻名远近的就是漂亮,到义务教育结束时,女孩已经蝉联了九年校花。所以当F进入U大学,这所男女比例不仅悬殊,而且彼时还流行着诸如“U大女生一回头,淫雨霏霏鬼见愁。U大女生二回头,侏罗恐龙绕道走。U大女生三回头,哈雷彗星撞地球。”恐怖传说的理工类院校,引起的震动就

2014-12-27 11:19:42 3302

原创 晚餐(二)

五分钟后,A和B随着队伍挪进餐厅的门。外面已经暮色浓重,大堂里就显得明亮而热闹。暖色的灯光透过灯笼型罩子泻在白色的桌椅和橙色地砖上。几十张四人位一体型的长方形桌椅紧凑地排列着,大都座无虚席。食客端着刚买的饭菜,服务员拿着抹布和装着剩饭菜的碟子,都像巡视员一样找着各自的目标。A取下眼镜,用手抹了一下脸上泌出的油,再戴上,打量了一下周围的人,能分辨出几张每晚都出现的熟悉的脸孔。一个头发茂盛的小伙子,端

2014-12-26 09:47:56 3278

原创 晚餐(一)

(若干年前自娱自乐写的小说)前言这个世界通过键盘诞生的东西有两大类,一类是代码,一类是文字。作为一名程序员,在长期生产第一类产品后,也想将英文输入法换成中文输入法。职业所致,手腕酸疼,我便养了一只打字鸡。欲敲一键,只需掷一粒米于其上,它便低头啄食,顺便击键。我掷无虚发,它每啄必中。我无腕痛之虞,它亦劳动养活自己。此文既成,打字鸡积劳成疾,患上颈椎病。我将此文献给它,感谢它的辛劳。 一辆灰色的中巴停

2014-12-25 17:55:54 3955 3

原创 88. Notes客户端开发中的Java

回顾一下,在Lotus Notes杂谈专栏中,我陆陆续续写的关于Notes里Java编程的文章也有不少:6. Lotus Notes中的开发语言、8. 从Lotusscript到Java、22. 为什么要在XPages中写Java?、31. 怎样在Xpages应用中写Java、42. Lotus Notes中的垃圾回收之Java等等。这篇文章继续谈谈Notes客户端开发中的Java。用Java进行

2014-12-20 12:30:27 5363

原创 87. 再谈变体型Variant

在85. BASIC和LotusScript中的Variant一文中,我提到了BASIC风格的语言中的变体型Variant。由于下述种种原因,在LotusScript中经常要用到变体型。1.      函数的返回类型不能声明为数组,有此需要时只能用变体型。2.      自定义对象的方法不支持重载,需要传入多种类型的参数时只能用变体型。3.      数组变量不能整体赋值,例如从Split()或d

2014-12-17 10:22:21 7017

原创 86. LotusScript中的数组函数

R6对LotusScript有一些改进和增强,自那之后,Notes对象的接口时有补充和更新,但语言本身没有变化。那些改进就包括增加诸如ArrayGetIndex、ArrayUnique的有用函数。但在编程实践中,还有一些对数组的操作LotusScript没有提供原生的函数,好在基本上都能自己编写。下面的函数中用到的常数都在lsconst.lss或lserr.lss里定义,在脚本前要附加%INCLU

2014-12-16 11:03:44 6916 2

原创 85. BASIC和LotusScript中的Variant

缘起最近我回看以前记的关于Notes的笔记,发现在Notes bugs类别下,两条编号间隔一的竟然是相差无几的内容。2. 'Type mismatch' occurs if an nested array e.g. when an item of ColumnValues is an array, is assigned to a variant or passed as an argument

2014-12-02 11:09:39 4267 1

原创 杂谈对抽象事物的审美——繁体字与简体字,孰美?

春眠不觉晓,处处闻啼鸟。春眠不覺曉,處處聞啼鳥。上面两句诗,那一句看起来更美?一个大陆人很可能选择前一句,认为前者简洁清爽,后者繁琐臃肿;一个台湾人则会选择后一句,觉得后者端正有韵味,前者简陋残缺。汉字的繁简体的比较和评判可以从很多角度进行,其中一种便是比较两者字形的美感。繁体字的支持者往往声称正体字的笔划构造体现了汉字独特的形象美,简体字残缺丑陋。但以我个人的经验,从小学简体字,很长时间一直读的

2014-11-17 14:44:55 4842

原创 84. 从视图索引说Notes数据库(下)

作用和代价上文介绍了关系型数据库里的索引。Notes数据库里的索引隐藏在视图概念里(本文的讨论只针对Notes的视图索引,不包含全文索引。)。开发人员创建的视图仅仅是存放在数据库里的一条设计文档,数据库引擎会依据它创建和更新索引。关系型数据库里的索引是从记录中抽取的数据排序而组成的数据结构(主要是B树),Notes视图的索引还包括未排序的列、计算值、分类、总计等等数据(数据结构仍然是B树,如果运气

2014-11-01 21:52:43 6741 5

原创 83. 从视图索引说Notes数据库(上)

索引是数据库系统重要的feature,无论是传统的关系型数据库还是时兴的NoSQL数据库,它攸关查询性能,因而在设计数据库时需要细加考量。然而,Lotus Notes隐藏技术底层,以用户界面为导向,追求快速开发的理念,使得“索引”鲜有开发人员提及,甚至了解。大家只论及视图,而当不同的人在不同的场合说“视图”时,所指各异。普通用户如果用视图一词,指的是显示一行行信息的列表;开发人员口里的视图,是数据

2014-10-30 14:21:05 4082

原创 《重说中国近代史》

重说二字恰如其分。“重”是因为书中叙述的中国近代史与我们从小到大从学校里教材上读到的有很大差别。当然从各种网上资源和书报电视,我们已经知道教科书上的历史许多地方与真实历史的差别,就像新闻联播和现实生活的差距一样。但是以一本书系统地将已从其他渠道得到还原的历史片段连贯地展现出来,还是有令人耳目一新的感觉。“说”是缘于本书基于张鸣教授的讲课实录,是用口语说历史,不是用书面语写历史。短小活泼的语言让读者

2014-10-24 16:20:45 4110 2

原创 82. Notes客户端Print相同信息到状态栏的问题

这可能是个微不足道的问题,不过其他人也应该遇到过。在Notes客户端用LotusScript的Print语句输出信息到状态栏时,如果多次调用传入的参数实际相同,状态栏只会显示该信息一次。例如:Print "a"Print "a"Print "a"不会输出三行a,而只有一行。如果作为参数的变量内容相同,多次调用也只会输出一次。例如:Print view.ToplevelentrycountPrint

2014-10-23 14:23:04 4233

原创 《黄金时代》与《萧红评传》

《黄金时代》是一部独特的个人传记电影,大量人物对着镜头叙述他们的经历和感想,因为相关人物都是文艺圈中人这个便利条件,许多对白都原封不动地引自各人的书籍和文章。萧红在日本时悟觉的黄金时代,在她一生的颠沛困厄中,有无尽的意涵,既反照她一生的多舛,又隐喻如樱花绽放般短暂的精彩。编剧李樯和和导演许鞍华对这样一部关于萧红的电影谋备已久,李樯从纷繁的材料中写出一百多个场景,再经许鞍华的选择和拍摄,构成了他们心

2014-10-16 22:59:36 6541 2

原创 81. Domino视图Web展现技术胪列

以列表形式显示大量数据是各种开发中最常见和基本的需求之一。在数据保存在关系型数据库的Web开发中,程序员要处理的是分开的两项任务,一是从数据库中查询记录,二是在视图层生成显示这些数据的HTML。如何分页是主要问题。Domino以界面为导向的开发风格和不适于动态查询的文档型数据库使得程序员面临完全不同的处境和问题。预先设计的视图不仅定义了包含的文档,也设置了外观属性,集数据层和外观层的功能于一体。在

2014-10-15 17:14:21 6280

原创 纪念userscripts.org

发现一些Firefox的用户脚本不工作和userscripts.org访问不了有挺长一段日子了,心想是哪里出了错也没特意去查。前几天有时间检查脚本,顺便再上久违的userscripts.org看看,却还是不能访问,感觉有些蹊跷,遂在Google上搜索userscripts.org down,还没敲完,提示已经出来了,看来这已是影响普遍的问题,和伟大的防火墙没什么关系。点进链接一看,大吃一惊。原来u...

2014-10-10 17:29:40 8522

原创 银行会消失吗?

在吴晓波频道的一期《银行去哪儿了?》节目里,吴晓波开门见山地提出已有三百多年历史的银行业将被革命掉。吴晓波陈述了银行业目前在方兴未艾的互联网大潮中遇到的前所未有的挑战。他抛出了两个重磅炸弹。艾森哲的报告预测到2020年美国传统银行将失去35%的份额,25%的银行将消失。互联网趋势名人凯文凯利的预言则更惊人:20年后传统银行业可能消失。随后伴随着八九零同学网络回帖式的发言,吴晓波分析了银行业现有的几

2014-09-16 18:21:53 9581 1

原创 从黄生和辕固生的辩论说起

从黄生和辕固生的辩论说起 这几天读贺教授近几年的博文,不仅收获了知识和思想,而且随着贺教授的相机,见识了他乡的风物,欣赏了异国的景色,更从文章的字里行间和访谈的直抒胸臆,体会到贺教授的情怀和精神。套用宣传部的评语,贺教授的文章兼具知识性、思想性和艺术性,让我受益匪浅。阅读中我发现一件有趣的事,黄生和辕固生在汉景帝前的辩论被讨论了三次,分别是《帽子与鞋子》(http://blog.sina.com.

2014-09-13 17:26:52 8537 2

原创 中秋思月

今天是中秋节,想起小时候逢此节日,离家不远的地方还有人“烧塔”,自己和闻讯赶来的小孩一起围着红彤彤的火塔兴奋不已,四处找可烧的东西往里添。如今除了和家人团聚,中秋节渐成月饼节。天气预报多云阵雨,月亮也未必能见着。想想古诗里的月,也算是精神上的赏月。海上生明月,天涯共此时。山寺月中寻桂子,郡亭枕上看潮头。举杯邀明月,对影成三人。秦时明月汉时关,万里长征人未还。长安一片月,万户捣衣声。春色恼人眠不得,

2014-09-08 13:07:20 6348 7

原创 版本控制、Git和Domino

版本控制一提到版本控制,程序员们就会想到他们工作中用到的各种源代码控制工具,Subversion、Git、Mercurial……实际上源代码之外的许多其他文件也会有版本控制的需要。而版本的想法和对其的管理更是在计算机出现之前的印刷以至手写时代就一直存在。版本是作品生长衍变的徵象。手写和印刷时代的文字作品之还仅是记录它的修改生长。及至计算机和电子文件出现,文件大小、内容复杂程度、版本更新速度都空前增

2014-09-06 12:20:42 6847

原创 非典型SOHO的苦与乐

每天睡到自然醒,有车的不用在路上堵,没车的不用在车里挤,干活累了可以看看苍老师或者股市不用担心老板,要认真时不会被同事的聊天或电话烦扰,想放松时可以在位置上吞云吐雾,爱听的音乐能从音箱里放出来享受,有另一半的还可以做饭献献殷勤充实生活……这应该是很多人梦想的工作状态,在家上班。作为一名IT老男人,我过去常常想,写程序是最适合在家干的工种之一,每天费时费力来办公室,一大堆人在空气未必流畅的房间里...

2014-09-03 15:27:18 7203 11

原创 十二道锋味——既是食,也是人

初识谢霆锋这个名字,是在十几年前上大学期间。彼时的香港,经济和流行文化上都傲视全中国。香港电影就如同今日的美国大片。十多岁的少年心中,电影里那个遥远又有些神秘的城市就意味着海市蜃楼般的高楼大厦和夜晚永远闪烁的霓虹灯火。那里的人,说着不一样的语言,留着前卫的发型,穿着时髦的服装,做着酷酷的事情。谢霆锋就是以这样一个染着发的酷帅青年的形象出现在《特警新人类》里。这部平庸的警匪动作片除了几个年轻主演的外

2014-08-30 17:29:40 5994 3

原创 Java Log Viewer日志查看器

工欲善其事必先利其器在投奔怒海——一个Domino老程序员眼里的Java开发我提到目前所做的Java开发中遇到的大量日志之问题。服务器控制台刷屏似地滚动,日志文件飞快地增长,debug的时候相关信息常常被例常日志淹没,在众多Logger滔滔不绝的输出下,要找出错误所在有时都挺费眼。日志的作用无可置疑,大型项目中日志海量产生也不少见。在以前的Domino开发中,Domino服务器在产生日志方面相当节

2014-08-15 17:50:29 22111 6

原创 80. Domino Internet Password

Internet口令保存在Domino目录的个人文档的HTTPPassword域中,和文档中的用户名一起用于藉各种Internet协议访问Domino服务器时的校验,最常用的就是通过Web访问应用程序,其他例如用POP3协议接收邮件,LDAP协议校验身份时,也是采用这组身份凭据。口令以秘文保存。在R6之前,加密口令的算法由@Password公式执行。自R6起,为了更高的安全,有了新的算法,可由@H

2014-07-25 21:49:15 5702

原创 投奔怒海——一个Domino老程序员眼里的Java开发

这是一个以键盘鼠标为谋生工具已十多年的人初次进行专门的Java开发的体验和感受,对于Java程序员,这些也许早就习以为常,那就把这当成从一个来自不同世界的新人眼里看看他们自己的工作;对于我的Domino同行,这些体验或许将来有更多共鸣的可能。在加入到这个Java产品开发团队之前,我的Java开发经验如下:十几年前跟着一本Java入门书做练习写的几个Applet,Domino项目开发中写的几个读写数

2014-07-25 18:25:39 11485 14

原创 Bug驱动开发(Bug-driven development)

不过根据我最近参与的某国外大型Java产品的经验(也在聊天中得到了朋友的印证),在现实中无论是用什么语言开发什么样的项目,都普遍存在一种方法论,并且还没有得到理论家的重视,被系统总结和提出过。我准备将这种方法命名为“Bug驱动开发”( Bug-driven development)。虽然名字同样高大上,但实际上各位程序员对它都不陌生。简单地说就是发现bug——消除bug——发现新的bug,这样一个不断循环的过程驱动着开发,是谓Bug驱动开发。要运用这种方法论非常简单,只需做到以下若干条中的某一条:

2014-07-21 15:00:40 3561 4

原创 Windows 8之失败,电脑作为娱乐设备VS工作工具

Windows 8面世已经一年多了,褒贬不一。考虑到未来买新电脑替换陪伴了我几年的小伙伴时是否要升级现在的Windows 7,我对Windows 8也研究了一番。记得读小学时有一段时间考试成绩总是一次好,一次坏,交替进行。微软面向个人用户的操作系统自Windows 98以来也遵循着我的成绩规律,成功和失败的版本轮流出现。Windows 98大获成功,Windows ME乏善可陈,Windows ...

2014-04-02 17:27:11 3597

原创 浅谈简洁与全面,智能与可配置

我在写上一篇文章Visual Studio Intellisense、Eclipse Content Assist与理念式编程对比Visual Studio和Eclipse时对两个开发环境在功能、界面上的风格差异有些感想,联想思索之下发挥成这篇文章。主要谈的是各种产品设计上体现出的两对趣味相异的理念,可见于机械、电子、软件等各个行业,文中举的例子来自我比较熟悉的软件业。简洁与全面简洁与综合...

2014-03-12 10:47:26 4296 2

原创 Visual Studio Intellisense、Eclipse Content Assist与理念式编程

Visual Studio和Intellisense我一直觉得VisualStudio是微软最了不起的产品之一,也是最智能和直观的语言开发工具之一,虽然它不是我日常主要的开发环境。在其中写程序总会给我轻松愉快的感觉。Intellisense是Visual Studio里的代码提示和完成功能,也是我见过的同类功能中最聪明的。关键字、类型名称、方法名称、类型和方法字段名称、对象初始化代码、注册事件处理

2014-03-11 19:03:10 8718 9

原创 What is this?

(This is an article I wrote several years ago to explain the this keyword in some programming languages. The title is a pun intended.)Java, C# etc.The this is a keyword in programming languages such a

2014-03-07 10:34:30 5844 3

原创 Java、LotusScript和JavaScript中的自定义事件编程

面向对象的LotusScript(六)之为自定义对象模拟事件和面向对象设计与事件两篇文章都提到事件是编程时对很多场景的抽象和解决模式,核心就是在两个对象之间建立一种“提醒”机制,当某件事发生时,作为发布者的对象提醒称为收听者或预订者的对象,后者执行特定的操作。在汽车火车上,一名乘客甲请讬乘务员或者另一乘客乙到某站丙时提醒自己下车,就可以作为以上事件概念在生活中很好的原型。这里汽车到达丙站就是事件,

2014-03-03 11:41:34 10009 5

原创 面向对象设计与事件

面向对象的设计给编程带来很大的便利和好处,在贯彻这种原则的语言中把类作为代码单元似乎也是自然的事情。但是实践中,剥夺了过程的独立生存权有时又会让代码失去过去的灵活和便捷。对事件的编程就是这样的场合。本文通过对比Java和C#里的事件编程说明这一点。

2014-02-26 17:02:52 8797 3

Notes文档工作流系统

本系统演示了一套基于Notes平台的开源文档工作流。工作流的名称、节点和操作等配置保存在一组文档中,方便在运行时创建和修改。工作流可运行于Notes客户端或浏览器(需XPages支持)。 功能(features)包括: 工作流的节点和操作可灵活自定义,包括每个节点具体有什么操作,没有任何预设的名称或数量上的限制。每个节点的用户、特权用户、每个操作的目标节点、操作的访问权限等等都可以自定义设置。 操作的配置中包含字段校验和邮件内容以尽量减少额外编写代码的需要。 许多配置可写入公式。 客户端和浏览器上运行的工作流共享配置数据,操作风格也完全一致。 具体工作流可通过扩展基类添加复杂的业务逻辑。 默认状态下每个流程文档的当前用户以用户名形式保存,因而可以在My Work视图下看到需要自己处理的工作流。 定时发送HTML的汇总提醒邮件。

2015-02-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除