2004年4月アーカイブ

神宮寺三郎

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

先日発売になった神宮寺三郎第9弾 Kind of Blueですが、早速購入しました。
で、プレイしてみたのですが、今回はちょっと肩透かしのような終わり方なのでちょっと残念に思いました。

でも第1弾からずっとやっているのでこれからも楽しみにしております。

と思って神宮寺三郎のホームページ見たら、なんとコナミスタイルさんで探偵 神宮寺三郎 KIND OF BLUE コナミスタイル特別版 (PS2)なる限定パッケージを発売しているではないですか!!

かみさんに許しを得まして購入してしまいました。ごめんね、かみさん。

Hibernate

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

今、開発でHibernateというものを使用することになりました。
詳しくは説明できないので簡単にしますが、データベーススキーマからJavaBeansを生成、またはその逆ができたりと、要するにコーディングを楽にしてくれるものです。

で、今回はデータベーススキーマが既にあるので、そこからJavaBeansを生成するようにしました。

用意するものは、

です。上記のものは適切な場所に展開してください。
まずはMiddlegenにてテーブルスキーマから、Hibernateが読み込めるマッピングファイルを生成します。下記がそれを行うためのbuild.xmlです。

<?xml version="1.0"?>
<project name="Middlegen" default="middlegen" basedir=".">
  <!-- パッケージの名称などを指定してください -->
  <property name="name"                 value="Sample"/>
  <property name="build.dir"            value="${basedir}/build"/>
  <!-- ビルドする際のライブラリを格納するディレクトリを指定します -->
  <property name="build.lib.dir"        value="${basedir}/lib" />
  <property name="build.gen-src.dir"    value="${build.dir}/gen-src" />
  <!--
    MiddlegenではGUIでのテーブルスキーマ確認が行えます。
    GUIで確認が行える環境であればyesとしてみてください。
    出たときは結構感動するはずです。
  -->
  <property name="gui"                  value="yes" />  
  <!--
    classpathでjarファイルを設定する場合、${basedir}/lib内のjarファイルを
    idでまとめて定義するようにしました。
    ${basedir}/lib以下にはmiddlegenのjarファイル、その他必要なjarファイルを
    コピーしておいてください。
  -->
  <path id="lib.class.path">
    <fileset dir="${build.lib.dir}">
      <include name="*.jar" />
    </fileset>
  </path>
  <!-- マッピングファイルの出力ディレクトリを生成します -->
  <target name="init">
    <mkdir dir="${build.dir}" />
  </target>
  <target name="middlegen" description="Run Middlegen" depends="init">
    <!-- initで行ってもいいかも... -->
    <mkdir dir="${build.gen-src.dir}"/>
    <!--
      middlegenというタスクを定義します。これがないと何もできません。
      middlegenを展開しますと、中にmiddlegen-2.0-vo.jarファイルがあ
      りまして、この中に「middlegen.MiddlegenTask」クラスがあります。
      これがantのタスクを定義するクラスとなります。
      middlegenが必要とするjarファイルなども含めて、頭のほうで指定
      した ${basedir}/lib ディレクトリ内へコピーしてください。
    -->
    <taskdef name="middlegen"
             classname="middlegen.MiddlegenTask"
             classpathref="lib.class.path" />
      <!--
        ここからmiddlegenが実行のタスクです。
      -->
      <middlegen
        <!-- アプリケーション名です -->
        appname="SampleApp"
        prefsdir="${build.gen-src.dir}"
        gui="${gui}"
        <!--
          JDBCの接続先設定です。
          使用するデータベースに合わせて書いてください。
        -->
        databaseurl="....."
        <!-- 以下3つはMiddlegenサンプルほぼそのままです。-->
        initialContextFactory="${java.naming.factory.initial}"
        providerURL="${java.naming.provider.url}"
        datasourceJNDIName=""
        driver="<使用するJDBCのドライバクラスの絶対名称>"
        username="<データベースのユーザ名"
        password="<ユーザ名に対するパスワード>"
        schema="<設定があればデータベースのスキーマ名>"
        catalog="<設定があればデータベースのカタログ名>">
      <!--
        テーブルを指定する場合は個々に指定もできますし、テーブルJOINも
        できるのでかなり便利です。
        このあたりはMiddlegenのマニュアルを見て頂いたほうが
        分かりやすいです。
      <table generate="true" name="MEMBER_TABLE" />
      -->
      <!--
        MiddlegenからHibernateのスキーマファイルを生成します。
        これがないとGUIでスキーマ定義を見るだけになってしまいます。
        Middlegen内にHibernateプラグインがあるのでこれを使用します。
      -->
      <hibernate
        destination="${build.gen-src.dir}"
        package="${name}.hibernate"
        javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper" />
    </middlegen>
  </target>
  <target name="clean" description="Clean all generated stuff">
    <delete dir="${build.dir}"/>
  </target>
