今週は更新をお休みします

2009年11月30日 00:48

 特に意味は無いのですが、やはりアメリカもThanks GivingやX'masも近づいて情報が減ってきているので、自分のブログのネタもある程度しこまないと書けない記事が増えてきたので、今週は思い切って更新をお休みしてみる事にしました。

来週からはまた通常通り更新するのでご訪問お願いします。


文章をきれいに見せる

2009年11月27日 01:30

ThanksGiving とかクリスマスのシーズンになるとUS側の情報も少なくなるのでブログのネタも少し滞りがちになります。

 と言うわけで今日は小ワザ集のネタを紹介します。

Lotus 小ワザ集: 第140回 美しく文書を書く(1)
Lotus 小ワザ集: 第140回 美しく文書を書く(2)


(1)は文章を読みやすくしたいときは行間を1行にするより、1.5行にしたほうがきれいと言う話なのですが、私はいつも限界まで行間を詰めていたのでちょっと参考になりました。確かに英語と比べてみると日本語の方が行間が詰まって見えます。。

(2)については改行を使わずに折り返したいときは右マージンを積極的に使いましょう、と言うお話です。文字のプロパティで紹介されていますが、体裁のために行うのであればCtrl+Rでルーラー表示してルーラーで調整する方がいいと思いますが、こういう使い方は分かっていませんでした。
こんな感じです。(私は昔、右マージンは"右から"○センチで折り返すと言う設定だと誤解していてよくこの値が期待通りの値にならない、と困っていたことがありました。。ルーラーで見ると分かりやすいのではないかと思います。)

右マージンとルーラー


どちらも機能としては知っていたのですが、活用方法について全く知らなかったので、とても参考になりました。こういう記事はいいですね。

xPages on Notes client

2009年11月26日 00:14

 さて、昨日のブログでも少し書きましたが、今日は8.5.1の新機能であるxPages On Notes Clientについて紹介します。

もちろんカスタムのxPagesアプリケーションでも動作しますが今日は簡単に確認するためにディスカッションデータベースを使ってみましょう。

NotesクライアントからxPagesを使うには以下のように起動オプションを変えておく必要があります。

起動オプション

始めにxPages On Notes Client はStandard版のみの機能なのでBasic版では使用できません。
Basic版で起動すると、以前のUIで表示されました。(最後に開いたビューを開くような動作になっているように思えます。)

ここでStandard版のクライアントから起動すると以下のようにxPage用のコンテンツのロードが始まります。

起動中

開いた画面は以下の通りです。

ディスカッションの画面


見た目上はWebベースなのかNotesベースなのか分かりませんが、新規に文書を作るとNotesのリッチテキストにあるようなテキストのプロパティは使えず、Webと同じコントロールを使用して編集などを行うことになります。

せっかくXPagesでWebクライアントをリッチにしたのにクライアントは逆に・・・と言う状況を避ける意味でもクライアントのXPages対応はいいニュースなのではないかと思います。


developerWorks: 「Lotus Notes/Domino 8.5.1 新機能概要」が公開されています

2009年11月25日 07:51

11月20日に以下の文書がdeveloperWorksで公開されました。

Lotus Notes/Domino 8.5.1 新機能概要

このブログで取り上げている8.5.1は機能重視ですが、dWの資料ではもう少しOverviewまで踏まえた説明がなされており、どのような事を目指して8.5.1が作られているのかがもう少し見通しがよくなっているのではないかと思います。

細かいところを見てみると、このブログでは取り上げていなかったConnections 連携の機能紹介や XPages On Notes Client などもありました。(XPagesのほうは今度取り上げようと思っていますが。。)

8.5.1に興味がある方は是非ご一読下さい。

IdeaJam

2009年11月24日 00:42

 最近村上さんのブログでさかんにIdeaJamが出てくるので、気になって覗いてみました。登録はこちらからメールアドレスとパスワードを決めるだけで簡単に行えるので是非皆さんも一度登録して各要望について投票してみましょう。

私自身IdeaJamの存在は知っていたのですがどのような要望が上がっているのか、などをみる事はなかったので非常に面白かったです。
 IdeaJamでAcceptされた要望などをみてみると8.5.1で採用された新機能でも多くここでのIdeaが来ている事が分かるのではないかと思います。

