当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。

テクてく Lotus 技術者 Slack に参加しよう!

2016年4月18日月曜日

2016年4月のテクてくで紹介された海外ソリューション

みなさん、こんにちは。
先週末(2016年4月15日)に行われたテクてくロータス技術者夜会にはご参加いただけたでしょうか。

そうです。私がプレッシャーに負けてドタキャンした人です。
本当にすみませんでした。
先週はずっと寝込んでおり、今日になって、ようやく復調してきたところです。
普段から体調には気を付けていたつもりですが、どこかで油断していたようです。


さて、そんな私のことは放っておいて・・・
テクてくでは、3つの海外ソリューションが紹介されました。
LDC Via
We4IT Aveedo
Darwino

それぞれ、英語でのプレゼンでしたが、日本IBMの佐藤さま、ISEの村上さまのおかげで、
皆さんしっかりと製品について理解をしていただけたのではないでしょうか。

そんな中、
LDC Viaからはテクてく用のクーポンを発行していただきました。
3か月間、フル機能が利用できるという、なんとも太っ腹なものです。

クーポンの使い方がちょっと難しいようなので、以下にその手順を書いてみますので、ぜひ試してみてください。

LDC Viaの3か月間フリートライアル体験方法

1.http://ldcvia.com/にアクセスする
2.[Try it now]のボタンをクリックする
Try it nowをクリック

3.「Register Super-user」の画面で必要事項を入力して、[Create My Account]ボタンをクリックする
氏名、メールアドレス、パスワードを入力

4.アカウントが作成されるので、画面内の[SETTINGS]というメニューをクリックする
SETTINGSメニューをクリック
5.「Organisation details」の画面になるので、「Address (line 1):」「City」「Country」「Postal code」「Contact phone」を入力して、[Update]ボタンをクリックする
 ※クーポンを利用するには、会社情報を入力しておく必要があります
6.続いて、同じ画面内にある「Coupon Code」に"tektek"と入力して、[Update]ボタンをクリックする
 ※Planは「Pro(Unlimited Docs/100GB)」にしておく方がよいでしょう。
クーポンを入力して、アカウントをアップグレード!

これで、3か月の間、LDC Viaの機能をフルに利用できるようになります。
ぜひ、試してみてください。
そして、業務で利用できそうだなと思ったら、購入してあげましょうね(^^


Darwinoデモ版

また、Darwinoという製品は、デモ版がGithub上に公開されているとのことですので、
こちらもチェックしてみましょう!
URLはこちら!->Darwino



テクてくロータス技術者夜会は、参加者のみなさんで作り上げていくものです。
テクてくで聴いた内容を実践して、社内外にフィードバックしてください。
また、聴くだけでなく、自分でも発表してみませんか?
テクてくロータス技術者夜会で話してみたい!という方は、tektek Slackでご連絡ください。
その他、こんな話も聞いてみたいという話題でもよいです。
tektek Slackを活用して、テクてくを盛り上げましょう!


それでは、今日はこの辺で・・・

2016年3月8日火曜日

環境変数を色々試してみた(3)XPagesの場合

こんにちは。
今日は3月8日。雨が止んだのは良いですが、霞がかっていてもやもやしています。晴れるならカラッと晴れてほしいものです。


さて、昨日は1日に2本の記事を書くという暴挙を犯しましたが、それでは物足りない!という方がいたようです。


ということで、ESS Dev Japanの中の人に無茶ぶりを受けてしまったので、書きます(笑)。


XPagesの場合、Webブラウザで動かすのとNotesクライアントStandard版で動かす(いわゆるXPinC)という2種類あります。
それぞれ環境変数はどのようにアクセスできるのかを検証してみましょう。
XPagesそのものは同じものを使いますということでこんな画面を作ってみました。
環境変数のテスト用XPages

1.環境変数の設定方法

まずは、設定方法から見ていきましょう。
動きを分かり易くするために、 [設定]ボタンを設けて、それをクリックすると環境変数が設定されるというものにします。

1-1.設定方法

XPagesの場合、@Environmentや@SetEnvironment関数はありません。代わりにSSJSが利用できますので、NotesSessionクラスのsetEnvironmentVarが利用できます。
構文は次の通りです。
setEnvironmentVar( vname:string, value:any, issystem:boolean );

vnameが環境変数名、valueが設定する値、issystemがユーザー環境変数かシステム環境変数化を指定します。
引数自体はLotusScriptと同じなので分かり易いですね。
例)
var env1 = getComponent( "env1" ).getValue();
var val1 = getComponent( "val1" ).getValue();
session.setEnvironmentVar( env1, val1, true );

