C-t: カーソル部分のタグにジャンプ

C-o: 前いた場所に戻る(tagに限らずいつも使いまくるヤツ)

g C-t: タグ候補が複数ある場合に候補一覧を表示

この3つだけでクッソはかどる

Xcodeとかの機能がうらやましい

IDEでは当然の機能ですが、クラスやメソッドの定義に飛べるのって便利ですよね。vimやemacsでは設定すればできるんだろうけどやってる人あんまり見ない。

開いてるbuffer内のものしか飛べないとか、明示的にtag生成コマンド実行とか論外。

そんな折、Gemfileのgemを含めて保存時自動tag生成してくれるvim-tagsというpluginがとても良かったのでご紹介。

szw/vim-tags

vim-tagsの設定

$ brew install ctags
# ~/.vimrc:
Bundle 'szw/vim-tags'
let g:vim_tags_project_tags_command = "/usr/local/Cellar/ctags/5.8/bin/ctags -f tags -R . 2>/dev/null"
let g:vim_tags_gems_tags_command = "/usr/local/Cellar/ctags/5.8/bin/ctags -R -f Gemfile.lock.tags `bundle show --paths` 2>/dev/null"
set tags+=tags,Gemfile.lock.tags

macデフォのctagsはbsdで色々違うのでbrewで入れてfullpath指定。

ファイル保存時にtagsファイルを生成。ちょっと遅くなるので非同期実行するvim-dispatch pluginとの連携も試してみたいと思います。

tpope/vim-dispatch

とにかく機能が細かくgemに分割される昨今。これははかどる!

2.5 Cookies serializer

Applications created before Rails 4.1 uses Marshal to serialize cookie values into the signed and encrypted cookie jars. If you want to use the new JSON-based format in your application, you can add an initializer file with the following content:

Rails.application.config.action_dispatch.cookies_serializer = :hybrid

cookieのserializerがrubyのMarshalからJSONに変わったって部分。

これcookieがバージョンまたいでないと発生しないからテスト面倒だねえ・・・。

EngineYardCloudのEnvironmentをのぞいてみたらruby2.1.2に対応してたので怖話をアップデートしました。

stackのversionが上がる時ほど警戒は必要無いとは思いますが、clone environmentしてそちらをアップデートしてみて動作確認してから本アップデートをかけるのが正義。

ruby2.0.0-p247からのアップデートだったんですが、何の問題も無く完了しました。最新は気持ちいい。

Early AccessにはWebサーバーのpumaも来てるのでrails4.1系にしてpumaが正式版になったらこっちも変えたらかなり速くなるんじゃないかなと期待しております!

ほぼ全部インターンの@hir_aikさんのお陰で怖話をrails3.2から4.0.5にアップデートできました。

やったー!勢いにのって4.1行くぞー!

2011年5月22日のrails3.0.7が最初のコミットでちょっと古くなってきましたが、railsアップデートを諦めた時がサイトが死ぬときと心得て頑張ります。

マンションで強制的にネットはJ:COMを使わされている。

ネット回線の移行 - komagata

2日ほど前から色んなサイトが見れたり見れなかったりする。iPadでのGoogleハングアウトがしょっちゅう切れる。

ビデオチャット系は調子悪いと人間関係まで悪化しそうなので困る。調べてみた。

IPでのpingは通るのにwebが見れたり見れなかったりする。有線でも起こるので無線やルーターのせいではなさそう。DNSが怪しい。

DNSサーバの障害発生について

J:COMの障害情報ページに行ってみたらDNSサーバーに障害が起きてるらしい。2日経ってるのに今も発生中か…。

iPadでのビデオチャット断線が困るので無線LANルーター(BUFFALO WZR-AGL300NH)の方にGoogle Public DNSを設定した。

直った、ヤッタネ。もうJ:COMのDNSなんて信用しないぜ ( ゚д゚)、ペッ

@odailly_jpさんがrailsを(最新版をちゃんと)使ってる会社に就職が決まり、昨日最終日だったのでささやかな送別会をやりました。

怖話のcontributionを見るとごく短期間なのに歴代5位のcommit量で素晴らしい。