Move HTML signature into mailfile (8.5.1から使用可能になりました)
Move attachments to the top of the email message (8.5からインターネットメールの添付ファイルは上部に来ました)

ここではユーザーが挙げた要望の中で支持が多く得られたものを採用していく(もちろん技術的に出来る/出来ないはあるので必ず採用されるわけではありません)のですが、是非日本のNotesユーザーの方もここで積極的に投票してもらえるとよいな、と思います。

さすがにここで新規の要望を上げるのは抵抗がある方は多いと思いますが、IDを取得したあと、ログインし、様々な要望を見た後に、これは是非採用して欲しい!と思うことがあったら、数字の上にある「Promote」と言うボタンを押し、あまりこの要望はよくないなあ・・・と思ったら「Demote」を押してみてください。意外とこれは面白いなあ・・と思うことがあるのではないかと思います。

 IdeaJamにも日本のNotesユーザーの声をもっと反映させてみましょう。

LS2CAPI : 参照渡しか値渡しか

2009年11月20日 03:15

- バックナンバー -
1. OSLoadProgramを呼んでみるサンプル
2. OSLoadProgramのサンプルを理解する
3. C API はnnotes.dllから呼ばれている
4. 参照渡しか値渡しか
5. 型を変換する
6. 構造体を定義する
7. OSLoadString を使ってみよう


 さて、LotusScriptから C API関数を呼ぶ話は興味がある方は興味を持って頂けると思うのですが、興味がない方には全然興味が無いと思うので、書いていて難しいのですが、書き始めてしまった以上こつこつ書いていこうと思います。

今日も引き続きAPI関数への変換の話をしようと思うのですが、LotusScriptではあまり意識する事はありませんが、Cの関数では関数の引数として参照渡しと値渡しがあります。 値渡しであれば、関す内で引数をいくら書き換えても実行後戻ってきたときには引数の値は呼び出したときの値に戻っています。 参照渡しでは書き換えられた値を使用することが出来るのです。 言うまでもなく、LotusScriptなどではすべて参照渡しで引数が処理されています。

ここを区別するにはデザイナーヘルプの「引数の参照渡しと値渡し 」なども参考にして頂きたいのですが、関数ごとにその引数が使われるかを考えなくてはいけません。単純にポインター引数か否か?と言うだけでは判断できない点もあるので都度よく考えるしかありませんが、実際的にはこの後とりあげる型変換の話と同じで、変換方法を覚えてしまう方法がいいかもしれません。

たとえば、C APIでは文書のIDとして、引数でそのまま渡せるNOTTEID (DWORD)が好んで使われます。このNOTEIDは値渡しされていることが多いのですが、関数の戻り値として引数にNOTEIDが使用される場合には参照渡しになるのでByValをつけることは出来ません。

また、C言語ではString型はchar型の配列を使用しますが、これは値渡しで使うことが多いように思えます。私自身はもうこれは例外ルールのような理解をしているのですが、デザイナーヘルプでは以下のように記載されています。

文字列を引き渡す

文字列が参照渡しされる場合、LotusScript は、文字列のコピーへの 4 バイトのポインタをメモリ内で割り当てられた内部バッファに渡します。LotusScript に C 関数が明確に記述されていない限り、C 関数はこのバッファの内容を安全に変更できません。
文字列が値渡しされる場合、LotusScript は、null で終わる文字列 (C 関数で想定されます) に 4 バイトのポインタを渡します。C 関数はこの文字列を変更できますが、その長さを伸ばすことはできません。文字列への変更は、関数からの戻り値としてスクリプトの変数に反映されます。文字列以外へのポインタを渡す場合は、パラメータを参照渡しします。


と言うわけで普通にNULLで終わる文字列を使う分には値渡しの事が多いのです。
OSLoadProgram() のサンプルでは以下のように宣言していました。

Declare Function OSLoadProgram Lib "nnotes.dll" _
(Byval filename As String, Byval FileDir As String, Byval argv As String, Byval flags As Integer) As Integer

Stringの部分は例によってすべてByVal を付けているのは上述したヘルプの記載に基づいています。
最後のFlagの部分は実はByValを付けなくても動いたのですが、C API リファレンスを見てもここはポインターでも何でもないWORD型の値を値渡ししているので、ByVal を付けた方がよいのではないかと思います。

