1 | No Comments | 3月 8th, 2010
nginx.conf で、下記のような感じで、 large_client_header_buffers の 値を上げれば良いみたいです。
client_header_buffer_size 64k;
large_client_header_buffers 4 64k;
1 | No Comments | 3月 8th, 2010
nginx.conf で、下記のような感じで、 large_client_header_buffers の 値を上げれば良いみたいです。
client_header_buffer_size 64k;
large_client_header_buffers 4 64k;

1 | No Comments | 2月 23rd, 2010
Shop has_many Items という状況のとき、とある shop が持っている items を、下記のように取ることが出来ます。それに対して、条件を設定することも出来ます。
>> @shop.items => [Item id:21 shop_id: 1, Item id: 22, shop_id: 1, ....] >> @shop.item.find_all_by_category("CPU") => [Item id:23 shop_id: 1, Item id: 26, shop_id: 1, ....]
そこで、同様にとある Shop の Items を全部 delete_all にしようとしたのですが、DELETE されるのではなく、外部キーにNULLがセットされるという挙動になっています。
>> @shop.items.delete_all
とすると
Item UPDATE (3.0ms) UPDATE `items` SET shop_id = NULL WHERE (shop_id = 1 AND id IN (22,23,24,25,26))
のようになります。
Rails の API を見ると
# File vendor/rails/activerecord/lib/active_record/base.rb, line 897 897: def delete_all(conditions = nil) 898: sql = "DELETE FROM #{quoted_table_name} " 899: add_conditions!(sql, conditions, scope(:find)) 900: connection.delete(sql, "#{name} Delete all") 901: end
みたいになっているのですが、Dynamic Scopes はまた別のところで定義されているっぽいです。
>> @shop.items.destroy_all
としてみると、下記のように DELETE になりますが、SQL が発行されまくってるのでだめぽいです。そもそも destroy は、destroy をトリガーにしている各種処理をしてから DELETE が行われるので、そもそも delete とは意味合いが違うというので仕方ないです。
Item Destroy (3.0ms) DELETE FROM `items` WHERE WHERE id = 21 Item Destroy (3.0ms) DELETE FROM `items` WHERE WHERE id = 22 Item Destroy (3.0ms) DELETE FROM `items` WHERE WHERE id = 23
ふつうに Item.delete_all を呼ぶかなぁ


