カスタムコントロール プロパティ定義にNotesDocumentを渡す方法

XPages開発でカスタムコントロールによる設計の分離を行う際、StringやBoolean意外にもNotesDocumentなどのデータソースをプロパティ定義する方法をご紹介します。

カスタムコント,ロールにデータソースを渡したい場面

そもそも、XPage本体でデータソースを定義していればNotesXSPDocument(デフォルトでは"document1"としてアクセス可)はカスタムコントロール側でも同様の方法でアクセスが可能になっています。
document1.getDocument() としてやればNotesDocumentへもアクセスが可能です。

ではNotesDocumentをカスタムコントロールに渡す必要があるシチュエーションというのはどのような場面でしょうか?

一番想定されるケースとして、ビューやRepeatコントロール内で各文書データを出力(もしくは編集)させるカスタムコントロールの作成です。

こちらにデモ用のサンプルを作ってみました。

サンプルURL: http://minato.ktrick.com/demo.nsf/ccWithNdocProperty.xsp

サンプルではテーブル内で文書がある分だけRepeatコントロールで行出力します。各文書の詳細情報として各行の下の緑のエリアがカスタムコントロールで実装している箇所です。

カスタムコントロールでデータソースをプロパティ定義

以下のようにしてカスタムコントロールでデータソースをプロパティ定義してやります。

  1. カスタムコントロールを作成
  2. 「Property Definition(プロパティ定義)」から「New Property(新しいプロパティ)」をクリック
  3. 「Name(名前)」に任意の名前をつけます
  4. 「Type(タイプ)」から右のアイコンをクリック
  5. 「Data Source(データソース)」から「Domino Document(Domino文書)」を選択
  6. 「Editor(エディター)」から右のアイコンをクリックし「Deta」⇒「Data Source Picker」を選択します。

以上でカスタムコントロールでデータソース定義は完了です。 ここで重要になるのは「Editor(エディター)」の部分で「Data Source Picker」を選択してやることです。

サンプルXPAGEの解説

サンプルXPageのコードからカスタムコントロールで定義したデータソースの呼び出し方、使い方をみていきます。

まずは呼び出し元になるXPageのソースコードです。

29行目でカスタムコントロールを呼び出しています。先ほど作ったndocのプロパティにRepeatコントロールでループさせている各行の文書を設定しています。

以下はカスタムコントロールのソースコードです。

4行目、6行目のようにcompositeData.ndoc.city と記述してデータソースバインディングしてやることもできますし、9行目のようにcompositeData.ndoc.getItemValueString("email") とSSJSで記述する方法も可能です。 処理速度としてはcompositeData.ndoc.xxx のデータバインディングの方が早いはずです。

サンプルXPAGEの解説

特に高度なテクニックを使っているわけではなくXPagesが持つ標準の機能の説明になりますが、意外とこのような利用方法ができることを書かれていたブログがなかったため書いてみました。 サンプルのようなシチュエーションで今回の方法を知らなければ、文書UNIDなどを渡してカスタムコントロール側で再度NotesDocumentを取得しなおす、といった回りくどい実装をしている場合もあるかもしれません。サーバー負荷、処理速度を考えてもこのように実装したほうがスマートなケースになりますので覚えておいてもらえればと思います。


カスタムコントロール内でDocumentデータソースのフィールドを動的に定義する方法

カスタムコントロールをより汎用的なパーツ化したい

共通パーツ化の目的でカスタムコントロールを作成することが多いと思います。

今回のブログは、カスタムコントロール内で文書フィールドをハードコードせず、カスタムコントロールを呼び出し側のXPAGEがプロパティ定義でフィールド指定してやる方法です。

この方法を使うと、カスタムコントロール内で複雑なロジックを持ったフィールド、例えば

  • 社内Emailアドレスのみを許可する入力チェックを行うフィールドの汎用化
  • リピートコントロール内で動的にフィールドを定義してスコープ変数に格納する

といった方法が可能になります。

自分の場合はリッチテキストフィールドに対して常に素のJSONデータのみを格納するように振る舞うフィールド定義をしたいケースがあり実装した経緯がありました。その際、作成したカスタムコントロールは呼び出し側が指定したフィールド名に対して動的にデータバインドを行うようになるのが今回の主旨です、その名もダイナミック データバインディング!(勝手に呼んでますw)

