トップ 最新 追記

じじぃの日記、ツッコミ可

Twitter: @jijixi_org
Xbox Live: jijixi

初心者が書いた OCaml 入門
Spotlight tips サイト内リンク集
1970|01|02|
2003|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|11|
2011|05|
2012|01|

2008-01-01 [長年日記]

% [game] OG 外伝日記、最終話終了

全 36 話と、最近の据置き機用としては比較的少ないボリューム。 でもこれくらいが丁度良い気がするなあ。

最後の敵はα外伝と同じくシュウのネオグランゾン。 でも、一つ前の面のボスがあまりにもヒドすぎたんで、それに比べるとほとんどボーナスステージのような楽チンさ。 つーかね、一つ前のヤツはほんとどうかしてる。 HP が数十万あるのに HP 回復(大) とかありえないし。 スレードゲルミルやソウルゲインにも殺意を覚えたもんだけど、それよりも HP 量は上。 しかも通常版とパワーアップ版の二連戦。 さらにはザコがほとんど出ないくせに、気力が通常のまま始まるという鬼畜っぷり。

HP 回復(大)があるボスは 1 ターンキルがお約束だけど、気力が上がってないからまともにやっても無理。 結局、直撃+アーマーブレイカーにフル改造一撃必殺砲連発でギリギリ倒せたけど、逆に言うとそれ以外の倒し方あるのかと不安になるほど。 激励使いまくりで、ラッセル君大活躍。 しかし、熟練度を低く抑えて難易度易にしててこれなんだから、下手に難易度上がってたりしたらクリア不可なんじゃねえの?

全体的な難易度としては、こいつとその前の修羅王以外はわりと楽というか、最近の作品の中では簡単な部類かもしれない。 その分、最後がヒドすぎると思うが。

クライウルブズ関連は結局部隊壊滅のところまで。 MX 本編の話は OG3 をお楽しみにといったところか。 他にも超機人関係で新キャラが顔見せしてたり。

しかし、そんなに風呂敷広げちゃって大丈夫なのかね。 OG3 でどの辺のネタを使ってくるかは結構興味深いけど、ただでさえゲスト、バルマー本隊という大きな二つがあるし、アイビスの話が何故かα2の時点まで追い付いてない点を考えると、案外 OG3 ではα3の話はやらずに2の話だけやるって可能性もあるな。 いつまで続くんだよ、OG シリーズ。 つーか、そろそろ小隊制を導入してくれないと、ユニット余りすぎなんだけど。 実際今回もかなりの数の機体とパイロットを遊ばせた状態だったりするしなあ。

% [game] OG 外伝日記、本作はニコ厨のためにあるような作品です

フリーバトルの存在が、怪しげなムービーを作るための敷居をぐっと下げてくれたと思う。 実際、すでにかなりの数のネタ動画が投稿されてて楽しい。

% [game] OG 外伝日記、小ネタ

そういえばトウマがちょい役で出てて笑った。 あと、OGs の 2.5 でもそうだったけど、カオル・トオミネ博士の話とかも出てたり、スパロボ厨をニヤリとさせるネタがいろいろ仕込まれてて楽しかった。


2008-01-05 [長年日記]

% [雑談] 年が明けて