上手く説明できていない部分も多いのですが、LotusScriptではあまり意識しない引数の値渡し、参照渡しですが、C APIの呼び出しの際には慎重に考えていく必要があります。





メール滞留のトラブルシューティング

2009年11月19日 00:01

メール滞留のトラブルシューティングはメールサーバーの管理者などでは非常によく慣れた作業なのかもしれません。
しかし、一度メールサーバーの滞留などの問題が起きたときにどのような順番で切り分けるのかは非常に重要です。

これは問題の発生状況や影響範囲などに応じて色々な方法で調査することになりますが、基本的な手法の部分は公開情報としておきたいと考えて以下のような技術情報を公開しました。


メール滞留のトラブルシューティング (NRPC)
http://www.ibm.com/jp/domino04/lotus/support/faqs/faqs.nsf/all/733146


サポートしか知らないような奇抜な調査手法はありませんが、基本的な部分を抑えておくのは参考になるのではないかと思うので是非ご一読下さい。
このTechnoteではインターネットメールは対象になっていませんが、是非SMTPのトラブルシューティングも発行したいと考えています。

OpenNTF: Snippets

2009年11月18日 00:18

OpenNTFでは以下のようなWidgetも公開されていました。

Nice End User Tool Snippets from Detlev Poettgen (OpenNTF Blog)
Snippets (OpenNTF Catalog)

そろそろWidgetもどれを入れたらいいか迷うくらいになってきましたね。
Open NTFでこのようなWidgetが公開されてきているのは、デザイナーフリーの動きなどと同様に、Notes開発者の活性化のための施策の一つで、IBMも出資してOpen NTFへの貢献を行っています。

ここにOpen NTFに対するIBMの貢献などについて紹介したスライドがあるので興味がある方は一度ご覧になってみてください。
 音声が無くてもスライドの情報だけで十分分かるかな、と思います。


Learning Widget for Notes 8.5 を入れよう!

2009年11月17日 00:16

 今日はLearning Widget For Notesの紹介をします。

Learning Widget - includes Notes 8.5 learning materials! (Lotus Notes and Domino Wiki)

ここの記事にも紹介されていますが、Notes 8.5 (Standard)以降のWidgetとして追加する事によってNotesのカレンダーの使い方やチュートリアル、便利なリンク集などに簡単にアクセスする事が出来ます。
最近は動画のコンテンツも増えてきたのでそのようなリソースにも効率よくアクセスする事を目指しています。(残念ながら日本語での提供はありません・・・)


インストール方法ですが、NotesのMy Widget サイドバーを有効にして、ここをMy Widgetにドロップして下さい。うまくいかないときは本家のページからドロップしてみてください。

導入するとサイドバーにLearning Plugin が表示されますが、大きく表示したい場合には、意アkのように新しいウィンドウで開くとFloating Windowで表示することも出来ます。

Learning Widget for Notes

リファレンスカードと言って以下のように操作方法をタスクごとに説明したようなものにもアクセス出来ます。
リファレンスカード

(リファレンスカードはPDFでここから入手できます)

Googleカレンダーの表示方法など動画で説明しているマテリアルも多くあるので、1日ちょっとずつ見て、8.5の新しい機能などを見てもよいのではないかと思います。

是非興味ある方は一度使ってみてください。

Lotus Notes の Windows 7対応について

2009年11月16日 00:36

