2008年3月アーカイブ

Pleiades (プレアデス)というプラグインがすごいです。

http://mergedoc.sourceforge.jp/

ページ下のほうへスクロールすると

「仕組み」

と書いてあるところがあります。

eclipse内に表示する文字をeclipse内で読み出したときに、割り込んで翻訳したものを返すような仕組みです。

そのすごさもありますが、そのサイトでは、ダウンロードして回答するだけですぐに使えてしまうeclipseとして、必要なものがパッケージされた状態でzip圧縮されています。

ダウンロードして解凍、そして、eclipse.exeを実行するだけ。

 

また、javaの場合だと、別途jreをインストールする必要があったと思ってたのが、exlipseフォルダ内に「jre」というフォルダを置き、その中にjreが入っていれば動作するそうです。

 

これまで、新環境にてeclipseをセットアップするのに、標準的に、半日程度かかってました。それが、ダウンロードから起動まで、ネットワークの帯域で時間がかかるとしても、数分で起動させることができるようになりました。

とても便利です。

 

当ブログの指定日時投稿機能が動いておりませんでした。m(__)m

早速使えるように設定いたしました。

 

指定日時を設定しておくと、その設定内容をシステムが取得し、実行してくれます。

ただ、システムは、常に動作はしておりません。

毎時10分、20分、30分、40分、50分、60分と10分間隔で投稿内容を確認し、指定日時を過ぎていれば、投稿処理を行います。

 

PHPでXML解析

| コメント(0) | トラックバック(0)

いろいろと調べてみると、面白いもので、知らないことがいっぱい。

PHPでXML解析をするときは、基本的に、XML_Serializerを使う必要があると思ってました。XML_Serializerは、PEARにあるのですが、まだ、PHPの標準関数には、XMLを扱うものが無いのではないかと思って、そればかり使ってました。
数KB程度のXMLだと問題ないのですが、巨大なXMLファイルとなると、少々厄介です。XML_SerializerはDOM形式ですべてメモリに展開してしまいます。

今回、仕事上で、巨大なファイルを扱うことになり、なにかいい方法が無いか調べてましたら、ありました。PHPのバージョンからすると1年前にはすでにあったっぽいですけどね。

最近のバージョンだと、./configureで指定しなくとも、標準で入っているようです。

XMLReader関数

これはXMLノードを順に呼び出しながらデータ取得をします。
ファイルをオープンして、一行ずつ処理していくような感じです。

webのPHPマニュアルページには、『5.1.0からデフォルトで組み込まれ・・・』とありますが、関数リファレンスを見ると『(PHP 5 >= 5.1.2)』となっているので注意してください。


で、いざ、使おうと思ったら、サンプルが無い。

試行錯誤中に、もうひとつ発見したのが、PEARのXML_Serializerの代わりとなるsimplexml_import_domというものがありました。simplexmlは、PHP5が出たときにあったのは知ってましたが、バグが多いのか、メソッドが存在してなかったり、大変でした。

試行錯誤して、できたのが次のプログラム。
(ブログ掲載用に書き換えてます)

// テスト用にローカルにXMLを配置しているので読み込みしてるけど、巨大XMLファイルの場合は、ストリームで読み込むことになる。 $buf = file_get_contents('hogehoge.xml');

// インスタンス生成
$reader = new XMLReader();

// XML読み込み。ストリームからは、openメソッドを使う。$reader->open("URI")
$reader->xml($buf);

// 最初のread()でrootドキュメント参照
$reader->read();
// 子のノードへ移動
$reader->read();
// localNameプロパティでタグ名を参照
echo $reader->localName;
// ぉかlNameで確認したタグ以下のノード全体をDOMで取得
$node = $reader->expand();
// domドキュメントを作成
$dom = new DOMDocument("1.0","UTF-8");
// データ読み込み
$n = $dom->importNode($node,true);
// 適用
$dom->appendChild($n);
// dom構造をPHPアクセス可能な変数形式に変更
$s = simplexml_import_dom($n);


XMLファイルをタグ以下読み込みとできるので、分割して順に読みながら処理していくことができ、サーバーがパンクすることを防ぐことができました。

一回り年上の方なのですが、
今日は、その方とランチ食べました。
食後のコーヒー(1杯600円もするよ!)飲みながら、

そこで、ユーモアのある、お話いただきました!

こんなお話。


『飛行機の機内サービスで
アメリカンコーヒーが出されたそうです。さて、その理由は?』


ヒントは、
「国際線ではない。国際ではないということ」

だそうですが、

意外とイメージで、え!?
国際じゃなければ、
あれだよな・・・

って思ってたんだけど、
え?なんで?
と思って、

○○○○・・・
と声に出した瞬間に、
ひらめき(aha!体験)ました。

オヤジギャグといえば、そうなんだけど、
1杯600円のコーヒーを飲みながらの話だったので、

とてもユーモアのあるお話に聞こえたとさ。
めでたしめでたし。

さておき、
言葉を聴いたときに、
私の頭の中では、空港の搭乗口あたりが、
イメージされ、ことばのユーモアだと気づかず、

つい、答えを発した瞬間に
それを耳で聞き、ひらめく。

まさに、5感を使って、答えを解き、良いクオリアを感じた瞬間でした。

Microsoft Office Live - Microsoft Office Online

マイクロソフトから無料のグループウェアが出てるなんて知りませんでした。

早速使ってみました。

hotmailのアカウントがあればそれを使うことができます。ややこしいのですが、アカウントはひとつあれば、いろいろとできるようです。

以下、グループウェアとしての機能(貼り付け)

 --------------------------------------------------------------------------------------------

コンタクト マネージャ

コンタクト マネージャ

顧客や取引先の連絡先情報を管理。営業案件など、それぞれの連絡先にひもづいた情報も簡単に管理できます。
ドキュメント マネージャ

ドキュメント マネージャ

ドキュメント資料を 1 か所に保存共有でき、インターネット経由でどこからでもアクセスできます。見積書やカタログ、図面や提案書など、あらゆる情報を管理できます。
ワークスペース

ワークスペース

パスワードで保護されたワークスペースを、目的や共有する相手などごとに簡単に作成できます。社内はもちろん、特定のお客様や取引先との情報共有に便利です。
プロジェクト マネージャ

プロジェクト マネージャ

複数の工程からなるプロジェクトを計画して、進捗を管理するのに便利です。
--------------------------------------------------------------------------------------------
 
一通りグループウェアとしての機能は持ってますね。すばらしい。
ただ、若干重い。若干じゃないか。IISを使ったシステムはどうも重く感じてしまうのは、利用しているPCのスペックが低いからなのか。
 
さておき、ファイル共有、プロジェクト管理などなど、面白い機能満載。
 
ちょうど、デスクネッツ(ネオジャパン)を導入しようと検討していたところでした。
 
これまでオープンソースのDotProjectやphpGroupWareなど試してみましたがどれもぱっとしませんでした。オープンソースではないものの、無料でここまで使えるならば、すばらしいです。
 
そのほか、電子メールも管理可能と本格的です。
 
もうすこしレスポンスがあがればな~と思うところとですね。
 
もひとつは、バックアップかな。
 
ともあれ、MSはGoogleに負けないように、これからいろんなサービスを展開していくんでしょうね。
楽しみです。

Amazon Shopping

Amazonでお買い物は
こちらから。
Amazonでお買い物

このアーカイブについて

このページには、2008年3月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2008年2月です。

次のアーカイブは2008年4月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。