13F

備忘録

そもそもMaven自体がいまいちだよね。。

2008-04-29 18:48:45 | Java
これだから世の中にはiso-8859-1しかないと思ってる奴らは...

Mavenがファイルを読むときのデフォルトのエンコーディングが、プラットフォームデフォルトから、ISO-8859-1になりそうだという話。これはひどい。

ただ、以前から開発環境がWindows(デフォルトWindows-31J)+ソース類はすべてUTF-8に統一しているので、結局全部明示的に記載ずみ。個人的には影響はない。

rails 2.0.2でhttp_authenticationがうまく動かない

2008-04-29 03:04:51 | Ruby
ふつうに
ruby script/plugin install http_authentication
ruby script/generate scaffold hoge
rake db:migrate
して、HogeControllerに
before_filter :authenticate
def authenticate
  authenticate_or_request_with_http_basic do |user, pass|
    true
  end
end
してるだけなんだけど、「protected method `render' called for #<HogeController...」みたいなNoMethodErrorが出て動かない。Google検索では同じような報告が数件あるものの原因はわかっていない。 関係する部分を簡略化すると下のような構造になっているようなんだけど、これだけ見ると逆になんで動く人がいるのか不思議だ。何か勘違いしているんだろうか?
module PluginModule
  extend self

  module ControllerMethods
    def authenticate
      PluginModule.authentication_request(self)
    end
  end

  # このメソッドも PluginModule も HogeController とは何の関係もない
  # ので、protected メソッドが呼べるとは思えない…
  def authentication_request(controller)
    controller.render
  end
end

class HogeController < ApplicationController
  def action
    authenticate
  end

protected
  def render
    puts "ok!"
  end
end

# プラグインの init.rb でやってること
ApplicationController.send :include, PluginModule::ControllerMethods

# ブラウザからなんか呼び出してみたときに行われること?
# protected method (render) へのアクセス違反が発生
HogeController.new.action
HogeControllerに public :render とか書いちゃえばもちろん動くんだけど問題ないんだろうか?

(追記)解決した。1.2.6 だと動くので、1.2.6 と 2.0.2 の差分を眺めていたら actionpack/lib/action_controller.rb のところでようやく気がついた。2.0 からはHTTP認証は組み込みになっていてプラグインは要らず、入れると逆におかしくなるってことのようだ。ちゃんと変更点は把握しないと。。

上の構造についても、controller.render のように直接呼び出すのではなく controller.send :render に変わっていてようやく納得・安心できた(個人的に、調べたときに何で動くのかわからないと怖くて使えない……)。ただ、1.2.6 でなんでうまくいくのかは謎のまま。

第5回東方シリーズ人気投票(音楽部門)

2008-02-11 04:28:56 | Weblog
第5回東方シリーズ人気投票ということで投票してみた。
  1. シンデレラケージ
  2. フォールオブフォール
  3. 天空の花の都
  4. 無何有の郷
  5. 神々が恋した幻想郷
「夜雀の歌声」とか「ポイズンボディ」とか「ラクトガール」とかも好きだけど諦め。「無何有の郷」は最初にやった妖々夢のオープニングなので印象が強く、これが流れるとなんとなくわくわくしてくる。

9月くらいから紅魔郷以降の全ゲームの音楽とCDをiPodに入れて一日二時間くらい延々聞いているんだけど、全く飽きない。ほんと良いものをありがとうという感じです。

Apple製品の使いやすさ

2008-02-09 10:26:13 | Weblog
MacのソフトウェアアップデートでQuickTimeが出ていたので何気なく更新したら、完了後にモーダルダイアログで再起動かシステム終了かを選ばせられてびっくり。当然、ほかのOSだったら無視して作業を続けるオプションがあるはずだが……。

ほかにもマウスボタンが1つしかないとか、設定ダイアログとかでキャンセル(変更内容破棄)がないとかも気に入らない点だ。さっきの話も含めて、たぶんパソコンに慣れていない人が混乱しないよう選択肢を最小限にするという思想があるんだろうが、私には使いづらい。

最近買ったiPod nanoはイヤホンを差したままだとDockコネクタが外せないという微妙な仕様だったし、Apple製品って細かいところは雑な印象。

Ruby認定証

2008-02-08 23:16:57 | Ruby
Ruby Associationの資格試験を去年の12月1日に受けたんだけど、一昨日ようやく認定証が届いた。メールで一言だけの通知を受けてから一ヶ月以上音沙汰が無かったので、合格はメール発送のミスか何かなんじゃないかと半分本気で思ってたよ。

認定証に使っているらしい出雲民芸紙に時間がかかったのだろうか。

iTunes Music Storeに登録せんとす

2008-01-27 14:37:01 | Weblog
iTunes Music Storeに登録しようとしたら、クレジットカード番号を入れるところで「クレジットカードでのお手続きは一時的に利用停止となっています。しばらくしてからもう一度お試しください」とか言われて登録できない。サービスの一部が落ちてるってこと? 時間もないし面倒だからやめとこう。

というのが一週間ほど前で、今日また急に聞きたい曲があったので最チャレンジしてみた。でもやっぱり同じ結果。一応検索するとYahoo!知恵袋に何件か同様の質問があったが投げやりな回答しかない。Appleのサイトにも障害情報ないし何これ?

普通に考えて、登録サービスがこんなに長い間使えないなんてことは考えづらいのでもしかしたらクライアントの問題なのかと思い始める。登録しようとしたマシンは新しく買ったMacBook+OS X (10.4)で、iTunesは最新の7.6。ほぼApple様の理想環境といえるがこれでダメなんだろうか?

よしAppleへ問い合わせだ! でもその前に、一応ダメもとで……ということで別のWindows+iTunes 7.5環境で試したら、すんなり登録できてしまった。AppleはMacを使ってほしくないのか、それともMacで登録する人が問題にならないほど少ないのかと思わず苦笑。

いやほかの原因の可能性の方が高いとは思うけど……。真相は不明。

Mac OS X で FLVからMP3を抜き出す

2008-01-25 01:46:35 | Weblog
FLVファイルをMP3ファイルに変換したい。

WindowsだとFLV Extractという便利なソフトがあるんだけど、Macだとどうやるんだかわからないのでちょっと調べた。とりあえず
$ sudo port install ffmpeg
$ ffmpeg -i FLVファイル名 -acodec copy 出力ファイル名.mp3
がいちばん簡単なんだろうか。

ffmpegのオプションはよくわからない。とりあえず最低限って感じ?

jQuery Date Pickerを使おうとする

2007-12-24 22:57:04 | Web
HTMLフォーム上でカレンダーによる日付入力が必要になったので、いまは jQuery をメインにしようと計画していることだし、jQuery Date Picker を使おうとしてみる。

問題1 - 週が月曜からスタートしている

date.js のあとで、
<script type="text/javascript">
Date.firstDayOfWeek = 0;
</script>
とやればいいらしい。

問題2 - いろんな部分が英語

これも date.js で定義しているので、上書きすればいい。
<script type="text/javascript">
Date.dayNames = ['日曜日', '月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日'];
Date.abbrDayNames = ['日', '月', '火', '水', '木', '金', '土'];
Date.monthNames = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'];
Date.abbrMonthNames = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'];
</script>

問題3 - 月表示部分の順序がおかしい

上のように日本語化しても、順序は "Dec 2007" の英語版と同じなので「12月 2007」のようになる。これは jquery.datePicker.js にハードコーディングなので、「2007年 12月」のようにしたければ直接変更するしかなさそう。

問題4 - 年月日が個別の入力欄の場合の使い方が難しい

正確には、サンプルがない。select要素で選ぶタイプならサンプルにあるのでこれを参考にすればなんとかなるけど、年月日のフィールドのidを固定で与えていて汎用的ではないし「開始日・終了日」みたいに複数つくる場合も面倒。この部分は自分でなんとかする必要がある。

そもそも、最初のサンプルからして謎で、
$(function()
{
  $('.date-pick').datePicker();
});
2つの入力欄のうちどっちに入るかはどうやって指定/判断するのだろう?(DOMツリーでいちばん近いところとか?)。これがわかれば、idを固定にしないように変形できるかもしれないのであとで調べてみる。


Ruby認定試験

2007-12-15 02:20:25 | Ruby
合格だそうで。

今まで、周囲に難易度を聞かれたときお茶を濁すような回答をしていたが、これで心置きなく「簡単だった」と言うことができる。落ちておいて言ってもただの馬鹿だしなあ。

若者の献血離れが深刻

2007-12-13 22:52:45 | Weblog
若者の献血離れ深刻 10年前の4割に減

山口県赤十字血液センターの話。で、この話に出てくる「センターのまとめ」た、献血離れを示す資料は?というと、案の定ウェブサイトに載っていないのだった(この手の話が出るときはいつもそう。ちょっと前の酒離れとか)。現状の厳しさを他人に訴えるときに、きちんとした資料を提供しない人が多いのは何故だろう?

http://y-hard.hp.infoseek.co.jp/chosa/cont/data2002b.htm#205
「山口県赤十字血液センタ の一般処遇品です。(中略)2002年 6月 1日(中略)1. 金券 500円分 (図書券) 」

http://www.47news.jp/CN/200211/CN2002112401000152.html
「血液の国内自給や売血禁止を盛り込んだ血液法の施行に伴い、日本赤十字社は今月から図書券など献血者への金券配布を廃止した。」2002年11月の記事。

http://www.ne.jp/asahi/home05/house/dat/kenketsu91.html
「図書券廃止により学生の多い松本ルームなどでは若いドナーが目立って減ってしまったそうです。」

グラフにすると2002~2003年あたりで激減してるから出せないんですなんてことはもちろんないとは信じておりますが。