自定义博客皮肤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)
  • 收藏
  • 关注

原创 编程语言印象集

小白:听说你会七门语言?王二:是啊,口语听力都没问题。小白:敢问是哪些国家的语言?王二:秦齐楚魏韩赵燕。计算机专业的学生在大学期间就会学习多门编程语言,我不是科班出身,因为工作或兴趣的原因也接触了好几门语言。除了Lotus Notes开发平台的主要编程语言LotusScript外,其他都谈不上有多深的认识。所以下面对各门语言的印象至多算是经验不足的用户的肤浅感受。Fortran:Fort...

2014-02-21 10:01:33 4110 2

原创 莫道君行早更有早来人(三)翻译平台

工作时间久的程序员不少都至少有过辞职单干的想法,或者换个时髦的词语就是“创业”。我也一样。2010年我辞去负荷越来越重的工作,在家休息了一段时间,一度想能否自己做些什么。按照我的性格和能力,“生意”的经营模式越简单越好。自知不喜欢和难胜任大量的业务信息和繁杂的日常管理,最好是只需精心设计规则,搭建一个平台,在其上不过多依赖经营者去处理琐碎的事情。我想到了一个亲戚曾经做过的翻译公司,从客户那里接...

2014-02-20 18:01:55 4045

原创 漫谈Web Feed、RSS、原文链接和转贴

Web Feed(网上信息源【注1】)和对应的订阅器(feed reader)是一项在中国和西方境遇大不同的技术,从探讨这样的差别可以得出一些有趣的见解。历史上【注2】网站刚诞生不久,就有人思考以不同的方式来发布信息。传统的模式是网站添加新信息,网民访问网站以浏览和阅读。如果网民感兴趣的是频繁更新的,甚至有时效性的内容,就必须经常访问网站检查是否有更新;或者相反,一个网站或其中的某个主题很少更新,...

2014-02-13 12:18:30 5810 2

原创 莫道君行早更有早来人(二)几点网络技术的想法

接着上篇继续说些我曾有过,后来被证明为“英雄所见略同”的想法,因为是在CSDN上写文章,所以选的都是与IT有些关系的想法,或许这些抛砖能引起大家的共鸣和同感。大概在2003年左右,其时继QQ、聊天室、BBS之后网络论坛在中国可谓风头正劲,各种类型和主题的论坛一片繁荣、此起彼伏。我在逛论坛之余,一天晚上突然想到另一种在网上发布内容的形式。论坛都是以话题为中心的,列表显示一个个大家贴出的主题。可以设...

2014-02-09 11:39:32 3816

原创 莫道君行早更有早来人(一)黄页

发明、定理、商业模式、观点……从小到大,我每每有一个新想法都会忍不住兴奋一番,以为自己有了前所未有的创造,高潮之后却会逐渐发现经常有两种情况,或者这些想法很难实现(发明:做出实物,定理和猜想:证明,商业模式:运营成功),或者不仅别人早已想到,而且还已经实现了。于是我重新发现了这条定律——一个人在初涉的领域,没有经历过长时间的积累和研究,想出一个别人或前人未曾取得的成果是一个小概率事件。地球上60亿...

2014-02-08 10:39:58 20091

原创 JavaScript的strict模式与with关键字

2009年12月,ECMAScript发布了ECMAScript 5,这距离上一个版本的ECMAScript 3标准发布已经整整十年了,其间JavaScript虽然大行于web编程,ECMAScript 4却最终因为利益相关的各大厂商和组织在此语言的复杂性(即是否增加大量特性以扩展ECMAScript的功能)上的分歧而夭折,使得ECMAScript新标准的制订大大落后于编程的实践。ECMAScri

2014-02-07 15:06:17 3329

原创 79. 视图里的计算属性——从ASP、JSP、JSF到XPages的“钻石”

XPage文件里的几乎所有属性都可以设置公式来计算,这确实给应用程序的视图开发带来了极大的灵活性,不过这在Lotus Domino平台以外并不新鲜。用HTML或XML这样的声明性语言来定义用户界面,再辅以某种简单的表达式语言来设置计算的属性值,以实现动态的界面。首先采用声明性语言定义界面比用命令型语言简洁高效。其次单独的界面定义文件彻底贯彻了界面和业务逻辑分离的原则。最后利用表达式语言和事件绑定既清晰地实现了视图(view)和模型(model)之间的信息传递和控制转换,又保持了两者的独立性。这种良好的架构在

2014-01-28 10:31:39 4191

原创 Hacking with JavaScript——在浏览器之内,网页之外,运行JavaScript

