2007-12-05

作業も一段落

11月中頃からずっとガリガリと作業していて色々書く気力もおきない状態でしたが、ようやく(まだ終わっていないものの)一山こえたような感じに。3連休含めて、特別な用事以外はひたすら缶詰作業状態だったけれども、それも今週末あたりは開放されそうだわあー。オッケーイ!

よく思い返すと、3年連続で年末年始に同じことをやっているので、ここまで来るともう恒例活動にしてもいいな!

作業疲れもあるけれども、ここにきて月始めからへこんでしまったので、このままもう年末ははっちゃけたい。

2007-11-19

結婚式2次会にてiPod nano

昨日高専時代の同級生であるタカ氏の結婚式2次会にいってきました。
おめでとうおめでとう。
本人は相変わらずひょうひょうとしてたのでもうちょっと緊張しましょう。

で、そこで行われたビンゴ大会で、ついこの間に発売された iPod nano の最新モデルを頂戴しました。こういうので景品をもらうってのは初めてかも。
今のは本当に薄くて小さくてそのくせ画面がくっきり見やすくてビックリするね!
さすがに nano では手持ちの楽曲が全部入らない状態になっているので、これを機にプレイリストでしっかり管理していこうと思います。

2007-11-07

Wii・バーチャルコンソールでRAPを使う

Wiiおよびコンテンツの1つであるバーチャルコンソールにおいて、ホリのジョイスティックであるリアルアーケードPro、通称RAPを利用するための方法です。

結論からいうと、Cube Joybox というPS→GC変換器を使えば一発です。



「マジカルウィー」や「ツナイデント」という同じようにPSコントローラをWiiで使うための変換器もあるのですが、こちらはアナログコントローラのみの変換しか対応しておらず、デジタルコントローラの部類となるRAPなどのジョイスティックは対応していません。接続してもジョイスティック部分が一切機能しません。
一方Cube Joyboxならばアナログコントローラだけでなくデジタルコントローラにも対応しているため、ジョイスティック部分も正しく十字キーとして機能します。

ボタン変換の対応は以下のとおり。

PS → Wii

× → A
△ → Y
□ → B
○ → X
L1 → Z
R1 → Z
L2 → L
R2 → R


さて、先日バーチャルコンソールにてついにネオジオゲームのソフトの配信も開始され、餓狼伝説や侍スピリッツといった格闘ゲームもWiiでプレイできるようになりました。より一層ジョイスティックが欲しい状況となっているわけです。

しかし変換器を経由したRAPでネオジオゲームを利用しようとすると、ボタン配置が

A D
B C

という風になぜかA-B と C-D とで逆になってしまいます。凄く気持ち悪い。これ、どうも GC のコントローラにおけるボタン配置を考慮した上で、C-D が逆になるよう勝手に調整してしまっているようです。これがそのまま順方向のC-Dならば、学生時分に行っていたゲーセンと同じボタン配置だというのに。

非常に困った状況といえますが、RAPにおいて内部の配線を自由に変えることができることと、RAPを使うようなゲーム(うちではスト2やグラディウス)では大抵ゲーム側の設定で自由にボタン配置を変更させることができることを考慮して、思い切って Wii ネオジオバーチャルコンソール用に内部配線を入れ替えることにしました。


こんな具合にピンを差し替えます。特別な工具も特に必要なく非常に簡単な作業です。(むしろRAPをあけるための六角ナットのほうが大変。ボックスドライバがあれば楽勝ですが。)


これで、本日配信されたKOF'94もRAPで堪能できます。

2007-11-05

スーパーマリオギャラクシー


シュ~パ~マリオ グァラクシィイイイ!

11/1にWii用ソフトとして発売されたアクション系スーパーマリオシリーズの最新作、スーパーマリオギャラクシーを楽しんでます。

まだまだ始めたばかりでようやく慣れてきた感じ程度ですが、本当に面白いですよ。みんながよく知る 2D 系マリオとはシステムこそ違うものの、そうだ、これがマリオだ!というような感覚が沸々と湧き出てくる感じです。やるべきことは分かっていてもそれができないもどかしさと、数回やってクリアできるサクサク感。んでもって2時間ほど遊んだ後に「今日はこの辺にしとくかー」とアッサリと終われるキリの良さと充実感が凄い。これからどんなステージが登場するのか楽しみでならんです。

個人的にはマリオ3の音楽がいくつかリメイクされて再使用されているのも嬉しいところです。

2007-11-01

カボチャ最終日


カボチャ型カボチャ団子。
思ったより圧縮が激しくてかなり小さいものに。あと皮の部分があまり細かくできなくて中途半端な塊が残る状態になってしまったのが失敗。

週間といっときながらもう10月も終了なのでこれでおしまいです。カボチャもないし。

IE における Piece Framework のハマりボタン

ページの中に準備された1つのフォームから、例えばいくつかの別ページへ遷移したり、何らかの処理を実施するため複数ボタンを準備するようなケースがあるかと思いますが、

<button type="submit" name="{__eventNameKey}_next" value="次へ" />次へ</button>
<button type="submit" name="{__eventNameKey}_back" value="戻る" />戻る</button>

なんでもないこのコード、IE では正常に動作しません。