上記は画面上のenv1というコントロールとval1というコントロールに書かれた内容を元にして、環境変数を設定するというものです。


1-2.Webブラウザで動かした場合

上で作成した画面を使ってWebブラウザで実行してみました。
環境変数名/設定値に入力した後、[値の設定1][値の設定2]のボタンをクリックするのですが、環境変数に設定する以外のことは何もしていないので、画面に変化はありません。

結果の確認は、Notesクライアントのnotes.iniとDominoサーバのnotes.iniの内容を調べてみます。
Notesクライアントのnotes.iniには予想通り何も設定されていませんでした。
Webブラウザから利用しているので当然でしょう。
次にDominoサーバのnotes.iniを見てみます。
なんとまぁ、ちゃんと設定されているではないですか。関数が用意されているので当たり前と言えば当たり前ですが。
これでXPagesの場合、Dominoサーバに環境変数を設定できるという事が分かりました。

1-3.XPinCで動かした場合

では、次にこのXPagesの画面をXPinCで動かしてみましょう。
Webブラウザと同じ環境変数名にしたのではどのように動いたのかわからないので、別の名前にします。
やはり、ボタンをクリックしただけでは何も変わりません。

先ほどと同じようにnotes.iniを見てみましょう。
今度は、Dominoサーバのnotes.iniから先に見てみます。
おや?追加されていません。
今度は、Notesクライアントのnotes.iniを見てみましょう。
なんと!設定されていました。
NotesクライアントのStandard版でXPagesを動かしたときは、クライアントを判別して、notes.iniに書き込んでくれるようです。

これはプログラムがどこで動いているのかをNotes/Dominoがきちんと把握しているという事ですね。
素晴らしい!


2.環境変数の取得方法

2-1.取得方法

取得方法も@関数ではなく、SSJSで行います。
関数とその構文は以下の通り。
getEnvironmentString( vname:string, issystem:boolean ) : string
getEnvironmentValue( vname:string, issystem:boolean ) : any

vnameは環境変数名、issystemはシステム環境変数か、ユーザー環境変数かを指定します。
2つの違いは値が文字列で返ってくるかany(LotusScriptでいうVariant型)で返ってくるかです。
例)
var env1 = getComponent( "env1" ).getValue();
var ret = session.getEnvironmentString( env1, true );
getComponent( "cfEnvVal1" ).setValue( ret );

上記はenv1というコントロールに入力した環境変数名の値を文字列として取得して、cfEnvVal1というコントロールの値としてセットするというものです。

2-2.Webブラウザで動かした場合

さきほど設定した環境変数を取得するために、[値の取得1][値の取得2]をクリックしてみました。
下図がその結果です。
環境変数の取得

ちゃんとDominoサーバのnotes.iniに設定してある値が取得できていることが分かります。


2-3.XPinCで動かした場合

続いて、XPinCで動かした場合を見てみましょう。
同じように[値の取得1][値の取得2]をクリックします。
結果はこちら。
環境変数の取得(XPinCの場合)

こちらもNotesクライアントのnotes.iniの設定値を正しく取得できています。


これでXPagesでも環境変数のアクセスが容易にできることが分かりました。



2.まとめ

さて、いかがでしたか?
従来のNotes DBとXPagesでは環境変数の取り扱い方が若干異なるという事が分かっていただけたかと思います。

従来のNotes DBをXPages化する際、環境変数を使っているのであれば、そこも考慮しないといけないですね。

特に、Webブラウザで利用している場合、 Dominoサーバに書き込まれてしまうので、環境変数が上書きされてしまい、思った値が取得できないなんてことになったりします。
かといって、ユーザーごとに識別させようとした場合(たとえば、環境変数名にユーザー名を付与するなど)、notes.iniの行数が爆発的に増えてしまい、パフォーマンスに影響が出かねないなどという事も考えられます(実際にパフォーマンスに影響が出るかどうかは不明です)。