引言端口扫描、内存溢出、安全漏洞……这些大概是很多人提到黑客时会想到的。他们用的语言自然也是汇编、C这些贴近底层的高级语言。JavaScript似乎与这一切毫不相关,自诞生起相当长一段时间内,这门在浏览器内执行一些简单的校验和互动的脚本语言,是职业程序员看不上眼的玩具。然而,本文就是要谈谈Hacking with JavaScript——以JavaScript来“黑客”。这之所以能成为一个题目,有

2014-01-23 16:14:28 7990 9

原创 78. Domino Designer 9.0.1升级无忧!

我昨天将DominoDesigner从9.0升级到9.0.1版本。这是一个维护版本(maintenance version),主要是修复bug,但是和很多主版本之后最初的维护版本一样,也有不少What's new?,对我来说不算吸引。经过几个小时的下载安装后,最大的惊喜却来自文档里没有提到的地方。用过8.5.X和9.0的朋友都知道,每次升级后,工作集(working set)、帮助文档里的书签还有

2014-01-09 17:49:54 5357 2

原创 傍晚的深圳湾

夕阳曛晚空,海风拂浅湾。眼前的堤岸向两翼延展,一边直至远方的香港新界,另一边伸向蛇口半岛,合起来将这一浅湾围得似一湖静水。星星点点的白色海鸟安详地享受这一切,时而飞起盘旋,复又落下,探着细长的足立在浅浅一层海水下的滩上。傍晚的太阳收起了中午的炫耀,用金、赤两种简单的颜料把蓝天白云的底板幻成辉煌的交响乐章。面朝西时,还稍觉刺眼,其他方向已是柔和又明亮的暮色了。大概是在涨潮期,水位较高,没过了黑臭的滩

2014-01-08 16:09:01 4089 3

原创 字体调查:诸位喜欢看什么样的字体?

我因为偏好微软雅黑字体,在Word和之前贴的文章里都使用它。因为博客编辑器默认采用的是仿宋字体,我一直都是逐段手工修改,后来发现可以直接插入CSS代码,改字体就没那么繁琐了。不过现在有一个疑问,大家是否也有这种偏好,如果有我就继续以前的风格,没有的话我就不修改字体了。有意见的请在本篇回复。

2014-01-07 16:37:54 2591 5

原创 77. Lotus Notes中编程发送邮件(三)之XPages中用Java发送邮件

在46. LotusNotes中编程发送邮件(一)和47.Lotus Notes中编程发送邮件(二)里笔者介绍了在Lotus Notes发送邮件的几种简单场景和需求,并给出了以LotusScript编写的通用代码。本文介绍可在XPages开发时使用的一个用于发送邮件的Java类,具备LotusScript代码的所有功能,且有更友好方便的API。这个类具备如下功能:发送Notes邮件。发送HTML邮

2014-01-07 16:27:53 6778 4

原创 76. Lotus Notes编程中的命名习惯

程序里实体的命名规则和习惯在一种开发环境里编程,会用到各种实体(开发中用到的从文件类型、程序的组织单元到数据库对象的种种对象,不用对象一词以与面向对象语言里的对象区分)。实体种类的多少,与所用语言和平台的复杂程度和特点有关。例如用像JavaScript的脚本语言就只会遇到对象、函数、变量等寥寥几种实体;使用Java时就会用到接口、类等更多实体;如果用到了数据库,又会涉及到诸如数据库、表和字段等相关

2014-01-06 15:49:48 4416

原创 75. XPages中Java开发的一些有用方法

在用Java进行XPages开发时,有一些常见的基础性的任务。这些经常要做的事部分与在Lotus Notes客户端开发时遇到的相同,例如获得当前Session和数据库对象,但是达成的方法与用LotusScript截然不同;其它则是XPages开发环境特定的需求,比如获得当前com.ibm.xsp.designer.context.XSPContext和RequestMap对象(即RequestScope变量)。将这些频繁需要的任务以静态方法的形式写在一个工具类里是很好用的:

2013-12-30 12:29:49 4512 1

原创 《私人订制》--冯氏贺岁剧的隔年回归

昨晚和家人一起去看了《私人订制》,时光网上的低评分本来让我想选择《无人区》,后来因为时间的关系还是捧了冯小刚的场。范伟的当官梦十分精彩,活脱脱的冯氏风格的官场现形记,是这个时代的黑色喜剧,让人想起契诃夫和马克吐温这样的讽刺大师。范伟把一个卑微的司机所见所想的一把手演得淋漓尽致,短暂的角色扮演里,真实与虚幻编织出生活的荒诞。导演的一腔俗血,情节相比就有些生硬。雅俗之辨在这样的喜剧电影里当然很难有深度