具体的には、「戻る」ボタンを押したにも関わらず、「次へ」ボタンを押したように振舞ってしまいます。これは、フォームへの Submit が実行されると、準備された2つのボタンともにリクエストパラメータとしてPOSTされてしまうためです。ボタンには Piece Framework を制御するためのイベント名が付与されていますが、2つのイベントリクエストが飛んできてしまうため、実行すべきイベントが正しく認識できなくなってしまうのです。

ボタンによるイベントの切り替えを Form への Submit で行う場合は、<button> タグではなく <input type="submit"> で対応するようにしましょう。

<input type="submit" name="{__eventNameKey}_next" value="次へ" />
<input type="submit" name="{__eventNameKey}_back" value="戻る" />

2007-10-31

カボチャ週間2


かぼちゃのひき肉あんかけ。微妙にあんかけのとろみが足りなかったのが残念。
なんか前日分と同じような料理なものの、カボチャ自体の味付けはこっちがアッサリ気味に。

2007-10-29

カボチャ週間

今週がハロウィンということでカボチャ週間です。
とはいっても別にパーティするわけでもなく、普通にカボチャをつかった料理を作るだけー。しかも和しか作らない。



ということで初っ端はひとまずオーソドックスに「なんきんのたいたん」で。関西ではカボチャ煮のことをこう呼びます。たいたん。

2007-10-26

Piece_Right で複数カラムのエラーメッセージを1つにまとめる


上記のような入力フォームで氏名の姓・名ともに入力値の必須バリデーションを行う場合、それぞれのリクエスト毎に必須確認およびエラーメッセージを設定すると、片方のみ未入力というケースならばよいものの、


両方ともに未入力の場合だと、上のような感じに。
これを回避しようとすると、テンプレート側で「どっちもエラーならば片方のみ表示して~」というような分岐文を書いてしまうところです。

ここは、次のようなバリデーションを行うようにします。

- name: lastName
  filter: &Japanese
    - trim
    - JapaneseH2Z
- name: firstName
  filter: *Japanese
- name: name
  required:
    message: 未入力です
  pseudo:
    format: %s%s
    arg:
      - lastName
     - firstName

これで、lastName, firstName のどちらかが未入力だった場合 name カラムもブランクとなり、required ルールにヒットしエラーとなります。あとはテンプレートにて name カラムについてのエラー処理を行えば OK です。もちろん、lastName, firstName の値もそのまま利用できます。

2007-10-19

ひじき


帰宅後にひじきを作る。細かくした豚とちくわを入れる。
こうやってタッパにいれておくことで2,3日は1品ものとして戦える。

Piece_Right による複数項目を使った WithMethod 実行と finals

前のエントリでさらっと使用していたりするのですが、Piece_Right のバリデーションルールの1つである WithMethod において複数のリクエストカラムを使った処理を実施したい場合は、WithMethod で指定したメソッドの第3引数として渡される Piece_Right_Results オブジェクトを利用します。

function checkPassword($password, $context, $results)
{
    // username リクエストの値を取得
    $username = $results->getFieldValue('username');
    ....
}

なおここで受け取れる値は、既にバリデーション済みの対象に限ります。すなわち、このメソッドが実行される WithMethod バリデーションが行われる前に、あらかじめ username に対してのバリデーションが済んでいる必要があります。


バリデーションは、通常はバリデーションルールの書かれた yaml ファイル内の順に実行されますので username カラムを一番に記述しておけば問題はないはずです。確実に最終バリデーションとして実行したい場合は、validator とは別に記述することのできる finals を利用することで、すべてのバリデータ実行の後に改めてバリデーションを行うことができます。

- name: username
  required:
    message: ユーザ名を入力ください
  filter: &AlphaNumeric
    - trim
    - JapaneseAlphaNumeric
  validator:
    - name: Length
      rule:
        min: 6
        max: 255

- name: password
  required:
    message: パスワードを入力ください
  filter: *AlphaNumeric
  validator:
    - name: Length
      rule:
        min: 6
        max: 255
  finals:
    - name: WithMethod
      rule:
        class: AuthenticationAction
        method: checkPassword
      message: 認証に失敗しました

2007-10-18

King KAJI

話すたびにともぞうに馬鹿にされ続けてきましたが、加地さんが久々に King KAJI としてその力を少しだけ発揮。カッコいいスルーパスは決めるわいきなりペナルティエリアにワープしてきたと思ったらエロいトラップで交わしてゴールを決めるわでえらいことです。

しかしやっぱり加地さんはかっけー。というか左足で振りぬいた際のスーパーゴール率は異常。ますます、ハンデをつけるために普段右足で上げているのではないかという話に信憑性が。

KING 加地ゴール!、とテレ朝も興奮を隠せない様子。






さーてもう試合が終了するな、ってあれ、テロップが。

2007-10-17

ハライタ

先週あたりからどうも腹痛続き。
元々お腹は壊しやすいほうで食事内容には気を使ってるつもりなのにどうも連続して痛めている状態。
原因はなんだろうということでちょっと考えてみると、

・変なものを食べた or あたった
・食べすぎ
・気候の変化でお腹を冷やしている
・食事以外の原因(生活リズムなど)

とまあこんな感じ。

