2019/12/05

Notes/Domino技術者がUdemyで学ぶWebアプリケーション開発

Notes/Domino技術者が勉強する、というと、どうしても HCL社のセミナーやスライド、Lotusphere(IBM Connect / Engage) などカンファレンスのスライド、HCL Masterを筆頭とする、ブロガーの投稿、もしくはフォーラムや StackOverFlowを眺めるなど、ついつい Notesコミュニティ内での発信を考えてしまいますが、外部コンテンツでも面白いものがあると思います。

ちょうど現在、サイバーマンデーの最中で、教育コンテンツが激安で入手できると思い、私が最近受講した、おすすめの Webコースを、Notes/Domino技術者向けにご紹介しようと思います。

こちらのコースになります。
The Complete 2020 Web Development Bootcamp

 Udemy というサイトでは、これに限らずたくさんのコースがあります。通常 24,000円で販売されることが多いのですが、サイバーマンデーの現在に限り 1,200円です。年に数回激安のタイミングがありますが、おそらく今が一番お安い時だと思います。

こちらのコースでは以下のことが動画で学べます。

HTML, CSS:
Dominoに限らず、またWebアプリ開発者に限らず、基本的な知識だと思います。コース最初ですので、コース慣れ・英語慣れのために全部見てもよいですし、チェックボックスだけ付けて先に進んでもよいです。

Bootstrap:
世の中では結構使われていると思いますし、Dominoでも使えます(Domino, Bootstrap で検索すると、既にいろいろな例が紹介されています)。知っておくと便利ですし、レスポンシブを目指さなかったとしても、標準的なボタンの利用など、Webサイトが綺麗に作れると思います。

JavaScript, DOM:
これまでもDominoで普通に使われていると思いますので、スキップしてもよいですし、眺めてもよいと思います。

jQuery:
Dominoにも組み込めますし、ちょっとしたDOM操作など便利です。知らなくてもチュートリアル見ながらすぐに使える機能ですが、一度動画で学んでおくとよさそうです。
Ajaxも便利ですが、確かこの講座では、そこをやらなかったような気がしました。。

UNIXコマンドの基本:
Domino技術者でAIX/Linuxなどを触るなら必須知識ですが、この動画は31分程度ですので基礎がさらっと学べる程度です。コマンドライン怖い方は、やっておくと安心です。

Node.js, Express:
 今は AppDevPack として Node.js を使うことになりましたし、その場合はあわせて Expressを使うケースも多いと思います。このコースは後半 Node.js を結構使うので、不慣れな Notes/Domino 技術者も多くを学べると思います。
製品のほうでも、今後は Express の先になる Loopback というフレームワークを使って API を作成する、といったことを開発者が言っていました。

Git, Github:
Dominoで開発しているとあまり馴染みがないですが、これからは Dominoを知らない技術者が Node.js などで関連するコードを書いたりすることが期待され、そうなると、Git/Github を使うことになると思います。
また、Domino Designer上の開発は、今後 Visual Studio Code への対応によって、他のIDEに移行していく可能性があり、そうなると、やはり Git などを活用する未来が予想されます。

API/REST:
既にDominoでモダン開発している方にはお馴染みでしょうが、最新のDominoはLotusScriptでもHTTPやJSON処理が出来ることもあり、外部連携がますますさかんになります。Node.js が絡んでくると、ますます必要になると思います。一度学んでおいてよいと思います。

DB/SQL:
既に古くからある技術ですのでスキップしてもよいですし、 1時間程度なので、見てしまってもよいと思います。

MongoDB/Mongoose:
SametimeではMongoDBを使うようになりましたし、NoSQLについて1つ何となく知っておくとよいと思います。Dominoとしても、アプリで使うデータをNSFに書いて、使うか使わないかわからないとりあえずデータは MongoDBに書いておく、なんて使い方もあるかもしれません。

認証/セキュリティ:
Dominoの場合は認証はミドルウェアが用意するのを使うだけですが、世間のWebアプリケーションでの認証実装方法やパスワード管理に関する基本を知るのはセキュリティ知識として大変重要ですし、OAuth2.0についてや、GoogleIDを使ったログインなどを学べるのは興味深いです。