XPinCで利用する場合は、従来のNotes DBと同じでユーザのNotesクライアントのnotes.iniに書き込まれるのでそういった心配はなさそうですが。


実際の業務に反映させる場合は、色々とテストしてからにしましょう。


では今日はこの辺で。





Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
IBM Championの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

2016年3月7日月曜日

環境変数を色々試してみた(2)値の取得

こんにちは。
雨が降っていたのに、防水用の靴を履いてこなかったおかげで、くつがびしょびしょです。お気に入りだったのに・・・
防水用のやつを買いに行かないと。


さて、前回の記事(環境変数を色々試してみた(1)値の設定)では、環境変数に値を設定する方法について説明しました。

今回は、環境変数の値を取得する方法について説明します。

1.取得方法(1) @関数の場合

notes.iniに設定した環境変数を取得する方法について記述します。
設定方法は@関数では、3種類ありましたが、取得方法は1つしかありません。
それには、@Environment関数を利用します。構文は下記の通り。
@Environment( variable )
variableは環境変数名を指定します。
""で囲えば直接指定できますし、囲わない場合はプログラム内の変数の値を指定できます。
ここで注意点が一つあります。
指定する環境変数名に「$」はつけないという事です。
@関数では、ユーザー環境変数しか扱えないため、自動で「$」がついているものに対してアクセスするため、不要なのです。
例)
@Environment("AA");
tmp := "BB";
@Environment(tmp);

1行目の場合、notes.iniの
$AA=xx
のxxを取得します。
2-3行目の場合、notes.iniの
$BB=xx
のxxを取得します。
これは設定方法の種類にかかわらず変わりません(@関数で設定しても、LotusScriptで設定しても同じ)。



2.取得方法(2) LotusScriptの場合

続いて、LotusScriptでの環境変数の取得方法について説明します。
設定方法は1つのメソッドしかありませんでしたが、取得方法は2つのメソッドが用意されています。

2-1.文字列で取得する

まずは、NotesSessionクラスのGetEnvironmentStringメソッドです。
構文は以下の通り。
value$ = notesSession.GetEnvironmentString( name$ [, system ] )
name$は環境変数名を指定します。
systemはシステム環境変数を取得するのか、ユーザー環境変数を取得するのかをTrue/Falseで指定します。
Trueがシステム環境変数、Falseがユーザー環境変数です。
戻り値はvalue$に文字列として返されます。
例)
Sub Click(Source As Button)
 Dim session As New NotesSession
 Dim ret     As     String
 
 ret = session.GetEnvironmentString( "EE", False )
 Msgbox ret, 0, "ユーザー環境変数の取得"
End Sub

上記の場合、notes.iniに設定してある$EEというユーザー環境変数の値を取得して、その値をプロンプト表示します。


2-2.Variant型で取得する

もう一つはNotesSessionクラスのGetEnvironmentValueメソッドです。構文は以下の通り。
valueV = notesSession.GetEnvironmentValue( name$ [, system ] )
name$は環境変数名を指定します。
systemはシステム環境変数を取得するのか、ユーザー環境変数を取得するのかをTrue/Falseで指定します。
と、ほとんどGetEnvironmentStringメソッドと同じです。
唯一違うのが戻り値で、Variant型で返ってきます。
例)
Sub Click(Source As Button)
    Dim session As New NotesSession
    Dim ret     As     String
    
    ret = session.GetEnvironmentValue( "FF", True )
    Msgbox ret, 0, "システム環境変数の取得"
End Sub

上記の場合、notes.iniに設定してあるFFというシステム環境変数の値を取得して、その値をプロンプト表示します。

正直なところ、このメソッドの存在価値が私には分かりません。
環境変数には、文字、数値、日付が設定できるとのことですが、notes.iniはテキストファイルなので、文字列という形で格納されている事は変わりません。
わざわざVariantで取得するって・・・
まぁ、数値が格納してある場合は、型変換をしなくて済むというのがいいところでしょうか?(それでも、本当に数値になっているかどうかの確認は必要でしょうから文字列でいいんじゃ?)