毎度のごとく、トピックがニッチなので(笑)百聞は一見に如かず、カスタムコントロールのコードを見てみます。

まず、カスタムコントロールの前準備として今回の例では「fieldName (String値)」というプロパティ定義をしています。
dynamic_data_binding01

以下がサンプルコードです。

重要な点はハイライトされている5行目に尽きます。
valueの値に対して、"${javascript:'#{document1.' + compositeData.fieldName + '}';}" と複雑な記述になっています。
まず着目してほしいのが、'#{document1.' + compositeData.fieldName + '}'の部分は文字列生成をしているということです。
もし直接データバインドをした場合、value="#{document1.Email}" となるところをあえてSSJS経由で渡してやることでこのように動的に記述することを可能にしています。

最後にこちらが呼び出し元のXPageです。

鋭い人は「document1」がハードコードでは?と気づいたと思います。
前述のとおり'#{document1.' + compositeData.fieldName + '}'の部分は文字列を生成しているだけなのでfieldNameプロパティに「document1.Email」を指定し、'#{' + compositeData.fieldName + '}' としても動作します。

種明かしをするとなんだ~、と以外と簡単なのですが場合によってとても重宝する記述方法なので覚えておいてもらえればと思います。

参考

http://stackoverflow.com/questions/9913331/dynamic-data-binding


【2017/4/21 (金) 】テクテクLotusセッション:Aveedoのご紹介 - IBM Notes/Domino Modernization の実現を支援する海外ソリューション

Aveedo - IBM Notes/Domino Modernization の実現を支援する海外ソリューションのご紹介

2017年4月21日、IBM箱崎本社で行われるテクてく Lotus 技術者夜会で弊社が日本総代理店を務める海外ソリューション「Aveedo」がご紹介されます。

今回のテクてく Lotus 技術者夜会ではIBM Connect 2017の基調講演で発表されたNotes/Domino Application Modanizationが勢ぞろいします!各社、代表やCTOを務める人物が直接25分のセッションで製品を紹介してくれるという濃密なイベントとなっています。
img_6469

既存NSFアプリをウィザード操作でカンタンWEB化できるソリューション「Aveedo」の開発元であるWe4ITからはCEO Stefan Sucker 氏 が直接、製品紹介をデモを交えて発表してくれます。(通訳は弊社から田付が担当します)

当日のアジェンダは以下のようになっています。

2017年4月21日(金)

  • 6:00PM – 6:25PM:  Panagenda – ApplicationInsights
  • 6:25PM – 6:50PM:  Sapho
  • 6:50PM – 7:00PM:  <休憩>
  • 7:00PM – 7:25PM:  We4IT – Aveedo
  • 7:25PM – 7:50PM:  Darwino
  • 7:50PM – 8:00PM:  Q&A
基調講演で発表されたApplication Modanizationのソリューションを一挙に知れるまたとないチャンスとなっていますので皆さん是非会場まで足を運んでみてください!
(なおリモート参加も可能です)

【 開催概要について 】
日時2017年4月21日 (金曜日)  18時から20時 (17時30分開場)
Aveedoセッション情報3コマ目 :  7:00PM – 7:25PM: We4IT – Aveedo
場所日本アイ・ビー・エム株式会社 IBMイノベーション・センター :会場へのアクセス

【詳細について】
テクテクLotus お申込みサイト: 

IBM Connectons PINKとDominoの未来

2017年2月21日から23日まで開催されたIBM Connect 2017が終わり日本に帰国しました。

これから何回かに分けてIBM Connect 2017のフィードバックブログを書いていきたいと思います。

IBM Connections PINK

ibm-connection-pink

IBM Connect 2017基調講演で初めてIBM Connections PINKの存在が発表されました。

また20日に行われたIBM Connect 2017 HackathonのイントロダクションとしてIBMのJason Roy Gary氏によるIBM Connections PINKのテクノロジーに関しての説明がありました。

それによるとIBM Connections PINKは今までのIBM Connectionsと全く違うテクノロジー、哲学をもって再構築されており、従来のIBM Connectionsと全く異なる設計を持つことになります。

具体的なところでは、

・マイクロサービスベースのアーキテクチャ
・ad-hoc利用するアプリ連携をサポ―ト
・JSONベースのモダンAPI

graphQL
・Modern CI-CD
・StrongLoop / IBM API Connect (node.js/express)
・SWIFT / GO
React.js
MongoDB
Redis
・Nginx
・Docker