2013-12-24 18:10:54 3286

原创 衷心感谢各位给我投的票!

我看到CSDN年度博客之星评选的消息时,只是随意报名参加了,自那以后从来没在论坛、博客、微博和QQ上拉过票。一是因为不大好意思做这种事情。二是因为有自知之明,自己主要写的是关于Lotus Domino开发的,这如今是一个冷门的小众领域,不太可能和那些经典的流行语言或者热门的话题技术竞争。所以在这种重在凑数的心态下,今天以前我甚至没有去看过投票数据。刚才去看时意外发现我和其他大部分候选人一样,有三位

2013-12-24 17:02:22 2550

原创 74. 面向对象的LotusScript(十六)之Html报表

需求与总体思路在《37. 面向对象的LotusScript(九)之导出Excel(一)》、《38. 面向对象的LotusScript(九)之导出Excel(二)》到《39. 面向对象的LotusScript(十一)之导出Excel(三)》几篇文章里,笔者谈了将MS Excel作为目标格式创建报表。虽然大部分情况下这都是不错的选择,也有些时候“报表”用其它格式展现更方便或适宜,包括网页甚至动态的Notes表格。

2013-12-24 14:04:59 3802

原创 文思海辉编程大赛的初体验

作为一个所学专业和计算机相去十万八千里的人,我对编程题目的印象还基本上停留在十几年前大学里教的Fortran和自己考计算机二级时学的C语言教科书上的习题。归纳起来大致有这么三种。一是做计算机被发明出来做的事——计算,譬如求一个矩阵的逆矩阵。二是和字符串打交道,在屏幕上做符号游戏,比如打印出一个由星形组成的

2013-12-19 12:13:08 3493

原创 73. Rebranding Lotus Notes

Lotus Notes的官方网站和这个软件平台一样坚持着向后兼容的原则,多少年来外观上鲜有变化,在不断改头换面美化重构的网站世界里显得像化石一样古老顽固。从R8推出以来,这个特点也悄悄发生了变化。跟随着整个产品线更加重视外观,努力跟上现代软件界面水平的脚步,网站也开始现代化了。先是和IBM其他产品的站点一

2013-12-18 11:32:09 2940

原创 72. XPages的文档数据源

在经典的Lotus Notes应用程序开发中,表单与Notes文档密不可分,在位于表单的代码里获取当前文档几乎是后续所有操作和运算的起点。在XPages里,页面和数据虽然在架构上是分开的,但是一个用作表单的XPage的数据源通常还是一个Notes文档,只不过在SSJS里可以直接使用的document1等变量对应的是一个Java的com.ibm.xsp.model.domino.wrapped.Do

2013-12-16 18:35:49 3954

原创 71. 从Lotus Notes表单到XPage——兼谈程序里的二进制文件和文本文件

本文对比分析了LotusNotes平台上两种视图技术。架构和运转过程的分析特定于Lotus Notes平台,其后的关于二进制文件和文本文件的讨论则具有普遍性。(严格地说,XPages指的是IBM基于Lotus Domino和JSF的快速开发技术,XPage则指单个页面,两者的首两个字母都大写。笔者一直遵守这个拼写上的规则。)架构XPa

2013-12-12 15:45:13 3970

原创 70. 在XPages中展现集合数据

数据绑定机制本文说的集合简单指多个具有同样结构的数据实体的总和,比如视图的部分或所有文档,查询数据库得到的记录集,一组模型(model)对象等等。在web应用程序里通常用表格来显示这样一个集合。作为基于组件的web框架,XPages提供了几种标准控件来显示这样一个集合:Repeat、View和Data Table。View用于显示一个Notes视图;Data Table以一个表格的形式显示一个集合

2013-12-05 17:43:14 4832 1

原创 69. XPages里的Java日志器

在48. 面向对象的LotusScript(十四)之Log4Dom上和49. 面向对象的LotusScript(十五)之Log4Dom下笔者介绍了一个简单实用的日志记录模块,代码用LotusScript写成,在Lotus Notes传统的客户端和web应用程序里都可以使用。在XPages开发里,需要可在SSJS或Java里使用的日志功能。用Java开发时,有很多现成的日志框架,比如Log4J和JD

2013-11-29 16:02:38 4117 1

原创 68. XPages里的动态非空校验

在67. 表单提交与校验里,笔者提到在一个表单提交的数据就绪给业务逻辑使用前,通常会经过转换和验证的过程,在用XPages开发时也不例外。当一个编辑框的value属性被绑定到一个DominoDocument数据源的某个字段时,Domino Designer会自动根据该字段在表单上定义的数据类型为这个编辑框添加合适的转换器(converter),比如日期类型的会被添加xp:convertDateTi