3.注意点

さて、設定方法と取得方法についてみてきましたがいかがでしょうか?

3-1.注意点その1

環境変数には「ユーザー環境変数」と「システム環境変数」の2種類があることが分かってもらえたかと思います。
特に、@関数ではユーザー環境変数にしかアクセスできないという事も分かりました。

3-2.注意点その2

もう一つ、大事なことがあります。
システム環境変数の場合、環境変数名の大文字小文字が区別されるという事です。
例えば、
KANKYOUHENSUU

KankyouHensuu
とは違うものとして認識されます。
ユーザー環境変数の場合は、大文字小文字の区別はされません。
$USERVALUE

$UserValue
も同じ環境変数として認識されます。
プログラムでハードコーディングしている場合などは特に気を付ける必要があります。

3-3.注意点その3

さらに、環境変数にはもう一つの考え方があります。
notes.iniに対してアクセスしている事から想像できるように、環境変数はサーバとクライアントでそれぞれ持つことができます。
これは、環境変数に対してアクセスするプログラムがどこで動いているかによります。
Notes DB内で動作する場合は、通常Notesクライアントの環境変数にアクセスしています。
Dominoサーバの環境変数にアクセスするには、スケジュールエージェントなどのサーバ上で動作するプログラムを利用します。



他にも私が気が付いていないような注意事項があるかもしれません。
ご存知の方がいれば、コメントなど残してくれると嬉しいです。


それでは今日はこの辺で・・・



Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
IBM Championの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

環境変数を色々試してみた(1)値の設定

こんにちは。今日(2016年3月7日)は東京では雨が降ってます。
雨は降ってくれないと困るのはわかっていますが、やはり好きではありません。 傘を差しながらの移動は大変です。
早く、傘に変わる雨除けの道具を発明してほしいものです(合羽は着替えるのが大変なので嫌です・・・(笑))
なお、雨だと花粉の飛散が少ないとか言いますが、関係ありません。少なかろうがなんだろうが辛いものは辛いのです。


閑話休題。


さて、本日の話題はNotesの環境変数です。
Notes/Dominoはnotes.iniというファイルに色々な情報を格納していて、その内容を元に稼働させています(これだけではありませんが)。
そして、利用者もこのファイルに対してアクセスができます。
つまり、値の読書きができるという事です。

今回はその方法と注意点についてまとめてみます。


1.設定方法(1) @関数の場合

notes.iniに値を設定するには、@関数で行う方法とLotusScriptで行う方法があります(このほか、Notes Java/CORVAクラスやJavaScriptクラスでの方法がありますが、割愛します)。
まずは、@関数について説明します。

1-1.ENVIRONMENTキーワード

まず、ENVIRONMENTキーワードを使う方法です。
構文は次の通りです。
ENVIRONMENT variable := textValue;

variableは環境変数名を指定します。この値は""で囲ってはいけません(囲ってもエラーになり、保存できません)。
textValueは環境変数に設定する値を指定します。こちらは""で囲った値が設定されます。プログラム内の変数の値を格納することもできます。この場合、変数名をそのまま記述します。
例)
tmp := "hogehoge";
ENVIRONMENT AA := tmp;


1-2.@Environment関数

次に、@Environment関数で、こちらの構文は次の通りです。
@Environment( variable ; value )

variableは環境変数名を指定します。こちらはENVIRONMENTキーワードと違い、""で囲えばその値を、変数名を指定すればその変数名の値が設定されます。
valueは環境変数に設定すする値を指定します。
例)
@Environment( "BB"; "hogehoge" )

後述しますが、この関数では環境変数に値を設定するだけでなく、取得することもできます。

1-3.@SetEnvironment関数

3つ目は@SetEnvironment関数で、構文は次の通りです。
@SetEnvironment( variableName ; value ) 

variableNameは環境変数名を指定します。
valueは環境変数に設定すする値を指定します。
@Environment関数との違いは、値の取得ができるかできないかです。
例)
env1 := "CC";
tmp := "hogehoge";
@SetEnvironment( env1 ; tmp )