</project>

次にlog4j.propertiesファイルを用意します。これはbuild.xmlファイルと同じ場所で構いません。

log4j.rootCategory=DEBUG, Console
# ファイル出力にしたほうが便利です
#log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console=org.apache.log4j.FileAppender
log4j.appender.Console.File=debug.log
log4j.appender.Console.Threshold=DEBUG
log4j.appender.Console.Append=true
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=(%-35c{2} %-4L) %m%n

こんな感じでしょうか。ここまで用意できましたら、antを実行してみます。

hogehoge@localhost> ant

実行しますと、カレントディレクトリにdebug.logが出力されていると思いますので、これで状況が確認できます。GUIモードを有効にしていますと、処理が完了したら画面が表示され、データベーススキーマの一覧が出るはずです。
ここで、画面上部に「Generate」ボタンがあると思いますので、このボタンを押すと、build.xmlで指定した「destination="${build.gen-src.dir}"」の場所にHibernateが読み込めるマッピングファイルが生成されます。

この出力されたファイルから今度はJavaBeansを生成するのですが、今日はたくさん書いたのでこれまでにしておきます。
触りだけ言っておきますと、このマッピングファイルからJavaBeansを生成するのにはHibernate-extensionsというライブラリ内の「hbm2java」を使用します。Hibernate-extensionsは同じくHibernateのホームページから入手可能です。こちらのほうは正直説明がなくても十分にわかるものかと思います。

cactiでエラー発生

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

cactiという監視ツールを使用しておりまして、これはPHPで書かれています。

一般的にはMRTGや、もっと詳しくだと、RRDToolなどが使用されていると思いますが、cactiというのは、RRDToolを簡単に使えるようにしたもので、Webインターフェースでテンプレート設定、データソース設定が簡単にできます。

で、先日PHP-5.0.0RC1にアップして暫くそのままにしておいたのですが、今日久しぶりに見ようとしたcactiのログインができなくなっていました。
で、原因は何かと調べてみたら、「adodb-iterator.inc.php」というソース内の「ADODB_Iterator」クラスでエラーが発生していました。エラー内容は、

PHP Fatal error:  Class ADODB_Iterator contains 1 abstract methods and \
must therefore be declared abstract (Iterator::valid) in \
<hogehoge>/lib/adodb/adodb-iterator.inc.php on line 46

と出ていました。このクラスはIteratorクラスを継承していて、継承しなければならない「valid」メソッドが実装されていないぞ、というエラーを出していました。
で、しょうがないのでソースを書き換えて「valid」メソッドを追加したら無事ログインができるようになりました。

PHP5もまだRC1だから、厳密にはバグとは言えませんけど、すぐにでも対応しないとまずいのでは...

今度はリスト表示

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

#BLOGさんでトラックバックにエントリのTITLEとPERMALINKを追加するプラグインがありまして、これを導入してみました。