React.js:
これは2020年から加わったモジュールで、私も未学習です。Designerにべたっとコードを書くDominoアプリに直接使えるとは思いにくいですが、今後 Sametime のWebインタフェースは React で実装されるということですし、仮想DOMの概念はこれからのWebアプリ開発の主流になってくるので、Dominoの世界もいつか取り入れてくるかもしれません。この React だけでもたっぷり 8時間あります。


さて、この大変ボリューミーなコースですが、全部で52時間あります(私がやった2019年版はReactがなかったので44時間)。そして全て英語です。
ただ、この講師の Angela Yu さんの英語は大変テンポがよく、女性の声ですので聞き取りやすいです。英語字幕もつきますので、私は英語字幕を有効にして 1.25倍速で聴きました。基本はコードを書いているのを見るだけなので、ほぼ問題なくわかりましたし、難しい単語や表現も一切なかったと思います。時々「さあやってみましょう」という課題は出ますが、別にやらなくて眺めてわかった気になるだけでもOKです。コースを全部視聴すると認定証ももらえます。
Angela さんは Udemy で iOSアプリ系の講座ももっていますが、どの講座も大変受講生評判がよく、この講座も評価4.7で最上級クラスです。

Udemy にはいろいろな講座がありますが、私は評価 4.5 以上の講座を狙って、自分の苦手な分野や勉強したい分野のコンテンツを、この安いサイバーマンデーの間にバシバシ買いました。日本語のコンテンツもありますし、日本語字幕のコンテンツもあります。
遊びだと思ってやってみると楽しいと思います!

Notes 10クライアントのAutoUpdateについて

本日いつものようにブログを巡回していたら、以下の投稿が目に入りました。Lotusphereなどでもおなじみ、イタリアを代表するHCL Master の Roberto氏の投稿です。

Notes 10.x Autoupdate works only for English clients

 これは、Notes 10 の新機能の1つである、クライアントのオートアップデート機能(AUT)に関する記事です。オートアップデート機能は、スマートアップグレード機能もそうでしたが、リリースされた直後は利用対象がないため、忘れた頃にバズる機能かと思います。

今回のブログの報告によると、イタリア語環境においてNotes 10.0.1 FP2の環境を FP3 にバージョンアップするにあたり、この機能が動かないことをサポートと会話していたそうです。その結果、10.0.1から10.0.1.XへのAUTの利用は、イタリア語環境だけでなく、英語版以外の全てのクライアントで利用出来ないそうです。当然日本語版でも該当します。

これについては、アイディア投稿サイトに早速エントリが出来ました。
https://domino-ideas.hcltechsw.com/ideas/DOMINO-I-1072 
 バグか仕様か、という話はありますが、この手の言語依存環境における課題をきちんと認識してもらうことは重要で、日本語圏からは特に発信が届きにくいこともあり、ここは是非、上記のアイディアサイトの「VOTE」を皆さんでクリックして頂けると、未来が期待出来ると思います。

HCL社になり、Domino V11は各国語同時リリースされるなど、各言語からの意見は十分に届いているようですし、また、本日 Factory Tour のために来日した Notes/Domino担当者、Sametime担当者と、個別に「日本からの要望として、製品検証をするときは、コンテンツに日本語やUTF-8で試すことを忘れないで欲しい 」と言ってきましたが、彼らは既に実施済であり、よく認識されているようでした。今回のようなケースもありますが、そこは皆さんの声で改善出来れば、と思います。

 なお、Roberto氏のブログの続きによると、AUT は今のところ完全にバックグラウンドでは動かず、手動終了する必要があったりなど、もう一歩のようですので、こちらも改善されるとよいですね。

2019/01/08

Dominoサーバーコンソールへ、複数のコマンドを一括で入力する

最近タイトルの質問を頂いたのですが、自分も忘れていたので調べてみました。どなたかの役に立つかもと思い共有します。

サーバーの管理者業務で、サーバーコンソールコマンドを一気に投げたい、ということがあるかと思います。方法はいくつか考えられると思いますが、事前に作成したコマンドリストを、Dominoのコンソールから一括実施する方法をご紹介したいと思います。

↓オフィシャル情報はこちら
Using a single Domino console command to automate running multiple console commands using an input file