これらのキーワードや@関数での設定方法に共通しているのは、環境変数名の頭に「$」が付くという事です。
これは通常、「ユーザー環境変数」と呼ばれています。
「$」を頭につけることにより、Notesが利用しているものと区別するためというのと、予約語に対して設定してしまうのを避けるという目的があると思われます。
ちなみに、頭に「$」が付かないものは「システム環境変数」と呼ばれています。


2.設定方法(2) LotusScriptの場合

続いて、LotusScriptで設定する方法について説明します。
設定に使うメソッドは1つで、NotesSessionクラスのSetEnvironmentVarを利用します。
構文は次の通りです。
Call notesSession.SetEnvironmentVar( name$, valueV [, issystemvar ] )

name$は環境変数名を指定します。
valueVは環境変数に設定する値を指定します。
issystemvaはユーザー環境変数もしくはシステム環境変数のどちらを使うのかを指定します。

2-1.ユーザー環境変数の設定方法

LotusScriptでは、ユーザー環境変数とシステム環境変数の2種類を取り扱うことができます。
issystemvarにfalseを指定すれば、ユーザー環境変数を利用することになります。
例)
Sub Click(Source As Button)
    Dim session As New NotesSession
    Call session.SetEnvironmentVar( "DD", "hogehoge", False )
End Sub

上記を実行すると、$DDという環境変数にhogehogeが設定されます。
notes.iniの行では
$DD=hogehoge

となります。

2-2.システム環境変数の設定方法

issystemvarにtrueを指定すれば、システム環境変数を利用することになります。
例)
Sub Click(Source As Button)
    Dim session As New NotesSession
    Call session.SetEnvironmentVar( "EE", "hogehoge", True )
End Sub

上記を実行すると、notes.iniに
EE=hogehoge
という行が追加されます。



ちょっと長くなったので、今回はここまでとします。
次回は値の取得方法についてみてみましょう。






Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
IBM Championの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

2016年2月11日木曜日

XPagesで数値フィールドを表現する場合の注意点

皆さん、こんにちは。

XPagesアプリケーションの開発は順調ですか?
私も頑張ってますよ。

ということで今日はXPagesの話題です。

Notes/Dominoで扱えるデータ型は多数ありますが、大きく分けると
  • 文字列
  • 数値
  • 日付/時刻
  • リッチテキスト
になります。

クラシックなNotesアプリケーション(フォーム/ビューを中心としたNotesクライアントで利用するアプリケーション)の場合は、あまり深く考えずに利用できると思いますが、
XPagesアプリケーション(Webブラウザでの利用) となると、そうはいきません。
JavaScriptやHTMLの制限事項に引っかかってしまうことがしばしばあります。

そういった注意事項について、当ブログでは、日付/時刻については何度か紹介していますね。
今回は、その「日付/時刻」ではなく、「数値」について注意点を紹介します。



まず、「数値」についておさらいしましょう。
ここで言う「数値」とは、「0」~「9」の文字で表される、演算できる数のことを指します。
テキストとしての数は含みません。
また、「数値」は、整数と小数に分類することができます。


次に、Notesクライアントで数値を表示する方法を考えてみましょう。
まず、Notes DBのフォームに「数値」という種類のフィールドを作成します。
数値フィールドの定義

小数点以下を有効にするかどうかも決めることができます。
数値フィールドの定義2(小数点の定義)


このフォームで、いくつか文書を作成して、ビューで結果を確認してみました。
数値フィールドをビューで確認


これらの文書をフォームで表示したらどうなるかも確認してみました。
数値フィールドをフォームで確認

ちょっと雑ですが、入力した通りに表示されていますね。

では、このNotes DBをこのままWebブラウザで表示してみましょう。
幸い、Notes/Dominoは標準でHTTPサーバの機能を持っていますので、何もしなくてもそのままWebで表示することができます(考えたらすごいことですよね)。

Webブラウザでビューを表示

ほぼそのままNotesクライアントで見た形になっていますね。

念のため、文書を開いた状態でも確認してみましょう。
面倒くさいので(笑)、一文書だけ。
Webブラウザで文書を表示