というテクノロジーやコンセプトに基づいて開発されています。
上記にあるようにデータベースはSQLですらなくなりMongoDBを利用するようです。

また、Jason Roy Gary氏がIBM Connect 2017の最終日のセッション「Ask to the developer」で解答していた際のある言葉が印象的でした。

「IBM Connections PINKでは我々はソフトウェアをあなた達のために作るのをやめました。あなた達と作るのです」

様々なセッションを通じ、彼のあの言葉の裏付けとなっているテクノロジーがgraphQLであり、Dockerであり、LiveGridでありMicroserviceであることを今回学ぶことが出来ました。

正直なところ、Docker、MicroserviceやLiveGridなどの正確な内容を把握できておらずまだまだ勉強が必要なのですが、今後IBMからこれらのテクノロジーに関しての多くの情報が発信されていくのだろうと期待しています。

Dominoはどうなるの?

マイクロサービスで様々なアプリがつながるようになりまさに「あなた達と作る」環境が整備されていくなか、これらのテクノロジーにDominoは取り残されていくのでしょうか?

自分がIBM Connect 2017に参加してイメージしたDominoでは、Dominoもマイクロサービスの一つとなり様々なサービスと疎結合していく未来の姿です。

そのためにOpenNTFで現在進められているプロジェクトにSmartNSFというものがあります。

smartnsf
こちらのプロジェクトはOpenNTFのチェアマンであるChristian Gudemann氏によって進められていますが、このSmartNSFを使うことによって簡単にDominoのデータをMicroservice化して活用することが出来ることを目指しています。

OpenNTFといえばオープンソースだから容易に手を出しにくいと考えがちですが、いままでのOpenNTFの活動から考えて、SmartNTFの方向性はよっぽど間違わない限りゆくゆくはDominoのFeature Packに取り込まれていくのだろうと考えています。実際はまだスタートしたばかりのプロジェクトなのでこの考えは時期尚早かもしれませんがDominoの未来を語る上で今一番期待してもいいのではないかと思います。

 


XPagesDay 2016 本日開催! 弊社セッションは16時から

XPagesDay 2016 本日開催!

今日からXPagesDayの熱い2日間が幕を開けます!
XPagesDayとはXPages技術に関するテクニカルWEBセミナーであり、もちろん参加費無料です。

今年2016 年はXpagesDay2016と題して、11 月 21 日(月)、22 日(火)の二日間を計7セッションの濃い内容でお送りします。

 

セッション名「XPagesでJava開発するぞ!」

毎年ケートリックからも1セッション講師を務めさせて頂いておりますが、今年は私、田付とエンジニアの米原の2人で「XPagesでJava開発するぞ!」というタイトルでお送りいたします。今年は今までの弊社セッションの中でも一番ハイレベルな内容となりそうです。

おそらく、「Javaは難しそう」、「XPagesが学びたいのであってJavaには興味がない」、という方々も沢山おられると思います。

ただXPagesはJavaによって動いています。 IBMがXPagesの解説をする際に「JSFを基礎技術とした開発言語です」という話をしていたことを覚えている人もいると思います。

JSFとはJavaでWEBアプリケーション開発をする際のとっても強力な開発フレームワークであり多くのJavaエンジニアがJavaEE JSFをベースに開発を行っています。

そんなXPagesのルーツを知ること基礎技術を知ることXPagesへの理解を深めることに繋がります。

そんな思いで今回のセッションを行いますので、少しでも興味がある方は是非参加してみてください。

 

【イベント、セッション概要について 】

セッション: XPagesでJava開発するぞ!(A-03)

日時:2016年11月21日(月) 16:00 – 16:45

場所:オンライン ウェビナー

【詳細・お申込みについて】

お申込み: 無料

イベントページ: http://xpagesday.com/


【2016/11/9 NCオープンセミナー】 既存ノーツアプリのWEB化でハマらないためのノウハウをご紹介します

いよいよ「ノーツコンソーシアム オープンセミナー」の開催が近づいてまいりました。

弊社からは

「開発者必見!ノーツアプリを効率的にWEB化するツールをご紹介!」

と題して講演をさせて頂きます。

開発者だけでなくノーツアプリのWEB化をすすめるご担当者に是非知って頂きたいWEB化のための解析、分析ツールをデモを交えてご紹介する予定です。