2013-11-22 17:57:05 3359

原创 67. 表单提交与校验

表单提交绝大部分应用程序都需要从用户获得输入,其中很大部分便是以表单输入的形式。一个表单,从用户输入系统接收到数据处理,会经历几个普遍的阶段。一个完备的表单提交流程具备以下几个不同阶段的功能:限制:根据字段的数据类型,表单对输入控件所接受的字符做限制。例如,文本类型的字段限制长度,数字类型的字段就不接受输入字母字符,日期时间类型的字段如果采取直接输入也可以限制输入的字符类型和格式。转换:系统按各字

2013-11-21 17:43:46 4840

原创 66. 在C#里模拟LotusScript里的字符串截取函数

LotusScript里的字符串处理函数在截取子字符串方面很方便好用。笔者数年前曾经比较三种脚本语言中的这类字符串处理函数,LotusScript的最全面实用。即使在C#这样新且类库设计优良的语言里,字符串类也没有类似的方法。 Vbscript Javascript LotusScript LotusScript里函数的功能 Left slice Left 截取字符串最左边的

2013-11-18 18:33:24 4323

原创 65. XPages自定义控件(三)高级搜索之三

RecordView控件的两个文件的完整代码在本文末尾给出。虽说完整,仅靠这两个文件,RecordView控件还不能正常工作,因为在这两个文件里还引用了其他自定义控件,调用了作为managed bean的starrow.xsp.App的方法,即使把这些代码也都全加上,仍然不是自足的,因为在starrow.xsp.App类里,又调用了其他辅助类的代码。所以这两个文件的代码不像笔者在以前很多文章中给出

2013-11-14 15:36:53 3895

原创 64. XPages自定义控件(三)高级搜索之二

现在来看看63. XPages自定义控件(三)高级搜索之一中提到的RecordView自定义控件的代码。从控件的设计视图自上而下可以看到用于条件查询的控件、一个向用户反馈操作消息的Message自定义控件、常见的视图操作的几个按钮和一个XPages自带的视图控件。 RecordView控件的设计界面RecordView控件从功能上分成的这四个部分,我们来一一检视:用于条件查询的控件RecordVi

2013-11-12 18:01:43 4288

原创 音之恋

想到今天是个特殊的日子里,贴上几年前写的一篇小说,博君一笑,也算是应节。祝愿各位依然单身的程序员早日找到自己的另一半:)音之恋 一我是一个男人,今年25岁,现在单身,更准确地说至今一直单身。有时候,我在异性中也很受欢迎,但据说是因为蚊子比较喜欢B型血。我长相普通,走在大街上,既不会引起星探的注意,也不会激起民众的反感。我喜欢的运动是逛公园、溜滑板;喜欢的电影是《音乐之声》、《仲夏的猎户座》;喜欢的

2013-11-11 18:38:11 9001 2

原创 63. XPages自定义控件(三)高级搜索之一

在59. XPages自定义控件(二)搜索视图里,笔者演示了如何用一个自定义控件给一个XPage页面添加全文搜索的功能,这在以文档为主要数据的系统里很好用,也足够了。不过,如在《62. 全文搜索与条件查询》一文里提到的,对于包含了结构化数据的系统,用户经常希望按字段做更精确的条件查询,利用Lotus Notes全文搜索支持的查询语法,也可以实现这一点。下面笔者就同样用一个控件来演示简单的多条件查询

2013-11-11 11:30:35 4785

原创 62. 全文搜索与条件查询

全文搜索与条件查询在59. XPages自定义控件(二)搜索视图里介绍的搜索视图控件采用的仍然是Lotus Notes系统典型的全文搜索。用户界面和操作都很简洁,只要往一个文本框里输入所要查找的文档包含的词语就可以。这一点和Internet兴起后搜索引擎的方式是一致的。不过在传统的基于关系型数据库的应用系统里,搜索更多地是以精确的条件查询形式存在的。用户在查询界面里指定若干条件,每个条件都是对当前

2013-10-28 16:16:44 4470

原创 两种类型的web框架: 基于请求的和基于组件的

概述现在的web框架可以分为基于请求的(request-based)和基于组件的(component-based)两大阵营。前者的代表有Struts和Spring MVC等,后者的成员则有JSF、Tapestry、ASP.NET等等。基于请求的框架较早出现,它用以描述一个web应用程序结构的概念和传统的静态Internet站点一样,是将其机制扩展到动态内容的延伸。对一个提供HTML和图片等静态内容

2013-10-22 17:19:21 7969 2

原创 Javascript的新领域——动态图片处理之SVG

