WORLD WAR Z
  • WORLD WAR Z
  • 文藝春秋(2010-04)
  • 文藝春秋
  • (翻訳)浜野アキオ
  • 定価:¥ 2,100
  • 新品価格:¥ 2,100
  • 中古価格:¥ 1,845
  • ASIN:4163291407

ゾンビ戦争。

いわゆるゾンビがアウトブレイクして世界中に蔓延したらどうなっちゃうのか?というのをゾンビ戦争後10年たった各国の人へのインタビューをまとめた形式で語られる。

  • 吠え声で仲間を呼ぶ。聞いた仲間が他の奴を呼ぶ。
  • 寒冷地では凍るが、春になって氷が溶けると動き出す。
  • 草原でもぐらを襲う。
  • 頭が悪いので車の中から一生出られない。(ドアロックやシートベルトが外せない)
  • 水圧で死なないので海底に溜まる。時々歩いて海岸から出てくる。
  • シャベル無双。

各国がパニックを経てどういう状態になるのかも面白いけど、ゾンビの原則(頭悪い・足遅い・脳を破壊しないと死なない)を踏まえた上で各地でこういうことが起こりましたよというシュミレーションが面白い。

ゾンビ映画は通してみた記憶が無いし、バイオハザードも2の途中で挫折したのでゾンビ好きな部類ではないんですが、著者の前作、The Zombie Survival Guilde: Complete Protection from the Living Dead(2003)とか他のゾンビ物映画もちょっと見てみたくなりました。

Capistranoでリポジトリには入れたくない設定ファイルはsharedなどに置いといて、deploy時にシンボリックリンクを張るといい。

ただし、deploy:migrateタスクより先にやらないとdatabase.ymlが見つからなくてエラー。currentが出来るのはdeploy:migrateの後(deploy:symlink)なので、下記のようにcurrent_pathではなくrelease_path(/var/www/foo/20100501062159みたいなヤツ)を使いつつdeploy:migrateより前に実行する必要がある。(deploy:finalize_updateはdeploy:migrateより前にある)

# config/deploy.rb
namespace :deploy do
desc "make symlink to config file"
task :symlink_config, :roles => :app, :except => {:no_release => true} do
run "ln -s #{deploy_to}/shared/database.yml #{release_path}/config/database.yml"
run "ln -s #{deploy_to}/shared/twitter_auth.yml #{release_path}/config/twitter_auth.yml"
run "ln -s #{deploy_to}/shared/newrelic.yml #{release_path}/config/newrelic.yml"
end
after 'deploy:finalize_update', 'deploy:symlink_config'
end

同じシンボリックリンクを張るタスクだからっつってdeploy:symlinkの周辺でやるとハマる。(俺のことです)

今日のハマリ。

TwitterAuth::Dispatcher::Error (Status is a duplicate.):
  oauth (0.3.5) lib/oauth/tokens/access_token.rb:44:in `post'
  app/controllers/votes_controller.rb:25:in `tweet'

Tweet部分でエラーが返る。自分のアプリのせいだと思い込んでいたんですが、statusって何だ?ステータスってものは人に一つじゃないの?何でステータスがduplicateするんだ?

冷静に考えたらTweetは元々、メッセンジャーなどで使う「komagata@仕事中」の右の部分。それの遷移を時間軸で蓄積したものがタイムラインなのでつぶやきの公式な名前はpostでもtweetでも無くstatusだ。

同じ時間帯に全く同じstatusを送ったので「Status is a duplicate.」という訳でした。

次のソース: http://help-me-hackers-production/

railsのproductionでhamlのインデントが効いてない?

File: HAML_CHANGELOG

2.2.0

New Options

:ugly

The :ugly option is not technically new; it was introduced in Haml 2.0 to make rendering deeply nested templates less painful. However, it’s been greatly empowered in Haml 2.2. It now does all sorts of performance optimizations that couldn’t be done before, and its use increases Haml’s performance dramatically. It’s enabled by default in production in Rails, and it’s highly recommended for production environments in other frameworks.

新しいSyntaxが加わった2.2.0から深いネストが遅くなったのでproductionではデフォルトで:uglyオプション有効でインデント無しだそうです。

・・・・・・・・・。

こんな多数派の迫害にもう我慢ならないっ!

少数派の諸君!今すぐ下記のように:uglyオプションをぶち壊して政府転覆の恐ろしい計画を練ろうじゃないか!

# config/initializers/haml.rb
Haml::Template::options[:ugly] = false

何だかんだ言ってもdevelopmentとproductionで挙動の違いの問題は出る。

# /etc/hosts
127.0.0.1 foo foo-production
<VirtualHost *:80>
ServerName foo
DocumentRoot "/Users/komagata/Sites/foo/public"
RailsEnv development
</VirtualHost>

<VirtualHost *:80>
ServerName foo-production
DocumentRoot "/Users/komagata/Sites/foo/public"
</VirtualHost>

こうしておくと便利。

直読み(いつも忘れる・・・)

<script type="text/javascript" charset="utf-8" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

実際には大した種類のルーティングは無いのでデフォルトのルーティングは外しといた方がトラブルが少ない。(無名のルートは持たないように気を付ける感じ?)

ActionController::Routing::Routes.draw do |map|
#  map.connect ':controller/:action/:id'
#  map.connect ':controller/:action/:id.:format'
end

/index.htmlも設定しとかないとYahooにインデクスされない。

ActionController::Routing::Routes.draw do |map|
  map.root :controller => 'top'
  map.root_for_yahoo 'index.html', :controller => 'top'
end

持ってることすら忘れてたPSPを発掘。

初めて知ったんですが、昔のゲームとかがPSPだけでダウンロード購入できるんですね。昔のゲーム(といっても初代PSのゲームとかですが)の方が最近の難しいやつよりなじみやすく、わざわざ買いに行くのも億劫なおっさんにはちょうどいい感じです。値段も300円や600円が主で、Amazonで数千円の本をポコポコ買ってるのに比べれば大分安いですね。

PSPの無線LANはWPA2には対応してなかったのでワザワザ自宅のアクセスポイントをWPAに弱めて接続しました・・・。

最近ニコニコ動画でプレイ動画や実況を見ていてた、「クーロンズゲート」や「俺の屍を越えてゆけ」も600円と安いのでちょっと気になります。買ってみようかな~。

ARTDINK BEST CHOICE クーロンズ・ゲート-九龍風水傅-
俺の屍を越えてゆけ PlayStation the Best
class Tag < ActiveRecord::Base
validates_format_of :name, :with => /^\S+$/
validates_uniqueness_of :name, :case_sensitive => false

def before_validation
self.name.downcase!
end
end

小文字のみ、空白とか禁止。acts_as_taggableなんちゃら系なら多分共通。

これ危険!productionではmodelの読み込み順が違うのでエラー!とりあえず、pluginを直接書き換えて対応中・・・。