ここに記載があるとおり、
1) コマンドファイルを作成する
サーバーコマンドが記載された commands.txt (ファイル名は任意)を作る
 (例)
show server
show task

2)ファイルを Dominoサーバーローカルに配置する
dataディレクトリ直下がわかりやすいと思います

3) サーバーコンソールコマンドから、以下を投入
< ファイル名  (例: < commands.txt)

このようにすると、事前に定義したコマンドを連続投入することが出来ます。
かなり変わった文法ですが、server -c へのインプットで、server -c が省略されていると思うと理解出来ます。

なお、最初の処理を待つわけではなく、連続投入されます。


この方法は、以下のセミナー資料でも触れているのでご興味ありましたらご確認下さい。
LotusDominoサーバー構築・運用のベストプラクティス

2017/03/09

Mac で Notesクライアントを使う(強制切断の方法)

Notes クライアントを長年使っているユーザーは、「Ctrl + Pause」というショートカットをよく使っていると思います。Notes クライアントの接続(稲妻マーク)を途中で強制終了するためのショートカットです。

このショートカットについて、かつて「Pauseキー」がない端末のための Tips として以下のブログ記事を書いたことがありました。

Notes/Dominoでちょっとコネタ: Thinkpad X230でNotesクライアントを使う

これで多くの人が救われたと思ったのですが、今日新しい相談を頂きました。「Mac の場合は、どう操作すればよいのでしょうか」というものです。
実は私は Mac クライアントを使っていないため、方法を全く知らなかったのですが、調べてみました。
Mac 用の Notesショートカットは、以下にまとまっています。

IBM Keyboard shortcut and file location differences for Lotus Notes for Macintosh

ここに記載の通り、「Commandキー 」+ 「. (ピリオド)」でどうでしょうか、と聞いてみたところ、期待通りに動いたそうです。
Mac 端末を使い始めてお困りの場合は、是非試してみて下さい。

2017/03/04

Amazon Alexa と Domino の連携デモ

最近、以下のような気になる内容のブログエントリを目にしたので、ご紹介いたします。

Amazon Alexa Meets IBM Domino – Bruce Elgort

書いている Bruce Elgort は、このビデオの最初でも紹介されている通り、IdeaJam や OpenNTF, TakingNotes Podcast など長年多岐にわたって活躍している超有名人です。今回は、NotesIn9という英語圏では有名なビデオキャストのゲストで出演しているのですが、その内容もさすがの面白さ、わかりやすさです。

ビデオでは、タイトルにある通り、Amazon Alexa と Notes DB の連携を Bruce が説明しています。上記のブログ記事に貼られている YouTubeビデオの4:15以降で、デモと技術詳細が解説されているので、興味のある方は是非見てみるとよいと思います。(そこそこの精度の自動字幕も付けられます)

簡単に内容をご紹介すると:
- Amazon Echo に特定の言葉(音声)を投げると、AlexaがNotes/Domino DBの内容を取得し、音声で返答してくれる
- 今回のデモの対象は IdeaJam のデータベースそのもの
- IdeaJam 側では、REST APIが用意されており、JSONで応答出来るようにしてある
- Alexa Skill Kit を使って音声を受け取り、Amazon Lambda上でコーディングを行い(今回の例では Pythonで記述) IdeaJamの応答を受け取り、音声返答する

というデモになっています。このデモでは、IdeaJamのAPIを使い
- 最近のコメント
- DBの統計状況
- トップイノベーター
- 最新状況
などを、音声出力させています。

今回、こうして容易にデモが作成出来るのは
- IdeaJam ではもともと REST API が提供されており、何とでも組み合わせやすくなっている
- IdeaJam はパブリックサービスなので、Firewall を気にしなくてよい
- IdeaJam はパブリックサービスなので、Anonymousアクセスが出来る
という点があると思いますが、これに限らず、どのような他技術と連携するにせよ、REST API があればかなり自由に連携出来る例の1つだなと思いました。

音声によるインタフェースと、Notes/Domino が提供する作りこんだ REST APIとの連携は、データの種類や、中で動作させたいロジックなどによっては、他にも適用可能なところもあると思うので、そういうケースでは是非チャレンジしてみるのも面白いと思いました。


