2012-11-01 [長年日記]
■10月の読書メーター
読んだ本の数:12冊
読んだページ数:3381ページ
ナイス数:12ナイス
OUT OF CONTROL (ハヤカワ文庫JA)の感想
「まあこ」と「箱」は異形コレクションで既読。「箱」は題名だけでストーリーラインを思い出せる程度に印象が残っていた。やっぱり面白い。「まあこ」は取り出して読むと面白いのだけど、異形コレクションの中では……。そういや全体的に今ひとつの巻だったかも。「メトセラとプラスチックと太陽の臓器」が面白い。「OUT OF CONTROL」はすごくよくできていて、何度も読める作品なんじゃないかという予感。「スタンド・アウト」は興味深い。「デストピア」は半端。「日本改暦事情」は今となっては"天地明察を読め!"という気分。
読了日:10月31日 著者:冲方 丁
2000年のゲーム・キッズ(上) (星海社文庫)
読了日:10月22日 著者:渡辺 浩弐,竹
暗黒太陽の浮気娘 (ミステリアス・プレス文庫―ハヤカワ文庫 (10))の感想
話の筋として知ってはいたけど、D&Dのプレイングの最中に犯人をあぶりだすミステリって……変。SFファン(作中表現を尊重してオタクとは書かない)の生態が楽しい。今は有名な《プラン9・フロム・アウタースペース》が《外宇宙からの第九次侵略計画》として名前だけ登場。ここのやりとり「あら、見なきゃだめよ! 信じられないくらいひどいんだから」は可笑しい。(《マウス・オブ・マッドネス》でモーテルのテレビに映っていた)《ロボット・モンスター》は《怪物ロボット》だったり。D&Dのプレイ中に出てきた変化(へんげ)ってなに?
読了日:10月19日 著者:シャーリン・マクラム
カンナ 京都の霊前 (講談社ノベルス)の感想
あっさりとした解決。QEDの、日本史の話をしていたと思ったらミステリの謎に繋がってました、というフォーマットに縛られていない分こちらの方が好き。日本史の話で盛り上がってお仕舞いでokなので。
読了日:10月15日 著者:高田 崇史
カンナ 出雲の顕在 (講談社ノベルス)
読了日:10月15日 著者:高田 崇史
カンナ 天満の葬列 (講談社ノベルス)の感想
道真公の生前が悪霊のイメージからはほど遠いというのは永井路子の悪霊列伝などでも既知。悪霊列伝では寺社の権力(?)争いに求めていたかなー。こちらの解釈の方が面白い。
読了日:10月15日 著者:高田 崇史
カンナ 鎌倉の血陣 (講談社ノベルス)
読了日:10月14日 著者:高田 崇史
カンナ 戸隠の殺皆 (講談社ノベルス)
読了日:10月14日 著者:高田 崇史
カンナ 奥州の覇者 (講談社ノベルス)
読了日:10月12日 著者:高田 崇史
カンナ 吉野の暗闘 (講談社ノベルス)
読了日:10月10日 著者:高田 崇史
クトゥルフ神話への招待 ~遊星からの物体X (扶桑社ミステリー)
読了日:10月9日 著者:J・W・キャンベルJr.,H・P・ラヴクラフト,ラムジー・キャンベル
復興の書店の感想
もう震災関連の書籍は読まなくても、と思っていたがこんなものを見つけた日には手に取らずにいられない。p40「生活に必要な食料や水を買い求めるためにスーパーに並んだ人たちが、同じようにその足で書店にも並んでいるんですよ」本屋の開店も、新刊の配本も、図書館の再開も、みな待ち遠しかった。本屋さんは私にとっての日常の象徴だった。この本を読んで、あらためてそう思う。一頁堂書店さんが、みんな全くの素人というのは意外だった。巻頭の地図が位置がよく把握できるのでよかった。
読了日:10月8日 著者:稲泉 連
2012-10-31 [長年日記]
■tDiary3.2.0をマージ
コンフリクトなかった。
2012-10-29 [長年日記]
■sinatra-activerecordを使ってマイグレーションを作る
ための最低限の手続きのメモ。要Ruby1.9系(多分)。
bundlerを使う。
sudo gem install bundler
適当なフォルダを使う。
mkdir apptest cd apptest
Gemfileを作る。
source 'https://rubygems.org' ruby '1.9.3' gem 'sinatra-activerecord', :require => 'sinatra/activerecord' gem 'rake'
bundle install。依存関係からActiveRecordなんかが入る。
mkdir vendor bundle install --path vendor/bundle
Rakefileを作る。
require 'sinatra/activerecord/rake'
これだけ。
この時点ですでに、
bundle exec rake -T
すると、
rake db:create_migration # create an ActiveRecord migration in ./db/migrate rake db:migrate # migrate the database (use version with VERSION=n) rake db:rollback # roll back the migration (use steps with STEP=n)
というタスクが3つ登録済みになる。
ではさっそく、
bundle exec rake db:create_migration
すると、
rake aborted! No NAME specified. Example usage: `rake db:create_migration NAME=create_users`
と、NAMEを指定してね、って言われる。
なので、
bundle exec rake db:create_migration NAME=create_users
すると、db/migrate ディレクトリが作られて、20121029xxxxxx_create_users.rb なんてファイルができている。
class CreateUsers < ActiveRecord::Migration def up end def down end end
というおなじみ(?)Migration用のファイル。
中身をいれてやる。
class CreateUsers < ActiveRecord::Migration def up create_table :users do |t| t.string :user_id t.string :password t.timestamps end end def down drop_table :users end end
とか作り込んでいく(ここで書いたのはちょう適当)。
で、Migrationを作っていって、
bundle exec rake db:migrate
ってやれば、最新のmigrationまで一気にやってくれる……わけがない。
だってどこのどんな種類のDBに操作するのか書いてないから。
……マイグレーションはできた。実行できないけど。
ここで終わっちゃあんまりなので。
GemfileにDBアクセスに必要なGemを追加。
source :rubygems ruby '1.9.3' gem 'sinatra-activerecord', :require => 'sinatra/activerecord' gem 'rake' gem 'sqlite3'
楽なsqlite3にしといた。
bundle install
を忘れずに。もちろんその前に apt-get なり、yum なり、brew なり、ports なりでsqlite3(とヘッダ類)をインストールしておかないといけない。
db/connection.rbなんて作っちゃう。
require "logger" ActiveRecord::Base.establish_connection({ :adapter => "sqlite3", :database => "myapp.db", }) ActiveRecord::Base.logger = Logger.new($stderr)
loggerにまつわる部分も含めて必要なオマジナイ。
Rakefileでrequireする*3。
require 'sinatra/activerecord/rake' require './db/connection'
これで、
bundle exec rake db:migrate
が通るはず。
bundle exec rake db:rollback
すると1段階戻る。
おなじみのマイグレーション機能。
Sinatraアプリの中でもconfigureでdb/connection.rbを読んじゃえばdbアクセスできそうだけど、うまいやり方とは到底思えない*4のでどうしようか……。
GemfileにしろRakefileにしろ、必要な部分が分かるように、最小限にしか書いてないのは説明のため。
ここまでなんとなくやってきたけど、そろそろ sinatra-activerecord のドキュメントでも探しにいきますか……。
追記
https://github.com/janko-m/sinatra-activerecord/blob/master/README.md
使い方が普通に書いてあるわけだが。
2012-10-23 [長年日記]
■inetdレンタルサーバーにgitを入れるのこと
viのプラグインをインストールしようと思ったら、httpを指定したgit cloneができないことに気がついた。
元のgitも自分でビルドしたものだったのだけど、この問題はcurlライブラリがないために起きているらしい。
なのでまたビルド。
wget http://curl.haxx.se/download/curl-7.28.0.tar.bz2 tar xvf curl-7.28.0.tar.bz2 cd curl-7.28.0 ./configure --prefix=$HOME/local/curl make make install cd wget http://git-core.googlecode.com/files/git-1.8.0.tar.gz tar zxvf git-1.8.0.tar.gz cd git-1.8.0 env CPPFLAGS=-I$HOME/local/curl/include LDFLAGS=-L$HOME/local/curl/lib ./configure --prefix=$HOME/local/git gmake gmake install
こんな感じで。
ついでに1.8.0になった。
2012-10-13 [長年日記]
■カフェ読み数学ガール 十月 in仙台
でした。
今日読めたのは、
4章でした。
これからどんどん時間的に内容的に厳しくなることでしょう。
宿題。
複素平面の単位円上の数を2つ持ってきて、掛け合わせたらやはり単位円上にあるはず。
極座標で考えれば自明なのだけど、計算して確かめてみよう、と思った。
\((a+bi)(c+di)=(ac-bd)+(bc+ad)i\)
絶対値の2乗は、
\((ac-bd)^2+(bc+ad)^2=a^2c^2-2abcd+b^2d^2+b^2c^2-2abcd+a^2d^2=a^2(c^2+d^2)+b^2(c^2+d^2)=a^2+b^2=1\)
ok。