変なものを食べたつもりはないし食あたりらしきものも思い当たらないものの、ちょっと食べる内容は改めて考えようということで。
純粋に食べすぎの可能性は非常に高いというか、やっぱり作るものが旨いというのも問題やのう。最近ますます磨きがかかっていて困る。(※ あの ITEMAN は煮物をおかわりして鍋を平らげて帰った) 毎夕食で気づいたら米一合以上食べているので、ちょっと少なくするということで。
あとは冷やさぬようリズムを崩さぬようか。つまらんことで自然と体に影響を与えてるとやだなあ。

Piece Framework認証機構用コンポーネント Stable 版

ちょうど先週のことですが、Piece_Unity 向けの認証用コンポーネントの1つである Piece_Unity_Component_Authentication の Stable 版がついにリリースされました。

今年7月に Piece_Unity と付随するコンポーネント群が Stable 版として一斉にリリースされていた中、唯一このコンポーネントのみが Beta 版のまま残り続けていた状態でした。実はこの数ヶ月間の間に Stable 版として実用に耐えうるよう議論、実装、試用を続けてきたのでした。

リリースノートにも記載しているとおり、この Stable 版は過去バージョンの内容と一切の互換性はありません。したがって過去のバージョンからの移行は設定ポイントの修正が必要となりますので注意してください。

そしてもう1つ注意点として、次に紹介する Stable 版の機能を確認してしまうと、居ても立っても居られずに Stable 版の仕様に修正したくなってしまうかもしれません。:)


Piece_Unity_Component_Authentication は、以下の2つのポイントがあります。
  • インターセプタープラグイン
  • クライアント向けインターフェース

(1) インターセプタープラグイン


ベータ版当時より存在していたインターセプタープラグインですが、設定ポイントの内容が変更になっています。

具体的には、設定ポイントの階層が1つ上にあがっています。

以前は「services」設定ポイント以下に認証対象を指定する「resources」や認証フローへのアドレス「url」などを連想配列で指定していましたが、servicesを排除し「resources」「url」といった設定ポイントへ繰り上がることになりました。

また後述するクライアント向けインターフェースの登場により、認証確認のためのクラス・メソッドが必要でなくなりました。

認証機構が含まれるサイトを構築する際における、普段の認証向け設定ポイントのエントリは以下のようにすっきりしたものになります。

この例では、「/members/」というパスが含まれるURLにアクセスした場合に認証是非の判定が行われ、認証済み状態ならばそのまま実行、非認証状態ならば「https://<任意のドメイン>/login.php」へ自動転送される動作となります。

- name: Interceptor_Authentication
  point:
- name: resourcesMatch
  type: configuration
  value:
    - "/members/.*"
- name: url
  type: configuration
  value: https://example.com/login.php


(2) クライアント向けインターフェース


Piece_Unity 利用時における、認証に関する情報の保持・取得を行うためインターフェースとして、「Piece_Unity_Service_Authentication」という専用のクラスが新たに準備されました。

このクラスは、任意の Piece_Unity のフロー (例えば Authentication フロー) 内、つまりフローアクション内で利用します。

たとえばユーザに対して認証済みの状態にする場合、以下のように Service_Authentication の login() メソッドを実行します。

$authentication = &new Piece_Unity_Service_Authentication();
$authentication->login();

ログアウト時、すなわち非認証状態にする場合は、logout() メソッドを実行します。

$authentication = &new Piece_Unity_Service_Authentication();
$authentication->logout();

たったこれだけのコードで Interceptor_Authentication における認証是非の判定が得られます。


過去のバージョンを利用した認証機構サンプルコードでは、非認証状態時に元々アクセスしようとしていたURLへ認証後自動転送されるという処理コードを紹介していましたが、この機能も removeCallback() メソッド1つですべて実現できるようになりました。

恐らく認証後に転送されるという利用法になるでしょうから、以下のコードのように login() → removeCallback() と連続で実行するようにします。

$authentication = &new Piece_Unity_Service_Authentication();
$authentication->login();
$authentication->removeCallback();



(3) 認証フローサンプル


最後に、簡易的な認証フローを実現するためのサンプルを軽く紹介しておきます。これだけで認証状態のON/OFF切り替えと、元URLへの自動転送が実現できます。以前のものと比べて「かなり」スマートな内容になっているかと思います。(以前のものはもう書かない。)

* Authentication.yaml (フロー定義)

firstState: DisplayForm

viewState:
  - name: DisplayForm
    view: Form
    transition:
      - event: authenticate
        nextState: ProcessAuthentication

  - name: DisplayMenu
    view: Menu
    transition:
      - event: logout
        nextState: DisplayForm
        action:
          method: logout

actionState:
  - name: ProcessAuthentication
    activity:
      method: authenticate
    transition:
      - event: goDisplayForm
        nextState: DisplayForm
      - event: goDisplayMenu
        nextState: DisplayMenu


* AuthenticationAction.php (フローアクション)

<?php
require_once 'Piece/Unity/Service/FlowAction.php';
require_once 'Piece/Unity/Service/Authentication.php';
class AuthenticationAction extends Piece_Unity_Service_FlowAction
{
    function authenticate()
    {
        $this->_user = &new StdClass();
        $validation = &$this->_context->getValidation();
        if (!$validation->validate('Authentication', $this->_user)) {
            return 'goDisplayForm';
        }

        $authentication = &new Piece_Unity_Service_Authentication();
        $authentication->login();

        $authentication->redirectToCallbackURL();

        return 'goDisplayMenu';
    }