具体的には、以下のツールのご紹介を考えております。

  • Teamstudio Analyzerの監査機能
    XPAGES化の際のハマりどころを事前に洗い出す方法としてTeamstudio社の製品であるAnalyzerの監査機能を使った手法をご紹介。
  • Teamstudio Usage Auditor
    「そもそもこのNSFはWEB化が必要なほど使われているのか?」を利用頻度などの情報から事前に調べることが可能なツールのご紹介。 こちらもTeamstudio社の製品になります。

  • Teamstuio Adviser
    Teamstudio社から今年発表される製品をどこよりも早くご紹介。WEB化のための見積もり算出に使えるツールです。
  • We4IT ScanAlyzr
    We4IT社の製品であるWEB化見積もりツールのご紹介。 XPAGESによる開発工数の自動算出だけでなく、ノーツWEBアプリ作成ツール「Aveedo」でWEB化マイグレーションした際の開発工数の自動算出も行うツールになります。
  • We4IT Aveedo
    既存ノーツアプリをDominoデザイナー要らずでWEB化してしまうツールのご紹介です。お時間がゆるせば実際にサンプルのNSFアプリをAveedoを使い自動WEB化する手順をデモでお見せいたします。

 

さらに、様々なお客様のご依頼を頂き、NSFアプリのXPAGES化を行っている弊社だからこそお伝えすることができるノウハウを交えてご紹介する内容の濃いセッションになっております。

弊社が販売代理店契約をもつWe4IT社の製品だけではなくTeamstudio社の製品のご紹介など、参加者の方々へのメリットを優先でご紹介するセッションとなっているのも面白い試みだと思いますので是非ご参加ください!

 

イベント参加のご登録がまだの方は是非こちらのリンク下の「お申込みリンク」からご登録を行うことが出来ます。(参加費無料)

 【 開催概要について 】

弊社セッション: <S13> 開発者必見!ノーツアプリを効率的にWEB化するツールをご紹介!

日時2016年11月9日(水) 13:00 – 13:45

場所日本アイ・ビー・エム株式会社 本社事業所

セッション情報S13 -開発者必見!ノーツアプリを効率的にWEB化するツールをご紹介!

【詳細・お申込みについて】

イベントページhttp://www.notescons.gr.jp/home.nsf/content.xsp?k=ncopen16&w=12


XPages on bluemixとIoTでBB-8を動かしてみた (2/2)

前回からの続き

こちらのブログは前回の「XPages on bluemixとIoTでBB-8を動かしてみた パート1」の続きです。

前回までで、WindowsでBLEを制御するための以下の手順がおわりました。

  • (1)WindowsでBLEを制御するために
  • (2)BluetoothのUUIDを取得

 

(3)GitHubからBB8-Bluemixプロジェクトを入手

BLE接続が出来ればNode.jsのBB-8サンプルコードがあるので、それにドローンの時のようにMQTTを組み込んでIoT対応してやればいいと考えていましたが、なんと既にBB8-Bluemixなるプロジェクトが存在することを発見。今回はありがたく使わせて頂くことにしました。

https://github.com/shamimshossain/bb8-bluemix

こちらからbb8-Bluemixプロジェクトをクローンするなりしてローカルに展開します。

次に、コマンドプロンプトを開き、プロジェクトフォルダのパスにChange Directoryした後、「npm install」を実行します。 依存関係で色々とワーニングが出ましたが自分の環境では実行自体は出来ましたのでそのまま進めます。

bluemix-xpages-bb8-08

インストールが完了したら、プロジェクトフォルダ内にある spheroDemo.js を開き3行目の引数にパート1で取得したBluetooth UUIDを指定します。MAC OSではBLEアドレスは20桁以上であるようですが、Windowsでは12桁のIDでした。

 

(4)BluemixでInternet of Things Platform Starterアプリを作成

  1. bluemix.netに自分のアカウントでログインします。
  2. カタログから「Internet of Things Platform Starter」を選択
    bluemix-xpages-bb8-01
  3. 名前とホスト名を任意の値にして作成をクリック
    bluemix-xpages-bb8-02

