<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/misopi/">
    <title>misopeanut</title>
    <link>http://w.atwiki.jp/misopi/</link>
    <atom:link href="https://w.atwiki.jp/misopi/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>misopeanut</description>

    <dc:language>ja</dc:language>
    <dc:date>2017-10-23T14:25:32+09:00</dc:date>
    <utime>1508736332</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/misopi/pages/1.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/misopi/pages/23.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/misopi/pages/28.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/misopi/pages/27.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/misopi/pages/25.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/misopi/pages/26.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/misopi/pages/2.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/misopi/pages/3.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/misopi/pages/4.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/misopi/pages/5.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/misopi/pages/1.html">
    <title>TOP</title>
    <link>https://w.atwiki.jp/misopi/pages/1.html</link>
    <description>
      [[P.011]] - MGWSI導入メモ

----------------------------------------------------------------------------------

＊＊@wikiへようこそ
-ウィキはみんなで気軽にホームページ編集できるツールです。
-このページは自由に編集することができます。
-メールで送られてきたパスワードを用いてログインすることで、各種変更（サイト名、トップページ、メンバー管理、サイドページ、デザイン、ページ管理、等）することができます


＊＊まずはこちらをご覧ください。
-[[@wikiの基本操作&gt;http://atwiki.jp/guide/category2.html]]
-[[用途別のオススメ機能紹介&gt;http://atwiki.jp/guide/category22.html]]
-[[@wikiの設定/管理&gt;http://atwiki.jp/guide/category6.html]]

＊＊おすすめ機能
-[[気になるニュースをチェック&gt;http://atwiki.jp/guide/17_174_ja.html]]
-[[関連するブログ一覧を表示&gt;http://atwiki.jp/guide/17_161_ja.html]]

＊＊その他にもいろいろな機能満載！！
-[[@wikiプラグイン&gt;http://atwiki.jp/guide/category17.html]]
-[[@wiki便利ツール&gt;http://atwiki.jp/guide/category32.html]]
-[[@wiki構文&gt;http://atwiki.jp/guide/category16.html]]

＊＊バグ・不具合を見つけたら？
お手数ですが、こちらからご連絡宜しくお願いいたします。
⇒http://atwiki.jp/guide/contact.html


＊＊分からないことは？
-[[@wiki ご利用ガイド&gt;http://atwiki.jp/guide/]]
-[[よくある質問&gt;http://atwiki.jp/guide/category1.html]]
-[[@wikiへお問い合わせ&gt;http://atwiki.jp/guide/contact.html]]
等をご活用ください    </description>
    <dc:date>2017-10-23T14:25:32+09:00</dc:date>
    <utime>1508736332</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/misopi/pages/23.html">
    <title>P.011</title>
    <link>https://w.atwiki.jp/misopi/pages/23.html</link>
    <description>
      MGWSIを導入したときの作業メモです。(2010年1月16日 初版作成)
* 導入環境
- マシン
-- hp の Compaq 6710b (ノートPC)(CPU:Core2Duo T7100)(メモリ:2GB)
- ＯＳ
--アスキームックについてた Ubuntu 9.10 (デスクトップ版)
- HTTPサーバ
-- Apache 2.2.12
-- PHP 5.2.10
-- 双方とも apt-get で適当に　※注意 最初に apt-get update;apt-get upgrade を実行しておく
- MUMPS環境
--GT.M
--- 米F.I.S社がフリーで公開しているM言語(MUMPS)のひとつ
--- 現状は、商用の Caché(キャシエ) か GT.M しか選択肢はないのかな～
- MUMPSと各環境との仲介(Gateway)
-- MGWSI
--- 商用のMUMPSは別として、GT.M単体では外部からデータを扱うことができません
--- そこで、各実行環境との仲介をしようってのが The M/Gateway Services Integrator (MGWSI) です
--- 英 M/Gateway Developments 社が提供しています
--- 商用利用でなければフリーで使えるようです（詳しくはホームページを参照ください）
* MUMPS - GT.M 導入
** 導入手順
- アーカイブをダウンロード
-- http://sourceforge.net/projects/fis-gtm/　→　gtm_V53004A_linux_i686_pro.tar.gz
- 展開すればすぐに使えます (バイナリになってます)
- 日本語(UTF-8)も使えますが、マルチバイト対応の組込関数が使いたいなら utf8 ディレクトリを使います
- 本格的に導入するなら同梱の configure を使うようですが、今回はやってません。
* 使い方
- 環境変数を設定
-- gtm_dist=実行ファイルmumpsのあるディレクトリ
-- gtmgbldir=$gtm_dist/mumps.gld
-- とりあえず動かすときはこんくらいでＯＫ
- データベースファイルをつくる
 $ mupip
 MUPIP&gt; create
 MUPIP&gt; exit
- これで mumps.dat が作られます。そこに実際のデータが格納されます。
- あとは通常のMUMPSと同じ感じで使えると思います。
- 同梱の mumps.hlp (英語のテキストファイル) が参考になると思います。
* MGWSI 導入
** ダウンロード
- http://gradvs1.mgateway.com/main/　→　mgwsi_lx-x86_95b.tar.gz
-- 名前、会社、役職、メールアドレスを入力します。個人なので会社と役職は no にしときました。
-- メールアドレスにライセンスキー(*2)が届きます
- これも展開した中身はバイナリなので、そのまま使えます
- 同梱の Mgwsi.pdf (英語) を参考にしました
** セットアップ
*** MGWSI - 仲介用デーモンプロセス(*1)
- mgwsi と同じディレクトリに mgwsi.key を作成
-- 中身はメールで送られてきたライセンスキーです
-- [MAIN] の行から [OPTIONS] の下の行までをコピペします
- 起動
 $ mgwsi
- 停止
 $ mgwsi stop
- nph-mgwsic を cgi-bin ディレクトリにコピーしてブラウザから見たら管理画面？出たけど詳細は未調査
*** MGWSI - MUMPS向けの通信プロセス
- GT.M から (*1)とやりとりします
- ～/m/gtm/ZMGWSI.RO を GT.M のディレクトリへコピー
- 登録
 $ mumps -direct
 GTM&gt; DO ^%RI
 (Enter)
 (Enter)
 ZMGWSI.RO(Enter)
 (Enter)
- 開始
 $ mumps -direct
 GTM&gt; DO START^%ZMGWSI(0)
- 停止
 $ mumps -direct
 GTM&gt; DO STOP^%ZMGWSI
*** MGWSI - 各環境向けの拡張モジュール
- PHP から (*1)とやりとりします　※ここでは PHP 用のモジュール(m_php)を使います
-- 他にも m_jsp, m_aspx, m_python, m_ruby, m_apache, m_cgi, m_websphere_mq があるよう
- php5210_mgw.so を /usr/lib/php5/20060613+lfs/ 配下へコピー (数字がバージョンに対応してると仮定して)
- /etc/php5/conf.d/mgwsi.ini を作成 (たぶん名前はなんでもいいのかな？)
 extension=php5210_mgw.so
- Apache を再起動
-- sudo /etc/init.d/apache2 restart
-- phpinfo() で m_php が組み込まれていることを確認します
* 動かしてみる
 &lt;?php
 // データの格納はこんな感じ
 m_set(&#039;^animal&#039;,&#039;dog&#039;,&#039;wanwan&#039;);
 m_set(&#039;^animal&#039;,&#039;cat&#039;,&#039;nya-nya-&#039;);
 m_set(&#039;^animal&#039;,&#039;snake&#039;,&#039;...&#039;);
 // データの参照はこんな感じ
 $animal = &#039;cat&#039;;
 echo &#039;Hey, &#039; . $animal . &#039; ! -&gt; &#039; . m_get(&#039;^animal&#039;,$animal) . &#039;&lt;br /&gt;&#039;;
 // データの削除はこんな感じ
 m_kill(&#039;^animal&#039;,&#039;snake&#039;);
 ?&gt;
上記を GT.M でやってみると…
 set ^animal(&quot;dog&quot;)=&quot;wanwan&quot;
 set ^animal(&quot;cat&quot;)=&quot;nya-nya-&quot;
 set ^animal(&quot;snake&quot;)=&quot;...&quot;
 set animal=&quot;cat&quot;
 write &quot;Hey, &quot;,animal,&quot; ! -&gt; &quot;,^animal(animal),!
 kill ^animal(&#039;snake&#039;)
- わざとまぎらわしく書きましたが ^animal はデータベースへのアクセス、animal はローカル変数へのアクセスになります
- 事前に ^animal を用意する必要はありません
- このまま使う分にはコミット等は必要ありません
- 全体を削除する場合は kill ^animal のようにします
- つまり、データベース(ファイル)とローカル変数の扱いがほとんど同じってことなのです

 &lt;?php
 // もちろん n次元配列のアクセスも可能です。
 $data = m_get($table,$country,$part,$date,$name);
 ?&gt;
--------------------------------------------------------------------------------------------------
※ Ruby で使ってみました　→　[[m_ruby]]
※ Python で使ってみました　→　[[m_python]]
※ JSP で使ってみました　→　[[m_jsp]]
※ Apache で使ってみました　→　[[m_apache]]
※ m_aspx は Windows のサーバ環境が無いので試せないかなあ
※ m_websphere_mq は、何者かわからないのでパス
※ m_cgi を /usr/lib/cgi-bin/ にコピーしてみたけどエラーになった　→時間があったら調べる    </description>
    <dc:date>2010-02-18T10:34:57+09:00</dc:date>
    <utime>1266456897</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/misopi/pages/28.html">
    <title>m_apache</title>
    <link>https://w.atwiki.jp/misopi/pages/28.html</link>
    <description>
      MGWSIで Apache から GT.M を使えるようにしたときの作業メモです。
MGWSI導入については　→ [[こちら&gt;P.011]]

- GT.M / MUMPS向けの通信プロセス は準備済みとします。
-- 仲介用デーモンプロセスは使わない設定にします
-- 使うようにもできるけど、使わない方がパフォーマンスでるらしいので

* 最初の一歩
- ～/mgwsi/bin/m_apache22.so を /usr/lib/apache2/modules/ 配下へコピー
- /etc/apache2/mods-avalable/ 配下へ以下の２ファイルを作成
mgwsi.load
 LoadModule m_apache_module /usr/lib/apache2/modules/m_apache22.so
mgwsi.conf
 SetEnv MGWSI_PORT 7041
- ここで a2enmod で mgwsi を有効にするのが流儀のようですが…
-- めんどうなので、手作業で mods-enable 配下にシンボリックリンクをはりました
- Apache を再起動
- 以下のような HTMLファィルを作成し
 &lt;html&gt;
 &lt;head&gt;
 &lt;title&gt;First Step&lt;/title&gt;
 &lt;/head&gt;
 &lt;body&gt;
 &lt;form method=&quot;POST&quot; action=&quot;test.mgwsi?xxx=yyy1&amp;xxx=yyy2&quot;&gt;
 &lt;input type=&quot;text&quot; name =&quot;a&quot; value=&quot;b&quot; /&gt; &lt;br /&gt;
 &lt;br /&gt;
 &lt;input type=&quot;text&quot; name =&quot;c&quot; value=&quot;d&quot; /&gt; &lt;br /&gt;
 &lt;br /&gt;
 &lt;input type=&quot;submit&quot; name=&quot;go&quot; value=&quot;SUBMIT&quot; /&gt;
 &lt;/form&gt;
 &lt;/body&gt;
 &lt;/html&gt;
- SUBMIT ボタンをクリックすると送信した情報がブラウザに表示されます
-- 拡張子 .mgwsi をもつページをリクエストした場合は、内容が GT.M に送り出されます
-- GT.M の受け側は（省略されているので）WEB^%ZMGWSIS ルーチンが想定されます
--- ZMGWSI.RO を登録した時に作成される以下の部分が相当します
CGI … サーバの情報
DATA … GET なり POST なりで送った情報
 WEB(CGI,DATA)
  N REQ,X,Y
  S REQ=&quot;&quot;
  S REQ=REQ_&quot;HTTP/1.1 200 OK&quot;_$C(13,10)
  S REQ=REQ_&quot;Content-type: text/plain&quot;_$C(13,10)
  S REQ=REQ_&quot;Connection: close&quot;_$C(13,10)
  S REQ=REQ_$C(13,10)
  W REQ
  W $G(CGI)
  S X=&quot;&quot; F  S X=$O(CGI(X)) Q:X=&quot;&quot;  W X_&quot;=&quot;_$G(CGI(X))_$C(13,10)
  W $C(13,10)
  S X=&quot;&quot; F  S X=$O(DATA(X)) Q:X=&quot;&quot;  S Y=&quot;&quot; F  S Y=$O(DATA(X,Y)) Q:Y=&quot;&quot;  W X_&quot;:&quot;_Y_&quot;=&quot;_$G(DATA(X,Y))_$C(13,10)
  Q

* GT.M ルーチンを自作
- TESTDSP1.m を作成＆コンパイル
※分かりやすいように、命令は省略せずに書きました。
 TESTDSP1(CGI,DATA)
  NEW REQ
  SET REQ=&quot;&quot;
  SET REQ=REQ_&quot;HTTP/1.1 200 OK&quot;_$CHAR(13,10)
  SET REQ=REQ_&quot;Content-type: text/plain&quot;_$CHAR(13,10)
  SET REQ=REQ_&quot;Connection: close&quot;_$CHAR(13,10)
  SET REQ=REQ_$CHAR(13,10)
  WRITE REQ
  WRITE ^animal($GET(DATA(&quot;key&quot;,1)))_$CHAR(13,10)
  QUIT 
- mgwsi.conf を変更＆Apache を再起動
 SetEnv MGWSI_PORT 7041
 SetEnv MGWSI_M_FUNCTION ^TESTDSP1
- 以下のような HTMLファィルを作成し、ブラウザから SUBMIT をクリックするとブラウザに鳴き声が表示されます
 &lt;html&gt;
 &lt;head&gt;
 &lt;title&gt;My Routine&lt;/title&gt;
 &lt;/head&gt;
 &lt;body&gt;
 &lt;form method=&quot;POST&quot; action=&quot;test.mgwsi&quot;&gt;
 &lt;select name=&quot;key&quot;&gt;
 &lt;option value=&quot;dog&quot;&gt;DOG
 &lt;option value=&quot;cat&quot;&gt;CAT
 &lt;/select&gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;input type=&quot;submit&quot; name=&quot;go&quot; value=&quot;SUBMIT&quot; /&gt;
 &lt;/form&gt;
 &lt;/body&gt;
 &lt;/html&gt;
- 拡張子が .mgwsi の場合は無条件に（指定された）GT.M ルーチンに渡されます
-- ちなみに .ewd も同様の動きとなります。
-- 別の拡張子に対応するよう指定することもできるようです。
- もし拡張子より前の部分になにか意味を持たせたい場合は、GT.M ルーチンの方で実装することになります

* XMLHttpRequest を使う
- submit をかけずに、いわゆる Ajax っぽく使う場合の説明です。
- TESTDSP1.m を変更＆コンパイル
※改行をつけなくしただけです
 TESTDSP1(CGI,DATA)
  NEW REQ
  SET REQ=&quot;&quot;
  SET REQ=REQ_&quot;HTTP/1.1 200 OK&quot;_$CHAR(13,10)
  SET REQ=REQ_&quot;Content-type: text/plain&quot;_$CHAR(13,10)
  SET REQ=REQ_&quot;Connection: close&quot;_$CHAR(13,10)
  SET REQ=REQ_$CHAR(13,10)
  WRITE REQ
  WRITE ^animal($GET(DATA(&quot;key&quot;,1)))
  QUIT 
- ～/mgwsi/java/m_client.js をWEBディレクトリへコピー
-- 自前で書ける人は自作でもいいのですが、せっかくあるんで使ってみました
- 以下のような HTMLファィルを作成し、ブラウザから GET VOICE をクリックするとテキストボックスに鳴き声が表示されます
 &lt;html&gt;
 &lt;head&gt;
 &lt;title&gt;XMLHttpRequest&lt;/title&gt;
 &lt;script type=&quot;text/javascript&quot; src=&quot;m_client.js&quot;&gt;&lt;/script&gt;
 &lt;script type=&quot;text/javascript&quot;&gt;
 &lt;!--
 function get_val()
 {
   var k = document.myform.key;
   var r = document.myform.res;
   var d =&#039;test.mgwsi?key=&#039; + k.options[k.selectedIndex].value;
   var res = server_proc(d);
   r.value = res;
 }
 --&gt;
 &lt;/script&gt;
 &lt;/head&gt;
 &lt;body&gt;
 &lt;form name=&quot;myform&quot;&gt;
 &lt;select name=&quot;key&quot;&gt;
 &lt;option value=&quot;dog&quot;&gt;DOG
 &lt;option value=&quot;cat&quot;&gt;CAT
 &lt;/select&gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;input type=&quot;text&quot; name =&quot;res&quot; value=&quot;&quot; size=20 /&gt; &lt;br /&gt;
 &lt;br /&gt;
 &lt;input type=&quot;button&quot; name=&quot;go&quot; value=&quot;GET VOICE&quot; onClick=&quot;get_val()&quot; /&gt;
 &lt;/form&gt;
 &lt;/body&gt;
 &lt;/html&gt;
※うまくとれない時は、Apache の再起動をするといいかもしれません。    </description>
    <dc:date>2010-02-09T09:05:27+09:00</dc:date>
    <utime>1265673927</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/misopi/pages/27.html">
    <title>m_jsp</title>
    <link>https://w.atwiki.jp/misopi/pages/27.html</link>
    <description>
      MGWSI で JSP(Java Server Pages) から GT.M を使えるようにしたときの作業メモです。
MGWSI 導入については　→ [[こちら&gt;P.011]]

GT.M / 仲介用デーモンプロセス / MUMPS向けの通信プロセス は準備済みとします。

- apt-get で Java 開発キットを導入
-- sudo apt-get install openjdk-6-jdk
-- OpenJDK 6 を使ったけど、まあ、なんとなく
- アプリケーションコンテナ＆HTTPサーバとして Resin を導入
-- Apache は、また別のモジュールを試してみたいのでなるべく手を入れたくなかったので Resin 単体で動かします
-- http://www.caucho.com/download/ から resin-3.0.28.tar.gz をダウンロード＆展開
-- インストール
 sudo ./configure
 ※本格的に導入するならインストール先を指定して（省略すると展開したとこで動かすことになります）
 sudo ./configure --prefix=/usr/local/resin
- Resin 設定
-- ～/conf/resin.conf にディレクトリ指定を追加
 &lt;web-app id=&quot;URLに指定するディレクトリ&quot; document-directory=&quot;実際のディレクトリ(*1)&quot; /&gt;
 ※ Servlet は使わないので、設定はディレクトリの対応指示まで
- MGWSIインタフェースの設定
-- (*1)のディレクトリ/WEB-INF/classes/ 配下に m_jsp ディレクトリを作成
--- 適当に JSP を動かしたら WEB-INF/classes/ が出来てました
-- ～/mgwsi/java/m_jsp.class を、上記ディレクトリへコピー
- 環境変数の設定
 export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
- 起動 (start を指定しないとカレントのシェルで動くので制御が返ってきません)
 ～/bin/httpd.sh start
- 停止
 ～/bin/httpd.sh stop

作業は以上です。

こんな感じで動かします。
 &lt;jsp:useBean id=&quot;m_jsp&quot; scope=&quot;page&quot; class=&quot;m_jsp.m_jsp&quot; /&gt;
 &lt;%
 String[] key = new String[2];
 // データ格納
 key[0] = &quot;1&quot;;
 key[1] = &quot;dog&quot;;
 m_jsp.ma_set(&quot;^animal&quot;,key,&quot;wanwan&quot;);
 key[1] = &quot;cat&quot;;
 m_jsp.ma_set(&quot;^animal&quot;,key,&quot;nya-nya-&quot;);
 key[1] = &quot;snake&quot;;
 m_jsp.ma_set(&quot;^animal&quot;,key,&quot;...&quot;);
 // データ参照
 key[1] = &quot;cat&quot;;
 out.print(m_jsp.ma_get(&quot;^animal&quot;,key) + &quot;&lt;br /&gt;&quot;);
 // データ削除
 key[1] = &quot;snake&quot;;
 m_jsp.ma_kill(&quot;^animal&quot;,key);
 %&gt;

多段配列の場合はこんな感じで
 String[] key = new String[5];
 key[0] = &quot;4&quot;;
 key[1] = &quot;country1&quot;;
 key[2] = &quot;part1&quot;;
 key[3] = &quot;date1&quot;;
 key[4] = &quot;name1&quot;;
 out.print(m_jsp.ma_get(&quot;^tabnle&quot;,key) + &quot;&lt;br /&gt;&quot;);

* 最後に
なんとか動く環境はできたのですが、ちょっと動作が不安定です。
組み合わせがわるいのか、設定がたりないのか、またはその他の原因か？
後日、時間があれば調べることにします。    </description>
    <dc:date>2010-01-23T01:03:14+09:00</dc:date>
    <utime>1264176194</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/misopi/pages/25.html">
    <title>m_ruby</title>
    <link>https://w.atwiki.jp/misopi/pages/25.html</link>
    <description>
      MGWSIで Ruby から GT.M を使えるようにしたときの作業メモです。
MGWSI導入については　→ [[こちら&gt;P.011]]

GT.M / 仲介用デーモンプロセス / MUMPS向けの通信プロセス は準備済みとします。

- apt-get で ruby をインストール
-- バージョンは 1.8.7 でした
- ～/mgwsi/bin/m_ruby.so を /usr/local/lib/site_ruby/1.8/i486-linux/ 配下へコピー

作業は以上です。

こんな感じで動かします。
 require &#039;m_ruby&#039;
 m_ruby = M_RUBY.new()
 key = Array.new(2)
 # データ格納
 key = [1,&#039;dog&#039;]
 m_ruby.ma_set(&#039;^animal&#039;,key,&#039;wanwan&#039;)
 key = [1,&#039;cat&#039;]
 m_ruby.ma_set(&#039;^animal&#039;,key,&#039;nya-nya-&#039;)
 key = [1,&#039;snake&#039;]
 m_ruby.ma_set(&#039;^animal&#039;,key,&#039;...&#039;)
 # データ参照
 key = [1,&#039;cat&#039;]
 print m_ruby.ma_get(&#039;^animal&#039;,key) + &quot;\n&quot;
 # データ削除
 key = [1,&#039;snake&#039;]
 m_ruby.ma_kill(&#039;^animal&#039;,key)

多段配列の場合はこんな感じで
 key = Array.new(5)
 key = [4,&#039;country1&#039;,&#039;part1&#039;,&#039;date1&#039;,&#039;name1&#039;]
 data = m_ruby.ma_get(&#039;^table&#039;,key)    </description>
    <dc:date>2010-01-22T13:13:16+09:00</dc:date>
    <utime>1264133596</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/misopi/pages/26.html">
    <title>m_python</title>
    <link>https://w.atwiki.jp/misopi/pages/26.html</link>
    <description>
      MGWSIで Python から GT.M を使えるようにしたときの作業メモです。
MGWSI導入については　→ [[こちら&gt;P.011]]

GT.M / 仲介用デーモンプロセス / MUMPS向けの通信プロセス は準備済みとします。

- apt-get で python をインストール…　しようと思ったらすでに最新版が入ってた
-- バージョンは 2.6.4 でした
- ～/mgwsi/bin/m_python.so を /usr/local/lib/python2.6/site-packages/ 配下へコピー
- 環境変数を設定
 export PYTHONPATH=/usr/local/lib/python2.6/site-packages

作業は以上です。

こんな感じで動かします。
 import m_python
 # データ格納
 key = [1,&#039;dog&#039;]
 m_python.ma_set(0,&#039;^animal&#039;,key,&#039;wanwan&#039;)
 key = [1,&#039;cat&#039;]
 m_python.ma_set(0,&#039;^animal&#039;,key,&#039;nya-nya-&#039;)
 key = [1,&#039;snake&#039;]
 m_python.ma_set(0,&#039;^animal&#039;,key,&#039;...&#039;)
 # データ参照
 key = [1,&#039;cat&#039;]
 print m_python.ma_get(0,&#039;^animal&#039;,key)
 # データ削除
 key = [1,&#039;snake&#039;]
 m_python.ma_kill(0,&#039;^animal&#039;,key)

多段配列の場合はこんな感じで
 key = [4,&#039;country1&#039;,&#039;part1&#039;,&#039;date1&#039;,&#039;name1&#039;]
 data = m_python.ma_get(&#039;^table&#039;,key)    </description>
    <dc:date>2010-01-22T13:12:43+09:00</dc:date>
    <utime>1264133563</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/misopi/pages/2.html">
    <title>メニュー</title>
    <link>https://w.atwiki.jp/misopi/pages/2.html</link>
    <description>
      メニュー
-[[トップページ]]
-[[プラグイン]]
-[[メニュー]]
-[[メニュー2]]

----


-[[@ウィキ ガイド&gt;http://atwiki.jp/guide/]]
-[[@wiki 便利ツール &gt;http://atwiki.jp/tools/]]
-[[@wiki&gt;http://atwiki.jp]]

// リンクを張るには &quot;[&quot; 2つで文字列を括ります。
// &quot;&gt;&quot; の左側に文字、右側にURLを記述するとリンクになります


**更新履歴
#recent(20)
    </description>
    <dc:date>2007-06-24T23:16:39+09:00</dc:date>
    <utime>1182694599</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/misopi/pages/3.html">
    <title>メニュー2</title>
    <link>https://w.atwiki.jp/misopi/pages/3.html</link>
    <description>
      **更新履歴
#recent(20)
    </description>
    <dc:date>2007-06-24T23:16:39+09:00</dc:date>
    <utime>1182694599</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/misopi/pages/4.html">
    <title>プラグイン/ニュース</title>
    <link>https://w.atwiki.jp/misopi/pages/4.html</link>
    <description>
      * ニュース
@wikiのwikiモードでは
 #news(興味のある単語)
と入力することで、あるキーワードに関連するニュース一覧を表示することができます
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_174_ja.html


-----


たとえば、#news(wiki)と入力すると以下のように表示されます。


#news(wiki)
    </description>
    <dc:date>2007-06-24T23:16:39+09:00</dc:date>
    <utime>1182694599</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/misopi/pages/5.html">
    <title>プラグイン/編集履歴</title>
    <link>https://w.atwiki.jp/misopi/pages/5.html</link>
    <description>
      * 更新履歴
@wikiのwikiモードでは
 #recent(数字)
と入力することで、wikiのページ更新履歴を表示することができます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_117_ja.html


-----


たとえば、#recent(20)と入力すると以下のように表示されます。


#recent(20)
    </description>
    <dc:date>2007-06-24T23:16:39+09:00</dc:date>
    <utime>1182694599</utime>
  </item>
  </rdf:RDF>
