記事 Toshihiko Minamoto · 2022年3月21日 2m read GitHub の VSCode-ObjectScript 少し前に GitHub が導入されてから、そこにホストされているあらゆるリポジトリの VSCode をブラウザで非常に素早く実行できるようになりました。 リポジトリで . キーかプルリクエストを押すか、URL で .com を .dev に置き換えることで、ブラウザ内で VSCode 環境に直接移動することができます。 この VSCode はデスクトップバージョンのライトバージョンではありますが、完全にブラウザ内で動作します。 このため、このような動作を可能にする拡張機能には制限があります。 そこで、VSCode-ObjectScript 拡張機能の新しい 1.2.1 バージョンをご紹介します。ブラウザモードでの実行がサポートされています。 #開発環境 #InterSystems IRIS #VSCode 0 0 0 128
記事 Toshihiko Minamoto · 2022年3月17日 4m read IRIS Web アプリケーションからの GitHub アカウントによる OAuth2 認証 この記事では、以下のオンラインデモを通じ、GitHub アカウントを使用した OAuth2 認証の基本を説明します。 https://dappsecurity.demo.community.intersystems.com/csp/user/index.csp(SuperUser | SYS) #GitHub #OAuth2 #認証 #InterSystems IRIS Open Exchange app 0 0 0 200
記事 Toshihiko Minamoto · 2022年3月15日 13m read InterSystems IRIS で Python を使って IMAPクライアントを実装する これまでの記事では、メールサーバーのメールボックスからのメッセージを処理する IMAP プロトコルの基本的な使用方法を学習しました。 とても興味深いものではありましたが、他の人が作成してすぐに利用できるようにライブラリに提供されている実装を利用することも可能です。 IRIS データプラットフォームの改善の 1 つに、同じ IRIS プロセスで ObjectScript に並行して Python コードを記述できる機能があります。 この新機能は、組み込み Python と呼ばれます。 組み込み Python を使用すると、ObjectScript コードに巨大な Python エコシステムのライブラリの力を取り込むことができます。 #Embedded Python #Python #相互運用性 #InterSystems IRIS 2 0 0 294
記事 Toshihiko Minamoto · 2022年3月8日 8m read Caché ObjectScriptによるExcelドキュメントの生成 InterSystemsを使用してExcelファイルを生成する方法はたくさんあります。ZENレポートやIRISレポート(Logiレポートまたは正式にはJReportsと呼ばれるレポート)のほか、サードパーティのJavaライブラリを使用するなど、可能性はほぼ無限です。 しかし、Caché ObjectScriptだけで単純なスプレッドシートを作成したい場合はどうでしょうか。 (サードパーティアプリケーションを使用せずに、です) 私の場合、大量の生データを含むレポート(金融関係の人たちが好むレポート)を生成する必要がありますが、私のZEN/IRISでは対応できません。私が呼ぶところの「ゼロバイトファイル」が生成され、基本的にJavaのメモリ不足となり、レポーティングサーバーに大きな負荷を生じてしまいます。 これは、Office Open XML(OOXML)を使って実現できます。 Office Open XML形式は、多数のXMLファイルで構成されるZIPパケージです。 つまり基本的には、これらのXMLファイルを生成してZIP圧縮し、.xslxに名前を変更すればよいのです。 それくらい単純です。 #ObjectScript #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 323
記事 Megumi Kakechi · 2022年3月3日 3m read IRISTEMPデータベースでどの一時グローバルがサイズ消費しているかを特定する方法 これは、InterSystems FAQサイトの記事です。ある処理において、データを無期限に保存する必要がなくグローバルの強力な性能が必要になる場合に、IRISTEMP/CACHETEMP データベースに保存される一時グローバルが使用されます。IRISTEMP/CACHETEMPデータベースはジャーナルされないので、一時グローバルの使用ではジャーナルファイルは作成されません。 IRISTEMP/CACHETEMP データベースは、システムで一時ストレージ用に使用され、ユーザも同じ用途で使用することができます。 一時グローバルとIRISTEMPデータベースの詳細については、以下のドキュメントをご覧ください。一時グローバルと IRISTEMP データベース #グローバル #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 1 269
記事 Toshihiko Minamoto · 2022年3月2日 5m read 2021.2 SQL 機能スポットライト - 高度なテーブル統計 これは、IRIS でリレーショナルデータをクエリするアナリストとアプリケーションに、さらに優れた適応性とパフォーマンスによるエクスペリエンスを提供する IRIS SQL のイノベーションをトピックとした短い連載の 3 つ目の記事です。 2021.2 では連載の最後の記事になるかもしれませんが、この分野ではさらにいくつかの機能強化が行われています。 この記事では、このリリースで収集し始めたヒストグラムという追加のテーブル統計について、もう少し詳しく説明します。 #SQL #リレーショナルテーブル #InterSystems IRIS 0 0 0 61
記事 Tomoko Furuzono · 2022年3月1日 2m read オブジェクトのプロパティやメソッドに動的にアクセスする方法 これは、InterSystems FAQサイトの記事です。 オブジェクトに対する一般的な処理をサポートする各種関数を提供しています。詳細は以下ドキュメントをご参照ください。オブジェクトへの動的アクセス【IRIS】オブジェクトへの動的アクセス サンプルクラス(Sample.Person)を使用して、利用例をご紹介します。 #ObjectScript #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 329
記事 Tomoko Furuzono · 2022年3月1日 1m read マッピングされたクラス・ルーチンをコンパイルする方法 これは、InterSystems FAQサイトの記事です。 マップされたクラス・ルーチンも含めてコンパイルする場合は、コンパイラ修飾子に "/mapped=1" もしくは "/mapped" を指定します。 例えば、以下のように行います。 【例1】クラスリストを取得してコンパイル do $System.OBJ.GetClassList(.list,"/mapped") // build your list starting from .list do $System.OBJ.Compile(.list) 【例2】全てのクラスをコンパイル #ObjectScript #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 104
記事 Tomoko Furuzono · 2022年3月1日 2m read ミラー・データベースがミラー構成削除後に読み取り専用でマウントされる これは、InterSystems FAQサイトの記事です。 ミラー構成削除時に、ミラー・データベースのミラー属性を削除するオプションを指定しないと、通常データベースに戻すことができず、次回マウント時に読み取り専用でデータベースがマウントされます。 読み書き可能なデータベースに戻すためには、システムルーチン ^MIRROR を使用してミラー属性を削除する必要があります。手順は以下のとおりです。(%SYSネームスペースで実行します。) #Mirroring #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 111
記事 Toshihiko Minamoto · 2022年3月1日 5m read 2021.2 SQL 機能スポットライト - スマートサンプリング & テーブル統計の自動化 これは、適応性とパフォーマンスに優れた SQL エクスペリエンスを提供する 2021.2 SQL 強化機能に関する連載第 2 回目の記事です。 この記事では、前の記事で説明したランタイムプランの選択機能の主要な入力であるテーブル統計の収集におけるイノベーションに焦点を当てます。 #SQL #リレーショナルテーブル #InterSystems IRIS 0 0 1 129
記事 Mihoko Iijima · 2022年2月28日 7m read Embedded Python を使ってレシート(JPG)の中身を IRIS に登録してみました 開発者のみなさん、こんにちは。 今回は、スーパーやコンビニでもらうレシートを写真で撮り、OCR を使ってレシートの画像から文字列を切り出して IRIS に登録する流れを試してみました。 サンプルでは、Google の Vision API を利用してレシートの JPG 画像から購入物品をテキストで抽出しています。 #Embedded Python #Python #SQL #オブジェクトデータモデル #InterSystems IRIS #InterSystems IRIS for Health 1 0 1 1.1K
記事 Toshihiko Minamoto · 2022年2月24日 5m read 2021.2 SQL 機能スポットライト - ランタイムプランの選択 InterSystems IRIS Data Platform の 2021.2 リリースには、ミッションクリティカルなアプリケーションを高速で柔軟性に優れ、セキュアに開発するための刺激的な新機能が多数含まれています。 Embedded Python は間違いなく脚光を浴びています(正当な理由で!)が、SQL の分野でも、テーブルデータに関する詳細な統計情報を収集し、それを最適なクエリプランに提供する、より適応性の高いエンジンに向けて大きな一歩を踏み出しました。 この短い連載記事では、2021.2 で新しく追加された 3 つの要素について詳しく説明し、ランタイムプランの選択(RTPC)を手始めに、この目標に向かって進みます。 これらについて適切な順序で話していくのは困難です(この記事を書く上で、私がどれだけ順序を入れ替えたか想像できないほどです!) というのも、これらが相互に非常にうまく機能するためです。 そのため、ご自由に順序を変えてお読みください。 #SQL #リレーショナルテーブル #InterSystems IRIS 0 0 1 128
記事 Megumi Kakechi · 2022年2月23日 1m read ジャーナルファイルの使用量をチェックする方法 これは、InterSystems FAQサイトの記事です。現ジャーナルファイル名の取得は、ジャーナリング API を利用します。 ##class(%SYS.Journal.System).GetCurrentFileName() 現ジャーナルファイルの使用量bytesの取得は、ジャーナリング API を利用します。 ##class(%SYS.Journal.System).GetCurrentFileOffset() 実行例は以下の通りです。 #ジャーナリング #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 120
記事 Toshihiko Minamoto · 2022年2月22日 14m read InterSystems IRIS で IMAP クライアントを実装する - パート II 最初のパートでは、IMAP プロトコルコマンドについて簡単に説明しました。このパートでは、IRIS を使用してこれらのコマンドを実装し、独自の IMAP クライアントを作成してみましょう! #InterSystems IRIS 0 0 0 85
記事 Toshihiko Minamoto · 2022年2月16日 8m read InterSystems IRIS で IMAP クライアントを実装する - パート I この記事では、InterSystems IRIS プラットフォームを使用して基本的な IMAP クライアントを記述する方法を説明します。 はじめに IMAP の概要を確認してから、本題の IMAP コマンドとクライアント実装について説明します。 最後に、IRIS 相互運用性アプリケーションでこの IMAP クライアントを簡単に使用します。 #InterSystems IRIS 0 0 0 301
記事 Megumi Kakechi · 2022年2月13日 2m read IRISが使用するワーキングセット(メモリ)について これは、InterSystems FAQサイトの記事です。各プロセスが消費しているメモリの内容は、Windowsリソースモニタの項目のワーキングセット、共有可能、プライベートで確認できます。 これらの内容は以下になります。 ワーキングセット プロセスが使用する物理メモリです。 ワーキングセット(プライベート)とワーキングセット(共有可能)との合計です。 共有可能 プロセスが使用する物理メモリ内で他のプロセスと共有可能なメモリです。 プライベート プロセスが使用する物理メモリ内で他のプロセスと共有不可能なメモリです。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 201
記事 Toshihiko Minamoto · 2022年2月9日 2m read IRIS-NativeAPI-Nodejs-compact (jp) これは、前回の「DockerマイクロサーバーとしてのIRIS Native APIを使用するWebSocketクライアントJS」のフォローアップです。 すべてのピースが1つのDockerイメージにまとめられたため、インストールがはるかに簡単になりました。 作業が楽になります。 ただしもちろん、マイクロサービスの原則はわかりにくくなくなっています。 オールインワンのバンドルパッケージであるため、 コンパクトになっています。 #Docker #JavaScript #Microservices #Node.js #ObjectScript #コンテスト #コンテナ化 #InterSystems IRIS Open Exchange app 0 0 0 214
記事 Mihoko Iijima · 2022年2月4日 7m read Embedded Python 試してみました 開発者の皆さん、Python好きの皆さん、こんにちは! ドキュメントをみながら IRIS 2021.2 に追加された Embedded Python を試してみました! IRIS にログインしてるのに Pythonシェルに切り替えできて Python のコードが書けたり、Python で import iris するだけで SQL を実行できたりグローバルを操作できるので、おぉ!✨という感じです。 ぜひ、みなさんも体感してみてください! では早速。 まず、IRISにログインします。Windows ならターミナルを開きます。Windows 以外は以下実行します。 #Embedded Python #ObjectScript #Python #SQL #オブジェクトデータモデル #初心者 #InterSystems IRIS #InterSystems IRIS for Health 4 0 1 587
記事 Toshihiko Minamoto · 2022年2月3日 12m read PandasデータフレームをIRISに保存する - 簡易メモ キーワード: Pandasデータフレーム、IRIS、Python、JDBS 目的 PandasデータフレームはEDA(探索的データ分析)に一般的に使用されるツールです。 MLタスクは通常、データをもう少し理解することから始まります。 先週、私はKaggleにあるこちらのCovid19データセットを試していました。 基本的に、このデータは1925件の遭遇の行と231列で構成されており、タスクは、患者(1つ以上の遭遇レコードにリンク)がICUに入室するかどうかを予測するものです。 つまりこれは、いつものようにpandas.DataFrameを使用して、まず簡単にデータを確認する、通常の分類タスクです。 #JDBC #Python #機械学習 #InterSystems IRIS Open Exchange app 0 0 0 221
記事 Minoru Horita · 2022年2月2日 6m read Embedded Pythonを簡単にご紹介します 開発者の皆さん、こんにちは! 最近リリースされた InterSystems IRIS 2021.2 の目玉機能のひとつが Embedded Pythonです。Embedded Pythonは、PythonのランタイムをIRISに組み込むことによって、IRISのメソッドをPythonで記述したり、PythonのコードからIRISのクラスにアクセスしたりなどなど、IRISのObjectScriptとPythonとで相互に呼び出しを行なえる機能です。 しかも、Pythonのランタイムを埋め込んでいるため、ネットワークのオーバーヘッドがなく、パフォーマンスへの影響は最小限です。 IRISのプログラマの方には、Pythonの豊富なライブラリをストレスなく利用して頂けます。 Pythonのプログラマの方には、ObjectScriptを学ぶことなく、IRISの高速なデータベースやインターオペラビリティ機能などをストレスなく活用して頂けます。 今回の記事では、Embedded Pythonの機能をほんの一部だけ紹介します。 #Embedded Python #Python #InterSystems IRIS #InterSystems IRIS for Health 4 0 0 1.1K
記事 Toshihiko Minamoto · 2022年2月1日 5m read DockerマイクロサーバーとしてIRIS Native APIを使用したWebSocketクライアントJS これはIRIS 2020.2で動作するコーディングの例です 最新バージョンとは同期していません。 また、InterSystemsのサポートによるサービスはありません動作中のデモを確認できるデモビデオを以下で公開しています。https://youtu.be/dSV-0RJ5Olg 皆さんこんにちは 完全に新しいIRISイメージとたった4行のDockerコマンドを使って実行するイメージを使ってマイクロサービスのデモを行いましょう。 2020年6月1日 - rcc すべてのパーツを1つのコンテナイメージにまとめたコンパクトなオールインワンバージョンが公開されました。 詳細はこちら: IRIS-NativeAPI-Nodejs-compact 2020年5月24日 - rcc Dockerを使った簡易インストールを追加しました。コンテキストを参照 2020年5月25日 - rcc Linux & Windowsに最適な検証済みの強化スクリプトはこちら https://github.com/rcemper/WSockClientMicroSV/blob/master/READMEwindows.MD 2020年5月26日 - rcc このデモは、Caché用にすでに存在するNode.jsに基づくWebSocketクライアントを再設計したものです。 主に以下のような変更点があります。 新しいIRIS Native API for Node.jsの使用。特にグローバル配列を操作する場合 直接トリガーされたクライアントからサーバー設計への変更 マイクロサービス/マイクロサーバーの例として、結果を別のdockerイメージに配置 マイクロサービスの実行を制御するための単純なインターフェースをIRISに追加 #Docker #JavaScript #Microservices #Node.js #ObjectScript #グローバル #コンテスト #コンテナ化 #InterSystems IRIS Open Exchange app 0 0 0 221
記事 Megumi Kakechi · 2022年1月30日 1m read アプリケーションのログを^ERRORSグローバルに入れる方法 これは、InterSystems FAQサイトの記事です。 TRY-CATCHで行うことが可能です。以下のように行ってください。 #dim ex As %Exception.AbstractException TRY { "<何かエラーを発生させる処理>" } CATCH ex { do ex.Log() } ^%ETNを使用する場合は、^%ETNを呼び出す際にBACKエントリ(BACK^%ETN)から呼び出してください。 あわせて、以下の関連記事も是非ご覧ください。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 1 211
記事 Toshihiko Minamoto · 2022年1月27日 11m read Python用IRISネイティブAPI はじめに バージョン2019.2より、InterSystems IRISは、高性能データアクセス手法としてPython用のネイティブAPIを提供してきました。 ネイティブAPIを使用すると、ネイティブのIRISデータ構造と直接対話することができます。 #API #Python #InterSystems IRIS 0 0 0 321
記事 Toshihiko Minamoto · 2022年1月25日 9m read IRISデータベースへのPython ODBC接続 - 2つ目の簡易メモ キーワード: PyODBC、unixODBC、IRIS、IntegratedML、Jupyterノートブック、Python 3 目的 数か月前、私は「IRISデータベースへのPython JDBC接続」という簡易メモを書きました。以来、PCの奥深くに埋められたスクラッチパッドよりも、その記事を頻繁に参照しています。 そこで今回は、もう一つの簡易メモで「IRISデータベースへのPython ODBC接続」を作成する方法を説明します。 ODBCとPyODCBをWindowsクライアントでセットアップするのは非常に簡単なようですが、Linux/Unix系サーバーでunixODBCとPyODBCクライアントをセットアップする際には毎回、どこかで躓いてしまいます。 バニラLinuxクライアントで、IRISをインストールせずに、リモートIRISサーバーに対してPyODBC/unixODBCの配管をうまく行うための単純で一貫したアプローチがあるのでしょうか。 #AI #分析 #機械学習 #InterSystems IRIS 0 0 0 888
記事 Megumi Kakechi · 2022年1月12日 5m read ミラージャーナルファイルの削除のタイミングと要件 これは、InterSystems FAQサイトの記事です。ミラージャーナルファイルの削除(パージ)のタイミングは以下のようになります。 ・プライマリ・フェイルオーバー・メンバ #Mirroring #システム管理 #ジャーナリング #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 185
記事 Toshihiko Minamoto · 2022年1月6日 9m read IRISデータベースへのPython JDBC接続 - 簡易メモ キーワード: Python、JDBC、SQL、IRIS、Jupyterノートブック、Pandas、Numpy、および機械学習 1. 目的 これは、デモの目的で、Jupyterノートブック内でPython 3によってIRIS JDBCドライバーを呼び出し、SQL構文でIRISデータベースインスタンスにデータを読み書きする、5分程度の簡単なメモです。 昨年、私はCacheデータベースへのPythonバインディング(セクション4.7)について簡単に触れました。 そこで、Pythonを使ってIRISデータベースに接続し、そのデータをPandasデータフレームとNumPy配列に読み込んで通常の分析を行ってから、事前処理済みまたは正規化されたデータをML/DLパイプラインに通すためにIRISに書き込む作業においてのオプションと議論について要約しましょう。 すぐに思い浮かぶ簡単なオプションがいくつかあります。 #JDBC #ODBC #Python #機械学習 #InterSystems IRIS 2 0 0 743
記事 Hiroshi Sato · 2021年12月28日 2m read コンパイルフラグについて これは InterSystems FAQ サイトの記事です。 コンパイル時のフラグや修飾子の記号と意味については、以下ドキュメントをご参照ください。 コンパイルフラグについて【IRIS】 コンパイルフラグについて なお、開発環境のスタジオやVisual Studio Codeでは、開発環境の設定画面でフラグを変更できます。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 536
記事 Hiroshi Sato · 2021年12月28日 1m read MS Accessからのクエリで取得されるデータ項目値が全て"#Deleted"と表示される場合の対処方法 これは、InterSystems FAQサイトの記事です。 データ項目の値が”#Deleted"と表示される場合、MS Accessの設定でこの問題を回避することができます(MS Access2016以降)。 MS Accessのオプションより、「大きい数値(BigInt)データ型をサポート」にチェックを入れます。 設定後、リンクテーブルを一度閉じて、リンクの更新を行います。 #ODBC #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 7.4K
記事 Tomoko Furuzono · 2021年12月26日 1m read メッセージ・ログ(messages.log)/コンソール・ログ(cconsole.log) に出力される「Purging Application Error Logs」のメッセージとは これは、InterSystems FAQサイトの記事です。 MM/DD/YY-hh:mm:ss:fff ( ) 0 [Utility.Event] Purging old application errors こちらのメッセージは、エラーではなく、アプリケーションのエラーログを記録した古い ^ERRORSグローバルのパージ処理が実行された際に出力されるメッセージになります。ログを削除した旨のみを伝えるメッセージであり、出力されていても特に問題はありません。また、このログは、^ERRORSグローバルのパージ処理がタスク実行される毎日01:00 に出力されます。 #システム管理 #管理ポータル #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 2 0 0 141
記事 Tomoko Furuzono · 2021年12月26日 1m read 特殊変数$ZTIMESTAMP をローカルのタイムゾーンに変更する方法 これは、InterSystems FAQサイトの記事です。$ZTIMESTAMPはUTC形式で日付時刻を返すため、ローカルのタイムゾーンに変更するためには以下システムオブジェクトを利用します。 $SYSTEM.Util.UTCtoLocalWithZTIMEZONE($ZTIMESTAMP) 上記出力結果は ddddd,sssss.fff の形式で出力されます。 ddddd:$HOROLOGの日付と同じ形式 sssss:現在の日付の午前 0 時からの経過秒数を示す整数 fff :秒の小数部を示す可変桁数 ※ $HOROLOGに似ていますが、$HOROLOGには秒の小数部分は含まれません。 #ObjectScript #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 213