殆どTrackbackとかしていないし、されてもいないと思われるのでどれだけ有効なものになるか不明ですが、とりあえず自己満足で...

トラックバック

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

正直よく分かっていませんでした。で、時間があったので調べてみましたら、親切な説明をしていただいているサイトがありましたので、トラックバックしておきます。

これでなんとなく分かり始めてきました。もう少し自分で調べながらコミュニケーションが取れればいいなぁ。

CHAGE and ASKA

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

暫くCDとか買っていなかったので全然知らなかったのですが、今年25周年だそうで記念のCDが出るらしいです。昨日は U-CDTVでライブをやっていたので見ていましたが、とても40代半ばとは思えませんでした。

昔からずっと聞いているのですが、お気に入りは「PRIDE」ですかね。
カラオケも最近行っていないし、かみさん連れて行こうかな。

指輪物語

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

映画も完結し、話題を呼んだものですが、原作を読みました。
映画ですが、DVDで一番最初のを見たきりであとは全然見ていません。

皆さん一様に「物語の出だしが読むのが辛い、でもそこを過ぎると楽に読める」と行っておりましたが、あまりそんな感じもうけず、すらすらと読めたような気がします。とはいっても読むのに2ヵ月半かかりましたが...

でもまだ「ホビット」や「追憶編」は読んでいないので、まだまだ読みたいものは尽きません。

PHPでpingを実装する

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

PHPのモジュールであるXML_RPC_ServerでBlogのpingサーバ機能を実装してみました。
ライブラリは

%> <php_install_path>/php/XML/RPC/Server.php

にインストールされています。されていなければpearコマンドでインストール、またはアップデートしてください。

はじめは「これどうするんだ??」という感じでしたが、良く見ればものすごく簡単でした。

Blogでアップデート情報を送る場合、XML_RPCの構造としては「weblogUpdates.ping」というスペック名でデータを送るようになっています(詳しくはこちらを参照)。

で、PHPのXML_RPC_Serverではこのスペックに対応するようにコーディングをします。
下記が単純なサンプルです。

$map = array("weblogUpdates.ping" => array("function" => "weblogUpdates"));
$server =& new XML_RPC_Server($map);

ここで、「new XML_RPC_Server($map)」として渡しているmapとは、呼び出し関数を定義した配列です。このあたりについては、こちらや、PEARのマニュアルを見て頂くと分かると思います。

で、このマップに定義されている「function」というのが関数を呼び出すことを定義しており、これに対応する値として関数名である「weblogUpdates」が定義されています。XML_RPC_Serverが生成されるとこれらの関数がロードされて、リクエスト内の対応するスペックで関数を実行するようになっています。
で、関数内でpingの処理を行うのですが、これだけでは終了せず、必ず戻り値を生成しなければなりません。

戻り値は「XML_RPC_Value」と「XML_RPC_Response」を組み合わせて作成することができて、下記がpingに成功した場合の値を生成しています。

$value = new XML_RPC_Value(
    array(
        "flerror" => new XML_RPC_Value(0, "boolean"),
        "message" => new XML_RPC_Value("Thanks for the ping.")),
    "struct");
return new XML_RPC_Response($value);

戻り値はstruct型なので、このようになっておりますが、これもPEARのマニュアルを読んでいただければ分かると思います。

って、とりとめもなく書きましたが、大体調べれなわかることで、あとはpingデータが送られて来たときの処理をどうするかを実装すればいいだけなので、簡単に作成できるかと思います。

そんなこんなで自前で作ったpingがありますので、とりあえずリンクを書いておきます。既にPING.BLOGGERS.JPというサイトがありますが、これを真似て作ってみようかと思います。もしお時間がありましたら使用しているBlogのpingリストに追加していただければありがたいです。

pingのURL : http://blog.boundless-ocean.ne.jp/service/ping.php
更新一覧URL:http://blog.boundless-ocean.ne.jp/newlist.php

江ノ島

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