今日はEd Brill のブログの以下の記事から書こうと思います。
Notes client on Snow Leopard and Windows 7 (Ed Brill's Blog)

サポート的には、以下のTechnoteで、Notes 8.5.1 FP1 での Windows 7サポートが表明されました。
今の時点ではWindows 7 64bit 版のサポートも計画しているようです。(Notesは32bit版になります)
Support plans for Notes on Windows 7, Snow Leopard (Mac OS X 10.6), and RHEL 5.4 (#1385293)

PCのリプレースなどをWindows 7 まで控えていたりしたお客様にはよいニュースなのではないかと思います。

彼のブログでも書かれていますが、すでにWindows 7を Notes 8.5.1で動かしてもほぼ問題なく動く状態ではあるのですが、そこでのテスト結果などを踏まえてからサポートされるため今しばらくお待ち下さい。
下位のバージョンでのサポートは今の時点でどこまでサポートできそうか見通しを述べる事は非常に難しいのですが、テスト結果を踏まえて決められるのではないかと思います。

今しばらくお待ち下さい

Upgrade Cookbooks(ND Wiki): Upgrading from Lotus Notes and Domino 6.5.x to 8.x

2009年11月13日 00:06

さて、このブログは去年の10月30日から始めているのですがだいたい1年が過ぎました。
とにかくどんなに仕事が忙しくても1年間は平日に更新し続けよう、と決めていたのですが、昔の記事とかもGoogle経由とかで参照されたり、何とか形になってきたかな、と思います。
最近は少しネタ切れとかもしそうなのですが、本当に読者の方のコメントや拍手が励みになっています。検索で偶然に訪問した方も、定期的に読んで下さっている方も本当に感謝しています。

さて、今日の記事ですがND Wiki に以下のような記事が公開されています。

Upgrade Cookbooks: Upgrading from Lotus Notes and Domino 6.5.x to 8.x (Lotus Notes and Domino Wiki)

英語ですが、アップグレードのPlanningから実際の導入まで多岐にわたる記事があるので、計画中の方は一度参考にされてみてもいいのではないかと思います。

こんな大雑把な話は知っている、と言う方も多いと思いますが、リンクなどがまとめられていたり、参考になるのではないかと思います。

11月分の注目サポート技術情報が発行されました

2009年11月12日 00:38

11月分の注目サポート技術情報が発行されました。
アクセス数の多いサイトを抜粋したものですがぜひ一度ご確認頂ければと思います。

Lotus Notes/Domino 注目サポート技術情報 (2009年11月)
http://www.ibm.com/jp/domino04/lotus/support/faqs/faqs.nsf/all/731065


今回は何と言っても8.0.2 FP3が公開されたことが大きいのではないかと思うのですが、もう一つタイムリーなトピックとして、Windows 7対応について公開されています。

Update on plans for support of Notes on Windows 7

Lotus Notes のWindows7利用について、Windows7 が8.5.x の次期MRで対応することを表明しました。


他にもインストール周りでは以下の問題も報告されています。

ダブルバイト文字を含むフォルダから Lotus Notes (Standard 版) のインストールシールドを起動するとインストールに失敗する

よろしくお願いします

お使いの製品のサポート終了日は確認していますか?

2009年11月11日 00:27

 突然ですが、今ご利用のIBM製品がどのくらいでEOSになるかはご存知でしょうか。
IBMのソフトウェアは通常ですと、当該バージョンのサポート開始から5年は通常サポートを提供しますが、導入の時期によっては思ったより短く感じることなどもあるので注意が必要なのではないかと思います。

サポート終了日(EOS、End Of Support)を理由に製品のアップグレードをするのは特にIT関連の投資が厳しい昨今では理由としては弱いというか厳しいと思うのですが、だいたいEOSを把握しておいてそれに向けて新しいバージョンの情報収集を少しずつ行ってみたりするのもよいのではないかと思います。

IBMソフトウェアの製品・バージョン毎のサポート終了日は以下のサイトから一覧で確認することが出来ます。

IBM Software Support Lifecycle

Lotus製品だけでよいのであれば、以下のサイトからご確認下さい

Lotus product lifecycle dates

Lotus Notes/Domino関連では、6.5が来年の4月、7.0が再来年の4月にEOSが迫っています。
その他の気になる製品があったら一度確認してみてください。



8.5.1: アラームダイアログのモードレスダイアログ化

2009年11月10日 00:05

 モーダルダイアログとモードレスダイアログと言われてすぐに意味が分かるでしょうか?

簡単に言うとモーダルダイアログは出ている間アプリケーションではダイアログ以外の操作が出来ないようなダイアログです。LotusScriptのMessagebox関数で出るダイアログボックスなどはモーダルダイアログの分かりやすい例の一つかもしれません。

カレンダーアラームを使用しているときに表示されるダイアログは、以前はモーダルダイアログだったので、ノーツ操作中にマウスカーソルが奪われてしまう、と言う点で場合によってはわずらわしい操作になってしまう事もありました。

この点は8.5.1で改善され、モードレスになりました。(SPR # MALE7K2SHM)
詳細は以下のブログもご参照下さい。

In Notes 8.5.1: Calendar Alarms pop up just the dialogs-- modeless (Notes Design Blog)

Lotus Notes/Domino 8.0.2 FP3 が公開されています

2009年11月09日 00:16

Lotus Notes/Domino 8.0.2 FP3 が入手可能になっています。

日本語版Technoteはこちらです
Lotus Notes/Domino 8.0.2 Fix Pack 3 (FP3) について

関連リンクは以下にまとめます。
Lotus Notes 8.0.2 FP3 (Fix Central 要IBM ID)
Lotus Domino 8.0.2 FP3 (Fix Central 要IBM ID)
8.0.2 FP3 ダウンロードサイト
Lotus Notes/Domino 8.0.2 FP3 Top 20 Fix List
8.0.2 FP3 Release Notice


8.0.2 FP3 のクライアント周りでは以下の問題の修正が大きいのではないかと思っているのですが、FP3 はリリースが想定以上に遅れてしまい、大変御迷惑をおかけしました。

Lotus Notes クライアント終了時に「IBM Lotus Notes/Domino は動作を停止しました」ダイアログが出力され停止する

(参考)Lotus Notes 8.x RSS 機能の権限昇格に関する脆弱性の問題について

(参考)Lotus Notes の Microsoft Excel ファイルビューアーにおけるバッファーオーバーフローの潜在的な脆弱性の問題

列をドラッグして列位置を変更している場合、列表示がおかしくなることがある


8.0.x をご利用の方は是非適用をご検討下さい。

DWA - Fiddler を使ったリクエストログの取得

2009年11月06日 00:15

今日は最近出たDWA関連の以下のTechnoteの話をしようと思います。

DWA 問題判別:リクエストログの取得と解析

DWAの調査では問題判別の際に発生時のHTTPリクエストログが必要になる事があります。
UI上の操作よりも実際に送られたリクエストが思わぬ再現条件を提供したり、色々な動作が明らかになってくる事が多いからです。

これはDominoの機能を使うと以下の技術文書で紹介されているようなリクエストログの取得が必要になります。

Domino 6:HTTP リクエストログの仕様について

しかし、特定のブラウザクライアントの操作で起こる問題でサーバー全体に及ぶ設定を行うのはテスト環境ならともかくとして、現実的ではないことが多くあります。
このような場合はやはりブラウザ側にしかけるリクエストログの取得ツールをお願いすることがあります。

例えばIBMは以下のようなIBM Page Detailer と言うツールもalphaWorksで公開したりしていますが、Free版だとSSLで使えないなど機能制限も多いため、苦労する事も多くありました。

IBM Page Detailer(alphaWorks)

操作性やログの見易さ、機能のシンプルさもあり、Proxyとして動作する以下のようなツールもよく使っていました。秀丸の作者が作っているツールですがこれも非常に便利だと思います。

横取り丸

このようにサポートでは色々なツールを使用していた経緯もあるのですが、今回発行した技術文書では以下のような点を考慮してFiddlerを使った取得について詳細に説明しています。

・ SSLやFirefoxのサポート
・ Fileupload Controlなどのログが取れる
・ 解析機能やログの取得も比較的容易
・ Web関連のDebugツールとしてGlobalでも認知度が高い

導入やログの取得などもそれほど負担にならずにProxyのOn-Offも自動で切り替えてくれるので非常にこの辺は使いやすくなっています。Firefoxもアドオンを入れれば自動切換えをしてくれます。

文書では単純にログの取得方法だけでなく、簡単な見方も紹介しているので是非DWAの問題判別だけでなく、Fiddler自体に興味がある方も一読して頂ければと思います。

developerWorks: Lotus Domino と物理メモリの関係

2009年11月05日 00:15

今日はこの記事の紹介をしようと思います。

developerWorks: Lotus Domino と物理メモリの関係 ?AIX 32ビット編?

プラットフォームに限らず仮想メモリと物理メモリにまつわる混乱はサポートではよくあるお問い合わせの一つです。

・ タスクマネージャーで表示されるドミノの各タスクのメモリ利用量を足すと物理メモリより多いのはなぜ?
・ 4GBの制限と言うが、うちは物理メモリを8GB積んでいてWindows上では問題なく認識されていますが・・
・ Windowsではユーザー空間は2GBしか使えないと聞いたが4GBの制限と言うのは間違い?
  (3GBスイッチの話は置いておきましょう。。)

資料にもある通り、これらの混乱はあらゆる場面で「メモリ」の一言で言われてしまう、仮想アドレス空間、仮想メモリ、物理メモリ、と言う言葉の概念を丁寧に整理していくと見通しが格段によくなります。
この上でプロセスヒープ、スタック領域、共有メモリなどの概念を乗せてみると、プログラマから見えるメモリと、OS上で見えるメモリの概念がつながってくるんじゃないかな、と思います。
 この辺の話は製品知識やプログラミング知識だけでは片付かない話ですので、一度勉強し損ねるとなかなか整理して教わる機会が無いので「実は詳しくないかも・・・」と思っておられるベテランの技術者の方もこっそりダウンロードして自習してみてください。

AIX ユーザーに限らず有用なトピックですし、何より読みやすい形にまとめて頂いているのでそれほど気合を入れなくても読めるのでお勧めの内容です。

スタンダード版の起動が遅いと思う方は試してみてください

2009年11月04日 00:10

各種アンチウイルスソフトをご利用の方も多いと思いますが以下のようなお話をご存知でしょうか。

Notes client startup performance is slow when JAR files are set to be scanned by anti-virus

要はリアルタイムスキャンのような機能を持っているソフトではJarファイルを対象外にしておいたほうが起動時のパフォーマンスが向上する、と言うお話です。
たとえばSymantec だとファイルシステムのAuto Protectで除外設定が出来ますがここでJarファイルを対象外にしたり、Notesのプログラムディレクトリ直下にあるFrameworkディレクトリ(スタンダード版)を対象外にしておくと同様の設定になります。

これはBasic版ではあまり意識しなくてよいと思うのですがStandard版の起動が遅いな、と思う方は一度試してみてください!

ちなみに大川さんが紹介しているこの話もおすすめです
ノーツスタンダード版の爆速チューニング

C API はnnotes.dllから呼ばれている

2009年11月02日 00:19

- バックナンバー -
1. OSLoadProgramを呼んでみるサンプル
2. OSLoadProgramのサンプルを理解する
3. C API はnnotes.dllから呼ばれている
4. 参照渡しか値渡しか
5. 型を変換する
6. 構造体を定義する
7. OSLoadString を使ってみよう
そろそろ8.5.1を使う予定がない人は8.5.1の新機能紹介の記事に飽きてきているかもしれないので、今日は通常の記事に戻っていきたいと思います。

さて、LotusScriptからC APIを呼ぶ方法ですが、前回はサンプルで読んだ「OSLoadProgram」のようにC APIの関数を呼ぶためにはまずC APIのリファレンスを入手する必要がある旨を説明しました。

Declare Function OSLoadProgram Lib "nnotes.dll" _
(Byval filename As String, Byval FileDir As String, Byval argv As String, flags As Integer) As Integer

LotusScriptでは外部DLLから関数を呼び出すときには、呼び出したい関数名(上の例ではOSLoadProgram)に加えてLib ステートメントでどのDLLから呼び出すかを宣言しないといけません。
サンプルではnnotes.dllから呼び出されていましたが、C API関数はどのようにしてDLLを調べればいいのでしょうか?

実はNotesのC API関数の場合、この点については悩む必要がありません。
Notes が使用しているDLLファイルは無数にありますが、C API関数として公開されているものは、Windowsプラットフォームであれば、全て nnotes.dllから呼び出されたものです。サーバーもクライアントも、NotesとDominoのコアと言えるデータベースやビューに関する処理はほとんどnnotes.dll でまかなわれているのです。

ただし、プラットフォームが違う場合は、名前が変わるのでバリエーションについては覚えておく必要があります。AIXであれば、libnotes_r.a、SolarisやLinuxであれば、libnotes.so のようなライブラリがnnotes.dllと等価のファイルになります。

詳細については以下の文書も参考にしてください。(OS/2が Inotes.dll、と言う事などは知りませんでした・・・)

What is the equivalent of nnotes.dll (W32) on a Unix system

まだ宣言文の説明も終わってない!と思う方も多いと思うのですが、引数や戻り値の型変換が説明として一番ややこしいのでその辺を後回しにしているうちにこんな感じになってしまっているので今しばらくお待ち下さい。。。


最新記事