There's an echo in my head

日々のメモ。

2012-12-01から1ヶ月間の記事一覧

COUNTDOWN JAPAN 12/13の二日目(12/29)に行ってきた

今年も行ってきた! フジファブリック → B-DASH → 高橋優 → マキシマムザホルモン → サカナクション → plenty → SHAKALABBITS ほんの12時間前に「今年も来たぜキャッホー!」ってなってたのに、凄く遠い昔のことに感じる。うん、今年もとても楽しかった。 フ…

RailsでRackミドルウェアを追加する

rakeタスクでつまれてるミドルウェアを確認する。 $ rake middleware use ActionDispatch::Static use Rack::Lock use #<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x007fed13d07bb0> use Rack::Runtime use Rack::MethodOverride use ActionDispatch::RequestId use Rails::Rack::Logger use ActionDispatch::ShowExcep</activesupport::cache::strategy::localcache::middleware:0x007fed13d07bb0>…

gitでタグをもとにブランチを切る

git

タグの情報を見るなら $ git show タグ名 そのタグをチェックアウトするなら $ git checkout タグ名 そのタグからブランチを切る(そしてチェックアウトする)なら $ git branch ブランチ名 タグ名 $ git checkout ブランチ名 もしくは $ git checkout -B ブ…

ActiveRecordのwith_lockはトランザクションも開始してくれる

ソースを見るとトランザクションを開始してからロックしてくれるので、別途transactionを呼ぶ必要はない。 # File activerecord/lib/active_record/locking/pessimistic.rb, line 69 def with_lock(lock = true) transaction do lock!(lock) yield end end …

RSpecにdescribeやcontextで使えるメソッドを実装する

describeやcontext間で共通する処理をメソッドにするとスッキリするんだけど、それをspecファイルをまたいで共有したいときに。 module RSpec module Core module MyHelper # 適当に名付ける module ExampleGroupMethods def my_let(*args) p args let(*args…

MySQL InnoDBの行ロック

ロックがわからない。MySQL InnoDBの行レベルロックを読んだけど、イマイチわからない。というわけで、社内の勉強会で知ったことをまとめてみる。 FOR UPDATEかLOCK IN SHARE MODEによって、そのトランザクション中に走る別画面でのクエリの処理のタイミング…

Kernel.rand(n)はnが整数値の場合にn未満の値を返す

よく忘れるのでメモ。 Kernel.rand(n)は、nが整数値の場合には0..(n-1)の範囲の整数をランダムで返す。 つまり、rand(2)とやっても返ってくるのは0もしくは1のどちらかのみで、2が返ってくることはない。

the HIATUSのThe Afterglow Tour 2012に行ってきた

12/5のNHKホールに行ってきた。 というわけでこの本文を書いているのは年を跨いで2013年の1月3日の深夜28時。 あの日(12/5)のことは今もしっかり覚えているけども、情景の描写は完結に抑えておいて(全部書こうとすると、当日の帰り道に自分宛に送った長文…

serialize-rails gemでJSONをDBに格納する

ActiveRecordのserializeはYAMLにしか対応していないけど、serialize-railsを使うとJSONやXML、RubyのMarshalも保存できるようになる。 # Gemfile source 'http://rubygems.org' gem 'rails', '3.2.9' # 3.0.0 以上が必要 gem 'serialize-rails' # app/model…

クラス変数とインスタンス変数

class Klass @iv = 1 @@cv = 2 def self.iv; @iv end def self.cv; @@cv end def iv; @iv end def cv; @@cv end end class SubKlass < Klass end # クラスのインスタンス変数を参照してみる Klass.iv #=> 1 SubKlass.iv #=> nil Klass.new.iv #=> nil SubKla…

ruby 2.0.0-preview2を入れた

12/1にリリースされてたので入れた。 基本的にはruby 2.0.0-preview1と導入方法は同じで、ruby-installを更新したあとでインストール。 ちなみに環境はOS X 10.8.2 Mountain Lion。 $ cd ~/.rbenv/plugins/ruby-build $ git pull origin master $ CONFIGURE_…

Goose houseの音楽が素敵すぎて

最近知ったGoose houseという音楽ユニットの演奏がとても好きで、今日は一日中この人たちの歌を聴きながら作業していた。 恋におちたら/Crystal kay(Cover 主にカバーをやってるんだけど、アコースティックな感じがとても好き。超メジャー曲から、これ歌っ…

bundlerでgemを作る

不完全ながらメモ。 雛形を作る $ bundler gem hello こうするとhelloディレクトリが作られて、その中にひな形のファイル(hello.gemspecとかlibとかが作られる)。 hello.gemspecを変更する TODOと書かれているgem.description、gem.summaryは変更しないとr…

このブログに出てくるコードスニペッツは、引用あるいは断りがない限りMITライセンスです。