ゲームやったり、積んでた本読んだり、酒飲んだりと順調に堕落した生活を送っとります。 つーか、そろそろリハビリに入らんとな(苦笑


2008-01-07 [長年日記]

% [雑談][REST] 『RESTful Web サービス』を買ってきた

わしの REST に対する知識というのは、定番である REST 入門のページを読んだ程度なんだけど、その思想というか根本にある考え方は、わしの愛する関数型言語やメッセージパッシング方式の並行・分散プログラミングに通ずるものがある気がする。 まあ、そこら辺は漠然としたイメージなので、その辺も含めてちゃんと勉強したいなあと思ったわけ。

% [clip][Rails][Erubis] How to get Erubis to work with edgerails (i.e., fixing undefined method `template_requires_setup?')

Rails 2.0.2 で Erubis を使う方法。 このエントリのとおりにすれば、とりあえず使えるようになる。 プリプロセス機能が使えるのかどうかはわかんないけど。

ちなみにこの例で使われてる EscapedEruby というのは、評価した結果が自動的に HTML エスケープされるものらしい。 元々 Erubis::Eruby には、<%== hoge %> みたいにイコール二つ書くとエスケープしてくれる機能があって、EscapedEruby ではその機能がデフォルトで、逆にイコール二つだとエスケープしないようになっているらしい。 どっちが便利かは使い方にもよると思うけど、個人的には通常の挙動の方が普通な気がする。 でも、純粋にテンプレート的な使い方なら EscapedEruby の方が良いのかなあ。 それで困る場合はプログラマが気を付けてイコール二つ書く、という方がチームとして開発するなら安全なのかも。 うーん、難しいところだ。

% [Rails][Erubis] Rails 2.0.2 で Erubis のプリプロセス機能を使う

Rails + Erubis のプリプロセス機能は、Erubis の erubis/helpers/rails_helper.rb で定義されていて、さっきのやり方ではそれを require してないので、当然のようにこの機能は使えないのであった。 とはいえ、使えないと魅力半減て気がしなくもないので、使えるようにクイックハック。

% cat config/initializers/erubis.rb
class ActionView::Base
  private
  def convert_template_into_ruby_code
    # dummy
  end

  def delegate_compile_with_preprocessing(handler, template)
    if ::Erubis::Helpers::RailsHelper.preprocessing
      preprocessor = ::Erubis::Helpers::RailsHelper::PreprocessingEruby.new(template)
      template = self.instance_eval(preprocessor.src)
      if ::Erubis::Helpers::RailsHelper.show_src
        logger.debug "** Erubis: preprocessed==<<'END'\n#{template}END\n"
      end
    end
    delegate_compile_without_preprocessing(handler, template)
  end
  alias_method_chain :delegate_compile, :preprocessing
end

require 'erubis'
require 'erubis/helpers/rails_helper'

module ActionView
  module TemplateHandlers
    class Erubis < TemplateHandler
      def compile(template)
        klass      = ::Erubis::Helpers::RailsHelper.engine_class
        properties = ::Erubis::Helpers::RailsHelper.init_properties
        klass.new(template, properties).src
      end
    end
  end
end
ActionView::Base.register_default_template_handler :erb, ActionView::TemplateHandlers::Erubis
ActionView::Base.register_template_handler :rhtml, ActionView::TemplateHandlers::Erubis

# settings
Erubis::Helpers::RailsHelper.engine_class = Erubis::FastEruby
Erubis::Helpers::RailsHelper.show_src = true
Erubis::Helpers::RailsHelper.preprocessing = true

例のものをベースに、Erubis::Helpers::RailsHelper に対する設定が生かされるようにしてみた。 ちなみに、あらかじめ convert_template_into_ruby_code を定義してあるのは、rails_helper が create_template_source を上書きしちゃわないようにするための仕掛け。 元々の rails_helper に挙動を合わせるなら、ほんとは compile メソッドのところで src をログに吐くべきなんだけど、この場所から logger を取得する綺麗な方法が思い付かなかったので省いた。

% [clip] 忙しい人のための 「復活のイデオン」(Full ver.)(sm1958881)

なんという出オチw

本日のツッコミ(全6件) [ツッコミを入れる]

Before...

% jijixi [あー、そゆことかー(苦笑 ま、そっちの理由もまさに「問題をシンプルにしやすい」からじゃないかと思いますね。 問題..]

% きむら(K) [なるほど。納得しましたが、あまり愛を感じませんでした #とかゆってみる :) ]

% jijixi [> あまり愛を感じませんでした そないなこと言われても(苦笑 まあ、なんちゅーか、言葉で説明できる愛なんて偽..]


2008-01-08 [長年日記]

% [Rails] Rails 1.x で動いていたプロジェクトを 2.x に移行しようとする際のちょっとした罠

セッション情報の保存方法が変わったことが、地味に効いてたりして、いろいろ面倒が。

2.x からセッション情報はクッキーに保存するのがデフォルトになった。 もし既存のプロジェクトがクッキーが使えないクライアントを相手にするものであるなら、ApplicationController の定義辺りで以下のように記述しないとハマるはず。

self.session_store = :p_store

もちろん、すでに別の方式を使うために session_store の設定をしていたなら関係ないけども。

クッキーが使えるのであれば、デフォルトの動作が推奨されるのでそのまま使うべきだと思うが、その場合でもクッキー情報の暗号化のためにシークレットフレーズを設定する必要がある。 2.x で新規にプロジェクトを作成すると、その辺勝手に設定してくれるんだけど、1.x から移行する場合には自分で書かんといかんらしい。 具体的には config/environment.rb の Rails::Initializer.run のブロック内に、

config.action_controller.session = {
  :session_key => 'myapp_session',
  :secret      => '3cb69a94bb1e4eb4cc4a... (長いので省略)'
}

みたいなのを書く。 :secret には 30 文字以上のランダムな文字列を入れなくてはいけない。 rake secret を実行するとこいつに適した文字列を出力してくれるので、それを利用すると良い。


2008-01-10 [長年日記]

% [Smalltalk] GNU Smalltalk 3.0 を入れてみた

なんか良い感じがする。 そもそも GUI を切り離した時点で本来の Smalltalk とは別のものになってるわけだから、こういう変化はもっと早く行われていても良かったのかも。

st> foo := 'hogefuga'
'hogefuga'
st> foo printNl
'hogefuga'
'hogefuga'

式の評価に ! が必要無くなった。 あと、宣言が無くてもいきなり変数を使えるようになってる。 詳細は不明だけど、とりあえずシステム辞書に自動的に登録してる… とかではないっぽい。

st> Namespace current at:#foo
Object: SystemDictionary new: 512 "<0x1001818>" error: Invalid argument #foo: key not found
(以下略)

じゃあ、Ruby みたいにトップレベルが Object のインスタンスで、そのスコープのローカル変数ってことなのかな?と思ったが、

st> self
nil

なにか違うっぽい。 まあ良いや。

劇的に変わったのはクラス定義の文法。 今まではなんつーか大層めんどうだったんだが、3.0 ではかなりすっきりした書き方ができるようになっている。

st> Object subclass: Foo [
st>   hello [ 'Hello' printNl ]
st> ]

st> Foo new hello
'Hello'
a Foo

スクリプト言語として使わせたいなら、こういう変更は正しい。 少なくともツールのアシスト無しで subclass:instanceVariableNames:classVariableNames:poolDictionaries:category: なんつー長ったらしいメッセージは使ってらんない(苦笑

しばらく Smalltalk からは遠ざかってたけど、ちょっとモチベーションが上がってきた。 こういう要素でモチベーションが上がるってのもオールドタイプっぽくて、某氏とかにはちょっと申し訳ないんだけど(苦笑

% [雑談][Smalltalk] LargeInteger の問題はどうなったかなー

と思って試してみたが、あの時と同じ結果に。 そもそも問題と認識されてないのかもなあ。


2008-01-11 [長年日記]

% [雑談][Ruby] ruby-list での Binary 云々の話を見てて思う

とりとめもなく、つぶやいてみたり。

ファイル IO から得られるデータが String である以上、その String が確実にバイナリデータであるとマークする方法が組み込まれてた方が便利だと思うんだけどなあ。 どうも議論が噛み合ってないというか、バイナリとして扱いたいって言ってるのに正規表現がどうのとかって話になるのはおかしい気がする。

String を "文字列" ではなく単なる byte array として使いたいシチュエーションって普通にあると思うんだけど、そういう使い方はするなということなのかね。 それならそれで、Binary クラスみたいのがあっても良いよなあ。 かといって、自分でそんなもん書くのはちょっとバカバカしい気も。

バイナリだということの明示のために encoding を使うのがおかしいというんであれば、別に他の手段でも良いんだろうけど、バイナリであるということは全て "文字" ではないということなので、encoding はむしろ nil になるんだろうか。 で、encoding が nil の場合には "文字" が意味を持ってないとできない操作はガンガン例外上げれば良いんじゃない?

バイナリには ASCII-8BIT を使えってのは、少なくとも現在の実装の状況だと間違ってると思うな。 いくらバイナリのつもりでそれを使ってたとしても、たまたまデータが ASCII の範囲しか出てこないものだったりしたら、何事もなく他の文字列と連結できちゃったりするんだよ? バイナリはバイナリ以外とくっついてもらっちゃ困るでしょ。 なのに、うっかり間違って文字列とくっつけちゃって、とんでもないところでエラーになるとかいうのはせつない。

…… とか、つらつらと書いてみたけど、結局わしとしてはなんというか、わりとどうでも良い(何

いや正直、バイナリとして扱おうとする何かが、うっかり文字列と混じらないような仕組みはあったら便利だと思う。 特に使い捨てのスクリプトを書くときなんかに。 でも無ければ無いで、それなりのものを書けば良いわけで、まあね。

本日のツッコミ(全2件) [ツッコミを入れる]

% Zapper [そいやASUSのEee PC 4G-X予約販売始まってるぞぃ コンソール端末にはもってこいかもしれん 価格は何処..]

% jijixi [すごく気にはなるんだけど、ちょっと贅沢品かなあ(苦笑 その前に母艦を何とかしないと。]


2008-01-15 [長年日記]

% [Mac] MacBook Air

欲しいけど無理。SSD とかさらに無理。

なんか MURAMASA を思い出した。 欲しかったんだよな、アレ。

本日のツッコミ(全2件) [ツッコミを入れる]

% cooldaemon [とうとう来ましたね! 早速、嫁に交渉です。(SSD は、どうだろうなぁ…) 2年待った甲斐がありました(TT]

% jijixi [健闘を祈る :-)]


2008-01-16 [長年日記]

% [雑談] 仕事関係でありえないミスをして凹み中……

詳細は書かないが……

敗因は、直前に sudo を使ってたせいで、間違ったコマンド (sudo 使用) がパス無しでそのまま実行されてしまったことと、その後パニくって Ctrl+D を押してしまい ssh のセッションが切れてしまったこと。

やっぱ ignoreeof をオフにしちゃダメかなあ…… ああーー、こんなバカな失敗なのに、影響の大きさと言ったらもう。 何年 FreeBSD 使ってるんだよ、わしは...orz

すいません。ほんとすいません。

% [雑談] あまり傷が拡がらずに収拾できたようで一安心

とはいえ、関係各位には余計な手間をかけさせてしまい、もうしわけありませんでした。

とりあえず、焦って Ctrl+D を押しちゃうようなアホなわしのために、.zlogin には set -o ignoreeof と書くことにした次第。 ssh のセッションさえ生きててくれれば、こんなに大事にはならなかったんだよね。

うっかり思ってもみないことをやってしまって「あ、ヤバイ」っていう精神状態の時って、普段ならやらないようなミスをやっちゃうもんだよね。 今回だって、冷静に考えればログアウトしちゃいけないのは経験上わかりきってたわけで、なのにそれをやっちゃったというのが、ヒューマンエラーの恐ろしさなんじゃないかな。

やっぱり、無駄に焦っちゃわないように精神鍛錬するのも大事だろうけど、それ以上に、焦って操作しても失敗しにくい仕組みを用意する方が確実だと思う。 以前からそう思ってはいたけど、実際にそういう場面に遭遇すると実感が強まるね。 安全対策はしっかりやらないと。


2008-01-19 [長年日記]

% [clip][FreeBSD] FreeBSD 6.3-RELEASE Announcement

出たようだ。

FreeBSD 6.3-RELEASE is dedicated to the memory of Dr. Jun-ichiro Hagino, known throughout the Internet community as itojun, for his visionary work on the IPv6 protocol and his many other contributions to the Internet and BSD communities.

萩野純一郎氏に捧ぐ。

今回から公式に freebsd-update によるアップグレード方法が提供されているようで、このアナウンスの FreeBSD Update の項に説明が書いてある。 普段から freebsd-update で済ませてる場合は、この方法が楽で良いだろう。

さて、どうしよう。 ちょうど良いから週末中にアップグレードしちゃうって手もあるが……

% [clip][game] お前がラスボスじゃないのかよ (日刊スレッドガイド)

最後w

あれは斬新だったなあ。 仕掛けに気付いたときには「なんじゃそりゃ」って叫んだもの。


2008-01-20 [長年日記]

% [雑談] 目が覚めると、いきなり具合悪かった

なにこの突然の風邪。 昨日寝るまで全くそんな兆候無かったのに...orz

はぁ…… しかたないから、今日はおとなしく寝てるか。 なんだかなあ……

本日のツッコミ(全2件) [ツッコミを入れる]

% drkazu [そういう時は、寝て休んで、元気になってください♪]

% jijixi [どうもです。 ほんと睡眠に勝る薬は無いですよね :-) 眠くないのに寝てなきゃならないのは、結構苦痛ですけど……]


2008-01-21 [長年日記]

% [雑談] 熱は下がってきたが代わりに腹に来た

風邪二日目。 つーか、一晩ゆっくり寝ても治らない風邪なんて何年ぶりだろう。 ぐずぐずとパッとしない状態が何日も続くってのはあったけど、ここまではっきり活動不能な状態が二日以上続くのは、かなり久しぶりな気が。

…… 歳か orz

ともあれ、この調子で行けば、明日は大丈夫だろう。 腹の調子は心配だけど、熱さえ無ければ頭脳労働に関してはなんとかなるし。

本日のツッコミ(全2件) [ツッコミを入れる]

% しばた [「もしかして 腸炎」 お大事に〜]

% jijixi [う……できればこのまま普通に治ってほしいなあ……]


2008-01-22 [長年日記]

% [雑談] ただいま低速運転中

やはり腹の調子は悪いまま。 ただまあ、この程度の腹具合は (困ったことに) わりとよくあるので、病院に行く踏ん切りは付かない。

っていうかわし、医者ってやつが嫌いでねぇ…… もちろん、良い医者もいるってのは頭ではわかってるんだけど、今までにあまりにも良い思い出が無さすぎて、どうしても精神的に身構えてしまうんだよな。

熱は下がって頭のぼんやりしたのは無くなったけど、腹の調子のせいでイマイチ集中できない。 本格稼動は明日以降に持ち越しか……


2008-01-23 [長年日記]

% [雑談] Dokkoida - Complete Box Set

先月うっかりポチっとしてたのが届いた。 発送が 12/31 で、到着予定が 1/18 とかになってたんだけど、届いたのは今日。 まあ、配送予定はあんまりあてにならんということか。

値段は一番安い送料込みで $61.97、レートが 113.346 円てことでカードの請求額は 7,024 円とか。 安っ!! これじゃほんとに、リージョン2のアニメ DVD なんか買う気にならんね。 いきなりこの値段で売れとは言わんけど、ある程度の期間が過ぎた作品はこれくらいで売ってくれても良いと思うよ。

本日のツッコミ(全3件) [ツッコミを入れる]

% きむら(K) [買ったんですかッ!?w 売り手の論理としては、日本で資金を回収できているんで 北米では安く売れるってらしいですけ..]

% jijixi [日本のみんな、ありがとう…… と感謝しながら、日本に住んでる日本人のわしが、これからも北米版 DVD を買いますよ..]

% きむら(K) [でもその安いはずの北米版ですら買わない(でネットからごにょごにょする)向こうの連中がいたりするんですよねー やれや..]


2008-01-24 [長年日記]

% [雑談] 体調とか

風邪 (あるいは腸炎だったのかも知れないが) の方はほぼ完治したと思って良さそう。 なんだけど、さすがに発熱で二日寝込み、間髪入れずにひどい下痢が二日ほど続いた関係上、なんつーか栄養が足りてない感じ。 要するにえらくダルい。

まあ、四日間ろくなもの食べてない上に、元々あまり脂肪を蓄積してる方ではないんで仕方ないといえば仕方ない。 ともあれ、物は食えるようになったし、ちゃんとメシ食えば順当に回復するだろう。

% [clip][Rails] Rails 2.0でデバッグをする新しいやり方 (Hello, world! - s21g)

しばらく前に読んだまま放置してたんだけど、今日初めて試してみた。 これはかなり便利かもしれない。 ./script/console だとなかなか実際と同じ状態を作りにくいけど、これなら適当なところにブレークポイントを仕掛けておくだけで、簡単にその状態を irb で覗くことができる。 状況によってはすごい威力を発揮しそう。

ちなみに ruby-debug がインストールされていないと、

You need to install ruby-debug to run the server in debugging mode. With gems, use 'gem install ruby-debug'

と注意されるので、言うこと聞いてインストールしよう。

% [Rails] 2.0.2 で mobile on rails の session id を URI にくっつける機能が動かない件で四苦八苦した話

いくつかの話があって、まあこんな感じ。

  1. セッションキーがなぜか設定したものじゃなく (デフォルトの) '_session_id' になってしまう
  2. SessionFixationAttempt という例外が上がる
  3. セッション ID が URI に含まれていても、その ID でセッションが復元されない
  4. RESTful な URI ヘルパ (edit_hoge_path みたいなの) を使ってるとセッション ID が URI に付加されない

1 はセッションのオプションに関して内部での扱いが変わったせいで、mobile_on_rails の lib/mobile/controller.rb の rewrite_options_with_mobile や view.rb の form_tag_with_session_id で、

session_key = controller.class.read_inheritable_attribute("session_options")[0][:session_key] || '_session_id'

みたいになってるところを、

session_key = request.send(:session_options_with_string_keys)['session_key'] rescue nil
session_key ||= '_session_id'

こんな感じで直すと良い。 一度 rescue してるのは TestRequest クラスがこのメソッドを持ってないせいでテストがエラーになることへの投げやりな対処。

(追記 1/25)

jpmobile のコードを読んで、セッションキーを動的に変更することなんてあるわけないので、これで良いのか…… と納得したので以下のように修正した。

session_key = request.session_options[:session_key] || '_session_id

(/追記)

2 の話は session fixation 対策でパラメータにセッションキーが含まれることがデフォルトでは禁止になったことに起因する問題。 その辺の処理は action_controller/cgi_process.rb の 115 行目くらいにあるけど、そこから調べると結局セッションオプションで :cookie_only が偽の場合にはこのチェックが行われないことがわかる。 ので、対処法としては config/environment.rb の Initializer ブロック内に、

config.action_controller.session = {
  :cookie_only => false
}

みたいに書いとけばよろしい。

3 番目については masuidrive さんの記事のコードを config/initializer にでも突っ込んでおけばオッケー。 ごちそうさまです。

で、4 番目が一番悩んだところで、ここまでの対処をしていれば、普通に url_for が使われるようなシチュエーションでは普通に URI にセッション ID が含まれるようになっていておかしくないんだけど、なぜか RESTful なヘルパを使っているところだけうまくいかない。 これを調べるのが一番苦労した。 苦労したわりには対処法は単純で、一行書くだけである。 でも悔しいから、まだ答は書かない。

さて、件のヘルパが定義される場所は、action_controller/routing.rb の 1193 行目にある define_url_helper というメソッドである。 ここを見付けるだけで半日かかった。 で、見付けてから、grep eval ってやれば良かったと気付いた。 method_missing でやってないのがわかった時点で eval してるのは確実なんだし、なんてアホなわし。 でもすげぇカリカリ来てたから、冷静さが足りてなかったょ(トホホ

ここに書かれているコードを読むかぎり、普通に url_for を使っているように見える。 それまでにさんざん遠回りをしたおかげもあって url_for を使っていれば想定通りの結果になるはずなのは判明している。 てことはどうやら、定義の最初の行にある generate_optimisation_block とやらが怪しいじゃないか。

ではこの generate_optimisation_block というメソッドはどこに存在するかというと、action_controller/routing_optimisation.rb である。 ここで行なわれていることは完全に把握してないんだけど、要するに hoge_path(n) の実装として url_for(:controller => hoges, :action => 'show', :id => n) みたいなことをやるのはバカバカしいので "/hoge/#{n}" みたいなのを返して抜けるようにしちゃうよ…… てなことだ。たぶん。 で、そうするとその場合には url_for は実行されないので、当然それによって本来実行されるはずの rewrite_options_with_mobile も実行されないから、出力される URI にセッション ID が付加されないってことになる。

結局、この事態に対処するにはとりあえず、この最適化機能 (よくできてると思うけど、この件に限っては邪魔) をオフにすれば良いということになる。 で、generate_optimisation_block の実装を見ればわかるように、引数 route のメソッド optimise? が偽ならこの機能は作用しない。 ここで route として渡されるのは ActionController::Routing::Route クラスで、実装は routing.rb の 367 行目。 @optimise と ActionController::Base.optimise_named_routes が共に真の場合に真になる。 てことは、このどちらかを偽に設定すれば良い。

ざっと見た感じ @optimise を変更する API は無いようなので、optimise_named_routes をいじることにする。 したんだが、最初 ApplicationController の定義内に、

self.optimise_named_routes = false

と書いて失敗した。 optimise_named_routes は cattr_accessor で定義されているので、これでもちゃんと ActionController::Base.optimise_named_routes が false を返すようにはなるんだが、どうやら false にするタイミングがここでは遅すぎるらしい。 で、結局悩んだ結果、config/route.rb の一行目に、

ActionController::Base.optimise_named_routes = false

と書くことにした。 なんか微妙に美しくない気はするが、少なくとも効果は確実で、これでようやく以前と同様に機能するようになったとさ。

あー、なんかもー、すごく疲れた。精神的に。 eval 嫌い。


2008-01-28 [長年日記]

% [雑談] 気付けばまたしばらく日記を書いていなかった

別に体調悪くて死んでたわけじゃなく、単に書くことが無かっただけ。 週末は、DVD 見たり近所の閉店セールで 1,980 円だった FF12 International をやったり、まったり過した。

DVD はサイレントヒルの映画とか。 3,000 円出せば買えるんだからありがたいもんだ。 監督がゲーム版のファンだってだけあって、かなり良い出来。 最後のとこの終わり方とかは秀逸。 やっぱ単純なハッピーエンドじゃホラーとは呼べんよな。

メイキングを見てびっくりしたんだけど、CG だとばっかり思ってた街の風景は、実はほんとの街を利用して作ったセットらしい。 どんだけ金かけてんだよ(笑

FF12 は「ストーリーは gdgd だけど戦闘は楽しい」みたいな評判をよく目にしていたので、まあ安くなったら買ってみるか…… と思ってたんだが、思いがけず投げ売り価格の新品を見つけたのでゲット。 ガンビットが使えるようになるまではひたすらかったるくて、ちょっと後悔しかけたけど、使えるようになってからはたしかに結構楽しい。 まだまだやれることが少なくて設定の幅が狭いけど、もう少し成長していろいろやれるようになると盛り上がりそうだ。

他にも 12 では今までの FF で不満だった部分がいろいろ改良されてて好感度は高いね。 触れるものに対してアイコンが出るとか、ムービーの途中でポーズできる&スキップできるとか。 街が無駄に広くてうんざりする件も、ある程度話が進むとショートカットできるようになるし、いろいろと親切にできてる。 いちいち描き込みが細かすぎて目が疲れるってのはあるけど、そこら辺はリアルっぽさを追求してるゲームである以上我慢するしかないのかな。


2008-01-30 [長年日記]

% [Arc] Arc がとうとうリリースされた模様

さっそく試すぜ〜と思ったけど、コンパイルに MzScheme が必要だっていうんで、めんどくさくなってやめた。 とりあえずチュートリアルでも眺めてみる。 …… どう見ても LISP です。ほんとうにありがとうございました。 空リストが nil ってことはどっちかというと Common Lisp 系か? 真偽値は t と nil みたいなのでそれっぽい。

で、つらつらと流し読みしていくと関数定義のところで独自色。 define でも defun でもなく def になってる。 まあ短かいのは良いことですよね。 でも関数は良いとして、変数の束縛が = だってのはどういう了見だ?キモいよ。

arc> (= foo 13)
13
arc> foo
13

関数の定義はこう↓で、

arc> (def average (x y) 
       (/ (+ x y) 2))
#<procedure: average>

これは、

arc> (= average (fn (x y) (/ (+ x y) 2)))
#<procedure: average>

これと同じ意味だそうだ。 fn は lambda ね。 なんか ML っぽいね。 ってことは、変数と関数で名前空間が分かれてはいないのかな。 マクロ定義は mac だそうな。さすがにそれはどうよ(苦笑

大雑把に言って、基本は CL と Scheme のごった煮で、一般的な組み込み手続きや組み込みマクロの名前や形式を過去のしがらみに捉われずに再構築したって感じかな。 実際 Scheme 使ってても define とか lambda と長ぇとか思うし、let とか cond とかカッコ多すぎとか思うんで、その辺を短かくすっきりさせてる辺り結構良い感じ。 近い内にインストールして実際にいじってみよう。

本日のツッコミ(全8件) [ツッコミを入れる]

Before...

% jijixi [「文字コードの問題は関わり始めると底無しだからやってらんないし、オラ知らね。」みたいな感じ? 気持ちはわからんでも..]

% takkanm [mzschemeがportでいれるだけの簡単なお仕事だったので、うごかしてみましたが、インストールといっている割には..]

% jijixi [たしかにインストールのページに、 Type mzscheme -m -f as.scm and you sho..]


2008-01-31 [長年日記]

% [雑談][Scheme][Mac] MzScheme を入れようと思ったけどエラーでダメだった

なんだろなー

./if_mach POWERPC DARWIN as  -o mach_dep.o ./powerpc_darwin_mach_dep.s
^^^^Starting command^^^^
./powerpc_darwin_mach_dep.s:18:Bad Absolute Expression, absolute 0 assumed.
./powerpc_darwin_mach_dep.s:79:Bad Absolute Expression, absolute 0 assumed.
./powerpc_darwin_mach_dep.s:88:Invalid mnemonic 'lgu'
./powerpc_darwin_mach_dep.s:95:Unknown pseudo-op: .g_long
./powerpc_darwin_mach_dep.s:95:Rest of line ignored. 1st junk character valued 100 (d).
make[6]: *** [mach_dep.o] Error 1
make[5]: *** [g-c] Error 2
make[4]: *** [common] Error 2
make[3]: *** [cgc] Error 2
make[2]: *** [3m] Error 2
make[1]: *** [3m] Error 2
make: *** [all] Error 2

% [Arc][Scheme][Mac] 仕方ないのでバイナリ配布のものを入れてみたが

mzscheme 自体は一応動くものの、arc が…

% mzscheme -m -f as.scm
compile: bad syntax; function application is not allowed, because no #%app syntax transformer is bound in: (quote nil)

 === context ===
/Volumes/Sub/tmp/jijixi/build/arc0/ac.scm:915:0: aload1

なんだこりゃ……

% [clip][game] ガスト、「リーズのアトリエ」修正版を制作。無償交換 (ITmedia +D Games)

修正版が出回り始めたら買おうかなあ。

しかし、不具合の度合いがひどすぎるせいもあるのかもしれないが、無償交換は偉いね。 一時的には手痛い損失だろうけど、長い目で見れば正しい対応だと思う。

% [clip][game] 一般人がクリアを諦めてしまうゲームの詰まりポイント (日刊スレッドガイド)

>>45 がありすぎると思った。 >>58 も結構あると思う。

>>191 は涙無くして語れないな。 ディスク 1 枚目はほんとおもしろかったのに。 2 枚目の絶望感は忘れられない。 これがトラウマになって『ゼノ〜』って名前のゲームは手に取る気にもならないし。 スクウェアが嫌いになった原因の 50% くらいは、こいつにある気がしてならない。

% [Arc][Scheme][Mac] MzScheme のバージョンを v352 にしたら動いた

hchbaw さんから「推奨バージョン使えば?」(意訳) とツッコミをもらったので試してみたら、あっさり動いた。 hchbaw さん、助言感謝です。 しかしこれは MzScheme がよほどドラスティックな変更を入れているのか、Arc がよほど怪しげなテクニックを使って実装されているのかどっちなんだ(苦笑

それにしても、わしのように Arc のために MzScheme を入れるみたいな人はまだしも、普段から MzScheme を使ってるような人が Arc を試してみようというときに、「最新版では動かないから古いバージョン用意してね」とか言われたら噴飯物じゃないのかね。

ところでこれ、せっかく MzScheme 使ってるんなら、コンパイルして実行ファイルにしちゃったりできないのかな。 …… と思って今 mzc のマニュアルを斜め読みして、

% mzc --exe arc as.scm

とかやってみたけど、

mzc version 352, Copyright (c) 2004-2006 PLT Scheme Inc.
load-handler: expected a `module' declaration for `as' in #<path:/Volumes/Sub/tmp/jijixi/build/arc0/as.scm>, but found something else

 === context ===
/usr/local/mzscheme/collects/syntax/moddep.ss:39:2: check-module-form
/usr/local/mzscheme/collects/syntax/moddep.ss:106:7
/usr/local/mzscheme/collects/syntax/moddep.ss:167:22
/usr/local/mzscheme/collects/compiler/embed-unit.ss:334:6: get-code
/usr/local/mzscheme/collects/compiler/embed-unit.ss:490:6: write-module-bundle
body
loop

なんかダメっぽい。や、よくわかってないんだけども。

本日のツッコミ(全2件) [ツッコミを入れる]

% hchbaw [mzscheme のバージョンではないでしょうか?> ac.scm:915 # パッチも見た気もしますが、 ..]

% jijixi [あー、その可能性は考えたんですけどめんくさくて試してませんでした。 後でやってみようと思います。]


トップ 最新 追記

日記ってのは本来、自分で読み返すためにあるもんだよなあ……
もしくは有名人になったら死後に本になったりとかか?

RSS はこちら

jijixi at azito.com