今日江ノ島まで行ってきました。

いや、特に用事とかなかったんですけど、買い物に出かけたついでに湘南モノレールに乗って行ってきました。家から約30分程度で行けるのでちょっと散歩にいく感じでしたね。買い物袋持って行ったぐらいですから。

今度は鎌倉でも行きましょうかねぇ。

新しいサーバ

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

自宅サーバを立ててから2年近くたちまして、そろそろDNS/メールサーバとWebサーバを分けようかな、などと考えております。

メールは主にimapで行っているのですが、これがCPUをばりばり使用するのでメールチェックとかするとWebが重くなったり、ログイン中に重くて反応が遅くなったりするんですよ。
空いているけど使用できないマシンが1台あるのでCPUやメモリ、HDDだけ抜いてマザーボードとケースを購入して新しいマシンにしようかと思っております。

でもそうなるとデスクトップ3台、ノート2台になってしまう...
かみさんに電気代のことうるさく言われそう...

sprintf

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

Javaってすべてをオブジェクトで構築していくもので、かなり容易にアプリケーションを構築することが可能なのですが、いまいち痒いところに手が届かないものがあります。

それがCでいうところの「printf」関数たち。

数値や文字列をフォーマットに当てはめて文字列にするものがないので、今日もコーディング中に悩んでしまいました。で、調べてみるとhttp://www.braju.com/というところに便利ライブラリがありました。

そのままなのですが、「printf」「sprintf」「fptintf」が実装されており、かなりいい感じです。
今日やろうとしていたのはfloatやdoubleを小数点2桁まで表示するようにしたかったのですが、「メソッド書かなきゃならないかな」と思っていたときにこれを見つけたのでうれしい限りでした。

最近の転職状況なども見ますとJavaができる人を募集しているとこが多いのですが、Javaといっても色々とあるわけで、Servlet, Plugin, Appletなどあります。まあ大体はServletでアプリケーションが組める人が欲しいのでしょうが、ServletにしてもJBossやTomcatなど多種多様です。
私はJakartaプロジェクト中心で開発をしておりますが、これにしても色々なライブラリがあって使い勝手がいいのか悪いのかわからんのが正直な感想です。

使っているのはTomcat, ant, log4j, commons-fileuploadぐらいですかね。これぐらいのものが使用できれば十分に開発できると思いますね。
最近はStrutsやmaven, relaxerなども登場しており、色々な開発環境が出てきております。今注目なのはStrutsを中心としたもので、eclipsが一番なのでしょうか。

ちょっとごっちゃになってしまいましたが、私は開発ツールとかが嫌いなので、コーディングはエディタでおこなっちゃうんですがね。あといい加減にファイルアップロードのクラス(メソッド)ぐらい標準で実装してもらいたいものです。

先日のイラク誘拐事件、植草教授の逮捕など、毎度毎度ですがいいニュースが聞けない今日この頃。

家ではよくニュースを見て妻とも色々と話をするのですが、どうしてそんなことするんだろう、などと子供のことからよく思っていることを改めて考えさせられてしまいます。
自分も人のこと言える立場ではないのですが、やはり出てくる言葉は「なんでかなぁ...」。

特に植草教授については驚きの一言でした。
研究所時代からちょくちょくコメンテーターでテレビに出ておられて、的確な意見を述べていて私などでもわかるように話をしてくれていたので、結構お気に入りの方でした。
なのになんであんなことしてしまったんだろうかと思います。

この件に触れるのはこれぐらいにして、たまには技術的なお話とかもしないと。
Microsoftが先日初のフリーソフトウェアを発表したか開発開始したかのニュースが流れました。
時事ニュースとしては既に遅い話ですが、やっとはじめたんだ、というのが最初の感想でした。

仕事始めてからWindowsでの開発ってまったくやったことがない私としては、フリーの環境というのが当たり前に思っていたので、なんで高い金払ってフリーズするOS買わなきゃならんのだろう、とよく思っていました。

