2009年6月アーカイブ

私も個人会員となっているJPAのプロジェクトの一つとして、Mooseドキュメント日本語訳がgithubで進んでいます。

基本的に技術英語というものは素直な文書であって、難読なものはほとんどありません。しかしわざわざ検索するまでもないかと思って「これはこの辺に書いてあったんだがなぁ」という「流し読み」をしようとしたとき、自分の英語力の拙さを思い知らされる次第です。

基本的には最初は一通り読みつつ、後はコードを書いて疑問に思ったときにドキュメントを検索して読み返すような形で進めてきたのですが、さすがに母語の読解力を使えるとマニュアルがさらに好きになります。

早速リポジトリから一式を頂戴してきて自前のpod2html(標準のものだと色々不都合があるので......)でHTML化していますが、やはり快適ですね。

欲を言えばperldocコマンドで日本語ドキュメントを見る環境を作りたいのですが、WinXP環境では色々と(chcp 65001してUTF-8を読めるようにしても、バッチファイルは動かせない)不都合があります。既存のperldocの上っ面にちょっと手を加えるよりは、ちゃんとPOD解析結果を取り扱う方が良さそうです。

テンプレートの継承に首っ丈

| コメント(0)

本日の、と書こうとして日本時間では昨日ということに気が付きましたが、ともあれArkの更新で見逃せない点は、Ark::View::MTの使用クラスがText::MicroTemplateからText::MicroTemplate::Extendedに変わったことです。

実は作者であるtypesterさんのText::MicroTemplate::Extendedの記事を拝見して、自分でArkX::View::MT::Extendedを実装していたのですが、本家でいち早く対応してくださって、とても喜んでいるところです。

実装方法の細かいところで違いがあって、「答え合わせ」を通してArkの理解を少し深められたかなと思っています。

で、やはり目玉は継承ですね。Template (Tempalte-Toolkit)、いわゆるTTでのwrapperディレクティブでラッピングするよりも、継承という仕組みの方がより融通が利くように思えます。

ArkをCGIで動かすスクリプト(2)

| コメント(0)

前回の続きです。

どうも、のほほんとWin32 + Strawberry Perl環境で試した所為か、前回のスクリプトでアクションキャッシュが初回生成出来ない場合があることに気が付きました。