(5)IoT Foundationよりデバイスの追加を行う

  1. アプリケーションのステージングが完了したら、左メニューから「Internet of Things Platform」を選択します。
    bluemix-xpages-bb8-03
  2. デバイスの接続から「ダッシュボードを起動」をクリックします。
    bluemix-xpages-bb8-04
  3. IBM Watson IoT Platform画面が開いたら「デバイスの追加」をクリック
    bluemix-xpages-bb8-05
  4. デバイスの追加ウィザードが開くので「デバイス・タイプの作成」を選択。次へ
  5. 「デバイス・タイプの作成」 ‐ 「一般情報」ステップではデバイスの名前を「sphero」にして次へ
  6. 「デバイス・タイプの作成」 ‐ 「テンプレートの定義」ステップでは特になにも選択せず次へ
  7. 「デバイス・タイプの作成」 ‐ 「情報の送信」ステップでもなにもせず次へ
  8. 「デバイス・タイプの作成」 ‐ 「メタデータ(オプション)」ステップもなにもせず「作成」ボタンを押下
  9. 「デバイス・タイプの選択」でさきほど作成したデバイスタイプを選び次へ
  10. 「デバイス情報」ではデバイスIDを任意の名前に設定して次へ
  11. 「メタデータ」ではなにもせず次へ
  12. 「セキュリティー」もなにもせず次へ
  13. 「要約」で確認後、追加ボタンを押下
  14. デバイス資格情報が表示されるので、赤で囲んだ部分をメモしておきます。
    bluemix-xpages-bb8-06
  15. 次に「Internet of Things Platform Starter」のダッシュボードに戻り、apiKeyとapiTokenを確認しメモします。
    bluemix-xpages-bb8-07

(6)BB8-Bluemixプロジェクトの設定ファイルにIoT Foundation情報を設定する

(3)で展開したBB8-Bluemixのプロジェクトを開き、sphero-config.properties ファイルを開きます。
以下のようにファイルを編集します。

  • deviceid: IBM Watson IoT Platform で登録した BB-8 の Device ID
  • authtoken: IBM Watson IoT Platform に BB-8 を登録した際に割り当てられた認証トークン
  • apikey, apitoken: IBM Watson IoT Platform の資格情報に記載されたapiKeyとapiToken

(7)MQTTクライアントからIBM IoT Fundationに接続テスト

にこちらのbb8-bluemix プロジェクトの下部に記載されているNode-Redのコードで実行テストを行います。

  1. bb8-bluemix プロジェクトの下部にあるNode-Redのコードをコピーします。
  2. Bluemixで作成した「Internet of Things Platform Starter」アプリケーションからプロジェクトURLを開きNode-Redを起動させます。
  3. メニューからインポートを選択しコピーしたコードを貼り付けます。
    bluemix-xpages-bb8-09
  4. 青色の「IBM IoT App Out」ノードをダブルクリックして以下のように設定を行います。
    bluemix-xpages-bb8-10
    ・Device TypeはIoT Foundationで指定したspheroを指定。
    ・Device IdにIoT Foundationで追加したデバイスIDを指定。
  5. Node-Redの「Deploy」ボタンを押し保存します。

ここまで設定が完了したら、コマンドプロンプトからspheroDemo.js を実行してBB-8と繋いでおきます。次にNode-Redから「Change color to Red」などのノードをクリックして実行しBB-8を制御できるか試します。

(8)XPages on Bluemixのアプリを作成

ここでやっとXPAGESの話になります。

  1. BluemixのカタログからXPAGESランタイムを選択します。
  2. 任意の名前、ホスト名を入力しアプリケーションを作成します。
  3. XPagesアプリケーションを作成後、スターターコードをダウンロードします。

 

(9)加速度センサーによるBB-8の制御アプリをBluemixにデプロイ

BB-8を制御するXPagesアプリケーションをこちらからダウンロードしてください。

bluemix-xpages-bb8-download

ダウンロード: http://ktrick.com/download/xpages-bb8-tpl.zip

自身のXPAGESアプリケーションの設計をこちらのものに置換するか、XPages, スクリプトライブラリ、リソース、ファイル、スタイルシートの設計をコピーして使ってください。

次にスクリプトライブラリのsp_mqtt_bb8.js を開き以下の赤枠の値を置き換えます。

bluemix-xpages-bb8-13

情報はNode-Redの時と同様に資格情報を参照します。

  • deviceid: デバイスID
  • pubTopic: デバイスタイプがspheroでない場合は書き換えます
  • mqtt_host: 資格情報のmqtt_hostを指定
  • mqtt_s_port: 資格情報のmqtt_s_portを指定
  • org: 資格情報のorgを指定
  • apiKey: 資格情報のapiKeyを指定
  • apiToken: 資格情報のapiTokenを指定