時代の流れにあわせるためなのか、フリーの市場も寡占(独占)を狙っているのかわかりませんが、今頃手を出しても遅いのではないかな...、と思うのは私だけでしょうか。

で、一体何のフリーものを出すのでしょうか?? (<-全然ニュース読んでないのがばればれです)

httpd-2.0.49インストール時に、rotatelogsの修正をしていなくて、Apacheが異常終了していました。そのためページ表示ができないことがしばしばありました。申し訳ございません。

やっぱ自分で修正した箇所というのは反映がなかなかできず、手間取りますね...

ドラゴンクエスト

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

先日発売された「ドラゴンクエストⅤ」をやっています。
以前スーパーファミコンで出ていたものですが、そっちはプレイしていないので、今回が初めてです。

スーパーファミコンのものからはイベント追加もあり、また、システム自体も変わっているみたいですね。
私自身は比較できないのでわからないのですが...

なんだか今までのドラクエ以上にハードなストーリーに思えるのですが...
主人公が報われるようにとりあえずがんばります。

BlogPatrol

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

BlogPatrolなるサイトを発見したので早速登録しました。

要するにBlogページのアクセス解析を行うものみたいなのですが、行ってからこちら、相手のサーバが落ちていたりして正しく解析ができないことがあるみたいです。まあ無料で行っているのだから仕方ないですが。

アクセスログが見れる方は自分で行うでしょうし、あとはCGIカウンターとかを用いるのが殆どだと思います。でもBlogのサービスとしてはまだ多くはないのではないでしょうか。ココログや、goo BLOGなどのようなサービスでは標準でついているのかもしれませんが、なかなかそこまでのニーズがないのでしょうか。

とりあえずサーバが安定して稼働してもらえれば一番です。

ファミコンで発売されていたリップルアイランドがこの度メモリアルシリーズとしてプレステでリリースされました。
ストーリーは書くのが下手なので控えますが、愛と勇気と冒険、あと動物と自然を中心としたストーリーです。純粋なストーリーで、私のなかではファミコンソフトの思い出トップ10に入るものです。

で、せっかくプレステでリリースされたので早速購入しプレイしましたら、懐かしさがこみ上げてきました。やっぱいいソフトだな、などと思っております。たたプレイ時間が短く、いまどきのゲームからすればあっという間に終わってしまうゲームです。
ですが、ストーリーがしっかりしているので、十分に楽しめるものかと思います。昨今のゲームみたいに、ちょっとわけありなストーリー、わかりづらいストーリー、CG技術ばかりが目立つゲームなどとは全然違うんですよね。
ファミコンでは「クソゲー」といわれるものも多々ありますが、結構ストーリーやゲーム性はしっかりしたものが多かったのではないかと思います。今のゲームみたいに開発費数億円なんていうこともありませんでしたし...

ホームページ情報とかも調べてみたところ、リップルアイランドの記憶というページが見つかったので見てみますと、攻略情報から雑話まで網羅されており、かなり私としては満足させていただけるページでした。

本日やっとインターネット回線がつながりました。
1週間近く接続できず、どうなることかと思いましたが、本日無事開通できました。

今まではADSLでしたが今度はBフレッツにしました。
光回線なので速いですね。さっき回線速度調査したら23M出ていました。

人によってはまだ出る方もいるのでしょうが、今まで8M程度しか出ていなかったものに
とってみれば格段の違いです。

これで安心して趣味と仕事ができます。

tomochika_satoをフォローしましょう
track feed BoundlessOcean
フィードメーター - BoundlessOcean
あわせて読みたいブログパーツ
人気ブログランキングへ
OpenID対応しています OpenIDについて

BlogPeople

Powered by Movable Type 4.27-ja
アダルトアニメDVD通販

このアーカイブについて

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

前のアーカイブは2004年3月です。

次のアーカイブは2004年5月です。

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