An overview of activities の翻訳版です。
アクティビティの概要
2021年11月12日
著者: Edward dunlop / Edward is a software engineer at HCL Software who played a key role in developing the HCL Compass and HCL VersionVault Express UI’s.
l
HCL VersionVault Express の最新リリースでは、UCM(Unified Change Management)プロジェクトの開始がこれまで以上に簡単になりました。UCMプロジェクトの開発ライフサイクルにおいて、開発者はストーリーの実装や不具合の修正などのタスクを完了させる必要があります。アクティビティは、タスクが完了するまでの進捗状況を追跡します。タスクのためのアクティビティを作成し、そのアクティビティをストリームに設定するだけで、ストリームに加えられた変更はすべてそのアクティビティによって追跡されます。
バージョンコントロール下のファイルに変更を加える前に、アクティビティを設定する必要があります。アクティビティは、各ストリームのページの右上にある「新規アクティビティ」ボタンで作成できます。アクティビティが作成されると、ボタンの横にあるドロップダウンを使って設定できます。折りたたまれたドロップダウンには、現在のアクティビティのタイトルが常に表示されるので、開発者はどのアクティビティを変更しているのかを常に把握できます。
アクティビティを設定した後、開発者はストリーム内のファイルやフォルダの変更を開始できます。開発者が別のタスクに焦点を移したい場合は、何をしていても簡単に新しいアクティビティを作成または設定できます。バージョンコントロールにチェックインされたすべての変更は、設定されたアクティビティによって追跡され、そのアクティビティのチェンジセットに表示されます。
ストリームのページでアクティビティタブに切り替えると、開発者は各アクティビティの下で行われたすべての変更を確認できます。アクティビティの[Review]ボタンをクリックすると、そのアクティビティが設定されている間に変更されたすべてのファイルやフォルダが表示されます。リスト内の項目を展開すると、その項目の現在の状態と、アクティビティが作成されたときの状態(チェンジセットプリデレクタとも呼ばれる)が比較されます。開発者がコードを配信する際には、各アクティビティで変更された内容を正確に確認し、どのアクティビティを配信するかを選択できます。
開発者がある要素の特定のバージョンを確認したい場合は、アクティビティ リストのアクティビティをクリックします。アクティビティが展開され、開発者はそのアクティビティのチェンジセットを見られます。チェンジセットの各エントリは、選択したアクティビティで変更されたファイルやフォルダの異なるバージョンを表します。開発者は、チェンジセット内のファイルをクリックすると、そのバージョンのファイルを見られます。また、ファイルの任意のバージョンを、その直前のバージョンやチェンジセットの前のバージョンと比較できます。これは、開発者がレビューしたいアイテムの[Compare With]ドロップダウンを使用して行えます。
アクティビティ] タブでは、設定されたアクティビティが常に他のアクティビティの上に表示されます。アクティビティの設定や削除も、ここから行うことができます。
詳細はこちらのドキュメントをご覧ください。
無償で試せる「HCL Sametime Premium オンライン トライアル」を行っていますが、使い方のガイドを公開しました。上記ページの下の方に掲載しています。PDFで3ページのコンパクトなガイドです。
新しい試みのトライアルとして、1週間分のサポート技術情報更新のインデックスを作成してみました。しばらく継続してみます。新規追加と内容更新したものが含まれています。システム上、軽微な修正であってもリストに含まれてしまいます。予めご了解ください。
HCL Domino Volt はローコード/ノーコードの開発および実行環境で、これまでチュートリアルを公開してきました。今回、Domino Volt 1.0.4 の新機能であるデータグリッド機能を使ったチュートリアルを追加しました。データグリッドは、アプリケーションの中でデータを一覧したり便利な使い方ができる部品です。
2021年10月に開催しました HCL Notes/Domino バージョンアップセミナー「Domino V12 新機能にみるアップグレードの価値」に引き続き、2021年11月12日開催の「Domino V12 アップグレード計画のポイント」のウェビナーのリプレイと動画を公開しました。
HCL Notes/Domino V12 特設ページをご覧ください。
Why upgrade from ILMT to BigFix Inventory? - HCL SW Blogs の翻訳版です。
ILMTからBigFix Inventoryにアップグレードする理由は?
2021年11月9日
著者: Cyril Englert / Solution Architect
多くのIBMのお客様は、IBMのサブキャパシティ・ライセンスを利用するために、IBM License Metric Tool (ILMT)を導入しています。サブキャパシティ・ライセンスとは、対象となるソフトウェア製品のライセンスを、お客様のサーバーまたはサーバー群のフルキャパシティ以下で取得できるというものです。ILMTのユーザーは、定期的にツールを実行し、IBMが確認できるように記録を残す必要があります。多くのIBMのお客様は、BigFix InventoryがILMTの機能をすべて備えていること、そして IBM がサブキャパシティ・ライセンスにBigFix Inventoryを使用することを認めていることです 。ILMTユーザーは、自信を持ってBigFix Inventoryにアップグレードし、BigFix Inventoryが提供する追加の運用上および経済上のメリットを利用することができます。
ILMTからBigFix Inventoryにアップグレードすることで、IBMソフトウェアだけでなく、お客様の環境にインストールされているすべてのソフトウェアを把握することによる経済的な節約効果を拡大することができます。多くのお客様が、BigFix Inventoryを使用することで以下のようなメリットを実感しています。
BigFix Inventoryの詳細を知り、評価するにはどうすればいいですか?
BigFix Inventoryは、企業のソフトウェア資産管理プロセスを簡素化し、IT運用コストとセキュリティ・リスクを低減します。BigFix Inventory の一般的な情報については、https://www.hcljapan.co.jp/software/products/bigfix/ をご覧いただくか、デモのご予約についてはお問い合わせください。
HCL Notes 11.0.1 FP4、12.0.1、HCL Client Application Access 3.0.5 で Windows 11 をサポートします。
上記内容を「HCL Notes、HCAA : Windows 11 のサポートについて」という技術情報を10月に出していますが、それ以外のバージョンについてのご質問をいただくことが多くありました。大変、心苦しくはありますが、上記以外のものについてサポートする計画がないことを記載しております。上記技術情報にその旨を記載しましたのでお知らせします。
Writing a generic type descriptor with HCL RTist の翻訳版です。
HCL RTistによる汎用型記述子の記述
2021年11月9日
著者: Mattias Mohlin / Senior Solutions Architect for HCL Software
型記述子は、クラス、typedef、型の別名など、モデル内のユーザー定義の型に関するメタデータを提供します。TargetRTSは、型記述子の情報を使って、その型のオブジェクトをどのように初期化、コピー、エンコードするかなどを知ります。多くの場合、モデルコンパイラは型に対して自動的に型記述子を生成しますが、場合によっては手動で型記述子を書く必要があります。型記述子に慣れていない方は、この記事を読んでから先に進むことをお勧めします。
ここでは、型がジェネリックである場合、つまり、1つまたは複数のテンプレートパラメータを持つ場合について見てみましょう。以前は,テンプレート型の具体的なインスタンスごとにtypedefやtype aliasを作成し,そのテンプレートのインスタンスに合わせて型記述子を記述する必要がありました.これは明らかに面倒で、しばしばコードの重複を招きました。RTist 11.1 2021.24からは、型と同じテンプレートパラメータを使用するジェネリックな型記述子を書くことができるようになりました。これにより、多くの時間を節約し、コードの重複を避けることができます。
例として,異なる種類の要素を持つベクトルを2つのカプセル間で送信する場合を考えてみましょう.まず最初に,std::vectorの型のエイリアスを定義し,vector型の型テンプレートパラメータを追加します.この場合、テンプレートパラメータを持つ型が必要なので、typedefは使えません。
次に、tを書きます。
target = new (target) std::vector<T>();
Copy 関数
target = new(target) std::vector<T>(*source);
Destroy 関数
target->~StdVector<T>();
今回の例では、これら3つの型記述子関数があれば十分ですが、汎用的なエンコードの実装方法を示すために、Encode関数も実装してみましょう。
const RTObject_class *elementTypeDescriptor = RTObject_class::fromType<T>();
if (!elementTypeDescriptor)
return 0; // Element type descriptor not available
int sum = 0;
bool first = true;
sum += coding->write_string(type->name());
sum += coding->write_string("{");
for (auto i = source->begin(); i != source->end(); i++) {
if (!first)
sum += coding->write_string(",");
first = false;
sum += elementTypeDescriptor->encode(&*i, coding);
}
sum += coding->write_string("}");
return sum;
この実装では、TargetRTSの新しいテンプレート関数であるRTObject_class::fromType
TargetRTSでは、すべての組み込みC++型に対してRTObject_class::fromType
Decode関数は、解析を必要とするため、通常、型記述子関数の中で最も実装が難しい関数です。この関数を実装することは、このニュースレターの範囲外です。しかし、モデルコンパイラが型記述子を生成しないため、完全に空けることはできません。
デコード関数
// NOT IMPLEMENTED
return 1;
最後に、StdVector用のコードスニペットを2つ用意しておきます。
Header Preface
#include <vector>
これにより、StdVector型を使用する際に、基礎となるstd::vector型が利用できるようになります。
Header Ending
template <> const char* RTName_StdVector<int>::name = "StdVector<int>";
template <> const char* RTName_StdVector<char>::name = "StdVector<char>";
これらのテンプレートの特殊化は厳密には必要ではありませんが、デバッグの際に役立ちます。デフォルトでは、型記述子の名前はモデル型の名前(この例ではStdVector)に設定され、その名前は型記述子のすべてのインスタンスで同じになります。使用するテンプレートのインスタンスに対して特殊化を行うことで,より具体的な名前を得ることができます.
なお,すべてのコンパイラが,このような特殊化をヘッダファイルに記述できるわけではありません。
それでは、StdVector型記述子をテストしてみましょう。2つのカプセルを持つサンプルモデルを作成し、1つ目のカプセルから2つ目のカプセルにintのベクターを送信し、2つ目のカプセルから1つ目のカプセルにcharsのベクターを送信します。自分でモデルを作りたくない場合は、添付のモデルを使うことができます。そのモデルを構築して実行すると、このような出力が出力されます。
Reached Cap2 State 1
Reached Cap1 State1 and sending Integer
Success: Received sendInteger event with data at Cap2.
Received: StdVector<int>{1,2,3}
Reached Cap2 State2 and sending Chars
Success: Received sendChar event with data at Cap1.
Received: StdVector<char>{'a','b','c'}
Reached Cap1 State2 and received Chars