2018年7月12日木曜日

第5回「のの会」に参加しました

昨日(2018/7/11)の仕事帰りに「のの会」へ参加しました。

毎回楽しみにしているあう“さんの関数講座ですが、今回も新たな発見がありました。

講座のスライドが毎回公開されていますので、ここではお伝えする事は控えますが、私が使ったことのない@関数の検証が興味深い発表でした。
ご参考: abOut.nsf

そして今回はお時間をいただいて、ノーツデータベースの多言語対応について、クイズを織り交ぜながらお話させていただきました。




上のスライドは発表した際に使ったもので、クイズは「検証」と称しています。25ページから27ページの条件を踏まえて是非チャレンジしてみて下さい。

質問は全部で8つあります。回答は質問の次のページにあります。

なお、回答の検証は 9.0.1 FP7 のクライアント上で何度も行なったつもりですが、ひょっとするとバージョンが異なれば違う結果になる場合があるかもしれませんので、皆さんの環境でもお試しください。


ところで次回の「のの会」は、スポンサー企業であるアクセルさんの新事務所に場所を変え、8月22日(水)の19時から開催の予定です!詳しくはこちらをチェックしてみてください

2018年4月12日木曜日

第2回「のの会」に参加しました

4月11日は「のの会」に参加しました。

「のの会」についてはこちらからご確認いただくとして、今回の内容は、先月ラスベガスで開催された IBM Think で発表された Domino Apps on iPad 等のビデオ鑑賞(岡本さんが撮ってくださったもの)、あべさとるさんの@関数講座、それから私も一コマ頂戴して発表させていただきました。

ノーツのアプリを設計変更なしにiPadで動作する iPad版Notesクライアント「Domino Apps on iPad」がグリグリ動いている動画をいくつか見させていただき、興奮しました。早く触ってみたい!

あべさとるさんの@関数講座はシリーズ化されるかもしれませんが、今回(初回)は @Ifや@Random などについて紹介してくださいました。さすが目の付け所が素人じゃないです...

そして私は...


Notes を長く使っていると、データベース(NSFファイル)の容量制限の壁にぶつかることがあります。
これまでの Notes/Domino の歴史の中で、その制限を回避するための機能追加はいくつもありました。
それらを3つに分類して紹介しています。

Notes の初心者から、なんでもご存知のエキスパートまで、意外と知らない機能や忘れてる機能があるのではないでしょうか。

2018年2月10日土曜日

@Transform と @Nothing をビューで使う場合、念のため @Trim を忘れずに

トラブルシュートしていたときに遭遇したことについて情報共有したいと思います。

1つのフィールド(フィールド名 "MailAddress")に複数のメールアドレスを記入できるのですが、そこにインターネットメールアドレスを含んでいるかどうかを調べようとしていました。

インターネットメールアドレスは "@" 記号を含んでおり、Notes メールアドレスには含まないという前提です。

次の式を用意しました。
@Transform( MailAddress; "x"; @If( @Contains( x; "@" ); x; @Nothing ) )

説明すると、MailAddress アイテムのリスト要素の1つを変数 x に代入し、変数 x が "@" 記号を含めば値を保持し、そうでなければ値を除去する(要素を減らす)、ということをリストの要素の数だけ繰り返します。

例えば、MailAddress アイテムに次の2つアドレスが入っていたとします。
"hoge taro/acme" : "hoge.jiro@acme.com"

この時、式は "@" 記号を含まない "hoge taro/acme" を除去しますので、返ってくる値は通常 1 つのアドレス "hoge.jiro@acme.com" になります。

@Nothing は リスト要素を返さない、つまり要素を1つ減らすのです。


そう、ビューでなければ。


ビューの列に先ほどの式を設定したところ、要素が減るものと、要素の数は減らず値がなくなるものの2パターン現れました。先の MailAddress アイテムの場合、1つのアドレス(要素)を返すものと、空っぽの要素+1つのアドレス(要素)を返すものがあったのです。
要素数が1になった値     "hoge.jiro@acme.com"
要素数が2のままの値     "" : "hoge.jiro@acme.com"

これと同様のことはビューの選択式でも確認しており、@Transform と @Nothing を使った次の式を記述すると期待した結果にならないことがありました。
SELECT @Elements( @Transform( MailAddress; "x"; @If( @Contains( x; "@" ); x; @Nothing ) ) ) > 0


このように @Nothing が要素を減らさない場合があることがわかりました。
また、ビューを Shift + F9 で再構築すると結果が変化する場合もありました。

なお、これらは Notes 9.0.1 に FP9 を適用した環境で確認しました。

もしこのような現象が確認できた場合、次の式のように @Trim を組み合わせて回避しましょう。
SELECT @Elements( @Trim( @Transform( MailAddress; "x"; @If( @Contains( x; "@" ); x; @Nothing ) ) ) ) > 0

2017年12月16日土曜日

全文検索の不具合を解消してみた

昨日(2017年12月15日)の「テクてくLotus 技術者夜会」に参加させていただきました。

昨年に引き続き、今年も12月は「ライトニングトーク」でした。

ライトニングトークには、普段から各種イベントで発表しているIBM Champion や日本IBM社員の方々に加え、いつも参加しているだけのメンバーも参加できるとあって、僭越ながら私も発表させていただきました。

もしご興味ありましたら、下のスライドをご覧ください。



内容ですが...

もう20年近く運用しているDBでフォームを作り直した。その後特定の条件で全文検索すると不具合がでることがわかり、メーカーサポートへ問合せましたが解決せず、いろいろやってなんとか自己解決できた。

といった自慢話成功事例です。

今年は(昨年の反省もあって)発表当日の朝に資料を送付するという完璧な準備のおかげか、主催者の御代さんに評価していただき、記念品「ぷらRoBoHon」までいただいちゃいました。