はい。確かに入力した結果がそのまま表示されています。

うん、Notes/Dominoは素敵ですね。



では今度は、 XPagesで表現してみましょう。
ビューコントロールを配置して、先ほど作成したビューをデータソースにします。
XPagesでビューを表示

うん。できてますね。・・・って、あれ?なんか変だぞ?
あ!整数のみのはずなのに、「123.0」とか「-456.0」と小数点が表示されているじゃないか!

ビューコントロールのプロパティを確認したところ、「数値フィールド」の列の表示タイプが"文字列"になっていたことが原因のようです。
ここは、表示タイプを"数値"に変更して、再表示させてみましょう。きっとうまくいくはず!
列の表示タイプを数値に変更

表示タイプを数値に変更したビュー


うん。整数は「123」「-456」と正しく表示されるようになったぞ。よしよし・・・
ん?あれ???ちょっと待てよ?
!!なんで、小数点が3桁しか表示されてないんだ!?

はい。小数点第9位までにゅうりょくしておいた「123.456789012」という数値がXPagesのビューでは、なぜか「123.457」という中途半端な数値に置き換わっているのです。

文書として開いたらどうなるのでしょうか?
ここは急いで確認しないといけません!
フォームをデータソースにして、XPageを作成して、ビューから表示できるようにしました。
文書をXPagesで表示

はい。画面を見ればすぐにわかりますね。
やはり小数点第3位までしか表示されていません。


ここで、ちょっと調べてみました。
すると、Webブラウザで数値を表示しようとすると、小数点第4位で四捨五入されて、小数点第3位までしか表示されないようであることがわかりました。

そう言われると、その通りの動きなので納得です。
では、どうすればよいのでしょうか?



編集ボックスや計算結果コントロールの場合、「データ」プロパティに「表示タイプ」という項目があります。その中の「表示形式」を"カスタム"にして、「パターン」を以下のようにします。
"0.#########"
※"#"の数は表示させたい小数点の桁数分入力します。
数値フィールの表示タイプを変更

ここで、なぜ、"0.#########"なのでしょうか?
"#"というのは、一番上位もしくは下位の値が"0"の時はその位を表示しないよ。という意味があります。
ここを"0.000000000"としてしまうと、整数の「123」も「123.000000000」というように表示されてしまい、ちょっと格好が悪いんですね。

さぁ、それではビューとフォームの2つのXPageを修正したので、結果を見てみましょう。
まずはビューから。
列の数値タイプをカスタムにしてみた結果

はい。正しく表示されましたね。
次はフォーム。
数値フィールドの表示タイプをカスタムに変更

いかがでしょうか?
整数は整数のみ、小数点付きは小数第9位までしっかりと表示されています。


※この処理を行わないまま、文書の編集・保存を行ってしまうと、桁数が切られてしまうので注意が必要です。


今日は、この不思議な現象の検証に丸々一日費やしてしまいました。
原因が分かったからいいようなものの、ちょっと無駄にしてしまいましたね。



こういう時は、一人で悩まずに、QAサイトで質問するのが 良いでしょう。
幸い、Notes/DominoにはqA for ICS Developersというサイトがあります。

こちらのサイトは、Notes/Dominoに関するQAをみんなの力で解決しようというものです。
是非、活用してくださいね。
あ、質問するだけでなく、自分が知っていることがあれば、回答もしてあげてくださいね。

そうすれば、次回に分からないことがあった時に、助けてもらいやすくなりますよ。



では今日はこの辺で・・・



Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
IBM Championの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

2016年2月5日金曜日

IBM Connect 2016の反省と今後の予定

みなさん、こんにちは。
IBM Connect 2016は終了しましたが、まだオーランドに滞在しています。

今日は、一緒にこちらに来たみなさんと遊びに、 いえいえそうではなく、今回のIBM Connect 2016での収穫や反省についてのディスカッションをしていたわけです(ホントですからね!)


各人の得たものや反省について私が述べるのは筋違いですので、例年通り、私個人の得たものと反省について述べます。