なお、私は Amazon Alexa や Echo, Lambda などについて全く詳しくありませんが、以下のページを見つつ、デモ解説の Bruce のビデオを見れば、おおよそを理解出来る内容でした。

AWS Lambdaを使ってAmazon Echoに機能追加してみた | Developers.IO

2017/01/26

Domino 9 の favicon.ico のサイズについて

本日、こちらのブログ(英語)で紹介されていたネタですが、もっと知られてもよい内容かと思い、ご紹介させて頂きます。

NeverMind.dk - Shrinking the 0.44 MB large IBM Domino favicon.ico to something useful

一般的にWebサイトでは Favicon と呼ばれる、サイトをあらわすアイコンを提供することが多く、Dominoの場合は古くよりデフォルトで製品マークが設定されています。

参考:Favicon - Wikipedia

Dominoの製品カラーは Domino 9 で、黄色から青に変更になったのですが、そのタイミングできちんと Favicon ファイルも変更されたようです。
ここでポイントなのは、上述のブログに記載されている通り、Domino 9 の favicon.ico ファイルは、さまざまな画像サイズに対応されたため、ファイルサイズがだいぶ大きくなってしまった点です。
favicon.ico はデータディレクトリの \domino\html にあります。

私の手元の環境で確認してみると、
Domino 8.5.3 ⇒ 41.1KB
Domino 9.0.1 ⇒ 449KB
となっており、10倍もサイズが違います。

実際の運用環境にて favicon.ico への読み込みがあるかは、HTTPログ(domlog.nsf もしくはテキストログ)で確認出来ますが、ブラウザでWebサイトにアクセスした時に通常1回はダウンロードされるため、そこそこのリクエスト数があると思います。そして、メインコンテンツ以外に 449KB のダウンロードが頻繁に行われるというのは、無駄が多いという考え方もあります。

ご紹介したブログでは、この 449KB の画像を、GIMPで加工したらわずか 1.1KB になりましたと書いていますし、もちろん、製品ロゴではなく、Webサイトに適したロゴのファイルに変更してもよいです。
効果のほどは、サイトによって異なるでしょうが、少しでも無駄な処理を少なくしたいと考えるサーバー管理者にとっては、実践する価値があると思います。

参考:
IBM How to change the Domino favorite icon for a database on the Web

2016/10/22

iSUCでのライトニングトークイベント

10/19-10/21 に、iSUC新潟大会が開催されました。iSUC はIBMユーザー研究会が主催するイベントで、日本国内で会場を変えつつ、毎年秋に開催されるイベントです。
iSUCは以前はSystem i を中心としたイベントでしたが、今は IBM 製品テクノロジを中心とした、幅広いイベントになっています。
今年は、IBM提供セッションでは、Watsonやコグニティブ技術の話が多く、ユーザー研究会からは、Bluemix やセキュリティ関連の話が多かったように見えました。ICS製品関連では、「進化し続けるIBM Notes/Domino!これまでとこれから~IBM Watsonの活用例についてもご紹介します~」というタイトルで、ソーシャル事業部からのセッションもありました。
私は、今回の大会に、ユーザー研究会の「脱!Notes!」というチームのアドバイザーとして参加し、チームメンバーが、マイグレーションやモダナイズについて語るのを見てきました。
ユーザー研究会が話すセッションというのは、IBMのセッションや自社事例を話すセッションと比べて、何でもアリ感があり、また、さまざまな仕掛けがあったりで、その点も大変興味深いです。

今年は初めての試みとして、ライトニングトークイベントが行われ、6人のプレゼンターが「2025年 IT未来予想図」というテーマについて、1人 6分で話をする、という時間が設けられました。私も、エンタープライズ・コラボレーション周りの未来について、1本話して欲しいと言われ、「未来型ワークスタイルをアシストする技術たち」というタイトルでお話してきました。
当日まで、他の5名のバックグラウンドや、トークの内容など、聞かされていなかったため、非常に不安な気持ちで準備していましたが、行ってみたら大変アットホームな雰囲気で、皆さん、自動コーディングや、在宅勤務の未来など、独自の思いを語っていて、心地のよいセッションでした。