また、/css/*.cssなどのファイルを読めていないことも気が付きました。

さらに、$c->uri_forの問題もまだ追えていません。

なんだかもうちょっとArkの中身を見る必要がありそうですが、ともあれ、CGIで試すときの気をつける点などを合わせてどうぞ。

ディスク容量超過の恐怖

| コメント(0)

重いと思ったら容量が50MBを超えていました。恐ろしや。

普段はCoreserver.jpとかXREA+を契約しているので、XREAでの制限にすっかり気が付きませんでした。

  • Movable Typeをインストールした(クラスタサイズによるが、約25MB)

だけでそれなりのしんどさなのに、

  • MovableTypeの数千ファイルをちまちまFTPでアップロードしたくないので、アーカイブファイルを丸ごと送ってサーバー側で展開したが、当のアーカイブファイルを削除し忘れた(約7MB)
  • 取り敢えずPhpMyAdminを自動インストールした(約11MB)

という余計なことをしたおかげでチェックメイトです。

このシステムはCGIでも現実的な速度が出るとはいえ、やはり編集系だけでなく表示系の処理も2秒弱掛かるようだと、FastCGIやmod_perlが使えるレンタルサーバー屋にお世話になろうかと思っていて、このままXREA+なりCoreserver.jpなりに契約更改する気にはなれないので、しばらくこのままで行ってみようと思います。

巷には「Coreserverにはmod_fcgiがあって使える」「あるが使えない」等という情報がありますが、本日現在、mod_fcgi然り、mod_fastcgi然り、インストールはされていないようです(@s3x)。

.com, .net, .orgのgTLD御三家のうち、まず.comは公式に取得されるとして、他もあっという間に取得されます。.info, .bizもまた然りで、私のようにある日突然思い付いてドメインを取ろうと思ったときには、軒並みそれらは全滅しています。

ところがsTLDの.asiaや、一応gTLDである.nameなどは、結構残っていることが多いようです。

これらのWHOISを見ても分かりますが、出遅れ感が否めない時期にようやく取ったことが分かります。

ということで、ファンサイトなどを作る際には、ニュースが流れてすぐにドメインを押さえられるような機動的な生活を送れる人を除いては、foobarfan.comなどに流れるか、或いは素直にこれらのfoobar.nameやfoobar.asiaなどのTLDを取るという選択肢があると提唱しておきます。

いやぁ、狙い目だというよりも、「不人気なのでいつまでも残っています」ということを紹介しているだけの記事になってきた気がしました。

タイトルの通りではあるのですが、JavaScriptによらないシンタックスハイライトとして、シンプルですが手軽で分かりやすいプラグインがMT::Plugin::VimColorですね。

これとMarkdownの組み合わせで、コードを貼り付けるのがとても楽になって、今はとても嬉しいです。パーマリンクURIも/yyyy/mm/post_%E.htmlにしたので、記事を書くための心の障壁がかなり下がって、気楽に書けるような気がします。

導入に当たって気をつける点は、

  • /mt/plugins/VimColor/VimColor.plとしたら、/mt/plugins/VimColor/libText::VimColorPath::Classも置くか、或いは/mt/extlib/に置いてVimColor.pluse lib '/virtual/USERNAME/public_html/mt/extlib';するなどして、依存モジュールを忘れずに入れておく。
  • アーカイブテンプレートだけでなく、「ブログ記事の概要」テンプレートにも手を入れておく

といったところでしょうか。

追記:WordPressにもWPVimColorPHP Markdownのプラグインがあることを知ったので、今度試してみようと思います。

データをデータベースに格納しようとすると、主キーたるID(識別子)の仕組みを決めなければなりません。データを一意に識別するための道具ですね。

その場限りの仕組みならば、例えばScalar::Util::refaddrでメモリの番地を使う策も十分巧く回ります。しかし永続データとしてセッションを跨いで使用する場合には、UUID(GUID)をData::UUID辺りで見繕うか、或いはいわゆる「背番号」を付けるか、名前で一意に識別できるのならばそれを使うであるとか、色々な選択肢を採らざるを得ません。

これが業務でやっているようなシステムであれば、それはいわゆる「決めの問題」であるので、詳細要件で合意を得られれば完了です。

ところがこういう趣味の世界でファンが勝手に外野で作るようなシステムだと、勝手に決めてしまって良い物かどうか、いつも悩みます。

取り敢えずWorld(ゲームサーバー(群))であれば、FFXIの場合は00 : Bahamut, 01 : Shiva, ...といった具合に分かるので、それを使えばよいのです。

では逆にItem(装備とアイテム)では? 名前が被ることは容易に想像出来るので、やはりIntなIDにしたいところです。しかし勝手なID(オレオレID)を付けたとすると、例えば外部データサイトとの連携をしたい場合に、外部データサイトA用のIDをデータとして持つとか、或いはオレオレIDと外部データサイトのIDとの変換テーブルを持つとか、そういった面倒なことになってしまいます。

EQであればクライアントに落ちてくるゲーム内部データを解析してデータサイトを構築・運営したサイトをいくらでも知っています。例えばAllakhazamです。内部IDはつまり公式なIDであるので、オレオレIDを作らなくて済むので、是非ともこれを採用したいところです。

さて、AllakhazamはFFXIにもありますFFXIVもできそうですが、このFFXIのアイテムIDが内部データ由来の物なのかそうでないのかが分かりません。もしご存じの方がいらっしゃったら教えていただけると嬉しいです。

というようなことを考えると、予習の意味でFFXIを始めた方が良いのかも知れませんね。MMORPGに共通して必要になりそうなシステムは作れますし、実際に私の8年くらい昔のシステムを現代的に書き直している部分が少なからずありますが、やはり各ゲーム固有の要検討項目というものは出て来るわけですので。

ArkをCGIで動かす場合の、アクセス先のスクリプトとApacheの.htaccess(ないしhttpd.conf)の記述方法です。基本的にはCatalystと同じですね。

ただし、後述しますが、$c->uri_forではまっています。

ちょっと恣意的なタイトルですが、つまりこういうことです。

package Foo;

# 地点A
use Carp qw(croak confess);
use Scalar::Util qw(blessed);
use Any::Moose; # 明示的にuse Mouseしても同様。no Mouseも同様。
no Any::Moose;
__PACKAGE__->meta->make_immutable;
# 地点B

1;

上記のようなコードで、Mouseがロードされる(Mooseがロードされてない)場合、地点Bではcroakは使えますがconfessblessedが名前空間から除かれています。

現在のMoose(0.25)の場合、no Mooseしても、use Mooseした時に既にインポートされていた(つまりuse Mooseによって始めてインポートされたわけでない、つまり地点Aでインポートされた)シンボルは、名前空間から取り除かれません。

解決策としては、素直に完全修飾名でScalar::Util::blessedCarp::confessなどとすることです。その場合には上記のような事情があるということで最初からuse Scalar::Util qw();などとして意図を明確にしておいた方が良いかも知れません。

勿論、no Mooseした後(地点B)にuse Carp qw(:DEFAULT confess);することでも良いですし、もしかしたらその方が座りがよいかも知れません。

最近ずっとWordPressを触っていたのですが、このサイトではMovable Typeに戻りました。

で、いわゆるパーマリンクURIの設定で、つい拡張子を付けるのを忘れてしまいました。例えば、/%y/%m/%Eという形で。そうすると何が起こるかというと、HTTPレスポンスのContent-Typeがtext/plainになるんですね。IE7はそれでも表示してくれてしまいますが、むしろそれがおかしいのであって、FirefoxをはじめとしたまっとうなUAはきちんとプレーンテキストで表示してくれます。

ということで、簡単な解決策としては/%y/%m/%E.htmlのようにすることですが、やろうと思えばAddTypeしてMIMEタイプを指定できるのでは、とは思います。しかし、拡張子なしの場合の.htaccessの記述方法がすぐに分からなかったので素直に諦めました。

追記DefaultTypeで行けますね。ただし、副作用の大きさが心配なので、素直に拡張子.html付きのままにしています。

なお、Text::MicroTemplateをMTとも略せるので、Movable TypeのMTと混同しそうでタイトルを変えた小心者とは私のことです。

開発中のシステムではArkという新進気鋭のウェブアプリケーションフレームワーク(WAF)を使わせていただいています。

Arkの良さは色々ありますが、一言で説明するなら「軽量版Catalyst」といったところでしょうか。 「将来的にはFastCGI環境かmod_perl環境で動かしたいが、最初はCGIで公開したい」といった場合(まさに私の今回の用途にぴったりです)でも、HTTP::Engineのおかげで基本的にはそのまま移行できます。軽くてCGIとの相性がよいWAFならば素敵なものが色々ありますが、ControllerがCatalyst互換なのはなかなか嬉しいですね。

さて、勇んでAmikeco::Web::Controller::Worldあたりのコントローラーを書いていて気が付いたのですが、detachでChainedアクションの連鎖が止まらないことに気が付きました。detachで飛んだ先のアクションは勿論ちゃんと処理してくれて、detachで飛ばす元のアクション内の残りの処理はきちんと省くのですが、肝心の次のアクションが処理されてしまうのです。

不具合の詳細とその極めて単純な対策を、以下に記してみます。

「永遠のβ版」という考え方もあるウェブサービスですが、それでも一通りの機能を提供出来たことを以てひとまずの完成形と言おうとするならば、そこへ至るまではまだまだ多くの紆余曲折がありそうです。 ということで、自分用の備忘録として、開発日誌などを記してみることにしました。

筆者"Gardejo"について

  • Twitter: @gardejo
  • GitHub: gardejo
  • CodeRepos: gardejo
  • CPAN: MORIYA

このサイトについて

Eorzea System Worksは、架空のシステム開発結社です。

FF14.name (FinalFantasyXIV.name)では、アヴァター(プレイヤーキャラクター)の管理システムやイベント出欠・リマインダシステムや、リンクシェル(LS)運営・管理システムやDKPシステムなどを設計・開発・公開する予定です。

関連サイト

関連サイトでは、他にもFF14に関連するサイトをいくつか紹介しています。

リンク, トラックバック歓迎

このブログへのリンク(どのページでも構いません)やトラックバックを歓迎します。

設計・開発・運用の参考にさせていただきますので、コメントもお気軽にお寄せください!

個別の記事に対するご意見などのほか、目安箱もご用意しています。

このアーカイブについて

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

次のアーカイブは2009年7月です。

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

最近のコメント

2014年2月

            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28  

やや真面目なサイト