    function logout()
    {
        $authentication = &new Piece_Unity_Service_Authentication();
        $authentication->logout();
    }

    function checkPassword($password, $context, $results)
    {
        $username = $results->getFieldValue('username');
        if ( <$username, $password を使って認証是非を確認> ) {
            return true;
        } else {
            return false;
        }
    }
}


Authentication.yaml (バリデーションファイル)

- name: username
  required:
    message: ユーザ名を入力ください
  filter: &AlphaNumeric
    - trim
    - JapaneseAlphaNumeric

- name: password
  required:
    message: パスワードを入力ください
  filter: *AlphaNumeric
  validator:
    - name: WithMethod
      rule:
        class: AuthenticationAction
        method: checkPassword
      message: 認証に失敗しました

2007-09-26

SFC版グラディウスIII

Wiiのバーチャルコンソールにて、9月最終分としてSFC版グラディウスIIIがついに配信されましたのでさくっと購入してダウンロードですよ。


オッチャン、もう歳やから高速ステージで終了ですよ。



我が家のシリーズ物ソフトにて、ついにグラディウス銘柄がトップに。せっかく2段目までいったので、この調子でMSX版3部作やパロディウスなどで一面埋めていただきたいです。

2007-09-21

ドラゴンフルーツ

近所に住んでいる同級生がドラゴンフルーツなるものを脇に抱えてやってきては置いてゆきました。


なんという南国植物。

花びらのような皮は簡単にむけて、中から黒いツブツブを大量に抱えた白い実が。




キウイフルーツをダイナミックにしたような食感と甘さ。非常においしかったですありがとうございました。

2007-09-11

禁煙一周年

昨年9月頭に禁煙し始めてからついに一年が経過しました。あっさりさくっと一周年。

もはや普段の生活では一切吸いたいとは思わないし、お酒の場ではたまーーーに欲しい感覚に襲われるものの 2, 3秒ですぐその気ではなくなるくらいの状態。

やっぱり決め手は、禁煙後にはじめて風邪をひいたタイミングで無理やり残ってたタバコを吸ったことか。もうそりゃ超まずい。自分にとって毒であることを体と精神ともに叩きつける目論見が見事成功した感じ。

元々は腹痛に悩まされていたのを改善したくて食生活を100%自炊にシフトするのと合わせてタバコもやめたのですけれども、今になって考えれば、(自分の作った)飯はうまいし、若干の節約にもなるし、喫煙場所を探すといった行動は必要なくなるし、と良いこと尽くめだと思うので、まあなんだかんだで経験者として禁煙はやっぱりオススメしときます。

2007-09-07

Wii用スティックコントローラ

Hori ファイティングスティックWii

Wii用のスティックコントローラの一発目が8月末に発売されたみたい。土台やボタン配置など一見良さそうに見えるけれどもどうなんだろう。と思ったらもう分解を含めてのレビューが。

やっぱり同社発売のリアルアーケードプロと比べるとそこまでってレベルの模様。ボタンも基盤に直で半田付けしてるってことで、もしパーツ交換するのならば再配線が必要だろうし多分天板〜基盤間の隙間を広げる改造も出てきそう。

今月ついにバーチャルコンソールで NeoGeo が来るってことで多分需要が一気に高まることになりそうだけども、これはちょっとしばらく様子見かもなあ。

ついでながら、今月はSFC版グラディウスIIIも来るので超楽しみ。

2007-08-31

PHPカンファレンス2007

直前となりましたが、PHPカンファレンス2007に参加します。東京に行くのはちょうど一年前の勉強会以来なのかー。今回は前日入りとか宿泊先の確保とかしっかり準備ができとる。懇親会にも、最後まではいれないかもしれないですが(当日の新幹線で帰る為)、参加しますのでどうぞ宜しくです。

あと書いてもよいのかよくわからないですけど(いいんですよね?)、最終セクションのライトニングトークにもお邪魔しますよ。お楽しみに。

2007-07-27

風来のシレン

Wii のバーチャルコンソールに SFC の風来のシレンがきたー。


がんばって原稿とかレポートを書き上げたらプレイするっぺい。










『おれは原稿を書いていると思ったらいつのまにかシレンが終わっていた』

