過去の日記

2012-10-01

9月の読書メーター

2012年9月の読書メーター
読んだ本の数:8冊
読んだページ数:3019ページ
ナイス数:22ナイス

ラブコメ今昔 (角川文庫)ラブコメ今昔 (角川文庫)感想
甘々。でも『ラブコメ今昔』と『青い衝撃』の2作が引き締めてる。読んでいると「某カメがモデルの怪獣映画(p119)」が観たくなる。
読了日:9月27日 著者:有川 浩
NOVA 8 ---書き下ろし日本SFコレクション (河出文庫)NOVA 8 ---書き下ろし日本SFコレクション (河出文庫)感想
「#銀の匙」「曠野にて」「オールトの天使」
読了日:9月26日 著者:山田 正紀,青山 智樹,東 浩紀,粕谷 知世,片瀬 二郎,北野 勇作,飛 浩隆,友成 純一,松尾 由美
クジラの彼 (角川文庫)クジラの彼 (角川文庫)
読了日:9月21日 著者:有川 浩
塩の街 (角川文庫)塩の街 (角川文庫)感想
読んでいてどうしても頭から離れなかったのは新井素子の「ひとめあなたに…」。面白かったが、3部作の他2作品の緻密さはまだないと感じた。その分キャラクターの揺れ動きの方に強く目をひかれた。
読了日:9月20日 著者:有川 浩
海の底海の底感想
すさまじく面白かった。感想はといえば、解説で大森望さんが指摘していることだけど、「爽やかな『ミスト』」だろうか。あちらが一片たりとも明るいところなどない、絶望を見せてから最後にさらに深い絶望にたたき落とす風なのに対して、こちらは全部けりを付けた後に、なお明るい希望の予感を残すといった風。「格好悪い」ところを見せることが「格好いい」ように描かれるのも気持ちよかったり。
読了日:9月17日 著者:有川 浩
スクリューマン&フェアリーロリポップス (電撃文庫)スクリューマン&フェアリーロリポップス (電撃文庫)感想
よかった。これからも期待。能力が明らかに「スタンド」なのがアレだけど、妖精に「イット」とか名付けているあたり多分自覚的。
読了日:9月17日 著者:物草 純平
ロスト・グレイの静かな夜明け (コバルト文庫)ロスト・グレイの静かな夜明け (コバルト文庫)
読了日:9月5日 著者:野村 行央
20世紀SF〈6〉1990年代―遺伝子戦争 (河出文庫)20世紀SF〈6〉1990年代―遺伝子戦争 (河出文庫)感想
「しあわせの理由」は最近読み直したばっかりなのでスキップ。「遺伝子戦争」最後の一文でうわあああってなった。「平ら山を越えて」がすごくよくて奇想コレクションを読みたくなった。
読了日:9月3日 著者:グレッグ イーガン,ダン シモンズ

読書メーター


2012-10-06

居酒屋プレゼン大会 2012 in Autumn!! 行ってきた [etc]

ネット繋がらない!! EMチャージ1日分損した!!
おしまい。


嘘です。
「モンティ・ホール問題と火曜日生まれの男の子」と称してプレゼンしてきました。
5分での構成を考えて、当初の予定から変更してモンティ・ホール問題は資料作成段階でカットしました。


2012-10-13

カフェ読み数学ガール 十月 in仙台 [etc]

カフェ読み数学ガール 十月 in仙台 : ATND

でした。

今日読めたのは、

数学ガール/ガロア理論 (数学ガールシリーズ 5)

  • 作者: 結城 浩
  • 出版社/メーカー: SBクリエイティブ
  • 発売: 2012-05-30
  • ASIN: 4797367547
  • メディア: 単行本
  • amazon.co.jp詳細へ

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。


2012-10-23

inetdレンタルサーバーにgitを入れるのこと [tech]

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-29

sinatra-activerecordを使ってマイグレーションを作る [tech][Ruby]

ための最低限の手続きのメモ。要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'

これだけ? これだけ*1*2


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

使い方が普通に書いてあるわけだが。

*1 rbファイル内で Bundler.require を書かないのならrequireの部分は必要なわけじゃない。

*2 2013-04-01更新 source :rubygems から source 'https://rubygems.org' に変更した。

*3 bundle execで実行する都合上、require_relativeではなくrequireを使った。

*4 Sinatraのモードの概念をスポイルしちゃう。


2012-10-31

tDiary3.2.0をマージ

コンフリクトなかった。