近三年前的一篇旧文,虽然在浏览器和相关技术标准方面有过时之处,但总体上对概念的理解、开发的思路和代码样例仍然有参考价值。背景当Javascript被Netscape公司发明出来时,它被用来做一些琐细的事情,比如校验表单、计算日期、提示用户;随着Web的迅速发展,这种轻巧而灵活的语言被委以越来越多的任务,动态地修改页面内容,一致地处理事件,甚至无刷新地和服务器交互。然而,与传统的客户端编程相比,Ja

2013-10-17 11:12:50 17328

原创 60. 从JSF看XPages的优点

我们都知道XPages基于JSF,或者可以说XPages是JSF标准的实现(implementation)之一。JSF从2004年的1.0到现在的2.0,已经经历了很大的变化和发展。XPages最初开发的时候JSF 1.2还没有推出,所以是以1.1为基础的。JSF在1.2之前的名声是很糟糕的,bug无数,性能低下。幸运的是,XPages在JSF 1.1之上做了很多改进,纠正了它的缺陷,实现了很多1

2013-10-15 12:17:53 3653

原创 看我七十二辩

主持人:大家好,欢迎收看《看我七十二辩》。一个国家要富强,她的人民必须善于思考,逻辑清晰。辩论正是启迪思考,锻炼逻辑的好方法。为了我们国家的富强,鄙台推出《看我七十二辩》这档节目。第一期辩论是关于目前热门的电视节目《一站到底》,题目是“《一站到底》有意思吗?“正方观点是有意思。反方观点是没意思。现在有请正方代表队全体成员“春运回家坐火车”同学和反方代表队唯一代表“阿基里斯”同学。因为是第一期节

2013-10-13 10:24:13 3921

原创 选择jQuery的n个理由

发展迅速且开放的技术领域的开发者想找一个工具、框架、方案、代码库(不管你称它为什么),烦恼的往往不是找不到,而是选项太多。Web开发人员挑选JavaScript库时的处境正是如此。Prototype、jQuery、dojo、YUI、Ext JS、Montools……让人眼花缭乱。因而在应用某一个脚本库之前,还多了一项选择的工作。很容易构想出一系列选择的标准。比如:功能要全面,基本能

2013-10-12 10:12:06 5661 1

原创 59. XPages自定义控件(二)搜索视图

下面笔者用一个例子来展示用户控件的代码、使用和强大功能。在12. 如何在XPages中实现搜索视图里介绍的搜索视图的方法如果在每个需要搜索功能的页面上都做一遍,未免麻烦,也不易维护。于是,按照XPages提倡的做法,笔者将视图全文搜索的功能包含在一个SearchView用户控件里。打开数据库的全文检索,将这个控件放在任何含有标准视图控件的页面上,一个由一个输入框和搜索、清除两个按钮组成的具备下列功

2013-10-09 15:09:18 3777

原创 58. XPages自定义控件(一)背景

作为JavaServer Faces(JSF)技术的扩展,组件(component)同样是XPages的核心。组件提供了独立的可重用的用户界面功能,大大简化了开发。在XPages的数据库里,这种组件一般被称为控件(control)。XPages推出时预备了一套基本常用的控件,后来又在XPages扩展库(XPages Extension Library)增加了大量有用但质量和文档参差不齐的控件。除了

2013-10-09 14:49:39 3629

原创 57. 如何检查富文本域中是否有附件及其他?

富文本域(RTF)既是Lotus Notes表单设计的,也是数据存储的独特和重要的技术。用户可以在富文本域中编辑包含字体、颜色、段落属性等丰富格式的文本,还可以方便地添加附件。实际上,Notes的表单的布局设计本身就是保存在一个富文本域里。为了保存大段的文本和格式信息以及附件,富文本域没有其他普通域的大小限制(其中的每个段落仍然有64K的限额)。因为其特殊性,富文本域和其他类型的域在行为和表现上也

2013-09-25 12:04:38 4983

原创 56. 表单和文档的数据绑定——详谈NotesUIDocument.Reload()

在Notes客户端应用程序开发中,我们创建表单,用它们新建文档,然后在视图里打开、修改和删除文档。有时候我们会忽略了表单和文档是截然不同的两种实体。表单是我们在Designer里设计的,在客户端里看到的界面。文档本身则只是一个数据实体,没有界面,不包括各种格式信息和控件、操作、代码。我们从视图打开一个文档时,Notes客户端自动查找它所用的表单,然后用这个表单显示文档里的数据。一个表单可以用来显示

2013-09-24 10:44:50 4584

Notes文档工作流系统

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

2015-02-04

空空如也

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

TA关注的人

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