な… 何を言ってるのか わからねーと思うが(以下略

2007-07-18

久々に物理的にPCをいじる

自宅で使っているメインのデスクトップPCは2年程前に組み立てたコヤツなのですが、何やらAthlon 939 用のデュアルコア X2 4200+ が1万ちょいで買えるみたいなので思い切って付け替えてみた。

デュアルコア自体は普段使ってるノートが Intel C2D なのでどんなものか大凡分かってるものの、やっぱりシングルからデュアルにパワーアップするそのワクワクさ加減は半端ないです。まあコレに限らず新しい PC パーツが来るだけでもうワクテカなのですが。
で、全般的にキビキビ動き始めたのが嬉しかったので、ついでに OS も入れなおして完全におニュー状態に。起動とか超はやい。しかし使っていくうちに(これから導入していくなんらかのソフトウェアにより)また重くなっていくんだろうなあ。

さらに、今まで装着していた 939 の 3000+ が浮いてしまったのが勿体無かったので、939 用のマザーを買い足してサブ PC 化する計画を立てる。以前までのサブが XP 2500+ (豚) で DDR1 1GB x2, AGP 環境なので、939 用 AGP スロットかビデオオンボードマザーを買えばそっくりそのまま流用できるなと考えたところ、丁度 ASUS A8V (939 + AGP) が 4980円 で売ってるということでさくっと購入し組み立て。こちらも OS を入れなおして綺麗な体に。

で、次に浮いた XP 2500+ も勿体無かったので、別で稼動してる P4 1.7G のマシンと中身を入れ替え。512MB の DDR メモリも2枚余ってる状態だったので丁度よかった感じ。なお位置づけ的には 3rd PC なものの、現在のところ用途が 0 すぎて困る。DAoC してた頃は好評稼動してたのになあ。

最後に浮いた P4 1.7GHz はどうでもよいけれども、そこで使っていた PC133 512MB メモリが3枚も同時に浮いてしまったのが勿体無い。オークションにでも出そうかしら。

2007-07-14

魔女の宅急便

しっかり堪能した。

微妙に泣きそうになったりして、いよいよオッサンになり始めたのかなあとおもた。あのおばあさんの優しさ(ケーキのプレゼント)とか。だが付き人おばあさんの空気読めなさ加減+無邪気っぷりでいい感じに中和してくれる。


んでもって来週はコマンドーだ。メイトリクス、楽しみに待ってるぞ。

2007-07-11

Piece Project 7月活動予定

今月関西圏で予定している Piece Project としての活動が2つあります。


まず 7/20(金) 京都にて開催されるオープンソースカンファレンス2007に Piece Project としてイベントに参加します。

オープンソースカンファレンス2007 Kansai Piece Framework講演のお知らせ

Piece Frameworkの概要について、セキュリティに関するお話を踏まえつつ解説する予定だそうです。14:00 からということですが、7/20のタイムテーブルを確認して他のイベントとあわせてどうぞ。


また 7/21(土) には、新大阪でオブジェクトリレーショナルマッピングを提供するプロダクト「Piece_ORM」の勉強会を開催。

第8回Piece Framework勉強会開催のお知らせ

実際にプログラムコードを書きつつ動作の確認を行っていきます。Piece_Unity サンプルアプリケーションとの電撃合体 (新日風) による実装例も。

2007-06-21

いただきストリートDS

今週木曜日(明日か)発売予定のニンテンドーDS用ソフト「いただきストリートDS」に非常に注目しとります。

いただきストリートDS公式サイト

いただきストリートDS公式Blog

ボードゲームのいただきストリートにドラゴンクエスト (D) とスーパーマリオ (S) が電撃合体!(新日風)

本体を持ち寄ってのワイヤレスはもちろんのこと、Wi-Fi によるフレンドコード同士でも4人対戦ができる模様。ランダムマッチ対戦は無しみたい。
またピクトチャットに対応しており、対戦時にタッチパネル側で絵描きチャットが可能なので、プレイ中の簡単なやり取り、煽り、妬みまで相手に伝えることができる!

一人用プレイにも力を入れてるようで、プレイ後(勝利後?)報酬によって自分のキャラクタ装飾(アバター)ができる。パーツはドラクエやマリオに縁のあるアイテムが中心で、もちろんそのアバターを対戦に使用できると。こういうオマケ要素はいいなあ。

ともかくフレンドコードを交換しないとWi-Fi対戦できんので、興味のある関係者(?)はぜひご連絡を。というか一部連絡しちゃう。なおわたし自身スーパーファミコン版でちょこっと遊んだ「ルール知ってます」程度なので、初めての人含めワーワープレイできるかと。
願わくばピクトチャットだけでなくSkypeを使っての絵+音声のやり取りができればなあと。やはり多人数でゲームをする場合は、対戦プレイであれ協力プレイであれ、ダイレクトに感情が伝わる音声込みの遊び方が面白いと思うんですよ。まあこれはついで程度に。

ついでに宮本茂さんと堀井雄二さんの対談企画もあがっとりますのでこちらもどうぞ。つーか宮本さんのほうが年上だったのか…

Nintendo DS Creator's Voice - 宮本茂 x 堀井雄二

2007-06-16

ラピュタ

今年も超堪能した。やっぱり素晴らしい。

「今日ラピュタやんけ!」と飲みのお誘い断ってごめんなさい。

2007-05-28

Piece_ORM を動作させるために知っておきたい3つのディレクトリの役割

みんな大好き「○つの方法」的キャッチータイトルをパクるもこのエントリは流行らない・・・っ!


Piece_ORM を動作させるには、Piece_ORM クラスの configure メソッドを実行させることで動作環境を構築します。このメソッド実行には、3つのディレクトリを指定することになります。

実際にはPiece_ORM短期集中コースを読めば全て載っていることですが、この3つのディレクトリを簡単に理解するポイント、また使い始めてもふとやってしまう失敗ポイントをあわせてここでも紹介しておきます。


(1) configDirectory

設定ファイルを置いているディレクトリ。
一見とても重要な内容、というか事実そのとおりなのだが、実は指定するディレクトリに piece-orm-config.yaml という設定ファイルがあるかどうかというだけでしかありません。piece-orm-config.yaml は Piece_ORM を動作させるためのデータベース接続設定およびそれに付随するオプションを指定するためのファイルです。


(2) cacheDirectory

キャッシュデータが書き込まれるディレクトリ。
Piece_ORM はキャッシュデータ命というか、「キャッシュデータを作成」→「そのキャッシュを元に駆動する」という仕組みとなっています。「Piece_ORM が動作しない」というケースに出くわした場合、その原因は

・キャッシュディレクトリが存在しない
・プログラムがキャッシュディレクトリに書き込む権限がない

である可能性が高いでしょう。


(3) mapperConfigDirectory

データベーステーブルのマッパー定義ファイルが設置されているディレクトリ。マッパー定義ファイルはテーブルごとに存在します。
前述のキャッシュデータを作成するために、Piece_ORM で操作対象とするテーブルは全てファイルを準備する必要があります。「Piece_ORM が動作しない」理由は

・指定するテーブルのマッパー定義ファイルがない

という原因である可能性もあります。

この設定ファイルでは、任意のメソッドとそれに対応する任意の SQL クエリ、リレーションシップ定義を記述するようになっていますが、よく使われる汎用的なクエリメソッド (select, insert, update, delete) は定義することなく使用できます。
したがって簡単な動作を行う場合は設定ファイルを記述することはない、つまり 0 バイトのマッパー定義ファイルだけが存在することになります。

2007-05-17

RAP を改造してみました2

前エントリからの続きになります。

家庭用コントローラの中では突出してガチな作りをしているリアルアーケードプロ (通称 RAP) を分解してみてある程度パーツの扱いが分かったので、ジョイスティック部分やボタン部分のパーツを交換して遊んでみることにしました。


ジョイスティックレバーをセイミツ工業製に、ボタンを三和電子製に変更します。


まず、きっかけおよび参考となったサイトがこちら。
家庭用アーケードスティックスレまとめWiki
RAP は「業務用部品を使用した作り」を売りにしており、ジョイスティック部分は三和電子製ですがボタン部分はHORI製だったりするようです。いままでの家庭用スティックコントローラから比べると遥かに良い出来なのですが、それでも若干やわくてクニャっとした感触がやはり否めません。そこで好評な三和電子製のものに変更してみることに。
ジョイスティック部分も今までのものと比べてグリグリ感は抜群ですが、より好感触であると名高いセイミツ工業製に変えてみることに。

続いて、前回さらっと流してしまった分解とこれからパーツを取り外す上で必要な工具について。

  • +2ドライバ
  • −ドライバ
  • 六角ボックスドライバ or レンチ (7mm)
  • 先の細いもの
  • ラジオペンチ

ドライバは先とグリップ共にある程度しっかりしたものが良いです。長いタイプのものとは別に短いタイプ(ダルマ)があると融通が利きます。マイナスドライバはレバー上部のボールを外す際に利用します。
六角ボックスもしくはレンチは若干特殊な工具ですが、少し大きめなホームセンターなどで扱っているでしょう。また、こちらはある程度長いタイプを準備する必要があります。(対象が若干深いため)
先の細いものは、ボタンに装着された線のピンに使用します。
ラジオペンチはオマケで。六角ボックスドライバがなくても、最悪こいつで無理やり外すことも可能です。また六角をはめ直しする際にもあると便利です。


ボタンは穴に嵌っている状態で、2つのピンを持つ線が接続されています。先の細いものでピンの溝を押しながら広げると簡単にボタンから外すことができます。
ジョイスティック部分はネジで固定されていますが、これが驚くほどの異常な硬さをほこっています。力任せで回そうとすると簡単にネジ頭の溝を潰してしまうので注意が必要です。

*かなりの時間をかけて* ようやく外れたジョイスティック。


4つのネジが最強クラスの硬さで、たった1つのネジポイントの攻略に数時間かかりました。
外してからは、別途準備したパーツを順に装着していくだけです。基本的な構造は同じですので、外すことに成功していれば装着は容易でしょう。


上が通常の RAP, 下がパーツ交換後の RAP。見た目の色の違いだけでもなんだか新鮮です。
とりあえず馴染ませるためにスクリュー1000本ほどやらんといかんかもしれません。

2007-05-16

RAP を分解してみました

この前の Piece 勉強会の懇親会後、急に私の家でゲーム会を開催することになったとき、アーケードゲーム用コントローラであるリアルアーケードプロ (通称 RAP) のボタンの1つが利かないことが判明。
ザンギエフで小パンチが使えないとか超きつい。

ということで分解して直してみることにしました。



RAP をあけるとこんな風になってます。ジョイスティック部分とボタンは、まさに業務用のパーツそのもの。コントロール基盤は土台の奥の奥に隠されていました。



問題のボタンは、ピンが外れていたことによる障害でした。原因はきっと台バン。
ピンを差しなおすことですぐ復旧しました。よかったよかった。


全然関係ないですが。
せっかくなので、ボタンやレバーといったパーツを交換して遊ぶことにしました。


続く。

2007-04-26

FC版グラディウスII





Wii のバーチャルコンソールに FC 版のグラディウス II が来たのでさくっと購入してプレイ中。
やっぱ名作だわー。

VC グラディウスII とは
ステージ1のBGM「Burning Heat」が他作品にも使われ、エンディング曲「Farewell」はいくつものリミックスを生み出すなど、本作の音楽は高い評価を得ました。

説明書にここまで書かれているのも凄いな。

2007-04-13

iteman も回線プチプチで憤怒していた

なんかうちより怒ってたよ。そりゃもう Diablo のときの iteman の説教のように。

どうも住んでいるエリアそのものに大量データ送受信している業者がいるんじゃないかとかいうお話が。こういうところには是非とも QoS かましていただきたいなあ。

Piece Subversion でブランチ貰た

Piece_Unity と Piece_Right で専用のブランチを貰ったんですよ。何かあったらとりあえずここに commit すればよろしいと。
かなり特殊なことをしたりとか、規模が大きくなってきたりとかしたときに初めて分かることとかが、ある。実際ガリガリ使ってみてはじめて「こういう機能が欲しい」だったり「この値は使えるけどこの値を取得する方法がない」といったことが分かるので、まずはそういうところを主にやる予定。

2007-04-11

自宅のネット回線がプチプチで憤怒中

自宅のネットワーク回線はマンション光な共通回線なのですが、近頃ネットワークの調子がよろしくないのを実感していて、このたび2日に渡って元ネットワーク関係者として行ったネットワークのガチ検証の結果、我が家内ラボのネットワーク機器および回線すべてについての問題ではなく、マンション内回線以降の問題であることが判明してくまっち憤怒。
直近中継ポイントで平均 80ms なのに加えて頻繁に Timeout は発生するわ、マンションローカル内ルータからの応答にも関わらず 2,3% くらいの確率で 150ms になるとかありえん。対戦型ネットワークゲームをやってたら今頃頭を打ち抜かれてたり地面と口付けをしているところだ!

で、長時間試験を実施してみてわかるのが、いわゆる遅延&Timeoutストームみたいなのが発生するようなタイミングがある。誰かまた詰らんデータ通信とかしとるのかな…
自宅で別途回線を引ければよいのですが、どうもそれもできないそうで。

というようなエントリをあげようとして Timeout ストームに遭う。勘弁してほしいなあ。

2007-04-02

ニンテンドーミュージアム行ってきました



3月28日〜4月2日の間に大阪梅田の阪急百貨店本店7階で開催の「ニンテンドーミュージアム」に行ってきました。

一人で。


わたくし、1980年生まれとあって、もはや任天堂の「ファミリーコンピュータ」が幼少期の全てであったといっても過言ではないくらい密接した関係でありました。4歳でピンボールをプレイし、5歳でマリオブラザーズの「ころしあいプレイ」で社会の厳しさを学び、6歳でドラクエ2の「ふっかつのじゅもん」によって読み書きを覚えたのです。(持ちネタの1つですが実話。) その他、気がつけば任天堂の玩具に触れていたような気がします。
身体の成長と共に TV ゲームの発展がありましたが、実はそれはたった25年間のお話です。実は任天堂は TV ゲームの代表的な商品「ファミリーコンピュータ」に至るまでにも様々な歴史があります。その長さおよそ100年近くに渡る任天堂の、当時のチャレンジとその素晴らしい歴史をしっかりと体験してきました。



入り口でマリオと、最近「緑」の座を奪われつつあるもう一方のヤツが出迎えてくれます。
壁一面にどどんと書かれててでかい!黒をバックに、ドット部分にバックライトを当ててます。正直 cool だと思った。

まずは任天堂の歴史から。



横井軍平氏初の大ヒット商品ウルトラハンド。私もこのオリジナルではないですが、幼少期にお世話になった遊び道具の1つです。割り箸と輪ゴムで作ったりとか。



トリビアの泉でも取り上げられた「ラブテスター」。対になったケーブルの両端を男女が握り、発汗量で相性および愛情を測る装置。「Electronic」の文字がまた素晴らしい。




今でもよくある幼児用ドライビングゲームのはしり「ドライブゲーム」。デパート屋上の遊園地などで設置されているタイプからの初の家庭用移植を行ったのがこれらしいです。むき出しの車とそれを釣るワイヤーがまたいい味を出してます。



うわーこの系統の更なるお手軽版みたいなやつ(or パクリバージョン)で良く遊んでたなー :-)



