NASA 未来から落ちてきた男

「NASA 未来から落ちてきた男」 を約20年ぶりに観た。これは1991年の8月に放映された終戦記念の企画ドラマ。当時は分からなかったが、三上博史と中井貴一が主演をしており、また脚本が鎌田敏夫/音楽が久石譲と、豪華な制作陣だった。特に劇中の主題歌である「Over the Rainbow」は非常に印象に残っていた。当時はビデオテープに録画を残しており何度か再生をしたが、いつの間にかビデオテープもどこかへ無くしてしまって、私にとっては幻のドラマとなってしまった。

何年か後にインターネットを利用してこの番組のタイトル等を知ったが、手に入れるすべはなく、ずっと寂しく思っていた。2008年に再放送もしたようだが、それも逃してしまっていた。それが、つい何ヶ月か前に知人のつてでこの録画を譲ってもらえることになり、ようやく手にすることができた。

以下、簡単なあらすじ

1995年の現代にて宇宙飛行士となった日系2世の「ウエノノボル」はシャトル打ち上げ後に原因不明のトラブルに巻き込まれ、仲間の宇宙飛行士2人と共にちょうど50年前にあたる1945年の戦時中の日本に不時着をしてしまう。そこで、様々な取り調べを受ける中で出会った日本軍の士官「橋口ケンジロウ」に不思議な親近感を抱く。しかし戦時中のこと、「未来から来た」などというデタラメな話は受け入れられるはずもなく、誤解が誤解を呼び、ノボルはついに銃殺刑に処せられることになる。そして刑が執行される直前に広島に原子爆弾が投下される。

終戦後、橋口はノボルに対して「おまえの父親の事を聞きたい」と切り出し、いくつかの自分の未来を知るが、その直後に逮捕/釈放され、戦後の雑踏の中に消えていく。ノボルは自分が乗ってきたシャトルを見に行くがその姿は原爆と共に既に消えており、自分がもう未来には戻れないことを悟る。

それから50年後、老人となったノボルは現代の家族が住む家へと向かい、妻と子どもに出会う。もちろん二人とも本人とは気がつかないが、飼っていた犬のミスティだけはノボル本人であることを見抜き、さかんにじゃれついてくる。ノボルはシャトル打ち上げ前の妻との約束を守り、そして家族にひと目だけでも会えたことに少しだけ満足をしながら、家をを後にする。「ここに来るのに50年かかった。長い時間がいったんだよ、スーザン….」とつぶやきながら。

アメリカの音楽をこよなく愛していた橋口中尉。そして「(ノボルを)憎む理由はないから」と自らの危険を顧みずにノボルを助けた橋口中尉の姉。終戦後、ノボルが橋口に「(自分は日系2世であり、アメリカ人の妻と結婚していることにからめて)あなたたちができなかったことが私たちにはできたんだよ」と語る。そして終盤、走り去る車の中で「ここに来るのに50年かかった。長い時間がいったんだよ、スーザン….」とノボルはつぶやく。ここには言葉通りの意味とともに、若き父とその姉へと語った「人間同士でいがみ合うことの愚かさを理解するまでには長い時間かかること」、そして私たちが私たち自身を「地球という美しい惑星に共に生きる人類」という視点で眺めることの大切さを語っているように思う。

XOOPS Cube LegacyをUTF-8でインストール

xoopsをUTF-8環境で使いたかったため、文字コードなどを変換してインストールを行う。その簡単メモ。

  1. パッケージを解凍して、/html/以下の全てのファイルの文字コードをUTF-8(BOMなし)に変換する。
  2. /extras/extra_languages/ja_utf8/html/以下のファイルをそれぞれのフォルダへ上書きする(それぞれのlanguageフォルダ内にja_utf8フォルダがコピーされる)。
  3. php.iniの設定を次のようにする。
    mbstring.internal_encoding = UTF-8
    default_charset = UTF-8
    
  4. ファイルをアップロードして普通にインストールを行う。
  5. インストール後に「全般設定」にて使用言語をja_utf8に設定する。

以後、インストールするモジュールは言語ファイルをlanguage/ja_utf8以下にUTF-8で作成する。

一括変換を行うにあたり利用したソフトは「KanjiTranslator」。非常に使いやすい。

MovableTypeにてカテゴリの一括登録をしたい

タイトルの必要に迫られ便利なプラグインを探してみるも、なかなか見つからなかったのでDB(PostgreSQL)への直接入力を行ってみた。MTのバージョンは4.27。

まずはカテゴリテーブルの調査から。カテゴリ関連で使用されているのは「mt_category」テーブル。登録後に運用をしてみたところ、ユーザーID等がある時点において正しく設定がされていれば特に問題はなさそうなので、このテーブルに絞って設定を行う。

category_id カテゴリID ※1
category_allow_pings トラックバックの許可 0(未許可)
category_author_id 作成者 1(管理者)
category_basename 識別名 ※2
category_blog_id 所属ブログのID ※3
category_class カテゴリのクラス category
category_created_by 作成者ID 1(管理者)
category_created_on 作成日 2010-01-01 00:00:00
category_description カテゴリの説明 空白
category_label カテゴリのラベル ※4
category_modified_by 更新者 1(管理者)
category_modified_on 更新日 2010-01-01 00:00:00
category_parent 親のカテゴリID ※5
category_ping_urls トラックバックURL 空白
category_order_number カテゴリの並び順 ※6

この中で、気をつけなければならないのは※1~※6の項目。