1.収穫
正直に書きますと、IBM様からの発表で私が得たものは皆無に近かったです。
IBM Verseは確かに魅力的な製品で、オンプレミス版やオフラインの発表もあったのですが、
まだどうやって、広めていけばよいのかの見当がついていません。
どなたか私にご教授願いたいくらいです。
そして、何より、Notes/Dominoの新しい話が何もなかったのは大きいです。

では、まったく得るものは何もなかったのかというと、そうではありません。
REST/JSONを過去のIBM Connectのセッションで聴いて、自分で学習していましたが、
今年はそれに関連したセッションを3つも聞くことができました。

REST/JSONはWebアプリケーションの世界では当たり前に使われています。
ですが、Notes/Dominoの世界ではまだまだ認知度が低いと感じていて不安がありました。
しかし、今回のIBM Connectに参加することで、世界では使われ始めてきているということが確認できて、今まで自分が学んできたことは間違いではなかったということが分かりました。
これは私にとって非常に喜ばしいことです。

また、最近新しくNODE-RED/Node.jsの学習も始めました。こちらも関連したセッションを聴くことができました。
こうやって、自分の中のトレンドと世の中?のトレンドが一致しているというのは嬉しいものです。



2.反省
今年も相変わらず、英語でのコミュニケーションが満足に行えませんでした。
聴く方はなんとかなっている(気がするだけ)と思っているのですが、どうしても伝えることができません。
それなりに、単語の数は増やしたつもりだったのですが、いざ会話!となると、言葉が出てこない・・・
致命的です。
普段から、英語を仕事の生業の一部にしていないという言い訳がましいことも言えなくもないのですが、満足に話ができていない以上、意味がありません。
ここは、何としても克服していきたいところです。


3.総括
上記をもとに、今年の抱負としたのは昨日のブログで発表した通りです。
The Final Day of IBM Connect 2016
個人的には、まだまだ精進が足りないというのがはっきりしたわけですから、来年もIBM Championを目指していきたいと思います。


ですが、セルフノミネート(立候補)は行いません。これは、もともと自分の中で決めていたことで、「5年間IBM Championでいられることができれば、自分にとっては素晴らしいことで、十分であろう。それ以降は、IBM Championでなくなったとしても、同様の活動ができるであろう。」という考えからです。

たまたま、今年はLIFETIME IBM Championの発表があったので、ちょっと戸惑いましたが、
一晩考えてみて、自分にとって、その称号は必須ではないなと感じたのも要因の一つです。


とにかく、Notes/Dominoを仕事の生業としている方にコミュニティにはまだお前が必要だ!と言われるくらいには頑張ります。
その結果としてIBM Championという称号がついてくれば、嬉しいです。


4.おまけ
今年は、天気にも会場にも恵まれました。
暑い日は日中は30度近くまで気温が上昇しましたが、夜も20度くらいまにしか下がらず、寒暖の差がそれほど激しくなったということ。そして、ホテル内の気温も涼しいくらいで「寒い!」ということにはならなかったため、上着を持ち歩く必要はなかったということ。
これは非常に大きいです。
あらかじめ、天気予報でそういったことは予想できていたわけですが、現地入りするまでどうしても信用できなかったのはあります。
それが今回「天気予報はしっかりとあたる!」ということが確認できたので、
来年、オーランドで開催されるようであれば、直前の天気予報は確認して、そのうえで洋服は選びましょう!ということです。


だらだらと書いてしまいましたので、今日はこの辺で・・・



Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
IBM Championの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

2016年2月4日木曜日

The Final Day of IBM Connect 2016

みなさん、こんにちは。
オーランドは今日も天気が良いです。
IBM Connect 2016最終日の朝

今年は天候に恵まれて、会期中はたいへん過ごしやすかったです。
Hilton Orlandoの中も、日本人を意識したのか(そんな訳はない(笑))、Swan and Dolphinよりも暖かく(といっても、普通に「涼しい」という感覚です。Swan and Dolphinは寒い!の一言です)、外に出たり、中に入ったりするのに、上着を脱いだり羽織ったりする必要がないくらいでした。


さて、今日(現地時間で2016年2月3日)でIBM Connect 2016も終了となります。
と言っても、午前中は普通にセッションを受けてきました。
お馴染みMat Newmanの「#UserBLAST 2016」と「Building Responsive Application Using XPages」と「Real-time Video Chat XPage Application Using Websocket and WebRTC」の3つです。