当たり前なんだけど、怖話にとってありがたい人ほど早く就職が決まって卒業していってしまいます。残念なことです。

しかし、ruby界隈にいる限り顔を合わせることも多いでしょう。

Herokuでrootドメインを独自ドメインで使う - komagata

このエントリー経由でDozensにサインアップしてくれる人が結構いるらしい。エントリーを書いた人間として紹介したかいがあったというものだが…

---------------------------------------------------------------------------------
このメールは【Dozens】より自動的に送信されています。
お心当たりの無い場合や、ご不明な点がありましたら
お問い合わせフォームよりご連絡をお願いいたします。
---------------------------------------------------------------------------------

komagataさん、こんにちは。

Dozensお友達紹介キャンペーンのご利用ありがとうございます。
あなたの招待コードからDozensへの登録がありましたので、
あなたの基準レコードは、 213から216へ増えました!
ぜひご活用ください。

今後ともDozensをよろしくお願いします。

---------------------------------------------------------------------------------
Dozens
http://dozens.jp/
contact@dozens.jp

そんなに使えるDNS Record増えてもどないせっちゅー…。

railsでいつも下記のようにしてたのでgemにしました。

# lib/seed_helper.rb:
require 'active_record/fixtures'
                               
module SeedHelper              
  def import_fixture(name)
    puts "Import #{name}..."   
    ActiveRecord::FixtureSet.create_fixtures \
      "#{Rails.root}/db/fixtures", name
  end                          
end
# db/seeds.rb:
require 'seed_helper'
include SeedHelper # この2行がウザい

import_fixture :users
import_fixture :posts

seed系のgemはたくさんあるけど俺にはどれもオーバースペックだったので。

simple_seed

komagata/simple_seed

使い方

$ mkdir db/fixtures
$ vi db/fixtures/users.yml
user_1:
  name: Jean Valjean
user_2:
  name: Bishop Myriel
user_3:
  name: Cosette
$ vi db/seeds.rb
import_fixture :users
$ rake db:seed
Import users...

rubyのIDEではRubyMineが有名だけど有料なのでEclipse+RDT(Ruby Development Toolkit)を試してみました。(Aptana Studio 3 Pluginは使わない)

Eclipseのインストール

eclipseのサイトからMac OS X 64 Bit版をダウンロード。この時のバージョンは4.3.2でした。

RDTのインストール

-All Available Sites--にしてrubyで絞り込むとRDTが出てくるのでインストール。

PreferencesでRubyのInterpretersを追加。上記のようにrbenvを使ってる場合はshims/rubyを指定すればOKでした。

Enginesで何でdebugするのかというのを選びます。他のはgemが必要だったりバージョン毎に動いたり動かなかったりするのでRuby Build-In Debuggerを選択。

普通のrubyスクリプトをdebug

これは普通にできる。トップレベルのlocal変数が見れない気がするけど。

sinatraアプリをdebug

これも普通に実行するとhttp://localhost:4567/とかで立ち上がるのでブラウザからアクセスするとちゃんとブレイクポイントで止まってくれる。

railsアプリをdebug

怖話で試してみる。

これも要はscript/rails serverを実行してhttp://localhost:3000/にアクセスすればいいだけだからDebug Configurationsで下記のようなものを用意する。

実行するスクリプトはscript/rails

引数はserver

ただでさえ遅い怖話のデバッグ起動はクッソ重いので覚悟すること。

ちゃんとブレイクポイントの上の行の@nowがとれてます。

感想

ややこしいプロジェクトの厄介なバグを本腰入れて追い回す時には良いかも。ただほんとに重いので軽快にdebugしたいならpry-byebugの方が良いかな。

気になった点

ruby1.9からのnew hash syntaxがエラーと認識されている。RDTのどこかで設定できるのかな?

$ brew update
$ brew upgrade rbenv ruby-build
$ CONFIGURE_OPTS="--with-openssl-dir=`brew --prefix openssl` --with-readline-dir=`brew --prefix readline`" rbenv install 2.1.2
$ rbenv global 2.1.2
$ gem install bundler rbenv-rehash