※1 カテゴリID
キーなので、テーブル内で重複しないような番号を設定する。
※2 識別名
同一のcategory_blog_id内で重複しないよう設定する。category_blog_idが違えば同じ名前でも問題ない。
※3 所属ブログのID
所属するブログのIDを設定する。
※4 カテゴリのラベル
自由に設定して構わない。
※5 親のカテゴリID
ここに設定したIDが親のIDとなる。存在するcategory_idを設定するか、0を設定してトップカテゴリとする。
※6 カテゴリID
同一のcategory_blog_id内で重複しないよう設定する。category_blog_idが違えば同じ名前でも問題ない。

次に、上記の情報を元にSQL文を作成する。サンプルとして、次のようなカテゴリを考える。

  • 野菜
    • じゃがいも
    • にんじん
    • きゅうり
  • 果物
    • りんご
    • すいか
    • みかん
  • 穀物
    • いね
    • まめ
    • とうもろこし

SQL文は次のようにする。

INSERT INTO mt_category VALUES (1,0,1,'yasai',1,'category'::character varying,1,'2010-01-01 00:00:00','','野菜',1,'2010-01-01 00:00:00',0,'',1);
INSERT INTO mt_category VALUES (2,0,1,'kudamono',1,'category'::character varying,1,'2010-01-01 00:00:00','','果物',1,'2010-01-01 00:00:00',0,'',2);
INSERT INTO mt_category VALUES (3,0,1,'kokumotsu',1,'category'::character varying,1,'2010-01-01 00:00:00','','穀物',1,'2010-01-01 00:00:00',0,'',3);
INSERT INTO mt_category VALUES (4,0,1,'yasai1',1,'category'::character varying,1,'2010-01-01 00:00:00','','じゃがいも',1,'2010-01-01 00:00:00',1,'',1);
INSERT INTO mt_category VALUES (5,0,1,'yasai2',1,'category'::character varying,1,'2010-01-01 00:00:00','','にんじん',1,'2010-01-01 00:00:00',1,'',2);
INSERT INTO mt_category VALUES (6,0,1,'yasai3',1,'category'::character varying,1,'2010-01-01 00:00:00','','きゅうり',1,'2010-01-01 00:00:00',1,'',3);
INSERT INTO mt_category VALUES (7,0,1,'kudamono1',1,'category'::character varying,1,'2010-01-01 00:00:00','','りんご',1,'2010-01-01 00:00:00',2,'',1);
INSERT INTO mt_category VALUES (8,0,1,'kudamono2',1,'category'::character varying,1,'2010-01-01 00:00:00','','すいか',1,'2010-01-01 00:00:00',2,'',2);
INSERT INTO mt_category VALUES (9,0,1,'kudamono3',1,'category'::character varying,1,'2010-01-01 00:00:00','','みかん',1,'2010-01-01 00:00:00',2,'',3);
INSERT INTO mt_category VALUES (10,0,1,'kokumotsu1',1,'category'::character varying,1,'2010-01-01 00:00:00','','いね',1,'2010-01-01 00:00:00',3,'',1);
INSERT INTO mt_category VALUES (11,0,1,'kokumotsu2',1,'category'::character varying,1,'2010-01-01 00:00:00','','まめ',1,'2010-01-01 00:00:00',3,'',2);
INSERT INTO mt_category VALUES (12,0,1,'kokumotsu3',1,'category'::character varying,1,'2010-01-01 00:00:00','','とうもろこし',1,'2010-01-01 00:00:00',3,'',3);

このSQL文を発行してデータを登録し、さらにシーケンスのmt_category_idの値を最終値(今回であれば12)に設定する。MySQLの場合にはcategory_idにauto_incrementを付けておけばいいのかな。

以上で、カテゴリの一括登録ができる。あとはSQL文を上手に複製していけば良い。ちなみに、この方法にてブログ1つあたり1,000以上、全体で数千のカテゴリを登録してみたが、今のところは正常に動いている様子。ただ、再構築に非常に時間がかかるので、せめてアーカイブだけでもダイナミック・パブリッシングにしたほうが良いと思われる。

mt_dpcacheに関するエラー

H.FujimotoさんのPerl版ダイナミック・パブリッシング(MT4用)を利用した際にキャッシュを有効にしてページにアクセスをすると次のエラーが出力された。つまるところ、キャッシュが動いていない。

キャッシュの検索に失敗しました sql = select * from mt_dpcache where dpcache_uri・・・

まずはテーブルの中身を、と思いphpPgAdminにてDBを調べてみたところ、なんと「mt_dpcache」テーブルがない。インストール時に作られなかったのか、何らかのエラーにより消失したのかは不明だけれど、DBに登録がないことにはどうしようもない。

いろいろと調べた結果、「せんむの技術ブログ」さまの記事にてに該当テーブルを作成すると動くとの情報を見つける。そちらを参考にさせていただき、PostgreSQL用のSQLを実行してテーブルを作成したところ、無事に動くようになった。

実行したSQLは下記の通り。

CREATE TABLE mt_dpcache (
"dpcache_id" INTEGER NOT NULL PRIMARY KEY,
"dpcache_blog_id" INTEGER NOT NULL,
"dpcache_modified_on" timestamp without time zone NOT NULL,
"dpcache_pagefile" VARCHAR(20) NOT NULL,
"dpcache_pagesize" INTEGER NOT NULL,
"dpcache_uri" VARCHAR(255) NOT NULL
)

上記の問題とは直接の関係はないけれど、PostgreSQLのINTEGERには引数は必要ない(?)様子。しばらく悩みました。PostgreSQLを使うのは初めてで。。。