設計置換後にBluemixにデプロイするとXPAGESアプリケーションのTOPページが以下のようなものに置き換わっていることが確認できます。

bluemix-xpages-bb8-12

(10)XPAGESで動作テスト

Node-Redでテストしたときと同様にspheroDemo.jsを実行しBB-8とIoT Foundationを接続しておきます。

次にXPAGESアプリをスマートフォンで開いてください。

今回のXPAGESアプリではHTML5+Javascriptによってスマホのモーションセンサーを感知し前後、左右にBB-8を制御することが出来るようになっています。

こんな感じで操作できます。 

動いた~♪
以上により、フォースはXPAGESとIoTで成り立っていたということが証明できました。


XPages on bluemixとIoTでBB-8を動かしてみた (1/2)

XPagesとIoTでドローンの次はBB-8をプログラムで制御

昨年の2015年11月18日、Notesコンソーシアム「パートナーソリューションセミナー」の1セッションをXPAGESDAYがハックし、「XPagesとIoTでドローンを飛ばそう」という試みを行いました。

今回は、ドローンの代わりにスターウォーズ最新作の映画『スター・ウォーズ/フォースの覚醒(エピソード7)』に登場したドロイド「BB-8」をXPAGESから制御してしまおうという試みです。

なお、ドローン(AR-Drone)の時のシステム構成図がこちらのようになっていました。xpages-iot-drone-diagram

スライドはこちら。

ドローンの時と異なる点

ドローンの時はドローン自身が持つ専用WiFiに接続してIoTを経由してコントロールするというものでしたが、今回のBB-8ではWiFiの代わりにBluetoothを利用する点が大きく異なります。

まずはBB-8を入手

実は自分はBB-8は海外のとある方からの頂きもので偶然入手しました。 通常の遊び方は専用のスマートフォンアプリをインストールしラジコン(古い?)のようにBB-8をコントロールして遊びます。

Amazonで調べるとBB-8のオプションアイテムとしてフォースバンドなるものが2016年9月30日に発売されるようです。 これを見て真っ先に「これってIoTのセンサーデバイスとして流用できるのかな?」と考えた自分はちょっと病んでいるなと思っています。

※日本で買うと結構お高いみたいなのですが、英国のAmazonで買うと半値ぐらいなんですよね。送料込みでも十分元が取れるので興味ある方は海外のAmazonも見てみてください。

bb-8-amazon

Amazonはこちら

 

BB-8の前身はSphero?

さて、なぜBB-8がプログラムにより制御できるかと言いますと、実はSphero Japanが販売しているロボティクスボール「Sphero」というプロダクトが元となっています。

sphero

上の写真のような丸いボールのおもちゃでやはりスマートフォンから制御出来たりするようです。 そしてこの時から開発元が色々とSDKを提供しておりプログラム制御が可能な製品であったようです。 Spheroに頭の部分をつけたのがBB-8と考えるとしっくりきますが、どうやら中の構造は全く同じというわけではないようです。 そのせいか、BB-8が制御可能なSDKは発売後しばらく世に出てきていませんでした。

 

さて、前置きが長くなりましたが、BB-8をXPAGESとIoTを使い制御する解説を行ってまいります。