いずれのセッションも濃い内容で有意義に聞けました。

個人的に気になったのは「Building Responsive Application Using XPages」ですね。
レスポンシブデザインということで、Webブラウザの横幅に合わせてコンテンツの表示方法を動的に変更してくれるというものですが、
これを実現してくれるBootstrapがXPages Extension Libraryに組み込まれるというものです(というか、組み込まれていて、すでにリリースされています)
XPages Extension Library

昨日(2016/2/2)にリリースされたばかりの901v00_16.20160128-1014版では、Bootstrarp 3.3.6とBootstrap 4 alpha 2が実装されているとのことです。
BootstrapとExtension Libraryの実装関連図

ただし、Bootstrap 4はalpha版なので、使用には十分注意が必要です!とのことでした。


まだ、なんとなくでしか、Bootstrapを理解していないので、これを機に勉強しなおそうと思っています。サンプルアプリをこのブログで紹介できればいいですね(なんか、こういうの多そうだな・・・全部できるかな?)



「Real-time Video Chat XPage Application Using Websocket and WebRTC」のセッションでは、Dominoサーバにwebsocketを実装して、それを使ってXPagesアプリケーションを作成できるというものでした。
アプリケーションとしては、セッションタイトルにあるように「テキストチャット」「ビデオチャット」や「オンラインゲーム」や「オークションサイト」などにも応用できるんじゃないのかな?という話でした。

ちょこっとだけ画面ショットを。
WebSocket APIでのwebsocketの定義方法について説明があったので、それを載せます。
WebSocket Constructor

実際のデモでは、Webブラウザを2つ起動した状態でのお互いのブラウザでテキストチャットをしたのと、PCとスマホでのビデオチャットでした。
特にビデオチャットは、WebRTCの機能を利用していて、クライアント同士が直接やり取りをしているというのが分かるデモでした。
それぞれの用語の説明はWikiに詳しく出ていますのでそちらを参照願います。
WebSocket
WebRTC


この後、お昼をはさんで、「Ask the Developer」と「Closing Session」がありました。


Ask the Developerでは、いつものように開発陣を前にして質問する人、言いたいことだけ言って去っていく人、色々いました。
まぁほとんど聞き取れなかったんですけどね・・・Node.jsのようなみんなが使っているものをNotes/Dominoに取り込むようなことを考えてほしい。みたいなことを言っている方がいたのが印象的でした。


クロージングセッションでは、昨日のブログで発表したようにLIFETIME IBM Championが表彰されました。
そして最後に「来年も会いましょう!」という発表がありました。
日時や場所のアナウンスはありませんでしたが、何も触れずに終わった昨年の絶望感に比べたら、あぁ!また来年も開催できるんだ!という喜びの方が大きかったです。


そして、終了後に、IBM Championsが全員壇上に登って記念撮影をしました。
IBM Connect 2016に来場したIBM Champions

この時ばかりは、嬉しくて輪の中に飛び込んでいくのでした(笑)







会の終了後は、ジャパンディナーがありました。
ギリシャ料理のお店に行ったのですが、そこのうるささと言ったら・・・
隣の人と話ができないほどでした(笑)
もう、ここはないですね。

そんなうるさいお店の中でも(中だからこそ?)、参加者のみなさんと大声で話をしました。
そこで、日本のIBM Championなんだからもっと頑張ってくださいよ!とNotes/Dominoでちょっとコネタでお馴染みのISEの村上様に激励をいただきました。

ということで、今更ながら今年(2016年)の抱負です。
2016年6月末までに、本ブログにおいて英語で書いた記事を1本執筆します!当然、いつもやっているブログ書いたよ。のアナウンスも英語で行います!
(記事は、日本語版と英語版の記事を用意する予定でいます)
どんな内容のものになるかはこれから考えます。


ということで、来年もオーランド(なのかな?)に来るために、(いや、お客様とNotes/Dominoを盛り上げるためにですな)、今年も頑張っていきましょう!


それでは、今日はこの辺で・・・


Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
IBM Championの私が承ります! 
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