一定年齢以上の人の任天堂のイメージと言えばこちらの花札、トランプ。任天堂の創設1889年で、その頃から現在に至るまでずっと続けている事業の1つですね。良くわからない札もあります。


当時の店頭用ポップ。今では外人さんが喜びそうなデザイン。わたしも欲しい。



今でもシェアNo.1を誇る(だったはず…。TOP3であることは間違いなし。)小倉百人一首かるた。京都の時雨殿にも行きたいなあ。



テレビゲーム。本体とゲームソフトが一体化したような形式。下段中央のテレビゲーム15と右のテレビゲーム6で100万台以上を売り上げたらしいです。
ちなみに下段左のブロック崩しの本体デザインはあの宮本さんとのこと。



誰もがやったゲーム&ウォッチ。私もやりました。おそらく下段の1画面から始まって、最終的には今のDSみたいなダブルスクリーン形式になっていったと思いますが、その間にもボタンの形式が変化していってますね。
ちなみにドンキーコングを持ってたんですが、いつの間にか無くなっちゃったなあ。



あったあった( ^ω^) 麻雀のルールを知らなかったのでまともにプレイできなかったですが。通信ケーブルで対戦とかもできたのか。



ちなみに当時の商品のチラシ(パンフレット)などもあわせて展示されておりました。