前提

  • Windows OSにnode.jsをインストール済みであること
  • Bluemixのアカウント作成済みであること
  • CFコマンドラインインターフェースをインストール済みであること
  • Bluemixコマンドラインインターフェースをインストール済みであること
  • IBM Domino DesignerにBluemixツールをインストール済みであること(設定はこちら
  • BB-8
  • Bluetooth 4.0 USB アダプター

 

システム概略

bb-8-system-overview

今回のbb-8の場合はドローン制御よりシンプルな構成です。

 

(1)WindowsでBLEを制御するために

自分の環境ではVAIOに内蔵のBluetoothデバイスをBLE接続のために利用出来なかったためBluetooth 4.0 USB アダプターを別途購入し、そのアダプターに対してZadig と呼ばれるツールでWinUSB driverの設定をするという手順が必要になりました。

こちらが購入したBluetooth 4.0 USB アダプター

IMG_5630

Bluetooth 4.0 USB アダプターがそろえば、あとはこちらの動画の手順に従い作業を進めてください。

https://github.com/sandeepmistry/noble

※これがMacだとこの面倒な手順が必要ないんですよね。Visual Studio、Pythonをインストールしての作業とかなり面倒なのでさすがに次期開発マシンはMacにしようかと心が揺らいでしまいます。

 

(2)BluetoothのUUIDを取得

上記の設定が整えば、node.jsのパッケージ管理ツールである npmを使い、「cylon-ble」というパッケージをグローバルインストールします。

npm i -g cylon-ble

次に「cylon-sphero-ble」をインストールします。

npm i cylon-sphero-ble

以上の手順でようやくBB-8のBluetooth UUIDを参照するための「cylon-ble-scan」コマンド が使えるようになります。

以下はWindows コマンドプロンプトの実行例ですが、以下からBB-で始まるNameを探しその下の行のUUIDを割り出します。

 

パート2へ続く

長くなったので、ブログを複数回に分けることにしました。

XPAGESは今のところ全く触れられていませんがパート2で出てきますのでもう少しお付き合いください。

続きは「XPages on bluemixとIoTでBB-8を動かしてみた パート2」へ


Notes/Domino 9.0.1 Fix Pack 7リリースと今後のNotes/Domino

 Notes/Domino 9.0.1 Fix Pack 7がダウンロード可能になりました

ダウンロードはこちらから

今後のNotes/Domino

2016年9月12日、Notes/Domino 9.0.12021年9月までサポートが延長されることが正式に発表されました。
⇒ https://www.ibm.com/blogs/social-business/2016/09/12/ibm-notes-domino-v9-extends-support/

振り返ると、2016年1月のIBM ConnectイベントでIBMは2016年第4四半期にNotes/Domino 9.0.2をリリースするとアナウンスしていました。

IBM Championの加藤さんがブログ(こちら)にてうまくまとめておられますが、先月8月に行われたMWLUG イベントで時期リリースは 9.0.2ではなくFix Packとしてリリースされることが噂として広がり、たちまちNotes/Dominoの今後を心配する声が多く聞かれるようになりました。

 

Fix Centralでバグフィックスと合わせて新しい機能も提供されていく

今後、Fix Packがただのバグ修正だけでなく、Java 8やMicrosoft Edge browserサポートなどの新しい機能がFix CentralでFPとしてダウンロードできる形で提供されていくようです。

 

IBM Championコミュニティーでの反応

Notes/Dominoの今後についていち早く議論をしてきたIBM Champion達ですが、これらの発表を受け、現在はIBM ChampionコミュニティーではNotes/Dominoのサポート5年延長を好意的にとらえています。

セールスの担当者レベルではエンドユーザーにこのバージョニングの変更を説明する難しさというのはあるかと考えますが、Notes/Domino関連のプロダクトを開発・販売しているIBM Championの会社も多い中、彼らがNotes/Dominoの今後についてパニックではなく、好意的に受け入れられたというのは意味があると思っています。

世界のIBM Champion達は生粋のハイスキル エンジニアばかりですから、バージョンの数字の持つ意味よりその中身のほうが気になっているのは、まさにエンジニアという感じがします。

Application Modernizationについてはいまだ語られず

こちらもいろいろなブロガーから注目をあつめているバズワードです。 これが今後のバージョン(いつのVerかわかりませんが)で組み込まれる予定の新しい機能のようですがその中身はいまだベールに包まれたままです。

IBMは2016年第4四半期中になにを意味するか詳しく発表する予定です。

自分としては一開発者としてこの機能の全貌が一番興味があるためまた最新の情報があればこちらで発信していきたいとおもいます。

 


XPAGES開発の実績紹介を追加しました

実績紹介ページに実績を4つ追加しました

nc-top-sq■ノーツコンソーシアム様のホームページをレスポンシブ対応で作成致しました。
CMS・ブログ投稿として機能するシステムをXPAGESで実装
詳細はこちら

■Notes添付ファイル マルウェア解析 WebAPI 連携

Javaを使いNotesクライアント、ブラウザのどちらからでも添付ファイルのマルウェア解析を行うことが出来るようになっています。
詳細はこちら


■ログインID・パスワードを暗号化で安全運用、シングルサインオン サービス

管理者であっても覗き見ることができない設計の暗号化ロジックを実装しています。
詳細はこちら


■ワークフローのスマホ対応 (XPagesによるWeb化)

既存ワークフローNSFをレスポンシブ対応でWEB化した事例です。
詳細はこちら