先看如下代码:

    ‘some code ……
‘Set my doc with the return value from the function…
Set recipientDoc = getDocInNAB(“search string”)

If Not recipientDoc Is Nothing Then
‘In debug I end up here
Else
‘When I run it I end up here….
Print “ERROR”
End If
‘some code ……

Function getDocInNAB(y As String) As NotesDocument
Dim nabs As Variant
Dim v As NotesView
Dim match As NotesDocument
Dim i As NotesItem
nabs = s.AddressBooks

Forall x In nabs
‘Get handle on Directory to search
Call x.Open(x.Server, x.FilePath)
Set v = x.GetView(“($Users)”)
Set match = v.GetDocumentByKey(y,True)

If Not match Is Nothing Then
Print “Found ————> ” & y
Set getDocInNAB = match
Else
Set getDocInNAB = Nothing
End If
End Forall
End Function

函数 getDocInNAB 实现了一个功能:通过参数 y 来查找个人文档,然后将查找结果返回。初看上去好像没什么问题,实际上这个函数的返回值一直是 Nothing。

问题的原因是,NAB 数据库对象是在函数内定义的,当文档作为返回值传递给调用者时,其 Parent 数据库对象已经销毁,所以这个文档也就是 Nothing 了。

解决的办法:将数据库一起作为参数传递过去或者定义为全局变量。

前些天有个项目的服务器,用代理发邮件的时候报如下错误:

You do not have a mail file/server specified. Use File Mobile Edit Current Location… to set them

最后查明问题原因是服务器 Notes.ini 的 MailServer 参数自动消失了。这是 Domino 的一个 Bug,在 6.5.5 和 7.0 中得到了修正。

参考链接: MailServer parameter disappears from the server’s Notes.ini

今天一个本来一直好好的库,突然报了这个错误,设计上也没动啥东西,搞得很迷茫。最后查明原因是服务器上多了一个复本,估计是通过文件系统备份的时候生成的。除此之外,还有在 web 端显示启用 Sametime 在线感知的视图,也会报这个错误。具体信息参考以下链接:

“Corrupt Data Exception” when multiple replicas exist on single server
“Corrupt Data Exception” with View Enabled with Instant Messaging

前些时间我的360终于也到了寿命,迎来了死亡光环。自己折腾一番之后不灵,最后还是拿到店里加了水冷,450元。本来想在店里刷 iXtreme 的,不过老板那里没有软件,只好自己来搞。还好不是很麻烦,买个 sata 卡,先读光驱的 Key,然后把 Key 写入固件,刷进光驱就行了。但愿就能这么一直用下去,我可不想再折腾它了。

由于我的显示器比较特殊,所以启动的 kernel 参数中一直加上了 vga=791,来指定分辨率为 1024×768。前些天升级到 7.10 之后,开机过程以及 tty[1-6] 就都是黑屏。昨天终于找到了解决方法:

  1. 修改 /etc/initramfs-tools/modules,加入了 fbcon,vesafb,nvidiafb 三行
  2. 修改 /etc/modprobe.d/blacklist-framebuffer,把 nvidiafb,vesafb,vga16fb 三行注释掉
  3. 运行sudo update-initramfs -u,重启机器

其中的 nvidiafb 可以按照自己的显卡类型,换成相应的模块。

参考链接:Ubuntu 中文论坛

为了使用包括复合应用等新功能,我选择了安装 Notes 8 Standard(Eclipse)版。但是有些时候只是需要传统 Notes 的功能,所以就不想启动庞大的 Eclipse。目前有两个方法可以达到这个目的:

  1. 直接运行 Notes 安装目录下的 nlnotes.exe
  2. 在 Notes 快捷方式的最后加上 -sa 参数

推荐使用第二种方法,因为这是官方部署文档里面提供的。

IBM 最近推出了一个新产品:IBM Lotus Symphony,包括文字处理、电子表格、幻灯演示三个部分,支持的平台有 Windows 和 Linux。它和 Notes 8 中的生产力工具类似,基本上都是装在 Eclipse 外壳中的 OpenOffice,不过不同的是,它是免费的。并且 IBM 已经加入 OpenOffice 组织,参与相关的开发工作。不知道它会不会对微软的 Office 系列带来一定的影响呢?