これに気をよくしたのか、これからもTips的なことを投稿していこうかという気になっています(笑)

2017年5月14日日曜日

Excelで作成したグラフをリッチテキストへ貼りつける

Excel を使いグラフを作成して Notes のリッチテキストへ貼りつけるエージェントを作ってみた。

Excel データは次のような単純なもので、保存されているファイルを使う。
リッチテキストへ貼りつけるグラフは、次のような折れ線。タイトルを追加する

グラフのサイズを指定したいので、既存のシートに埋め込みグラフを追加する。
※新規にグラフシートを追加する場合、サイズの指定がよくわからない(常に最大?)

クリップボードへコピーした埋め込みグラフを新規文書のリッチテキストエリアへ貼りつける。

"Main" フォームには "Body"という名前のリッチテキストフィールドがある。

コードは以下のとおり。
Set xlApp = CreateObject("Excel.Application")
Set xlbook = xlApp.Workbooks.Open( "D:\kakaku.xlsx" ) 'Excelファイルを開く
Set xlsheet = xlbook.Worksheets(1)
xlApp.Visible = False 'Excelを非表示にする

'グラフを追加
Set xlchart = xlsheet.ChartObjects().Add( 10, 20, 500, 300 ) '追加する位置(左, 上, 幅, 高さ)
With xlchart.chart '追加したグラフ
 .SetSourceData xlsheet.UsedRange '範囲はシート内の全て
 .HasTitle = True 'タイトルを追加
 .ChartTitle.Text = "レギュラーガソリン価格"
 .ChartType = 4 'xlLine (折れ線)
 .ChartArea.Copy 'クリップボードへコピー
End With

'新規文書をUIで開き本文へ貼り付け
Set uidoc = ws.Composedocument("", "", "Main",,, True) '新規文書をMainフォームで開く
With uidoc
 .Gotofield "Body" 'Bodyフィールドへ移動
 .Paste 'グラフを貼り付け
 .Save '保存
 .Close True 'フォームを閉じる
End With

'Excelを終了
xlApp.DisplayAlerts = False
xlApp.quit
確認した環境:Notes 9.0.1 + Windows 10 + Excel 2016

2017年3月8日水曜日

Connections "Pink" ってなんだろう

サンフランシスコで開催された Connect 2017 で発表された "Pink" って何だろうと思っていたら、日本時間の今朝(というか昨日の深夜)に開催された Open Mic Webcast で "Pink" がテーマだったようで、早速公開されたプレゼンテーションを見てみました。

資料はこちらからダウンロードできます。

Open Mic Webcast: Think Pink - The Future of IBM Connections - 07 March 2017 [presentation attached]


これを読む前は

"Pink" って Connections の次期バージョンのコードネームなの?

と思っていたのですが、どうやら特定のバージョンを指した名称ではないようで、この先の展望というかロードマップ的なものを指して "Pink" と呼んでいる、という印象を持ちました。

結局のところよくわかりません。

とまあ、"Pink" についてはこれ以上深読みせずに、今後 Connections がどう変わっていくのかを見てみました。

まず非常に興味深かったのは、これまでの WebSphere + DBMS 等で構成していた Connections ですが、"Pink" では node.js や MongoDB といったオープン技術を採用し、なおかつ既存のコードをあらたに書き起こしたコードで完全に置き換えるらしいこと。

めっちゃ大胆ですね。

我々が利用している Connections Cloud もそのうち Pink に染まっていくのでしょうけど、データの移行作業も発生するだろうからシステムが長時間止まらないか、パフォーマンスは悪くならないか、オープン技術ってセキュリティホールの情報もオープンじゃないの?大丈夫??などと心配になってしまいます。

システム構成は大きく変わりそうですが、エンドユーザーの見た目や使い勝手も大きく変わりそうです。

今回の資料で個人的に気になったのは、

  • IBM Verse の「Important to Me」が Connections にも現れ、人の他にコミュニティーが追加できる
  • ファイル「同期」が拡張され、同期の対象にフォルダーが加わる
  • コミュニティー・デザインの拡張
  • そのデザインを新たなコミュニティーにコピーできる

の3点です。改善を要望していたものや、こうなればいいなと感じていた部分が実装されそうなのです。

Conncetions の「Important to Me」って「フォロー」とどう違うのでしょうか...やはりよくわかりません。

ところで、クラウド・サービスを使っていて思うことは、リリースされた新機能を使い始めるタイミングが皆同じため、エンドユーザーからの質問に管理者もサポートメンバーも回答できずに時間がかかったり、エンドユーザー向けのマニュアルをあらかじめ作ることができないことが辛いのです。

その点「ガイドツアー」には期待していて、くまなく新機能についてもガイドしてくれると助かるなあと。

それから "Pink" については今回の資料や Connect2017 に参加された IBM Champion やベンダー企業から発信される情報だけしか私はまだ見ることができていませんが、来週(2017年3月17日)開催のテクてく Lotus 技術者夜会では "Pink" のお話(特に開発者向けの内容)も聞けるようです。

動くデモが早く見たいですね。

2016年12月17日土曜日

テクてく技術者夜会のLTでお話したこと

昨日(2016年12月16日)のテクてくLotus技術者夜会に参加しました。


東京/大阪から沢山の講師の皆さんがライトニングトークされる中、僭越ながらお話させていただきました。

事前に資料を用意できなかったため、発表前にバタバタさせてしまい、申し訳ありませんでした。


お話した内容を整理して、少しわかりやすくするために例を追加したスライドを共有させていただきましたので、そのご連絡まで。

 


さて、このブログの更新も塩漬け状態が続いていますが、来年はもうちょっと更新したいと思っています。

これからもよろしくお願いいたします!