1 | No Comments | 1月 4th, 2010
宝野アリカ様の講演が聴きたくて、授業サボって慶應三田キャンパスに行ってきました(´∀`)
※4年くらい前のことです
19世紀における文学作品における「美女」についてです。
実態をなくした透明人間。
死んだ人の声。
愛する人の声を永遠に残そうと蓄音機を作った男。
もしくは、体の一部分。
結局、究極の美女というのは自分の意識の中でしか
生きられないという感じ?
宝野さんいわく、最近流行のメイドとかは全然NGだそうだ。
ロリータは軽々しくああいう風に男に仕えたりするようなものではない、と。
体のパーツだと、男性の手だけ愛したいらしいです。
あとは、アリプロの歌詞に交えつ色々と聖人造少女領域について語られてました(´∀`)
なんか、質問に答えるときに、人は死んだら終わりだから生きなさい。
とおっしゃられてましたよ。
死にたくなったら宝野さんにメールすれば喝を入れて下さると。
にしても、生で見た宝野さんは美しすぎでした(*´д`)
古来から、「人形」に美を求めてきた人間たちの欲望の根底には、
決して失われることのないという事実があるのではと思います。
遠くに行ってしまうこともない、形を失うこともない。
永遠にそのままの姿で近くにいてくれるもの。
美しいものは壊れやすいもの。
その壊れやすいものを手に入れることは、失う可能性をも手にすること。
それが美しければ美しいほど、悲しみは深く重いものになる。
講演の中でも、美女の死は一番人間の感動を誘う。
というお話があった。
古きから現代に至るまで、変わらずあるストーリー。
まぁ、死ぬのは美女じゃなきゃ意味がないとか、そんなことも言われていましたが(´・ω・`)
人は生まれた瞬間から死に向かっているとよく言います。
それは人の一生の儚さを端的に示した言葉です。
人は一瞬輝くために生まれてくる。
しかし、一瞬であるが故に得ることの出来る美しさもある。
人が永遠を手にしたら、「美」は失われてしまうかもしれない。
「時間」という概念がなかったら?
ということを考えたことがありますか?
明日の朝海を見に行く、昨日の夜星空を見た。
そういう当たり前の感覚がない世界。
つまり、自分が存在するリアルな今だけが認識できる限界なのですね。
過去や未来は認識されざる世界なのです。
その世界においては、人形は永遠を獲得したのではなく、重なり続ける現在に存在し続ける存在。
永遠という無限の彼方まで存在が見えるのではないという。
その中では、人形は人間と区別なく扱われているのではないかと思う。
結局のところ、人形は「美」を手にすることが出来るのか?
私は、手にすることが出来ると思います。
究極の美といくら言ったところで、それを超える美はいつか生まれるかもしれないわけです。
結局、「美」をどのように定義するかによるだけなのですが、
追及したところで手にすることの出来ないものだから、
それが完璧でない、また永遠でないために、「美」として認識される。
究極の美は、個々のイメージの中にしか存在出来ないもので、
限りある命しか持っていない自分が考えられるそれも、
失われる「美」であるといえる。
話は変わって、現代のヲタ文化と人造少女についての関係。
昔から人が愛してきた様々な人形やイメージといったものは、
アニメにおける「キャラ」「声優」の関係に似ていると。
蓄音機で、愛する人の声を録音して独り占めにした男。
同じく、写真で姿を残そうとした男。
今フランスでは、アニメの影響で日本語を勉強したい学生が増えているそうだ。
しかし、日本語を勉強する学校に行くと、
古典ばっか勉強させられるらしいですね(´∀`)
文学を読み解くことは、ヲタ文化を理解することにつながるのでは
という示唆でした。


1 | No Comments | 12月 14th, 2009
ようやく最近になって Twitter いいなとか思ってるんですが、毎日自炊してると食べたものを記録したくなって、Twitter から自動的に拾ってくるようなアプリを作ってみた。
食べたものログ(仮) で、@eat_log をフォローすると、フォローしかえされてそこから収集が始まる感じです。それと、よく食べるものを集計して出すっていう機能もついてます。
実装に使ったのは、Rubyの twitter のライブラリと、Yahoo! テキスト解析のキーフレーズ抽出 です。
Yahoo! テキスト解析は、JSONでレスポンス返してくれたりで、すごく簡単に使えます。ruby twitter のドキュメント を見れば、使い方はだいたい分かります。OAuth 認証も簡単でいいです。


1 | No Comments | 12月 6th, 2009
ファイル一覧を得て、それをまとめてあるディレクトリにコピーしたいなーと思って xargs に渡したところで、第一引数に渡したいけどどうするの?って思って調べたら、cp には -t [target directory] というオプションがあるようです。これを使って
{ファイル一覧を得る処理}| xargs cp -t [target directory]
とすることで目的が達成できそうです。しかし、Mac で上記のコマンドを実行すると -t が使えないようで、更に調べると Mac に最初から入ってる cp コマンドは、GNUの cp とは機能が異なるということが分かりました。
GNU の cp と同等のものを入れたい場合は、macports で coreutils てのをインストールすると良いです。
% sudo port install coreutils
こうすると、頭に g がついた形でインストールされます。例えば、cp は gcp、mv は gmv といった具合。非推奨というか、他のアプリケーションを使おうとしたときに弊害が出る可能性があるけれど、GNU の cp を cp として使いたい場合は、インストール時にオプションをつけることで実現できる。
% sudo port install coreutils +with_default_names
実際、違いで困ったことが今回初めてだったのでvariantsなしでインストールしてみました。これで、cp -t のオプション使えるようになります。mv -t も同様の動作になる。gcp と gmv としてですが。
今回やろうと思ったことは、解像度が 1920×1200 の画像だけを抽出して壁紙として使おう、ってことだったので、Mac に標準で入ってる画像いじくるコマンドの sips を使った。本当は1回で 高さと幅を絞り込みたいのだけれど、やりかたが分からなかった…。
sips -g pixelWidth [ファイル名] で、幅がとれます。表示は下記のように、2行に渡ってパスと情報がでます。
/Users/chihaya/save/壁紙/wallpaper1.jpg
pixelWidth: 1024grep -B n でn行前まで表示できるので、pixelWidth: 1920 でひっかけて、1行前のパスを取得して、さらにもう1回 sips で高さをとって pixelHeight: 1200 でひっかければ、1920×1200の画像とれそうです。
sips -g pixelHeight *| grep -B 1 "pixelWidth: 1920"| grep "/Users/chihaya"| xargs sips -g pixelHeight| grep -B 1 "pixelHeight: 1200"| grep "/Users/chihaya"| xargs gcp -t ./wall_papers/
とすれば、current directory にある画像のうち、1920×1200 のものを、 ./wall_papers/ 以下にコピーすることが出来ます。簡単。