うわー、これも持ってたわ。我が家は昔から任天堂優勢だったのか。



なんで3倍なのか良くわかりません。多分3パターンのゲーム(ただし難易度)ができたからなんだと思いますが。
横に開くタイプのゲームウォッチもあったのね。



アーケード筐体ゲームに関するものはこのドンキーコングのパンフレットだけでした。このテーブル筐体をはじめ、VSテニスの筐体とかも置いてくれてたらもっとクールだったのに。
というような反応をするので、いつも年齢詐称を疑われるようです( ^ω^)




てな感じでカメラで撮りまくってたら、後ろの関係者用出入り口からマリオが出てきてビビる。誰よりも早く写真に収めてやった!



でもホントは横に並んで一緒に撮ってほしかったんですけどね。このときばっかりは子供が羨ましかった…





さあいよいよ新しい歴史の始まる TV ゲーム部門へ。




ファミリーコンピュータ。1983年発売に対して、たしか84年のクリスマスで兄が貰った記憶が。ソフトはピンボール、マリオブラザーズ、ドンキーコング。黄色、橙、赤のソフト。
その後兄弟でアーバンチャンピオン、F1レース、ポパイなどを買ってもらう。F1レースは個人的に欲しくなくって、電車で帰りながらもうちが愚図って、結局最寄駅の玩具屋でポパイを買ってもらったのを凄い覚えてます。今考えたら1日で2本とか親もきつかっただろうに。あとその同日、エキサイトバイクは当時5500円で他のソフトと比べて若干高かった!ので買ってもらえなかったのも。嫌な幼児だなあ。
個人的には四角ゴムボタンの超初期コントローラのモデルが見たかったなあ。(本当に初めてプレイしたときはそれでした。)