私は未来予測については専門ではないので、この6分のために、future, collaboration などといったキーワードで、YouTubeやら SlideShareやら、多大な時間をかけて調査をしたのですが、わりと楽しかったです。思いついた技術(自動要約や、オートキュレーション)が既に存在するのかを探すのも楽しかったです。

例えばこちらの動画は30分ほどのパネルディスカッションで、業界を代表する企業からメンバーが集まり、いろいろな議論がされています。


また、コラボレーション技術を一切離れ、「人と人とのコミュニケーションにおける、障壁とは何か」という視点で見るのも面白いです。以下のスライドなどを参考にしました。
Barriers to communication

その上で、たった6分ではありますが、今後も来る技術というのは
1) 各個人が持つ制約に効果がある技術
2) コミュニケーション障壁を解決する技術
といった視点で探しましょう、という未来予想をお話しました。

各個人が持つ制約、というのは、例えば「時間」とか「能力」です。
時間については、隙間時間の有効活用も進むでしょうが、今後、バーチャル秘書の導入によるルーチンワークからの解放が期待されるでしょうし、インプット、アウトプットを、今より短時間で、高品質にするためのアシスト技術の夢などをお話しました。

コミュニケーション障壁とは、物理的な点に加え、言語はもちろんのこと、心理的障壁などがあげられます。既に機械翻訳はずいぶん進み、トーンアナライザーなど、機械が感情を扱うことも進んできていますが、その成熟に期待するとともに、その他コラボレーションの活性化に有効そうな未来予測をお話しました。

ライトニング・トークは、プレゼンターの中で私だけがIBM関係者であった(ことが当日わかった)こともあり、私の話だけがなんだかレクチャーっぽくなってしまったのですが、それでも終わった後参加者の方と少し未来予測のお話なども出来て楽しかったです。おそらく各種技術カンファレンスで行われているLTより、はるかに気楽なイベントだと思いますし、どうやら来年以降も行われるらしいので、指名を受けた方は是非楽しんで話して頂ければなと思います。

2016/08/24

MWLUG での Domino Adminblast のご紹介

8月17日-19日、アメリカのテキサス州オースチンでMWLUG 2016というユーザーグループカンファレンスが開催されました。テキサスというと、ヒューストンやダラスが有名ですが、オースチンはIBMの研究所もあり、テキサス州の州都でわりと大きな都市です(私は行ったことありませんが)。
今回で、8回目の開催になるそうですが、 今年も無事に終了し、その感想やスライドなどが、インターネットにアップロードされはじめました。

未来に向かったセッションがたくさんある中で、歴史と伝統の「Adminblast」の講義もあったので、ご紹介いたします。もともとは、Paul Mooneyが Lotusphere 名物セッションとして毎年やっていましたが、それを Chris Miller や Gabriella Davis が強い意志で継続している姿は美しいです。(なおGabriella Davis はオリジナルの頃から共演しています)

今回のイベントでは、ライフタイムIBM ChampionのGabriella Davisが、Slideshareに資料をアップしてくれています。

Domino Adminblast

内容をみると、
- 基本的なDominoの運用
- 全文索引
- Traveler関連
- Sametime 関連
- セキュリティ
- Notesクライアント Tips
など、管理者が知っておくと、どこかで役に立つであろう Tips 満載で、私もワクワクしながら早速拝見しました。

既に知られている話もありますが、例えば私は以下の Tips などは初耳でほうほう、と読みました。
- P3 のメッセージトラッキング用のインデックス再作成
- P4 の domlog をカスタマイズして、より詳細の情報を得るテクニック
など。

以下は、国内でも知られた Tips の例ですが、おすすめです。これに限らず、是非お時間あるときに、スライドを一読していただきたいと思います。
- P23 エージェントマネージャと圧縮のバッティング
- P24-25 log.nsfを大量に取得しつつシステム影響を最小限にする
- P28 Updateタスクの状況確認
- P35 添付ファイルをダブルクリックだけで開く(私がもっとも好きなTipsの1つ)
- P38 巨大DBのレプリカスタブを作成する裏技
- P54 メール配信多ドメインでのマルチスレッド化

Gabriella Davisは、今回のイベントで、なんと4本も講演しているそうです。ライフタイムIBM Champion カッコいいです!

MWLUG Presentations & Wrap Up | The Turtle Partnership Blog