ロボット!TV画面に表示されたブロックを動かすとロボットが動き、実際にブロックを移動させるという仕掛けでした。
同じ幼稚園に通ってた近所の子が持ってたなあ。初見は「おお!」と思うけど、多分すぐ飽きて。
ちなみにこれ発売以後は、何かしらの任天堂ゲームのパロディオブジェクトとしては欠かせない存在です。






さすがにこれらは持ってなかった。片や「玩具」として模索していたときの商品、片や「コンピュータ」としての商品ですね。




♪やればやるほど ディスクシステム!このフレーズと共に所ジョージがCMをやってたんですよねえ。1フレーズメロディを作ったのも多分所ジョージじゃないかなあ。(宝くじとかと基本的に一緒)
このディスクシステム、我が家にも極めて早いタイミングでありました。ゲームしてたのは我が兄弟だけだったのに……ファミコン本体も含めて、子供にお金を使ってたんだなあということを再認識させられる思い出深いものの1つでもあります。
ソフトも思い出深く、スーパーマリオ2、ゼルダの伝説、リンクの冒険、プロレス、さらには新・鬼が島といった、片面500円で書きかえれるとあって、一通りのものはやってたんじゃないでしょうか。ある意味ユーザのことを良く考えていたシステムでしたね。代わりに容量とローディング時間の問題を生み出し、結果消滅していく形となってしまいますが。




まさに正当進化なスーパーファミコン。初めてプレイした「スーパーマリオワールド」であのでかいキラーが吹っ飛んできたのを見た瞬間は本当に驚愕したものです。
その他ゲーム映像、音楽、ボリュームも一気にパワーアップしてて、F-Zeroのスピード感やアクトレイザーの音楽など感動しっぱなし。あとグラディウス3のアレンジ移植の巧さも。



スーパースコープ!
これ、買いかけたんですよ。危なかったです(?)
CM で少年がこれを肩に担いで、TV 前で片ひざ付いてやってて。ダメですねえ。




ニンテンドー64。このマシンが出た頃は既にサターンvsプレステ状態で、その両者のソフトもROM時代から比べると一気に下がっいて、ROMである64にとっては苦しい時期でしたね。ゼルダ専用機になってしまった人も多いのでは。
最後の学生時代と共に過ごしたこのマシン、19、20 と007ゴールデンアイ、そして大乱闘スマッシュブラザーズで大変お世話になりました。当時やり合っていた強敵と再び出来るような環境が欲しいんですよね、実は。みんなうちまで来いよ( ^ω^)



「ダメだったゲーム機」ということになってしまっているゲームキューブ。最終的には9800円まで下げたんでしたっけ…。しかし出ているソフトは良作が多く、最近になって Wii でも GC のゲームプレイできるとあって再評価されつつあるのは良いことですね。




これ久々に見れてすっごい嬉しかった。
昨日フリマで赤いゲームギアを保護していた人がいたのですが、彼女には是非こちらの赤いやつも保護する計画を立てていただければと思います。
ひじょうううううに楽しい時間でした。わたしゃあやっぱり任天堂信者だったことを思い知らされた!ショック!!

上のもの以外にもまだまだ一杯写真に収めてきています。また次の機会に改めて。